如何从Google Earth Engine导出全球地图?
Google Earth Engine全球地图导出解决方案
单列数据问题原因
出现单列数据,基本是导出参数设置错误导致:
- 直接传递
[-180, -90, 180, 90]作为region参数,GEE无法正确解析为矩形区域,必须用ee.Geometry.Rectangle()包装成标准几何对象。 - 未指定
crs(坐标系)或scale参数不合理,会导致影像被错误拉伸/压缩成单列。
低分辨率(5km)全球数据直接导出
5km分辨率的全球影像数据量相对可控,可直接用以下代码导出:
// 示例:加载MODIS NDVI影像,替换为你需要的数据集 var targetImage = ee.Image('MODIS/006/MOD13A1') .select('NDVI') .first(); // 定义全球边界几何 var globalBounds = ee.Geometry.Rectangle([-180, -90, 180, 90], null, false); // 导出到Google Drive Export.image.toDrive({ image: targetImage, description: 'Global_5km_Output', folder: 'GEE_Exports', region: globalBounds, scale: 5000, // 5km分辨率,单位米 crs: 'EPSG:4326', // WGS84坐标系 maxPixels: 1e13, // 提升像素上限,避免数据量过大报错 fileFormat: 'GeoTIFF' });
高分辨率(1km)全球数据的替代方案
1km分辨率的全球影像单波段就有约9亿像素,远超GEE单导出任务的内存限制,必须分块导出后拼接,推荐两种方法:
方法1:经纬度网格分块导出
将全球划分为固定大小的矩形块,循环导出每个块:
// 按10°×10°划分网格,可根据需求调整步长 var lonStep = 10; var latStep = 10; var targetImage = ee.Image('MODIS/006/MOD13A1').select('NDVI').first(); // 循环生成分块并提交导出任务 for (var lon = -180; lon < 180; lon += lonStep) { for (var lat = -90; lat < 90; lat += latStep) { var blockRegion = ee.Geometry.Rectangle([lon, lat, lon+lonStep, lat+latStep]); Export.image.toDrive({ image: targetImage, description: 'Global_1km_Block_' + lon + '_' + lat, folder: 'GEE_1km_Exports', region: blockRegion, scale: 1000, crs: 'EPSG:4326', maxPixels: 1e13, fileFormat: 'GeoTIFF' }); } }
导出完成后,用QGIS、GDAL等工具执行拼接(GDAL命令示例:gdal_merge.py -o global_1km.tif *.tif)。
方法2:Python API批量分块导出
如果熟悉Python,用GEE Python API能更灵活地控制分块逻辑:
import ee ee.Initialize() # 加载目标影像 target_image = ee.Image('MODIS/006/MOD13A1').select('NDVI').first() lon_step = 10 lat_step = 10 # 批量提交分块导出任务 for lon in range(-180, 180, lon_step): for lat in range(-90, 90, lat_step): block_region = ee.Geometry.Rectangle([lon, lat, lon+lon_step, lat+lat_step]) task = ee.batch.Export.image.toDrive( image=target_image, description=f'Global_1km_Block_{lon}_{lat}', folder='GEE_1km_Exports', region=block_region, scale=1000, crs='EPSG:4326', maxPixels=1e13, fileFormat='GeoTIFF' ) task.start()
注意事项
- 导出前务必在GEE地图面板预览影像,确认区域、分辨率设置正确。
- 若数据量超出Google Drive存储上限,可改用
Export.image.toCloudStorage导出到云存储。 - 分块时可设置微小重叠(比如0.1°),避免拼接后出现缝隙。
内容的提问来源于stack exchange,提问作者Rekha
相关产品推荐
相关产品推荐

