GEE 全称是:Google Earth Engine ,是一个非常强大的遥感数据WEB处理平台,用户可以在线计算NDVI、NDWI等,可以查询、下载哨兵、Landsat等遥感影像集。
GEE是基于JavaScript 进行封装的,因此对于懂Java的大神来说应该是非常容易上手的,但是对于我这种Java小白来说可是困难重重,在水与火的煎熬中苦苦针扎仍然不得要领,而我仅仅需要查询一下数据的URL并保存到TXT文本中而已,有这么难吗?报各种错误,还不提供Chrome浏览器支持!还好GEE提供了python接口,Google 也提供了云端编程工具Colaboratory ,不得不说Google 真的强大,但是想用Google的东西,那么问题是得!!!!!!!!!!!
至于问题,各位自行上百度google一下..........
正文开始:利用python查询并获取Landsat数据的URL链接
工具:Chrome 浏览器(可以访问google的)
首先 进入google的云盘中关联 Colaboratory:
点击关联更多应用,在搜索框中输入 Colaboratory 并搜索 之后点击关联:
返回云盘下点击新建Colaboratory:
之后就会看到与jupyter notebook 差不多的界面操作跟jupyter notebook 基本一致:
到了这一步就可以开始利用Python 操作GEE了:
环境准备:
pip 命令前有一个 ! 这可能更环境有关,因为这个是google提供的
!pip install earthengine-api # 安装GEE接口API库
!earthengine authenticate --quiet # 发出请求 并得到验证 获取 token key
点击输出的链接:
选择google账号或者使用其他账号:
点击 允许:
点击旁边复制按钮即可复制
!earthengine authenticate --authorization-code=token_key #粘贴你的 token key
将复制的代码替换上面命令中的token_key
至此GEE与Python的接口弄好了,注意如果重启了程序,则需要重新准备环境.................
下面开始查询影像集并将它写到TXT文本中保存下来:
import ee
from tqdm import tqdm
ee.Initialize()
# polygon bound
polygon = ee.Geometry.Polygon([[
[73.499013,53.561657],[73.499013,52.144391],
[75.087377,52.144391],[75.087377,53.561657],
[73.499013,53.561657]
]])
collection = (ee.ImageCollection('LANDSAT/LC08/C01/T1')
.filterDate('2015-01-01', '2015-12-31')
.filterBounds(polygon))
n = collection.size().getInfo()
colList = collection.toList(n)
m = colList.size().getInfo()
with open('./urls2.txt', 'w') as f:
for i in tqdm(range(m)):
img = ee.Image(colList.get(i))
url_path = img.getDownloadURL({})
f.write(url_path + '\n')
print('\n')
print("All Done.")
看一下结果吧:
左侧的urls.txt就是影像的url 链接,可以下载到本地。
多谢知乎大神 无形的风 在GEE方面上提供了许多教程: https://zhuanlan.zhihu.com/c_123993183