目录
geemap是一个 Python 包,用于与Google Earth Engine (GEE)进行交互式地图绘制,GEE 是一个云计算平台,具有数 PB的卫星图像和地理空间数据集目录,可以借助GEE实现多种遥感数据的在线处理与分析,而几乎无需考虑计算机算力问题。geemap适用于希望利用 Python 生态系统的各种库和工具来探索 Google Earth Engine 的学生和研究人员。它还专为希望从 GEE JavaScript API 过渡到 Python API 的现有 GEE 用户而设计。geemap 包的自动化 JavaScript 到 Python转换模块可以大大减少将现有 GEE JavaScript 转换为 Python 脚本和 Jupyter 笔记本所需的时间。
1.geemap安装
根据吴秋生老师的教程和geemap官方文档(geemap官方文档),推荐使用conda安装,但是由于我使用conda安装失败,以及自己本身并不熟悉配置环境还有环境变量等一些列问题,事实上,我在Mac上用Miniconda安装失败后,尝试卸载conda重装,导致系统变量环境损坏,最后决定直接使用pip方法安装,尽管好像没有conda安装快捷,但好在其思路比较清晰,一条路走到底,避免配置环境的麻烦(其实环境变量这个东西我一直没明白是什么。。。) 众所周知,GEE使用需要VPN,而安装许多扩展包时是不能开启的,这点需要注意。
(请注意在geemap安装过程中不要打开vpn)
根据官方文档,安装geemap只需使用:
pip install geemap
如果你的计算机安装了python2和python3,使用pip安装时的命令应为:
pip3 install geemap
至于pip和pip3的区别,参考 pip和pip3的区别
此时,不出意外,计算机已经安装好geemap了。
2.geemap使用及初始化
在command(命令行工具)中,打开jupyter notebook,在notebook中新建文件,输入以下代码:
#导入库
import geemap
import ee
import os
#设置代理
os.environ['HTTP_PROXY'] = 'http://127.0.0.1:4780'
os.environ['HTTPS_PROXY'] = 'HTTP://127.0.0.1:4780'
#创建交互式地图
Map = geemap.Map()
Map()
代理中的 127.0.0.1:4780,4780部分是我的代理地址,这一部分需要查询自己计算机的代理地址才行。运行这部分代码,窗口出现交互式地图,我们的第一步任务就完成了!
我的使用经验是这样的:首先安装geemap,先试一下初始化,如果这一步可以了,那么接下来分两步调试,第一,调用GEE中的影像资源,看这一部分有没有问题(一般是没有的);第二,上传本地资源,结合GEE遥感影像使用,这一部分特别容易出问题,我的MacOS和Win10都在这一步出问题了,所以重点放在第二步上。
3.使用GEE遥感影像
在jupyter notebook中,导入GEE影像数据,以土地覆盖数据为例
nlcd_2001 = ee.Image('USGS/NLCD/NLCD2001').select('landcover')
nlcd_2016 = ee.Image('USGS/NLCD/NLCD2016').select('landcover')
left_layer = geemap.ee_tile_layer(nlcd_2001, {}, 'NLCD 2001')
right_layer = geemap.ee_tile_layer(nlcd_2016, {}, 'NLCD 2016')
Map = geemap.Map()
Map.split_map(left_layer, right_layer)
Map
结果:
OK从GEE中选择数据应该没什么问题了。
4.上传本地文件
在GEE中上传本地文件是有交互式操作的,而使用geemap相当于在GEE中import了一个本地数据,只不过我们仅通过一行代码进行。
示例
在本示例中,我导入了京津冀边界shp文件:
countries_shp = 'D:\Data\京津冀\Sheng\JJJ_Sheng.shp'
countries = geemap.shp_to_ee(countries_shp)
Map.addLayer(countries, {}, 'Countries')
运行结果:
在这一步中,你有可能会遇到几个问题:
问题1.缺少geopandas库
解决方法:正确安装geopandas库,为什么是正确安装呢?因为geopandas有几个依赖库,而且它的依赖库还有依赖库。需要先安装与你的计算机系统版本相对应的GDAL、Fiona、pyproj、rtree、shapely库。
1.首先,打开python扩展包网站,按照对应的python版本和win系统版本下载.whl文件
2.按照GDAL、Fiona、pyproj、rtree、shapely的顺序依次安装各个python库
命令为:
pip install C:\Users\TYJ\Downloads\Fiona-1.8.19-cp38-cp38-win_amd64.whl
pip install 之后是下载whl的路径。
3.在安装Fiona时,可能为遇到一个问题:
ERROR: Command errored out with exit status 1
我不明白其中的原理,只找到了解决方法,在命令行中依次输入以下命令,重新安装Fiona,看来大概是pip版本以及steptools版本旧版本不兼容的问题。
pip install --upgrade setuptools
python -m pip install --upgrade pip
4.安装geopandas
前几步没有错误后,在命令行中输入
pip install geopandas
成功安装geopandas库。
5.成功上传shp文件,完成本地与云端文件交互。
小结
在geemap安装、调试、使用过程中可能会出现许多意想不到的问题,因为很少有将整个完整流程以及某些问题解决方法统一解释,所以我把经验分享给需要的朋友,很多用词不太专业,大家谅解,也希望有什么问题大家可以一起交流。