分享一个LAI年度最大值合成并下载的代码:
加载包并启动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:
#可视化显示
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://book.geemap.org/ https://gis-xh.github.io/gis-rs-python-notes/gee/geemap03/