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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/469341.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

人外周血单核细胞来源树突状细胞(MoDC)的制备(二)

MoDC的制备 1.外周血单个核细胞的采集 1.1用血细胞分离机采集患者自身的外周血单个核细胞80-100ml; 1.2淋巴细胞分离液密度梯度离心法进一步纯化单个核细胞(PBMC) 。 1.3无血清培养液洗涤2次, 获得纯度在90%以上的PBMC, 细胞数量需达到1-…

HTML学习:图片格式——超链接

一、图片格式 1.jpg格式 概述:扩展名为.jpg 或.jpeg ,是一种有损的压缩格式(把肉眼不容易观察出来的细节丢弃了)。 主要特点:支持的颜色丰富、占用空间较小、不支持透明背景、不支持动态图。 使用场景:对图片细节没有极高要求的场景,例如:网站的产品…

使用Windows远程访问Kali Linux桌面

安装xrdp、xfce4 apt-get install -y xrdp xfce4修改 xrdp 配置文件启用 xfce 桌面 vim /etc/xrdp/startwm.sh修改后文件如下: #!/bin/sh # xrdp X session start script (c) 2015, 2017, 2021 mirabilos # published under The MirOS Licence# Rely on /etc/pam…

Web API 持续集成:PostMan+Newman+Jenkins(图文讲解)

1. Web Api 测试工具选型 目前市场有很多的用于API 测试的工具,如Postman, SoapUI, YApi, HttpRunner等等。 2. 用Postman创建项目 选型做好了,第二步当然是Postman用起来了,创建自己的项目。参照Postman官网的文档。https://learning.get…

【YOLOv5改进系列(2)】高效涨点----Wise-IoU详细解读及使用Wise-IoU(WIOU)替换CIOU

WIOU损失函数替换 🚀🚀🚀前言一、1️⃣ Wise-IoU解读---基于动态非单调聚焦机制的边界框损失1.1 🎓 介绍1.2 ✨WIOU解决的问题1.3 ⭐️论文实验结果1.4 🎯论文方法1.4.1☀️Wise-IoU v11.4.2☀️Wise-IoU v21.4.3☀️…

高性能 MySQL 第四版(GPT 重译)(一)

前言 由 Oracle 维护的官方文档为您提供了安装、配置和与 MySQL 交互所需的知识。本书作为该文档的伴侣,帮助您了解如何最好地利用 MySQL 作为强大的数据平台来满足您的用例需求。 本版还扩展了合规性和安全性在操作数据库足迹中的日益重要作用。隐私法律和数据主…

小小导出,我大前端足矣!

前言 常网IT戳我呀!常网IT源码上线啦!本篇录入技术选型专栏,希望能祝君拿下Offer一臂之力,各位看官感兴趣可移步🚶。有人说面试造火箭,进去拧螺丝;其实个人觉得问的问题是项目中涉及的点 || 热…

BUU [MRCTF2020]套娃

BUU [MRCTF2020]套娃 开题&#xff0c;啥也没有。 查看网页源代码发现后端源代码&#xff1a; <?php //1st $query $_SERVER[QUERY_STRING];if( substr_count($query, _) ! 0 || substr_count($query, %5f) ! 0 ){die(Y0u are So cutE!); }if($_GET[b_u_p_t] ! 23333 &am…

面试算法-61-二叉树的右视图

题目 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 解 class Solution {public List<Integer> rightSideView(T…

单目测距那些事儿(上) _ 从MobileEye谈起

单目测距那些事儿(上) | 从MobileEye谈起 全面专业的自动驾驶学习资料:链接 前言 在ADAS领域&#xff0c;有个功能叫自适应巡航控制(Adaptive Cruise Control, ACC)。 ACC是一种纵向距离控制&#xff0c;具体包括发现目标车辆、判断目标车辆所在路径、测量相对本车的距离和速…

B007-springcloud alibaba 消息驱动 Rocketmq

目录 MQ简介什么是MQMQ的应用场景异步解耦流量削峰 常见的MQ产品 RocketMQ入门RocketMQ环境搭建环境准备安装RocketMQ启动RocketMQ测试RocketMQ关闭RocketMQ RocketMQ的架构及概念RocketMQ控制台安装 消息发送和接收演示发送消息接收消息 案例订单微服务发送消息用户微服务订阅…

盲盒一番赏小程序开发:神秘惊喜,等你来揭晓

在当下潮流文化中&#xff0c;盲盒以其独特的魅力&#xff0c;正逐渐成为一种流行的娱乐方式。为了满足广大盲盒爱好者的需求&#xff0c;我们决定开发一款盲盒一番赏小程序&#xff0c;为用户带来更加便捷、丰富的盲盒体验。 一、小程序简介 盲盒一番赏小程序是一个集盲盒购…

应用测评要求解读-三级

身份鉴别&#xff1a; a)应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换&#xff1b; 1. 在未登录状态下尝试直接访问任意操作页面或功能&#xff0c;查看是否具有登陆界面。 2&#xff0e;询问或者测试…

【算法刷题】Day32

文章目录 1. 单词拆分题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码&#xff1a; 2. 环绕字符串中唯一的子字符串题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. …

关于Ansible的模块 ①

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 什么是Ansible模块 在Linux中&#xff0c;bash无论是在命令行上执行&#xff0c;还是在bash脚本中&#xff0c;都需要调用cd、l…

MySQL最实用面试题(2024-3-14持续更新中)

MySQL篇面试题 一、介绍 ​ 这是由小龙同学自己总结领悟的mysql面试题的解析&#xff0c;也是面试宝典 二、题目 1.数据库三大范式&#xff1a; –作用&#xff1a; ​ 使表结构清晰&#xff0c;减少数据冗余&#xff08;简单讲就是重复&#xff09;&#xff0c;提高查询…

Stable Diffusion + Segment Anything试用

安装 从continue-revolution/sd-webui-segment-anything安装插件分割模型下载后放到这个位置&#xff1a;${sd-webui}/extension/sd-webui-segment-anything/models/sam下&#xff0c;可以下载3个不同大小的模型&#xff0c;从大到小如下&#xff1a;vit_h is 2.56GB, vit_l i…

test测试类-变量学习

test测试类 作用&#xff1a;标记到类上成为测试类&#xff0c;标记到方法上成为测试方法 变量&#xff1a;测试类的变量&#xff0c;在测试类括号中应用 1、invocationCount变量 意思是这个方法应该被调用的次数。 在测试框架中&#xff0c;特别是当使用参数化测试或数据驱动…

游戏陪玩系统约玩系统交友系统功能介绍

游戏约玩系统是一个集动态社交、语聊交友、线上约玩、线下活动以及购物商城等功能于一体的综合性平台。以下是该系统的功能介绍&#xff1a; 一、首页 热门大神&#xff1a;展示平台上最受欢迎的玩家&#xff0c;方便用户快速找到高水平的游戏伙伴。附近大神&#xff1a;基于…