使用geemap进行全球土地覆盖数据可视化与分析

使用geemap进行全球土地覆盖数据可视化与分析

geemap geemap 项目地址: https://gitcode.com/gh_mirrors/gee/geemap

前言

在环境监测、城市规划、农业评估等领域,土地覆盖数据发挥着重要作用。本文将介绍如何利用geemap这一强大的地理空间分析工具,对全球土地覆盖数据进行可视化和分析。

准备工作

环境配置

首先需要安装必要的Python库:

pip install geemap

然后导入所需模块并初始化:

import ee
import geemap
geemap.ee_initialize()

土地覆盖数据可视化

Dynamic World土地覆盖数据

Dynamic World是一个近实时土地覆盖分类系统,提供9种土地覆盖类型的高分辨率数据。我们可以使用geemap轻松获取并可视化这些数据:

Map = geemap.Map()
Map.add_basemap("HYBRID")

# 设置区域和时间范围
region = ee.Geometry.BBox(-89.7088, 42.9006, -89.0647, 43.2167)
start_date = "2021-01-01"
end_date = "2022-01-01"

# 获取土地覆盖数据
landcover = geemap.dynamic_world(region, start_date, end_date, return_type="class")

# 可视化参数
dwVisParams = {
    "min": 0,
    "max": 8,
    "palette": [
        "#419BDF",  # 水体
        "#397D49",  # 树木
        "#88B053",  # 草地
        "#7A87C6",  # 湿地
        "#E49635",  # 建筑
        "#DFC35A",  # 裸地
        "#C4281B",  # 农田
        "#A59B8F",  # 冰雪
        "#B39FE1",  # 云层
    ],
}

Map.addLayer(landcover, dwVisParams, "Land Cover Class")
Map.add_legend(title="Dynamic World Land Cover", builtin_legend="Dynamic_World")
Map

不同土地覆盖产品对比

geemap支持多种全球土地覆盖产品的可视化与比较:

  1. ESA WorldCover - 欧洲航天局的全球土地覆盖产品
  2. ESRI Land Cover - ESRI提供的10米分辨率土地覆盖数据
  3. Dynamic World - Google开发的近实时土地覆盖数据
# 比较ESA和Dynamic World
Map = geemap.Map(center=[39.3322, -106.7349], zoom=10)

esa = ee.ImageCollection("ESA/WorldCover/v200").first()
esa_vis = {"bands": ["Map"]}

dw = geemap.dynamic_world(region, start_date, end_date, return_type="hillshade")

Map.split_map(
    left_layer=geemap.ee_tile_layer(esa, esa_vis, "ESA LC"),
    right_layer=geemap.ee_tile_layer(dw, {}, "Dynamic World LC")
)

Map.add_legend(title="ESA Land Cover", builtin_legend="ESA_WorldCover", position="bottomleft")
Map.add_legend(title="Dynamic World Land Cover", builtin_legend="Dynamic_World", position="bottomright")

时间序列分析

geemap可以方便地创建和分析土地覆盖时间序列数据:

# 设置时间范围
start_date = "2017-01-01"
end_date = "2023-01-01"

# 获取时间序列数据
images = geemap.dynamic_world_timeseries(
    region, start_date, end_date, frequency="year", return_type="class"
)

# 可视化参数
vis_params = {
    "min": 0,
    "max": 8,
    "palette": [
        "#419BDF", "#397D49", "#88B053", "#7A87C6", 
        "#E49635", "#DFC35A", "#C4281B", "#A59B8F", "#B39FE1"
    ],
}

# 添加时间序列检查器
Map.ts_inspector(images, left_vis=vis_params, date_format="YYYY")

土地覆盖统计分析

全球土地覆盖面积统计

# 获取ESA土地覆盖数据
dataset = ee.ImageCollection("ESA/WorldCover/v200").first()

# 计算各类土地覆盖面积
df = geemap.image_area_by_group(
    dataset, scale=1000, denominator=1e6, decimal_places=4
)

# 可视化统计结果
geemap.bar_chart(
    df,
    x="class",
    y="area",
    x_label="Land Cover Type",
    y_label="Area (km2)",
)

国家尺度的土地覆盖分析

# 加载国家边界数据
countries = ee.FeatureCollection(geemap.examples.get_ee_path("countries"))

# 按国家统计土地覆盖
geemap.zonal_stats_by_group(
    dataset,
    countries,
    "esa_2021_country.csv",
    stat_type="SUM",
    denominator=1e6,
    scale=1000,
)

# 可视化各国森林面积
geemap.bar_chart(
    "esa_2021_country.csv",
    x="NAME",
    y="Class_10",
    max_rows=30,
    x_label="Country",
    y_label="Forest Area (km2)",
)

结语

通过geemap,我们可以方便地访问、可视化和分析多种全球土地覆盖数据集。无论是单一时相的分析,还是时间序列的变化监测,geemap都提供了简洁高效的接口。这些功能为环境监测、土地利用变化研究等提供了强有力的工具支持。

本文介绍的方法可以扩展到其他类型的遥感数据分析,读者可以根据自己的研究需求调整参数和分析方法。

geemap geemap 项目地址: https://gitcode.com/gh_mirrors/gee/geemap

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蒋一南

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

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

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

打赏作者

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

抵扣说明:

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

余额充值