geemap下载MCD12Q1土地覆被数据

学术   2024-10-08 14:01   云南  

前面给大家分享过使用rgee获取IGBP土地覆被数据的代码rgee土地覆被变化检测——2001~2019中国土地覆被变化,但是由于GEE API更新,rgee无法正常使用了,推荐使用吴秋生老师开发的Python版本GEE,非常方便,而且Python是GEE官方提供的接口语言,不会像R那样由于更新无法使用,功能相比JS版上限更高,推荐大家学习。

将上述R中的rgee代码转换为Python中的geemap代码,可以使用以下步骤和示例代码:

import ee
import geemap
import os

# Initialize Earth Engine
ee.Initialize()

# Define a region of interest with a shapefile using geemap
ee_roi = geemap.shp_to_ee('./SHP/ChinaSizhi.SHP')

# Call MODIS land cover dataset (MCD12Q1)
cmr_lucc = ee.ImageCollection("MODIS/006/MCD12Q1") \
    .select('LC_Type1') \
    .filterBounds(ee_roi)

# Mosaic the image collection and clip to the region of interest
cmr_lucc1 = cmr_lucc.mosaic().clip(ee_roi)

# Visualization parameters for IGBP land cover
igbp_landcover_vis = {
    'min'1,
    'max'17,
    'palette': ['05450a''086a10''54a708''78d203''009900''c6b044''dcd159',
                'dade48''fbff13''b6ff05''27ff87''c24f44''a5a5a5''ff6d4c',
                '69fff8''f9ffa4''1c0dff']
}

# Create a Map instance
Map = geemap.Map(center=[40117], zoom=8)

# Add layers to the map
Map.addLayer(cmr_lucc1, igbp_landcover_vis, 'cmrlucc')
Map.addLayer(ee_roi, {'palette''red'}, "roi")
Map.centerObject(ee_roi)

# Display the map
Map

# Define a function to export raster images to Google Drive
def export_image_to_drive(image, description, folder, scale):
    task = ee.batch.Export.image.toDrive(**{
        'image': image,
        'description': description,
        'folder': folder,
        'scale': scale,
        'region': ee_roi.geometry().getInfo()['coordinates'],
        'maxPixels'1e13
    })
    task.start()

# Batch download
for j in range(20012020):
    date_start = ee.Date.fromYMD(j, 11)
    date_end = ee.Date.fromYMD(j, 1231)
    cmrlucc_composite = cmr_lucc \
        .filter(ee.Filter.date(date_start, date_end)) \
        .mosaic() \
        .clip(ee_roi)
    
    tiff_name = date_start.format('YYYY-MM-dd').getInfo()
    
    # Export the image to Google Drive
    export_image_to_drive(cmrlucc_composite, description=tiff_name, folder='CNlucc', scale=500)
geemap预览IGBP土地覆被数据

说明:

  1. 导入库和初始化:

  • ee.Initialize() 初始化 Earth Engine。
  • import geemap 导入 geemap 库,它提供了易于使用的界面来与 Earth Engine 进行交互。
  • 定义地区兴趣区域(ROI):

    • ee_roi = geemap.shp_to_ee('./SHP/ChinaSizhi.SHP') 使用 geemap.shp_to_ee 将 Shapefile 转换为 Earth Engine 中的 FeatureCollection。
  • 调用 MODIS 数据集:

    • cmr_lucc = ee.ImageCollection("MODIS/006/MCD12Q1") 调用 MODIS 的 MCD12Q1 数据集。
    • .select('LC_Type1') 选择数据集中的特定波段。
    • .filterBounds(ee_roi) 根据 ROI 过滤数据集。
  • 影像处理和可视化:

    • cmr_lucc1 = cmr_lucc.mosaic().clip(ee_roi) 将图像集合进行镶嵌并裁剪到 ROI。
    • Map.addLayer(cmr_lucc1, igbp_landcover_vis, 'cmrlucc') 将处理后的影像添加到地图中进行可视化。
  • 导出影像到 Google Drive:

    • export_image_to_drive 函数定义了导出影像到 Google Drive 的过程。

    走天涯徐小洋地理数据科学
    一个爱生活的地理土博,分享GIS、遥感、空间分析、R语言、景观生态等地理数据科学实操教程、经典文献、数据资源
     最新文章