当前位置: 首页 > article >正文

Python-GEE绘制DEM精美图片

目录

  • 上传矢量和DEM获取
  • 添加颜色条
  • 参考文章

先连接上GEE的自己的项目

import ee
import geemap
geemap.set_proxy(port=33210)
ee.Authenticate()
ee.Initialize(project='a-flyllf0313')

上传矢量和DEM获取

使用Google Earth Engine(GEE)和Google Earth Engine Python API来进行地理空间数据的处理和可视化。这段代码的目的是从GEE获取影像数据,并在地图上叠加不同的地理要素和影像数据,最终实现可视化。

具体来说,代码中的步骤包括:

使用ee.FeatureCollection函数加载了一个名为xiongan的区域数据集,并将其赋值给roi变量。
创建了一个Map对象。
在地图上添加了两个底图,分别是"Esri.WorldImagery"和"OpenTopoMap"。
定义了两个样式,用于绘制黑龙江省和中国省份的边界。
使用ee.FeatureCollection函数加载了一个名为HeBei的中国省份数据集,并将其赋值给chinaProvince变量。
将中国省份和黑龙江省的边界绘制到地图上。
从GEE获取了一个影像数据集,即"SRTM",并选择了高程数据,然后裁剪到了指定的区域roi。
定义了影像的可视化参数,包括最小和最大值,以及色带。
使用定义的可视化参数对影像进行可视化处理。
将省份边界和黑龙江省的边界与处理后的影像进行叠加,得到混合后的影像。
将混合后的影像添加到地图中,并将地图视角设置为roi区域。

roi = ee.FeatureCollection('projects/a-flyllf0313/assets/xiongan');
Map =geemap.Map()
Map.add_basemap("Esri.WorldImagery")
Map.add_basemap("OpenTopoMap")
styleHLJ = {"color": "FF0000", "width": 2, "lineType": "solid", "fillColor": "00000000"}
HLJShp = roi

chinaProvince = ee.FeatureCollection('projects/a-flyllf0313/assets/HeBei')
styleChina = {"color": "0000FF", "width": 1, "fillColor": "00000000"}

Map.addLayer(chinaProvince.style(**styleChina), {}, "chinaProvince")
Map.addLayer(HLJShp.style(**styleHLJ), {}, "HLJ")

# get an image
srtm = ee.Image("NASA/NASADEM_HGT/001").select('elevation').clip(roi)

vis_params = {
    'min': 0.0,
    'max': 30,
    'palette': [
        'FFFFFF',
        'CE7E45',
        'DF923D',
        'F1B555',
        'FCD163',
        '99B718',
        '74A901',
        '66A000',
        '529400',
        '3E8601',
        '207401',
        '056201',
        '004C00',
        '023B01',
        '012E01',
        '011D01',
        '011301',
    ],
}

srtm = srtm.visualize(**vis_params)
imgBlend = srtm.blend(chinaProvince.style(**styleChina)).blend(HLJShp.style(**styleHLJ))


Map.addLayer(imgBlend, {}, "imgBlend")
Map.centerObject(roi)

Map

在这里插入图片描述

添加颜色条

这段代码使用了Geemap和Cartopy库来生成地图,并在地图上叠加了高程数据。让我解释一下每个部分的作用:

bbox = [116.4,38.65,115.6,39.2]:定义了地图的边界框(Bounding Box),指定了地图显示的范围。

导入了需要的库:

import matplotlib.pyplot as plt:导入matplotlib库,用于绘制图像。
import cartopy.io.img_tiles as cimgt:导入cartopy库中的img_tiles模块,用于处理地图瓦片数据。
from geemap import cartoee:导入geemap库中的cartoee模块,用于创建地图并在其中添加图层。
设置全局字体样式:

plt.rcParams[‘font.family’] = ‘Times New Roman’:设置全局字体样式为"Times New Roman"。
创建一个新的matplotlib图形对象:

fig = plt.figure(figsize=(20, 22),facecolor=‘white’):创建一个大小为20x22英寸的图形对象,背景颜色为白色。
使用cartoee.get_map()函数创建地图:

ax = cartoee.get_map(imgBlend, region=bbox):在地图上叠加高程数据,并指定了地图的边界框。
使用cartoee.add_colorbar()函数添加颜色条:

cb = cartoee.add_colorbar(ax,vis_params=vis_params,loc=‘right’,orientation=“vertical”):在地图的右侧添加颜色条,并使用给定的可视化参数设置颜色条的外观。
使用cartoee.add_gridlines()函数添加网格线:

cartoee.add_gridlines(ax, interval=[0.2, 0.1], linestyle=“–”):在地图上添加网格线,并指定网格线的间隔和线型。
最后调用plt.show()显示生成的地图。

bbox = [116.4,38.65,115.6,39.2]

import matplotlib.pyplot as plt
import cartopy.io.img_tiles as cimgt
from geemap import cartoee

plt.rcParams['font.family'] = 'Times New Roman' 
#  统一设置
# from proplot import rc

# 统一设置字体

# rc['tick.labelsize'] = 20
# 统一设置xy轴名称的字体大小
# rc["axes.labelsize"] = 20
# # 统一设置轴刻度标签的字体粗细
# rc["axes.labelweight"] = "bold"
# 统一设置xy轴名称的字体粗细
# rc["tick.labelweight"] = "bold"


fig = plt.figure(figsize=(20, 22),facecolor='white')

ax = cartoee.get_map(imgBlend, region=bbox)

cb = cartoee.add_colorbar(ax,vis_params=vis_params,loc='right',orientation="vertical")

# ax.set_title(label='Study Area', fontsize=20)


# add gridlines to the map at a specified interval
cartoee.add_gridlines(ax, interval=[0.2, 0.1], linestyle="--")

plt.show()

在这里插入图片描述

参考文章

什么?仅仅花费10秒钟就可以直接利用Google Earth Engine精美的SCI期刊论文插图


http://www.kler.cn/a/274137.html

相关文章:

  • 86.(2)攻防世界 WEB PHP2
  • 了解比特币
  • 人类心智逆向工程:AGI的认知科学基础
  • [Proteus仿真]基于51单片机的智能温控系统
  • UI线程用到COM只能选单线程模型
  • 进阶数据结构——双向循环链表
  • iOS图片占内存大小与什么有关?
  • OSPF特殊区域(stub\nssa)
  • 电商数据采集效率开挂【Python电商数据采集API接口】
  • Jenkins实现CICD(3)_Jenkins连接到git
  • AIGC元年大模型发展现状手册
  • Java 环境一键部署
  • 赛道快马问题
  • 香港科技大学广州|智能制造学域博士招生宣讲会—同济大学专场
  • 基于单片机的模糊PID炉温控制系统设计
  • bios开启secure boot选项,进行pxe安装操作系统时报错,求解决办法
  • 海外代理IP在跨境电商中的五大应用场景
  • 【晴问算法】提高篇—动态规划专题—斐波那契数列II
  • NSGA-III算法:如何在多目标优化问题中找到最合适的解
  • Echo服务器学习__01(基础)
  • CSS学习(2)-盒子模型
  • 设计模式在芯片验证中的应用——装饰器
  • 鸿蒙开发入门教程—瀑布流的实战案例
  • v-model的基本使用,v-model原理;v-model绑定;v-model的值绑定;v-model修饰符
  • 开发K8S Operator
  • Flink实时写Hudi报NumberFormatException异常