【Python-geemap教程(二)】从GEE JavaScript到geemap Python——LUCC变化驱动分析实现

在地理空间分析领域,Google Earth Engine(GEE)的JavaScript代码编辑器是许多研究者的入门工具。但随着分析需求复杂化,Python凭借更丰富的生态(如pandas数据处理、scikit-learn机器学习)逐渐成为优选。geemap作为连接GEE与Python的桥梁,既能复用GEE的遥感数据与计算能力,又能结合Python生态优势。本文以“LUCC(土地利用/覆盖变化)驱动分析”为例,详解如何将GEE JavaScript代码迁移至geemap Python,并对比两者实现逻辑的异同。

一、案例背景与核心目标

本案例以2015-2020年上海市为研究区,通过MODIS土地覆盖数据识别LUCC变化区域,结合夜间灯光、地表温度、NDVI(归一化植被指数)、DEM(数字高程模型)等驱动因子,用随机森林模型分析各因子对LUCC变化的影响权重。核心目标包括:

  1. 实现LUCC变化区域提取;
  2. 整合多源驱动因子数据;
  3. 通过机器学习模型量化因子重要性;
  4. 可视化分析结果并导出样本数据。

二、GEE JavaScript与geemap Python的核心差异

在迁移代码前,需先明确两者的核心区别,这是理解迁移逻辑的基础:

对比维度 GEE JavaScript geemap Python
运行环境 GEE在线代码编辑器(无需本地配置环境) 本地Python环境(需配置geemap与GEE API)
数据交互 依赖GEE内置函数,输出结果多为地图图层 可结合pandas等库,支持本地数据与GEE数据联动
可视化方式 基于GEE内置地图组件,需手动编写图例逻辑 通过geemap.Map实现,内置add_legend等便捷方法
模型输出处理 结果需通过print或导出查看,缺乏统计工具 可直接将GEE结果转为pandas.DataFrame,支持本地统计与可视化
任务管理 导出任务在GEE控制台查看 可在Python代码中直接启动并监控导出任务

三、代码迁移实现与关键步骤解析

以下结合具体代码,分步骤说明迁移思路及geemap Python的实现优势:

(一)环境初始化与研究区设置

GEE JavaScript实现(核心代码):
// 初始化研究区
var roi = ee.FeatureCollection("projects/ee-hllutlu2024/assets/SHANGHAI");
var yearStart = 2015;
var yearEnd = 2020;

// 地图中心设置
Map.setCenter(121.448, 31.235, 9);
geemap Python实现(核心代码):
import geemap
import ee

# 初始化GEE(含认证逻辑)
try:
    ee.Initialize(project='ee-hllutlu2024')  # 项目ID需替换为个人ID
except Exception as e:
    ee.Authenticate()
    ee.Initialize(project='ee-hllutlu2024')

# 研究区与年份设置
roi = ee.FeatureCollection("projects/ee-hllutlu2024/assets/SHANGHAI")
yearStart = 2015
yearEnd = 2020

# 地图对象创建(直接设置中心与缩放级别)
Map = geemap.Map(center=[31.235, 121.448], zoom=9)

迁移说明
Python版本增加了GEE初始化与认证的容错逻辑(try-except),避免因认证失效导致程序中断;地图对象通过geemap.Map直接创建,参数格式更符合Python习惯(如中心坐标用列表[纬度, 经度])。

(二)LUCC变化区域提取

GEE JavaScript实现(核心代码):
// 定义MODIS土地覆盖数据获取函数
function getLUCC_MODIS(year) {
   
   
  return ee.ImageCollection('MODIS/006/MCD12Q1')
    .filter(ee.Filter.calendarRange(year, year, 'year'))
    .first()
    .select('LC_Type1')
    .clip(roi)
    .rename('lc_' + year);
}

// 提取两期土地覆盖数据并计算变化
var lc_start = getLUCC_MODIS(yearStart)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥感AI实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值