博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GEE学习笔记 七十三:【GEE之Python版教程七】静态展示影像和动态展示影像
阅读量:4072 次
发布时间:2019-05-25

本文共 2379 字,大约阅读时间需要 7 分钟。

先说一个事情,之前在朋友圈中也提到过,这一周由于没什么事情所以更新比较频繁。后期更新速度会慢下来,更新速度可能是一周左右更新一篇吧。具体原因呢,看下图吧!

免费写这些教程不是我的本职工作,所以我也不能占用我自己太多的时间来做这些事情,工作挣钱养家才是我的本职工作,希望大家谅解一下!

 


 

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

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

 

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

import eeee.Initialize()

 

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

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

 

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

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

 

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

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

 

首先是安装这个库 ipygee

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

sudo pip3 install ipygee

 

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

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

 

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

sudo pip3 install jupyter_contrib_nbextensionssudo jupyter contrib nbextension install --usersudo pip3 install jupyter_nbextensions_configurator

 

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

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,也就是需要执行

import eeee.Initialize()

加载地图

# 展示地图from ipygee import MapmyMap = Map()myMap.show()

 

 

 

显示资源管理器

# 资源管理器,也就是GEE在线编辑的Assets Manager界面from ipygee import AssetManagermyManager = AssetManager()myManager

 

 

显示任务管理器

# 任务管理器,也就是GEE的Task列表from ipygee import TaskManagermyTask = TaskManager()myTask

 

 

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

 

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

具体代码:

# 加载显示栅格数据和矢量数据from ipygee import MapmyMap = Map()# 展示OSM底图myMap.show()# 栅格数据img = ee.Image("CGIAR/SRTM90_V4")# 矢量数据roi = ee.FeatureCollection("users/wangweihappy0/shape/huanghe")# 缩放到指定级别myMap.centerObject(roi, 5)# 裁剪数据img = img.clip(roi)# 加载栅格数据到地图上myMap.addLayer(img, {"min": 0, "max": 3000}, name="SRTM")# 加载矢量数据到地图上myMap.addLayer(roi, {"outline_color": "red", "outline": 2, "fill_color": "blue"}, name="roi")

 

显示结果:

矢量数据

栅格数据

 

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

 


大家如果有问题需要交流或者有项目需要合作,可以微信联系我,加微信好友请留言加上“GEE”。

知乎专栏:

CSDN:

转载地址:http://cceji.baihongyu.com/

你可能感兴趣的文章
Encoding Schemes
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Java8 HashMap集合解析
查看>>
自定义 select 下拉框 多选插件
查看>>
linux和windows内存布局验证
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
fastcgi_param 详解
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>
慢慢欣赏linux CPU占用率学习
查看>>
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>