如何在Google Earth Engine中导出含经纬度的NO₂均值像素CSV数据
解决Google Earth Engine导出NO₂均值及对应经纬度到CSV的问题
你的代码无法导出经纬度,核心问题在于采样逻辑错误以及未主动提取坐标属性,以下是修正后的完整代码和关键修改说明:
修正后的代码
// 设置数据的起止日期 var startDate = '2021-03-01'; var endDate = '2021-05-31'; // 设置感兴趣区域 var region = ee.Geometry.Polygon( [[[-98.00, 23.00], [-98.00, 17.00], [-89.00, 17.00], [-89.00, 23.00]]], null, false); Map.addLayer(region) Map.centerObject(region, 6) // 创建日期过滤器 var dateFilter = ee.Filter.date(startDate, endDate); // 获取指定时段和区域的NO₂均值数据 var dataset = ee.ImageCollection('COPERNICUS/S5P/NRTI/L3_NO2') .select('NO2_column_number_density') .filterBounds(region) .filter(dateFilter) var meanData = dataset.mean().clip(region); // 可视化参数 var band_viz = { min: 0.00001, max: 0.00009, palette: ["2f4858","33658a","86bbd8","f6ae2d","f26419"] }; Map.addLayer(meanData, band_viz) // 提取像素值、经度和纬度 var features = meanData.sample({ region: region, scale: 10000, geometries: true }).map(function(feature) { // 提取几何中心的经纬度 var coords = feature.geometry().centroid().coordinates(); return feature.set({ longitude: coords.get(0), latitude: coords.get(1) }); }); // 导出数据到CSV Export.table.toDrive({ collection: features, fileFormat: "CSV", folder: "gee", fileNamePrefix: "mean_tropomi_no2_data" });
关键修改说明
- 替换采样方法:将
sampleRegions改为sample,更适合对整个区域进行像素采样,region参数直接传入几何对象即可,同时设置geometries: true保留每个像素的几何信息。 - 添加经纬度属性:通过
map函数遍历每个采样后的Feature,提取其几何中心的经纬度,作为新的属性longitude和latitude添加到Feature中,这样导出的CSV就会包含这两列数据。 - 修正波段属性匹配:原代码
sampleRegions中的properties: ['NO2']是错误的,因为你的均值影像波段名为NO2_column_number_density,使用sample方法会自动将波段值作为属性导出,无需手动指定。
内容的提问来源于stack exchange,提问作者Piyushkumar Patel
相关产品推荐
相关产品推荐

