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

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期刊论文插图

相关文章:

  • 某小厂java后端初面,记录一下
  • Python 实现1~100之间的偶数求和
  • 【Datawhale组队学习:Sora原理与技术实战】使用KAN-TTS合成女生沪语音频
  • Centos7安装ffmpeg
  • 【Mysql数据库基础02】单行函数、排序
  • 【计算机网络篇】物理层(2)传输方式
  • 2024-3-18-C++day6作业
  • 大数据--hdfs--java编程
  • Linux docker1--环境及docker安装
  • go反射实战
  • 微信小程序订阅消息授权弹窗事件
  • Python函数学习
  • 考研机试题
  • docker内部无法使用ping等网络工具解决方案
  • vscode中编写Markdown
  • 二叉树遍历(牛客网)
  • 项目中遇到的sql问题记录
  • 数据库增删改查复习
  • 如何将大华dav视频转mp4?一键无损清晰转换~
  • Layui实现删除及修改后停留在当前页
  • 高龄老人骨折后,生死可能就在家属一念之间
  • “一节课、两小时”,体育正在回归“C位”
  • 央行最新报告:积极落地5月推出的一揽子金融政策,促进经济供需平衡、物价合理回升
  • 明明睡够了,怎么还有黑眼圈?可能是身体在求救
  • 纽约大学朗格尼医学中心的转型带来哪些启示?
  • 东莞“超级”音乐节五一出圈背后:文旅热力何以澎湃经济脉动