加载包并启动GEE:
import ee import geemap import os ee.Initialize()
使用研究区矢量的最小外接矩形作为范围界,检索数据,年度最大值合成,裁剪,得到一个
Image
对象
# Define a region of interest with a shapefile using geemap ee_roi = geemap.shp_to_ee('E:/Python/geemap/SHP/ChinaSizhi.shp' )\ .geometry().bounds() #提取矢量的最小外接矩形 #检索范围内的数据 lai_ic = ee.ImageCollection("MODIS/061/MOD15A2H" )\ .select('Lai_500m' ) \ .filterDate('2023-01-01' , '2024-01-01' )\ .filterBounds(ee_roi) #对数据进行合成,应用比例系数,裁剪 lai_2023max = lai_ic.max()\ .multiply(0.1)\ .clip(ee_roi)print (lai_2023max.getInfo())
输出的lai_2023max的元数据信息
预览合成后的lai_2023max:
#可视化显示 vis_lai = { "min" : 0, "max" : 10, "palette" : ["ffffff" , "ce7e45" , "df923d" , "f1b555" , "fcd163" , "99b718" , "74a901" , "66a000" , "529400" , "3e8601" , "207401" , "056201" , "004c00" , "023b01" , "012e01" , "011d01" , "011301" ], }# Add layers to the map Map = geemap.Map(center=(40, 100), zoom=4) Map.centerObject(ee_roi) Map.addLayer(lai_2023max, vis_lai, 'LAI 2023 yearmax' ) Map.addLayer(ee_roi, {'color' : 'red' }, "roi" ) Map
数据预览
数据下载
方法一
通过谷歌网盘下载,感觉比较慢。而且运行后没有任何提示,不知道运行的状态如何,我一般是从网页那去找这个任务,看看进行的怎么样了,然后转到网盘去下载。
# Export the image to Google Drive task = geemap.ee_export_image_to_drive( lai_2023max, description= 'LAImax2023.tif' , folder= 'LAI' , region=ee_roi.geometry(), scale = 500, maxPixels=1e13 )
需要从网页版这里查看任务进度和状态,比较麻烦
方法二
从参考文献2看到的,经测试感觉比1快,需要靠谱的网络。
#设置本地下载目录 work_dir = os.path.join(os.path.expanduser("E:/Python/geemap/geeDownloads" ), 'tif' )if not os.path.exists(work_dir): os.makedirs(work_dir) out_tif = os.path.join(work_dir, "LAImax2023.tif" )#下载GEE影像到本地 geemap.download_ee_image( image=lai_2023max, filename=out_tif, region=ee_roi, crs="EPSG:4326" , scale=500, )
尤其非常让我满意的点是有一个进度条,但是这个预估的数据量并不准,实际下载的文件比这个小得多
参考文献
https://gis-xh.github.io/gis-rs-python-notes/gee/geemap03/