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

GEE学习笔记 七十三:【GEE之Python版教程七】静态展示影像和动态展示影像

我们使用GEE在线编辑可以直接通过在线的网页可以加载展示我们计算的结果,而python版的GEE要展示我们的计算结果可能就比较麻烦。如果有同学看过GEE的python版API中可以找到一个类ee.mapclient,这个类的介绍是它是GEE官方通过Tk写的一个加载展示地图的类。但是随着API的发展,其实这个类早已被官方废弃,我们没办法直接使用这个类,在实际开发中也不建议大家尝试去使用这个类。

    下面我介绍一下我推荐使用的加载显示方式,目前比较好用的展示方式有两种,一种是静态图片展示方式,另外一种是动态加载展示结果,下面我会依次来介绍相关内容。

首先使用GEE的python版API在我们的代码最开始都需要加入以下代码:

  1. import ee

  2. ee.Initialize()

第一种方式:静态图片展示模式。

这种模式使用的是IPython自带的display来渲染,然后我们的显示内容也是通过缩略图来显示。

优点:IPython原生,快捷方便。

缺点:渲染内容只能是通过缩略图这种方式来做,展示内容有局限。

第二种方式:动态加载展示模式。

    这种方式需要使用一个第三方库 ipygee(https://github.com/fitoprincipe/ipygee),这个库是在另外的一个展示库的基础 ipyleaflet 基础上开发而来的。目前属于刚起步,但是展示效果非常好。

首先是安装这个库 ipygee

(1)安装这个库,以我的电脑为例

sudo pip3 install ipygee

(2)激活ipyleaflet在jupyter上的插件

jupyter nbextension enable --py --sys-prefix ipyleaflet

如果没有安装过nbextension,那么需要先安装

  1. sudo pip3 install jupyter_contrib_nbextensions

  2. sudo jupyter contrib nbextension install --user

  3. sudo pip3 install jupyter_nbextensions_configurator

如果要使用jupyterLab还需要给jupyterLab安装ipyleaflet插件

  1. sudo jupyter labextension install jupyter-leaflet

同时有些电脑,比如我这台需要激活一个插件jupyterlab-manager才能显示地图。

首先查看本地的jupyterLab的版本

jupyter lab --version

输出结果是 0.35.6,通过jupyterlab-manager 网站查询可知,我们需要安装对应版本的内容,也就是0.38版的jupyterlab-manager,所以执行下面的命令:

sudo jupyter labextension install @jupyter-widgets/jupyterlab-manager@0.38

(3)ipygee初步使用

使用这个库非常简单,需要注意的是:使用这个库之前必须要验证GEE,也就是需要执行

  1. import ee

  2. ee.Initialize()

加载地图

  1. # 展示地图

  2. from ipygee import Map

  3. myMap = Map()

  4. myMap.show()

 

显示资源管理器

  1. # 资源管理器,也就是GEE在线编辑的Assets Manager界面

  2. from ipygee import AssetManager

  3. myManager = AssetManager()

  4. myManager

 

显示任务管理器

  1. # 任务管理器,也就是GEE的Task列表

  2. from ipygee import TaskManager

  3. myTask = TaskManager()

  4. myTask

 

从这里可以看到ipygee是通过GEE的API连接到GEE服务器上,然后展示相关内容。下面我详细说一下ipygee是如何加载显示我们想要的影像或者矢量数据的。

(4)加载矢量、栅格数据

具体代码:

  1. # 加载显示栅格数据和矢量数据

  2. from ipygee import Map

  3. myMap = Map()

  4. # 展示OSM底图

  5. myMap.show()

  6. # 栅格数据

  7. img = ee.Image("CGIAR/SRTM90_V4")

  8. # 矢量数据

  9. roi = ee.FeatureCollection("users/wangweihappy0/shape/huanghe")

  10. # 缩放到指定级别

  11. myMap.centerObject(roi, 5)

  12. # 裁剪数据

  13. img = img.clip(roi)

  14. # 加载栅格数据到地图上

  15. myMap.addLayer(img, {"min": 0, "max": 3000}, name="SRTM")

  16. # 加载矢量数据到地图上

  17. myMap.addLayer(roi, {"outline_color": "red", "outline": 2, "fill_color": "blue"}, name="roi")

显示结果:

矢量数据

栅格数据

同时我们还可以对这些图层做各种类似线上的操作,这个大家可以自己挖掘实践。关于ipygee如果大家还有需要了解的,等ipygee版本比较稳定了,我可以单独些一些关于ipygee相关内容来介绍这个库。

来源请引用:地理遥感生态网科学数据注册与出版系统。

http://www.lryc.cn/news/11392.html

相关文章:

  • PGLBox全面解决图训练速度、成本、稳定性、复杂算法四大问题!
  • 超详细的 pytest 教程(一)使用入门篇
  • 二叉树理论基础知识点
  • 【算法基础】堆⭐⭐⭐
  • 时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测
  • 【TypeScrip】TypeScrip的任意类型(Any 类型 和 unknown 顶级类型):
  • 智能洗地机什么牌子好?智能洗地机排行
  • 【数据结构与算法】链表1:移除链表 设计链表链表反转(双指针法、递归法)
  • 山东大学软件学院面向对象简答题整理【个人向】
  • JAVA时间类及JAVA8新时间类
  • ASEMI代理FGH60N60SFD,安森美FGH60N60SFD原装IGBT
  • 【云原生之Docker实战】使用dokcer部署web端vscode
  • Docker安装Tomcat、mysql、redis
  • 【python 基础篇 八】python的常用数据类型操作-------集合
  • Spring框架中问题补充
  • 【Leedcode】顺序表必备的三道面试题(附图解)
  • SOFA Weekly|开源人、本周贡献 issue 精选
  • 2023美赛 ICM E题详细版思路
  • 【LeetCode】剑指 Offer(3)
  • springboot simple (13) springboot Elasticsearch(Elasticsearch8.5.1)
  • 《爆肝整理》保姆级系列教程python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
  • 分享111个HTML旅游交通模板,总有一款适合您
  • guava中ImmutableList使用示例详解
  • ASE28N50-ASEMI高压N沟道MOS管ASE28N50
  • MyBatis缓存
  • Linux环境下(CentOS 7)安装Java(JDK8)
  • 基于STM32L431+Liteos的串口空闲中断加DMA循环接收
  • BZOJ4403 序列统计
  • 如何正确使用 钳位二极管
  • 【C语言进阶】动态内存管理