Earth Engine JavaScript を記述する準備が整いました。まず、次のコードをコードエディタにコピーします。
コードエディタ(JavaScript)
// Instantiate an image with the Image constructor. var image = ee.Image('CGIAR/SRTM90_V4'); // Zoom to a location. Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon. // Display the image on the map. Map.addLayer(image);
コードエディタの上部にある [Run] ボタンをクリックすると、非常にグレーの画像が地図上に表示されます。心配はいりません。すぐに見た目を改善できます。この例の構文に不慣れな部分がある場合は、Earth Engine 向け JavaScript のチュートリアルを必ず確認してください。
Image コンストラクタ
この例で初めて登場するものは、画像コンストラクタ
ee.Image() です。コンストラクタに渡される引数は、Earth Engine Data Catalog 内の画像の文字列 ID です。(画像コンストラクタに指定できる引数の完全なリストについては、コードエディタの左側にある [Docs] タブをご覧ください。[Docs] タブには、Earth Engine でできることに関する最新情報が表示されます。
画像 ID を見つけるには、コードエディタの上部にある検索ツールを使用して、Earth Engine Data Catalog を検索します。たとえば、検索フィールドに「elevation」と入力すると、ラスターのリストが返されます。[SRTM Digital Elevation Data Version 4] エントリをクリックすると、そのデータセットの詳細が表示されます。データセットの説明の右側に [Image ID] フィールドがあります。この例のイメージ ID は、データセットの説明に表示されているイメージ ID からコピーされています。
画像 ID をコピーして貼り付ける代わりに、データセットの説明にある [Import] ボタン、または検索結果の右側にある [import] リンクを使用することもできます。インポート リンクまたはボタンをクリックすると、スクリプトの上部にある [Imports] という特別なセクションに、変数が自動的に作成されます。変数の名前を変更するには、インポート セクションでその名前をクリックします。
地図の設定
この例の 2 つ目の新しい部分は、Map.setCenter() 呼び出しです。このメソッドは、コードエディタの地図表示を表す Map オブジェクトにあり、指定された経度、緯度(10 進数)、ズームレベルで地図を中央に配置します。ズームレベル 1 は、地球の表面全体が表示されるようにズームアウトされます。数値が大きいほど、そこからズームインします。コードエディタの左側にある [Docs] タブの [Map] セクションで、Map オブジェクトのすべてのメソッドを確認します。
地図にレイヤを追加する
この例の最後の行は、Map オブジェクトの addLayer() メソッドを使用して、コードエディタの地図表示に画像を追加することを示しています。
これで最初の Earth Engine スクリプトを作成しました。次のセクションでは、この画像を少し見栄え良くする方法について説明します。
余談: Earth Engine の画像
Earth Engine の画像(詳しくはこちらのページをご覧ください)は、1 つ以上のバンドで構成されています。画像内の各バンドには、独自の名前、ピクセル値、ピクセル解像度、投影があります。すぐにわかるように、SRTM 画像には「elevation」という 1 つのバンドがあります。
Map.addLayer() を使用して地図に画像を追加する場合、Earth Engine は画像バンドの値をディスプレイ上の色にマッピングする方法を決定する必要があります。シングルバンド画像が地図に追加されると、デフォルトでは、Earth Engine はバンドをグレースケールで表示します。最小値は黒に、最大値は白に割り当てられます。最小値と最大値を指定しない場合、Earth Engine はデフォルト値を使用します。たとえば、マップに追加した画像は、データの全範囲(符号付き 16 ビット整数 [-32768, 32767])に引き伸ばされたグレースケール画像として表示されます。(デフォルトでは、float バンドは [0, 1] に、byte バンドは [0, 255] にストレッチされます)。
画像のデータ型を確認するには、画像を印刷して、[Console] タブで画像オブジェクトを調べます。たとえば、前のコードの後に次のコードを貼り付けます。
コードエディタ(JavaScript)
print('SRTM image', image);
[Run] をクリックすると、コンソールにオブジェクトが表示されます。オブジェクトのプロパティを調べるには、オブジェクトまたはプロパティの左側にあるジッピー()をクリックして展開します。画像オブジェクト、bands プロパティ、インデックス 0 の elevation バンド、elevation バンドの data_type プロパティを開くと、
signed int16 データ型であることがわかります。
レイヤの可視化をカスタマイズする
データの引き伸ばし方法を変更するには、Map.addLayer() 呼び出しに別のパラメータを指定します。具体的には、2 番目のパラメータ visParams を使用して、表示する最小値と最大値を指定できます。使用する値を確認するには、[Inspector] タブを有効にして、地図上をクリックしてピクセル値の範囲を把握します。または、レイヤ マネージャーを使用してデータをインタラクティブにストレッチし、パーセンタイルまたは標準偏差のストレッチに対応する最小値と最大値を観察します。このようなテストを通じて、データを [0, 3000] に引き伸ばす必要があると判断したとします。この範囲を使用して画像を表示するには、次のようにします。
コードエディタ(JavaScript)
Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');
visParams パラメータはオブジェクトであり、min と max を指定するプロパティが含まれています。(JavaScript オブジェクトの詳細については、JavaScript チュートリアルまたはこちらの外部リファレンスをご覧ください)。Map.addLayer() の 3 番目のパラメータは、レイヤ マネージャーに表示されるレイヤの名前です。結果は図 1 のようになります。右側の [レイヤ] ボックスにマウスを合わせると、そのレイヤの名前を変更した効果が表示されます。
カラーパレットを使用して単一のバンドを表示するには、visParams オブジェクトに palette プロパティを追加します。
コードエディタ(JavaScript)
Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']}, 'custom palette');
結果は図 2 のようになります。
余談: パレット
パレットを使用すると、シングルバンド画像のカラーパターンを設定できます。パレットは、可視化パラメータの最大値と最小値の間で線形補間される色の文字列のカンマ区切りリストです(または、前述のようにバンドタイプに応じたデフォルト値)。たとえば、最小値以下のピクセルはリストの最初の色で表示され、最大値以上のピクセルはリストの最後の色で表示されます。中間色は、中間ピクセル値に線形に引き伸ばされます。
色は、ウェブ標準の CSS カラー値スキームを使用して定義されます(詳しくは、こちらの外部リファレンスをご覧ください)。色は、名前または赤、緑、青の組み合わせを示す 16 進数の文字列で指定できます。3 つの位置のいずれにおいても、最小値は 00(10 進数の 0 を表す)で、最大値は FF(10 進数の 255 を表す)です。文字列「000000」は黒、「FFFFFF」は白、「FF0000」は赤、「00FF00」は緑、「0000FF」は青を表します。詳しくは、カラーパレットのセクションをご覧ください。このセクションで説明するように、Styled Layer Descriptor を使用して他のストレッチを行うこともできます。
このチュートリアルの後半では、マルチバンド画像を表示する方法について説明します。その前に、次のページにアクセスして、画像を使用した計算の実行について学習してください。