GoogleEarthEngine(GEE)-⾕歌地球引擎的⼤致Python⼊门欢迎关注各平台通⽤账号:⼀个有趣的灵魂W主流web框架
⾕歌地球引擎,在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两种语⾔扩展----这是⼤前提。
java异常1、如果你要⼊门,⾸先你需要有⼀个⾕歌邮箱账号。近期的新邮箱申请似乎对中国⼿机号不太友好,总是报⼿机号不对的问题,我在⽹上搜索过使⽤⾹港⼿机号之后再转国内的⼿机号的⽅法(如果各位有新的办法,可以@我⼀下)。似乎也不⾏。。。所以各位,请出万能淘宝吧。我是翻出了8年前申请的邮箱账号,才顺利⼊门了GEE:
2、申请GEE:
03
这个步骤⽐较简单,使⽤⾕歌邮箱,填写相关信息,下⼀步下⼀步(记得会有个⼈机验证的验证码!)
3、带劲的来了:
04
这部分需要重点介绍⼀下,我⼀开始以为中间的编辑器可以编译Js和Python两种语⾔,结果我发现我错了,它只是JS的编译器。需要编译Python的话⼜要下⼀步了。
4、GEE的两种Python编译⼿段(线上和线下):
05
如果你家的⽹络好,可以FQ,我还是建议安⼀个线下的,但是由于我这⽆法FQ,还是乖乖运⾏Google Colab进⾏线上编译吧,所以我不介绍线下的安装⽅法了,简⽽⾔之就是conda install。
node爬虫
哈⽪了,现在是线上阶段,线上也不是你想玩就能玩的,打开⾕歌⽹盘(⾕歌硬盘)。
直接选择箭头,如果你没有这个,就去关联更多应⽤中搜索google colaboratory,点击安装就能写python啦。
界⾯是这样(新建的是ipynb):
06
安装第三⽅库使⽤的是pip⽅法,在pip之前输⼊!就好了。
import ee
print(ee.__version__)
the forest下载!pip install jieba
!pip install earthengine-api
!earthengine authenticate
ee.Authenticate()
ee.Initialize()
需要注意的是,使⽤这个⽅法运⾏GEE是需要Gmail授权的,⽐较⿇烦⼀些:
⼀步步的依照链接执⾏。
点开链接后,有授权的操作:eg
授权结束,就能正常运⾏了。你可以运⾏官⽅的线上测试代码:
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 = duceColumns(List().repeat(2), ['B3', 'B4'])
python入门教程完整版百度网盘samp_list = ee.List(('list'))
# Save server-side ee.List as a client-side Python list.
samp_data = Info()
# 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图,存储的位置是⾕歌硬盘中,然后下载⾄你的电脑中。(通常是这⾥,你也可以更改存储路径)
结语:
⾕歌⼤法确实好!
两个线程访问同一个全局变量
想象空间瞬间⼤了很多,希望后续我还有动⼒继续写这⽅⾯的Python教程~⼀个字:棒!
其他有趣内容:
往期

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。