前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google Earth Engine(GEE)-谷歌地球引擎的大致Python入门

Google Earth Engine(GEE)-谷歌地球引擎的大致Python入门

作者头像
一个有趣的灵魂W
发布2020-09-15 16:24:50
6K0
发布2020-09-15 16:24:50
举报

一个有趣的灵魂W

谷歌地球引擎,在RSE(Remote Sensing of Environment)的热门版上有一篇文章有大致的介绍。

摘要的翻译:

01

Google Earth Engine是一个基于云的行星级地理空间分析平台,它使Google的巨大计算能力能够应对各种高影响的社会问题,包括森林砍伐、干旱、灾难、疾病、粮食安全、水资源管理、气候监测和环境保护。作为一个集成平台,它在这一领域是独一无二的,它不仅为传统的遥感科学家提供了能力,也为更广泛的受众提供了能力,这些受众缺乏利用传统超级计算机或大规模商品云计算资源所需的技术能力。

简而言之,这个平台主要是为遥感服务。

02

Earth Engine由一个支持多PB分析的数据目录和一个高性能、本质上并行的计算服务组成。它通过一个可访问互联网的应用程序编程接口(API)和一个相关的基于web的交互式开发环境(IDE)进行访问和控制,该环境支持快速原型和结果可视化。

数据目录存放了大量可公开获得的地理空间数据集,包括各种卫星和航空成像系统在光学和非光学波长、环境变量、天气和气候预报和后播、土地覆盖、地形和社会经济数据集方面的观测。所有这些数据都经过预处理,形成一个既可使用又可保留信息的表单,允许高效访问,并消除了与数据管理相关的许多障碍。

用户可以使用Earth Engine API提供的操作员库访问和分析公共目录中的数据以及自己的私有数据。这些运算符在一个大型并行处理系统中实现,该系统自动细分和分配计算,提供高吞吐量分析功能。用户可以通过瘦客户机库访问API,也可以通过构建在该客户机库之上的基于web的交互式开发环境访问API

以上部分都是大致的介绍。接下来要开始实用分析了:

0、GEE可以使用JavaScript和Python两种语言扩展----这是大前提。

1、如果你要入门,首先你需要有一个谷歌邮箱账号。近期的新邮箱申请似乎对中国手机号不太友好,总是报手机号不对的问题,我在网上搜索过使用中国香港手机号之后再转国内的手机号的方法(如果各位有新的办法,可以@我一下)。似乎也不行。。。所以各位,请出万能淘宝吧。我是翻出了8年前申请的邮箱账号,才顺利入门了GEE:

2、申请GEE:

03

这个步骤比较简单,使用谷歌邮箱,填写相关信息,下一步下一步(记得会有个人机验证的验证码!)

3、带劲的来了:

04

这部分需要重点介绍一下,我一开始以为中间的编辑器可以编译Js和Python两种语言,结果我发现我错了,它只是JS的编译器。需要编译Python的话又要下一步了。

4、GEE的两种Python编译手段(线上和线下):

05

如果你家的网络好,可以访问国外网站,我还是建议安一个线下的,但是由于我这无法访问国外网站,还是乖乖运行Google Colab进行线上编译吧,所以我不介绍线下的安装方法了,简而言之就是conda install。

哈皮了,现在是线上阶段,线上也不是你想玩就能玩的,打开谷歌网盘(谷歌硬盘)。

直接选择箭头,如果你没有这个,就去关联更多应用中搜索google colaboratory,点击安装就能写python啦。

界面是这样(新建的是ipynb):

06

安装第三方库使用的是pip方法,在pip之前输入!就好了。

代码语言:javascript
复制
import ee
print(ee.__version__)
!pip install jieba
!pip install earthengine-api
!earthengine authenticate

ee.Authenticate()
ee.Initialize()

需要注意的是,使用这个方法运行GEE是需要Gmail授权的,比较麻烦一些:

一步步的依照链接执行。

点开链接后,有授权的操作:eg

授权结束,就能正常运行了。你可以运行官方的线上测试代码:

代码语言:javascript
复制
import matplotlib.pyplot as plt

# Fetch a Landsat image.
img = ee.Image('LANDSAT/LT05/C01/T1_SR/LT05_034033_20000913')

# Select Red and NIR bands, scale them, and sample 500 points.
samp_fc = img.select(['B3','B4']).divide(10000).sample(scale=30, numPixels=500)

# Arrange the sample as a list of lists.
samp_dict = samp_fc.reduceColumns(ee.Reducer.toList().repeat(2), ['B3', 'B4'])
samp_list = ee.List(samp_dict.get('list'))

# Save server-side ee.List as a client-side Python list.
samp_data = samp_list.getInfo()

# Display a scatter plot of Red-NIR sample pairs using matplotlib.
plt.scatter(samp_data[0], samp_data[1], alpha=0.2)
plt.xlabel('Red', fontsize=12)
plt.ylabel('NIR', fontsize=12)
plt.show()

结果:

07

这个结果是可以本地存储的,和我们线下是一样的。你可以存为一个300dpi的jpg图,存储的位置是谷歌硬盘中,然后下载至你的电脑中。

(通常是这里,你也可以更改存储路径)

结语:

09

谷歌大法确实好!

想象空间瞬间大了很多,希望后续我还有动力继续写这方面的Python教程~

一个字:棒!

往期

GDAL读取MAIAC的HDF文件(熟肉)

Python下的subprocess.call()使用和注意事项

PyCharm2019亲测破解方式

分享一套中国区域的矢量图层(到县级)-更新

中国范围2019年道路网数据分享

微信号:一个有趣的灵魂W

关注我们,了解更多

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一个有趣的灵魂W 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档