Python-GEE绘制DEM精美图片
- 软件开发
- 2025-07-22 22:45:02

目录 上传矢量和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期刊论文插图
Python-GEE绘制DEM精美图片由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Python-GEE绘制DEM精美图片”