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

【Python-geemap教程】开篇:基于Miniconda搭建geemap与GEE开发环境 本教程详细介绍了如何基于Miniconda搭建geemap开发环境,为地理空间分析奠定基础。主要内容包括:安装轻量级的Miniconda包管理工具;创建Python 3.8的独立Conda环境;安装Jupyter Lab交互开发环境;配置geemap和GEE API;完成GEE身份认证;并通过土地覆盖数据可视化案例验证环境可用性。该环境具有隔离性好、可复现性强的特点,能有效避免依赖冲突,为后续geemap应用开发提供稳定支持。 阅读详情

在地理空间分析领域,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)
数据分享|中低分辨率土地覆盖数据 中国1:100万植被数据集 介绍 本数据集详细反映了我国11个植被类型组、54个植被型的796个群系和亚群系植被单位的分布状况、水平地带性和垂直地带性分布规律,同时反映了我国2000多个植物优势种、主要农作物和经济作物的实际分布状况及优势种与土壤和地面地质的密切关系。由于本数据集属于现势植被图图种,故反映出我国植被近期的质量状况。 本数据集来源于《1:1000000中国植被图集》。该图集是我国植被生态学工作者40多年来继《中国植被》等专著出版后又一项总结性成果,是国家自然资源和自然条件的基本图件。该图集为四 阅读详情

相关推荐

从0开始学GEE python——Google Earth Engine (GEE) 和 geemap 库来创建特征集合、显示地理数据以及生成随机点可视化

这段代码展示了如何创建特征集合、从已有数据集中加载特征、生成随机点,并使用 geemap 库将这些数据可视化。通过这些步骤,用户可以方便地进行地理空间分析和可视化。

此星光明博客 504

geemap学习笔记 01 geemap 安装篇

geemap学习笔记 01 geemap 安装篇 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 01 GEEmap 安装篇 谨以此学习笔记记录一下自己学习GEEmap的历程吧~ 文章目录geemap学习笔记 01 geemap 安装篇前言一、安装准备工作二、geemap 安装步骤1. 安装Anaconda(以Anaconda为例介绍)2. 基于Anaconda配置geemap包环境总结 前言 geemap是一个用于与Google Earth Engine(GEE)进行地图交互式编程

qq_35776031的博客 6522

第一章:GEE 和 GEEMAP

在本章中,我们将介绍地理空间数据科学、谷歌地球引擎和地理地图的基础知识。然后,我们将逐步完成设置 conda 环境和安装 geemap 的步骤。我们还将学习如何在不在您的计算机上安装任何东西的情况下将 geemap 与 Google Colab 一起使用。...

韩天放 8050

【GIS风暴】最新全球(全国)土地利用数据集下载地址大全汇总

目 录 1. GlobeLand30 2. 地理空间数据云 3. 马里兰大学数据集 4. Modis MCD12(MODQ1\MODQ2) 5. IGBP(国际地圈生物圈计划) 6. 寒区旱区科学数据中心 1. GlobeLand30 数据下载、处理,成品下载相关链接: 【ArcGIS风暴】ArcGIS生成GlobeLand30土地利用数据集中国区域行列号shp格式对照图 【ArcGIS风暴】30米分辨率地表覆盖数据GlobeLand30原始数据集简介及下载地址 【ArcGI..

智慧空间实验室 4万+

AI时代敏捷开发新范式——意图驱动开发IDD

具体的功能代码、单元测试、集成测试用例,以及最终可运行的、支持PlantUML的Markdown转Word工具新版本。:业务方(如技术文档团队)反馈,现有的Markdown转Word工具在处理包含PlantUML代码块的文档时,无法正确生成图表,导致技术方案、架构图等关键信息丢失,严重影响了文档交付质量和团队效率。这不仅带来了交付周期显著缩短、资源效能倍增的可观收益,更深远的意义在于,它描绘了未来软件工业化、智能化的新图景:一个由精准意图驱动、AI自主执行、人类智慧引领的敏捷、高效、高质的新世界。

LiuJunjiang的专栏 551

Unity动画状态机实战:Trigger和Bool参数到底怎么选?附5个常见场景解析

本文深入解析Unity动画状态机中Trigger和Bool参数的核心差异与应用场景。通过对比两者在描述瞬时事件与持续状态上的本质区别,并结合角色移动、攻击连招、跳跃落地、受击死亡及环境交互等5个实战场景,提供了清晰的选择逻辑与避坑指南,帮助开发者构建更健壮、易维护的动画逻辑。

weixin_29009501的博客 120

深度学习的unfold操作

对于彩色图像这样的三维数据,unfold操作会对每个通道分别进行上述的二维展开操作。例如,一个 RGB 图像,在对其进行unfold操作时,红色通道、绿色通道和蓝色通道的数据都会被独立地按照定义的窗口和步长展开,然后将这些展开后的通道数据按照原来的通道顺序组合在一起,形成新的张量。与我们熟悉的卷积类似,unfold也是使用一个特定大小的窗口和步长自左至右、自上至下滑动,不同的是,卷是滑动后与核求乘积(所以取名为卷积),而unfold滑动后不求乘积,是将窗口内的数据展开。

xulibo5828的博客 2167

【安徽理工大学】一文带你高分拿下计算机考研复试(85+的秘密)

一文带你高分拿下安徽理工大学计算机考研复试(85+的秘密)

猫天意的博客 1523

CMU开源NavRL:深度强化学习如何破解无人机动态避障难题?

卡内基梅隆大学(CMU)开源了NavRL框架,利用深度强化学习解决无人机在复杂环境中的动态避障难题。该框架通过创新的状态表示、多目标奖励函数设计以及独立的安全屏障机制,使无人机能够通过仿真训练自主学会灵活、安全的导航策略,并成功实现从仿真到真实环境的零样本迁移。

hope8的博客 720

电路研究9.4——合宙Air780EP的LuatOS、CSDK跟标准AT

 C-SDK、AT指令、LuatOS

esmember的博客 1116

地球引擎初级教程:Python API 的安装和介绍

地球引擎的 Python API 提供了许多功能和工具,用于访问和处理地理空间数据。连接到地球引擎在编写地球引擎的 Python 脚本时,首先需要连接到地球引擎服务器。import ee # 初始化地球引擎 ee . Initialize()这将初始化地球引擎并建立与服务器的连接。加载和显示图像使用地球引擎的 Python API,您可以加载和显示卫星图像。import ee# 初始化地球引擎# 加载 Landsat 8 影像# 显示影像print('影像 URL:', url)

UePostscript的博客 1007

【PySide6拓展】初识QChart图表

在 PySide6 中,QtCharts模块提供了一系列强大的类,用于创建和管理图表。QChart是这个模块的核心类,它可以帮助开发者轻松地实现数据的可视化。本篇文章将介绍如何使用 PySide6 的QtCharts模块,并通过一个简单的示例教你如何快速引入QChart。QChart折线图柱状图饼图区域图它能够直观地呈现数据,同时支持交互功能,如缩放、拖拽和工具提示等。通过引入QChart,我们可以轻松实现数据的可视化,提升应用的交互性和用户体验。结合其他QtCharts。

m0_62599305的博客 822

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 【Python-geemap教程】开篇:基于Miniconda搭建geemap与GEE开发环境
下一篇: 【GEE基础及工具)(一)】工欲善其事,必先利其器:借助Open Earth Engine实现影像高效处理及批量任务执行
遥感AI实战
博客等级 码龄9年 1003粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

遥感AI实战

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

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

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

打赏作者

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

抵扣说明:

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

余额充值