天天看點

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

地球引擎代碼編輯器

​​code.earthengine.google.com 上​​的地球引擎 (EE) 代碼編輯器 是用于地球引擎 JavaScript API 的基于網絡的 IDE。代碼編輯器功能旨在快速輕松地開發複雜的地理空間工作流程。代碼編輯器具有以下元素(如圖 1 所示):

  • JavaScript 代碼編輯器
  • 用于可視化地理空間資料集的地圖顯示
  • API 參考文檔(文檔頁籤)
  • 基于​​Git​​的腳本管理器(腳本頁籤)
  • 控制台輸出(控制台頁籤)
  • 任務管理器(任務頁籤)處理長時間運作的查詢
  • 互動式地圖查詢(檢查器頁籤)
  • 搜尋資料存檔或儲存的腳本
  • 幾何繪圖工具
Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

 地球引擎代碼編輯器的元件圖

代碼編輯器具有多種功能,可幫助您利用 Earth Engine API。在腳本 頁籤上檢視示例腳本或儲存您自己的腳本。使用檢查器頁籤查詢放置在地圖上的對象。 使用 Google Visualization API​​顯示和繪制數字結果​​。使用“擷取連結”按鈕與合作者和朋友共享腳本的唯一 URL 。您在代碼編輯器中開發的腳本會發送到 Google 進行處理,生成的地圖圖塊和/或消息會發送回以顯示在“地圖”和/或“控制台”頁籤中。運作代碼編輯器隻需要一個網絡浏覽器(使用​​Google Chrome​​以獲得最佳效果)和網際網路連接配接。以下部分更詳細地描述了地球引擎代碼編輯器的元素。

JavaScript 編輯器

JavaScript 編輯器将:

  • 鍵入時格式化并突出顯示代碼
  • 在有問題的代碼下劃線,提供修複和其他提示以獲得正确的文法
  • 自動補全引号、方括号和圓括号對
  • 為地球引擎功能提供代碼完成提示

代碼編輯器上方是用于運作腳本、儲存腳本、重置輸出映射和控制台以及擷取腳本連結的按鈕。當按下“擷取連結”按鈕時,浏覽器位址欄中将出現一個唯一連結。此連結表示按下按鈕時編輯器中的代碼。

注意:編輯器支援 ECMAScript 5 (ES5) 的大部分功能,這是 JavaScript 語言的标準化規範。目前不支援 ECMAScript 6 (ES6) 及更高版本中引入的語言功能。

API 參考(文檔頁籤)

代碼編輯器的左側是Docs頁籤,其中包含完整的 JavaScript API 文檔。可以從“文檔”頁籤搜尋和浏覽文檔。

腳本管理器(腳本頁籤)

該腳本頁籤是在代碼編輯器的左側面闆旁邊的API文檔。腳本管理器将私有、共享和示例腳本存儲在 Google 托管的​​Git​​存儲庫中。存儲庫按通路級别排列,您的私有腳本存儲在您在Owner檔案夾中擁有的存儲庫中:​

​users/username/default​

​。您(并且隻有您)有權通路Owner檔案夾中的存儲庫,除非您與其他人共享它們。Writer 中的存儲庫 檔案夾是其所有者已授予您寫入權限的存儲庫。您可以向Writer檔案夾中的存儲庫添加新腳本、修改其中的現有腳本或更改對存儲庫的通路權限(您不得删除其所有者)。在該倉庫閱讀器檔案夾是系統資訊庫,其讀取權限是已經被其所有者授予您。該示例檔案夾是一種特殊的資源庫由谷歌托管包含代碼樣本。該歸檔檔案夾包含您有權通路,但還沒有被他們的老闆從舊版本的腳本管理的遷移舊倉庫。使用頂部的過濾器欄搜尋您的腳本腳本頁籤。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!
Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

腳本子產品

編寫無需大量複制和粘貼即可在腳本之間共享的子產品化、可重用代碼是一種很好的做法。為了實作子產品化開發,Earth Engine 提供了在腳本之間共享代碼的能力。例如,假設您編寫了一個執行一組有用操作的​​函數​​​。與将函數的代碼複制到新腳本中相比,新腳本更容易直接加載函數。要使函數或對象可用于其他腳本,請将其添加到名為​

​exports​

​​. 要在另一個腳本中使用代碼,請使用該​

​require​

​​函數從另一個腳本加載導出。例如,假設您在名為的檔案中定義以下子產品,該檔案 ​

​FooModule.js​

​​位于名為​

​Modules​

​:

 這是我們導入文本的形式,可以這樣來進行:

exports.doc = 'The Foo module is a demonstration of script modules.' +
    '\n It contains a foo function that returns a greeting string. ' +
    '\n It also contains a bar object representing the current date.' +
    '\n' +
    '\n foo(arg):' +
    '\n   @param {ee.String} arg The name to which the greeting should be addressed' +
    '\n   @return {ee.String} The complete greeting.' +
    '\n' +
    '\n bar:' +
    '\n   An ee.Date object containing the time at which the object was created.';

exports.foo = function(arg) {
  return 'Hello, ' + arg + '!  And a good day to you!';
};

exports.bar = ee.Date(Date.now());      

 請注意​

​exports​

​​以 的形式使用關鍵字 ​

​exports.objectToExport​

​​。您可以通過使用該​

​require​

​函數在另一個腳本中使用此子產品。例如:

//答應出我們想要的結果
//當然這裡列印要列印自己的一個路徑,否則會報錯,也就是你的這個裡面自己的寫的代碼可以在這裡調用!
var Foo = require('users/username/default:Modules/FooModule.js');

print(Foo.doc);

print(Foo.foo('world'));

print('Time now:', Foo.bar);      

該​

​require​

​​函數需要一個描述子產品位置絕對路徑的字元串。具體來說, 的參數​

​require()​

​​的形式為 ​

​'pathToRepository:pathToModuleScript'​

​。您隻能從您擁有和/或具有讀取權限的存儲庫加載子產品。如果您希望其他人能夠使用您的子產品,則必須與您想要通路的其他使用者共享存儲庫。

您可以使用 URL 參數 ?scriptPath={repo}:{script} 來共享對存儲庫中檔案的引用,例如 https://code.earthengine.google.com/?scriptPath=users/username/utils:utils . 通路 URL 後,引用的檔案及其存儲庫将添加到​​Scripts頁籤​​上的 Reader 或 Writer 目錄中 ,具體取決于您對共享存儲庫的權限級别。

資産管理器(資産頁籤)

資産管理器位于左側面闆的資産頁籤中。使用資産管理器在 Earth Engine 中上傳和管理您自己的圖像資産。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

腳本連結

代碼編輯器腳本可以通過編碼的 URL 共享。以下部分描述了生成腳本 URL 的各種方法、可用選項以及管理腳本 URL 的方法。

注意:如果您的共享腳本包含私人資産導入,請務必 與目标使用者​​共享​​​或公開​​共享​​。未共享的資産導入很容易導緻您的腳本中斷。

擷取連結

代碼編輯器頂部的“擷取連結”按鈕(圖 4)提供了一個用于生成腳本 URL 和設定腳本行為選項的界面。請注意下面描述的快照 URL 和儲存的腳本 URL 之間的差別。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

 “擷取連結”按鈕可将代碼分享給别人

快照腳本連結

可以通過單擊代碼編輯器頂部的“擷取連結”按鈕建立的編碼快照 URL 來共享編輯器中的代碼。當擁有 Earth Engine 帳戶的人通路 URL 時,浏覽器将導航到代碼編輯器并複制建立連結時的環境,包括代碼、導入、地圖圖層和地圖位置。單擊“擷取連結”按鈕将自動将腳本連結複制到剪貼闆。此外,将出現一個對話框,提供控制共享腳本執行的選項,以及複制和通路生成連結的按鈕。控制選項包括阻止腳本自動運作,以及在有人打開共享連結時隐藏代碼窗格。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

儲存的腳本連結

儲存的腳本有一個共享連結的選項,該連結将始終加載最新儲存的版本,并且隻有您和其他人可以通路包含腳本的存儲庫的目前通路權限。要使用此功能,請從“腳本管理器”頁籤加載儲存的腳本,單擊“擷取連結”按鈕右側的下拉箭頭并選擇“複制腳本路徑”。将出現一個對話框,顯示可共享的腳本 URL。請注意,腳本 URL 也已在浏覽器的位址欄中設定。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

腳本連結管理

“擷取連結”按鈕右側的下拉按鈕有一個“管理連結”選項。單擊此選項會加載一個帶有界面的新浏覽器頁籤,供您調用、删除和下載下傳以前生成的腳本連結。選擇一個腳本并按下下載下傳按鈕會将一個壓縮檔案夾(“code_editor_links.zip”)下載下傳到您的系統,其中包含每個標明腳本的 .txt 檔案表示。

腳本連結 URL 參數

該​

​ui.url​

​​子產品允許通過​

​get​

​​和​

​set​

​​方法對腳本 URL 的片段辨別符進行程式設計操作。這意味着代碼編輯器腳本和地球引擎應用程式可以讀取和存儲頁面 URL 中的值。請注意以下兩個 URL 的結尾,第一個将​

​debug​

​​變量設定為 ​

​false​

​​ ,第二個将其設定為​

​true​

​; 通路這兩個連結并注意控制台中的調試複選框在第一個中沒有被選中,而在第二個中被選中,改變了每個腳本的行為。

https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=false;      
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=true;      

此功能可用于設定地圖縮放和居中,以及您在向特定人員或組發送連結時可能想要自定義的其他行為。

搜尋工具

要查找要在腳本中使用的資料集,您可以使用資料存檔的搜尋工具。搜尋工具是代碼編輯器頂部的文本框,上面寫着“搜尋地點和資料集...” 在搜尋欄中鍵入資料産品、傳感器或其他關鍵字的名稱,然後單擊search按鈕檢視比對地點、栅格和表資料集的清單。單擊任何栅格或表結果以檢視存檔中該資料集的描述。要将資料集直接導入腳本,請單擊資料集描述中的導傳入連結接或 import按鈕。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

代碼編輯器頂部的導入部分。 

将資料集導入腳本的結果組織在腳本頂部的導入部分中,在您導入某些内容之前隐藏。建立一些導入後,您應該會看到類似于圖 5 的内容。要将導入複制到另一個腳本,或将導入轉換為 JavaScript,請單擊 subject圖示旁邊的Imports 标題并将生成的代碼複制到您的腳本中。您可以删除導入 delete 圖示。

地圖

API 中的 Map 對象是指代碼編輯器中的地圖顯示。例如, ​

​Map.getBounds()​

​​将傳回代碼編輯器中可見的地理區域。檢查​

​Map​

​API 中的函數以檢視此顯示的其他自定義。

層管理器

使用地圖右上角的圖層管理器來調整添加到地圖的圖層的顯示。具體來說,您可以切換圖層的可見性或使用滑塊調整其透明度。單擊 settings 圖示以調整各個圖層的可視化參數。出現的可視化工具允許您以互動方式配置圖層顯示參數。單擊工具右側的按鈕(預設情況下,它會根據提供的最小和最大範圍執行自定義拉伸)以将顯示線性拉伸到顯示視窗中圖像值的百分位數或标準偏差。統計資料是根據目前縮放級别的地圖視窗中的所有像素計算的。使用滑塊調整伽馬和/或透明度。單擊調色闆單選按鈕并通過添加顔色指定自定義調色闆 (add), 去除顔色 (remove) 或手動輸入逗号分隔的十六進制字元串清單 (edit)。單擊應用将可視化參數應用到目前顯示。單擊導入将可視化參數對象作為新變量加載到腳本的導入部分。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

 圖層可視化工具

 請注意,圖層管理器​​右側是用于不同地圖背景的切換按鈕。使用 自定義背景​

​Map.setStyle()​

​。

檢查器頁籤

任務管理器旁邊的檢查器頁籤可讓您以互動方式查詢地圖。當檢查器頁籤被激活時,光标變成一個十字準線,當您單擊地圖時,它将顯示光标下的位置和圖層值。例如,圖顯示了在Inspector頁籤中單擊地圖的結果 。光标位置和縮放級别與像素值和地圖上的對象清單一起顯示。對象清單是互動式的。要檢視更多資訊,請展開檢查器頁籤中的對象。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

  Inspector 頁籤顯示有關光标位置和光标下層值的資訊。

控制台頁籤

當您​

​print()​

​從腳本中擷取某些内容時,例如文本、對象或圖表,結果将顯示在Console 中。控制台是互動式的,是以您可以展開列印對象以擷取有關它們的更多詳細資訊。

任務頁籤

對于長時間運作的任務,使用​

​Export​

​​對象來執行導緻​

​Image​

​​或 的大型計算​

​FeatureCollection​

​。在“導出”頁籤上管理導出的任務。要開始導出,請單擊任務 頁籤中導出任務旁邊的 運作按鈕。将出現一個配置對話框,允許您選擇圖像的分辨率或大小,以及表格的格式(CSV、GeoJSON、KML 或 KMZ)。運作任務後,将滑鼠懸停在任務管理器中的任務上将顯示“?” 可用于檢查任務狀态的圖示。要取消任務,請單擊任務旁邊的旋轉 

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

圖示以取消它。

探查器

探查器顯示有關特定算法和計算的其他部分消耗的資源(CPU 時間、記憶體)的資訊。這有助于診斷腳本運作緩慢或由于記憶體限制而失敗的原因。要使用探查器,請單擊“運作”按鈕下拉菜單中的“使用探查器運作”選項。作為快捷方式,按住 Alt(或 Mac 上的 Option)并單擊運作,或按 Ctrl+Alt+Enter。這将激活代碼編輯器右側的Profiler頁籤。在腳本運作時,Profiler頁籤将顯示腳本中的資源使用表。單擊運作按鈕(不進行分析)将使分析器 頁籤消失并禁用分析器。

分析器顯示由腳本調用的計算産生的 CPU 和記憶體使用情況(每個算法和資産)的資訊,以及地圖中目前可見的每個圖塊的顯示。分析器輸出中的每一行都對應于“描述”列中描述的算法、計算、資産負載或開銷操作。探查器中的列是:

說明

正在分析的計算、算法、資産負載或開銷操作的文本描述。

計數

與調用“描述”中描述的操作的次數成正比的訓示器。

計算

操作所用 CPU 時間的訓示器。

目前記憶體

此列僅在由于腳本使用過多記憶體而出現錯誤時出現。它顯示發生錯誤時任何單個計算節點上正在使用的記憶體量。

峰值記憶體

任何單個計算節點上用于該操作的最大記憶體。

幾何工具

您還可以通過在螢幕上繪制幾何圖形将幾何圖形導入腳本。要建立幾何圖形,請使用地圖顯示左上角的幾何圖形繪制工具(圖 8)。對于繪制點,使用地标圖示 

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

,對于繪制線,使用線圖示,對于繪制多邊形,使用多邊形圖示 ,對于繪制矩形,使用矩形圖示。(請注意,矩形是平面幾何圖形,是以它們不能放置在具有測地線幾何圖形(如線和多邊形)的圖層上。)

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

幾何繪圖工具位于地圖顯示的左上角

使用任何繪圖工具都會自動建立一個新的幾何圖層,并将該圖層的導入添加到導入部分。要将幾何圖形添加到新圖層,請将滑鼠懸停在地圖顯示中的幾何圖形導入上,然後單擊+new layer連結。您還可以從幾何導入部分切換幾何的可見性。請注意,繪制的幾何圖形預設為測地線,矩形除外,矩形僅為平面。使用 ​​幾何構造函數​​​将它們轉換為平面幾何。在​​幾何頁面​​上了解有關 Earth Engine 中幾何的更多資訊 。

要配置幾何圖形導入腳本的方式,請單擊

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

 地圖上Geometry Imports部分或代碼編輯器的Imports部分中圖層旁邊的圖示。幾何圖層設定工具将顯示在一個對話框中,該對話框應類似于圖 9。請注意,您可以将繪制的形狀導入為幾何、要素或要素集合。幾何導入設定還允許您更改圖層顯示的顔色、向圖層添加屬性(如果它作為 a​

​Feature​

​​或導入​

​FeatureCollection​

​)或重命名圖層。

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

 幾何配置工具

 最後,為了防止圖層中的幾何圖形被編輯,您可以通過按

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

 圖層旁邊的圖示。這将阻止添加、删除或編輯圖層上的任何幾何圖形。要再次解鎖圖層,請按

Google Earth Engine(GEE)——GEE最全介紹(7000字長文)初學者福音!

圖示。防止你的改動或者删除之類的操作!

幫助!

繼續閱讀