1. 项目背景与数据源选择
甲烷(CH₄)作为仅次于二氧化碳的第二大温室气体,其排放监测对气候变化研究具有重要意义。Sentinel-5P卫星搭载的TROPOMI传感器提供了全球覆盖的高分辨率甲烷浓度数据,空间分辨率达到7×7km²(2022年8月后升级至5.5×7km²)。相比传统地面监测站,卫星遥感能够实现:
- 大范围连续观测(每日覆盖全球)
- 识别人为排放热点(如油气田、垃圾填埋场)
- 追踪甲烷羽流扩散路径
Google Earth Engine(GEE)平台集成了Sentinel-5P的L2级甲烷产品(COPERNICUS/S5P/OFFL/L2_CH4),数据时间跨度为2019年2月至今。该数据集已进行辐射定标和几何校正,可直接用于科学分析。关键参数包括:
CH4_column_volume_mixing_ratio_dry_air:干空气中甲烷柱平均体积混合比(ppbv)qa_value:数据质量标志(0-100%)algorithm_standard_error:反演算法误差估计
2. 西班牙甲烷排放特征预处理
2.1 研究区边界定义
西班牙本土加上海外群岛总面积约50.6万平方公里,在GEE中可通过以下两种方式定义研究区:
javascript复制// 方法1:使用FAO国家边界数据集
var spain = ee.FeatureCollection('FAO/GAUL/2015/level0')
.filter(ee.Filter.eq('ADM0_NAME', 'Spain'));
// 方法2:手动绘制ROI(适合特定区域分析)
var roi = ee.Geometry.Polygon(
[[[-9.5, 36.0],
[-9.5, 43.8],
[3.3, 43.8],
[3.3, 36.0]]]);
2.2 数据质量控制
原始数据需进行以下预处理:
- 云掩膜:利用
cloud_fraction字段过滤云覆盖>20%的像元 - 质量控制:仅保留
qa_value > 50的数据 - 单位转换:将ppbv转换为更常用的ppm(除以1000)
- 异常值剔除:排除>3倍标准差的值
javascript复制function preprocess(image) {
var ch4 = image.select('CH4_column_volume_mixing_ratio_dry_air')
.divide(1000).rename('CH4_ppm');
var qa = image.select('qa_value');
return image.addBands(ch4)
.updateMask(qa.gt(50))
.copyProperties(image, ['system:time_start']);
}
3. 时空分析方法实现
3.1 时间序列聚合
分析2020-2023年西班牙甲烷浓度的季节变化:
javascript复制var collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L2_CH4')
.filterDate('2020-01-01', '2023-12-31')
.filterBounds(spain)
.map(preprocess);
// 计算月度均值
var monthlyMean = ee.ImageCollection(
ee.List.sequence(0, 35).map(function(n) {
var start = ee.Date('2020-01-01').advance(n, 'month');
var end = start.advance(1, 'month');
return collection.filterDate(start, end)
.select('CH4_ppm').mean()
.set('system:time_start', start.millis());
})
);
// 导出时间序列图表
var chart = ui.Chart.image.series({
imageCollection: monthlyMean,
region: spain,
reducer: ee.Reducer.mean(),
scale: 5000
}).setOptions({
title: '西班牙甲烷浓度月变化(2020-2023)',
vAxis: {title: 'CH4浓度 (ppm)'},
hAxis: {title: '日期'}
});
print(chart);
3.2 空间热点检测
识别甲烷排放异常区域需进行:
- 背景场计算:使用3年平均值作为基准
- 标准化异常: (当前值 - 均值) / 标准差
- 热点阈值:Z-score > 2视为显著高值
javascript复制var baseline = collection.select('CH4_ppm')
.reduce(ee.Reducer.mean())
.rename('baseline');
var stdDev = collection.select('CH4_ppm')
.reduce(ee.Reducer.stdDev())
.rename('stdDev');
var anomaly = latestImage.select('CH4_ppm')
.subtract(baseline)
.divide(stdDev)
.rename('CH4_anomaly');
var hotspots = anomaly.gt(2).selfMask();
4. 排放源关联分析
4.1 已知点源匹配
叠加全球甲烷超级排放源数据库(如EDGAR或GHGSat):
javascript复制var pointSources = ee.FeatureCollection('projects/gee-tutorials/assets/CH4_sources')
.filterBounds(spain);
// 在热点区域500m缓冲区内统计点源数量
var sourceDensity = hotspots.reduceToVectors({
geometry: spain,
scale: 5000,
geometryType: 'polygon'
}).map(function(feature) {
var buffer = feature.geometry().buffer(500);
var sources = pointSources.filterBounds(buffer);
return feature.set('source_count', sources.size());
});
4.2 土地利用关联
结合CORINE土地覆盖数据识别排放类型:
javascript复制var landcover = ee.Image('COPERNICUS/CORINE/V20/100m/2018')
.clip(spain);
// 统计热点区域的土地利用类型占比
var lcStats = ee.Image.cat([hotspots, landcover])
.reduceRegion({
reducer: ee.Reducer.frequencyHistogram(),
geometry: spain,
scale: 100,
maxPixels: 1e9
}).get('CH4_anomaly_landcover');
5. 成果可视化与导出
5.1 分级渲染方案
javascript复制var visParams = {
min: 1.7,
max: 2.3,
palette: ['blue', 'white', 'red'],
opacity: 0.7
};
Map.addLayer(baseline.clip(spain), visParams, 'CH4 Baseline');
Map.addLayer(hotspots.clip(spain), {palette: 'red'}, 'Hotspots');
Map.addLayer(sourceDensity, {color: 'yellow'}, 'Source Density');
5.2 数据导出方法
javascript复制// 导出GeoTIFF
Export.image.toDrive({
image: baseline,
description: 'Spain_CH4_baseline',
scale: 5000,
region: spain,
fileFormat: 'GeoTIFF'
});
// 导出热点区域矢量
Export.table.toDrive({
collection: sourceDensity,
description: 'CH4_hotspots',
fileFormat: 'SHP'
});
6. 实际应用中的注意事项
-
数据时效性:TROPOMI数据通常有3-7天延迟,近实时分析需使用NRTI(Near Real-Time)产品
-
垂直敏感性:甲烷浓度反演对地表气压敏感,山区结果需谨慎解读
-
交叉验证:建议结合TROPOMI L3产品和地面观测站(如ICOS网络)进行验证
-
排放量估算:浓度≠排放量,需结合逆模型或质量平衡方法转换
-
ROI绘制技巧:处理海岛区域时,建议分别定义大陆和群岛的ROI,避免无效计算
javascript复制// 优化后的ROI定义示例
var mainland = ee.Geometry.Polygon([...]);
var canary = ee.Geometry.Polygon([...]);
var balearic = ee.Geometry.Polygon([...]);
var spain = mainland.merge(canary).merge(balearic);
通过本教程,用户可掌握GEE平台下Sentinel-5P甲烷数据的完整分析流程。实际应用中,建议重点关注马德里都市圈、巴塞罗那工业区以及南部农业区的甲烷排放特征,这些区域通常表现出明显的季节变化规律。
