'你好,世界!' JavaScript
将資訊列印到控制台是擷取有關對象的資訊、顯示計算的數字結果、顯示對象中繼資料或幫助調試的基本任務。标志性的“Hello World!” 代碼編輯器中的示例是:
代碼編輯器 (JavaScript)
print('Hello world!');
将此行複制到代碼編輯器的代碼編輯器中,然後單擊運作。請注意,輸出顯示在代碼編輯器右側的控制台頁籤中。對于更遙感相關的示例,以下列印 Landsat 8 圖像的中繼資料:
代碼編輯器 (JavaScript)
print(ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318'));
仔細檢查控制台中的輸出以檢視可用于 Landsat 圖像的中繼資料。
向地圖添加資料
除了将資訊列印到控制台之外,向控制台添加資料
Map
也是可視化地理資料的方式。使用
Map.addLayer()
這樣做。在以下示例中,使用 将 an
Image
執行個體化(稍後介紹如何找到這些圖像)
ee.Image()
,将其添加到地圖中,
Map.addLayer()
并且地圖位于圖像的中心:
代碼編輯器 (JavaScript)
// Load an image.
var image = ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318');
// Center the map on the image.
Map.centerObject(image, 9);
// Display the image.
Map.addLayer(image);
的第二個參數
Map.centerObject()
是縮放級别,數字越大表示比例越大(放大得越多)。這些
Map
函數的參數在可從文檔頁籤通路的 API 參考中進行了深入描述 。如果圖像的外觀不令人滿意,請使用附加參數配置顯示參數
Map.addLayer()
。例如:
代碼編輯器 (JavaScript)
// Load the image from the archive.
var image = ee.Image('LANDSAT/LC08/C01/T1/LC08_044034_20140318');
// Define visualization parameters in an object literal.
var vizParams = {bands: ['B5', 'B4', 'B3'], min: 5000, max: 15000, gamma: 1.3};
// Center the map on the image and display.
Map.centerObject(image, 9);
Map.addLayer(image, vizParams, 'Landsat 8 false color');
觀察可視化參數由對象文字定義,其中包括要顯示的波段清單、最小和最大數字以及伽瑪值。(了解更多關于陸地衛星樂隊 在這裡。了解更多關于圖像可視化在這裡)。
用于
Map.addLayer()
向地圖添加要素和要素集合。例如,
代碼編輯器 (JavaScript)
var counties = ee.FeatureCollection('TIGER/2016/Counties');
Map.addLayer(counties, {}, 'counties');
查找圖像、圖像集合和特征集合
通過搜尋地球引擎資料目錄可以發現圖像、圖像集合和特征集合。例如,在搜尋字段中輸入“Landsat 8”會生成栅格資料集清單。(地球引擎資料集的完整清單位于 地球引擎資料目錄)。單擊資料集名稱可擷取簡要說明、有關時間可用性、資料提供者和集合 ID 的資訊。單擊“導入” 按鈕可在腳本頂部自動建立一個“導入”部分,其中包含此集合的變量。
或者,複制集合 ID 并将其粘貼到您的代碼中。例如,選擇“Landsat 8”搜尋的第一個結果并複制ID,如下所示:
代碼編輯器 (JavaScript)
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1');
由于這是跨越地球陸地表面的許多圖像的集合,是以在集合中查找單個圖像需要過濾以縮小搜尋範圍。或者,可以使用合成和鑲嵌技術将圖像集合縮減為單個圖像。更多關于過濾和合成(見 減少)在下一節。
特征集合也可通過資料目錄獲得。它們的表示比圖像集合小,但您會發現國際、人口普查、流域和保護區的邊界,僅舉幾例。在此處了解有關導入您自己的矢量資料集的更多資訊。
過濾和排序
通常需要按空間和/或時間過濾集合以限制結果的數量。例如,考慮對 Landsat 8 場景集合進行排序的任務,以便為舊金山找到一個無雲場景。首先,有必要定義感興趣的區域。一個點通常對此很有用。激活代碼編輯器右側的 Inspector頁籤并單擊您感興趣區域的中心附近,從Inspector 頁籤複制坐标,然後
Point
使用以下方法建構一個:
代碼編輯器 (JavaScript)
var point = ee.Geometry.Point(-122.262, 37.8719);
構造開始和結束日期:
代碼編輯器 (JavaScript)
var start = ee.Date('2014-06-01');
var finish = ee.Date('2014-10-01');
使用點和日期過濾 Landsat 8 集合,然後使用中繼資料屬性(在檢查 Landsat 8 場景中繼資料期間發現)進行排序:
代碼編輯器 (JavaScript)
var filteredCollection = ee.ImageCollection('LANDSAT/LC08/C01/T1')
.filterBounds(point)
.filterDate(start, finish)
.sort('CLOUD_COVER', true);
可以安全地列印和檢查此集合。(如果集合中有太多圖像,列印它會很慢、逾時或傳回錯誤)。觀察集合中的圖像
List
存儲在
ImageCollection
. 集合中任何圖像的 ID 都可以複制到
Image
上面的構造函數中。或者,擷取第一張圖像(最低雲量):
代碼編輯器 (JavaScript)
var first = filteredCollection.first();
使用
filter()
with
ee.Filter
作為參數通路完整的 Earth Engine 過濾功能。(上面使用的
filterBounds()
和
filterDate()
方法是快捷方式)。例如,下面建立了一個
Filter
,使用它來過濾 a
FeatureCollection
并顯示結果:
// Load a feature collection.
var featureCollection = ee.FeatureCollection('TIGER/2016/States');
// Filter the collection.
var filteredFC = featureCollection.filter(ee.Filter.eq('NAME', 'California'));
// Display the collection.
Map.addLayer(filteredFC, {}, 'California');