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


歡迎關注各平台通用賬號:一個有趣的靈魂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

如果你家的網絡好,可以FQ,我還是建議安一個線下的,但是由於我這無法FQ,還是乖乖運行Google Colab進行線上編譯吧,所以我不介紹線下的安裝方法了,簡而言之就是conda install。

哈皮了,現在是線上階段,線上也不是你想玩就能玩的,打開谷歌網盤(谷歌硬盤)。

 

直接選擇箭頭,如果你沒有這個,就去關聯更多應用中搜索google colaboratory,點擊安裝就能寫python啦。

界面是這樣(新建的是ipynb):

06

 

安裝第三方庫使用的是pip方法,在pip之前輸入!就好了。

 

import ee
print(ee.__version__)
!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 = 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圖,存儲的位置是谷歌硬盤中,然后下載至你的電腦中。

(通常是這里,你也可以更改存儲路徑)

 

 

結語:

谷歌大法確實好!

想象空間瞬間大了很多,希望后續我還有動力繼續寫這方面的Python教程~

一個字:棒!

 其他有趣內容:

往期

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

圖標

PyCharm2019親測破解方式

圖標

中國范圍2019年道路網數據分享

 

圖標

分享一套中國區域的矢量圖層(到縣級)-更新

圖標

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM