Earth Engine から画像をエクスポートする場合は、GeoTIFF 形式または TFRecord 形式でエクスポートできます。その他の出力オプションについては、構成パラメータをご覧ください。
セットアップ例
まず、エクスポートする画像データを定義します。
コードエディタ(JavaScript)
// Load a landsat image and select three bands. var landsat = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_123032_20140515') .select(['B4', 'B3', 'B2']); // Create a geometry representing an export region. var geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236]);
import ee import geemap.core as geemap
Colab(Python)
# Load a landsat image and select three bands. landsat = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_123032_20140515').select( ['B4', 'B3', 'B2'] ) # Create a geometry representing an export region. geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236])
次に、次のエクスポートで使用される投影パラメータを定義します。crs
パラメータを使用して座標系を指定し、crsTransform
パラメータを使用してピクセル グリッドを正確に指定します。crsTransform
パラメータは、行優先の順序でアフィン変換行列のパラメータのリストです。[xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]
画像の原点は xTranslation
値と yTranslation
値で定義され、画像のピクセルサイズは xScale
値と yScale
値で定義されます。アフィン行列の例をご覧ください。
コードエディタ(JavaScript)
// Retrieve the projection information from a band of the original image. // Call getInfo() on the projection to request a client-side object containing // the crs and transform information needed for the client-side Export function. var projection = landsat.select('B2').projection().getInfo();
import ee import geemap.core as geemap
Colab(Python)
# Retrieve the projection information from a band of the original image. # Call getInfo() on the projection to request a client-side object containing # the crs and transform information needed for the client-side Export function. projection = landsat.select('B2').projection().getInfo()
scale
を設定する
ショートカットとして、scale
パラメータを指定すると、Earth Engine が crsTransform
パラメータを計算します。ただし、画像のスケールを設定するだけでは投影の原点が指定されず、同じピクセルサイズの別の画像に対して画像がずれる可能性があります。
シフトが発生する可能性があるのは、scale
パラメータを使用して crsTransform
の xScale
値と yScale
値が入力される一方で、xTranslation
値と yTranslation
値は、対応する xScale
値と yScale
値で除算したときに余りがゼロになるように計算されるためです。これらのパラメータは、投影の原点がピクセルの角にあるピクセル グリッドを指定します。この規則は、一部のデータ プロバイダが使用する変換パラメータとは異なります。このパラメータでは、投影の原点からオフセットされたグリッドが使用されます。たとえば、USGS から提供された Landsat 画像では、投影の原点から 1/2 ピクセルのオフセット(30 m バンドの場合は 15 m オフセット)の移動パラメータが使用されますが、ESA から提供された Sentinel-2 画像では、投影の原点に位置合わせされた移動パラメータが使用されます。エクスポートで指定された crsTransform
が元の画像の crsTransform
と一致しない場合、出力ピクセルは(デフォルトで最近傍法を使用して)再サンプリングされ、結果の画像は元の画像に対してシフトされます。
要約すると、エクスポートされた画像のピクセルを特定の画像と一致させる必要がある場合は、crs
パラメータと crsTransform
パラメータを使用してグリッドを完全に制御してください。
ドライブに移動
ドライブ アカウントに画像をエクスポートするには、Export.image.toDrive()
を使用します。たとえば、Landsat 画像の一部をエクスポートするには、エクスポートする領域を定義してから Export.image.toDrive()
を呼び出します。
コードエディタ(JavaScript)
// Export the image, specifying the CRS, transform, and region. Export.image.toDrive({ image: landsat, description: 'imageToDriveExample_transform', crs: projection.crs, crsTransform: projection.transform, region: geometry });
import ee import geemap.core as geemap
Colab(Python)
# Export the image, specifying the CRS, transform, and region. task = ee.batch.Export.image.toDrive( image=landsat, description='imageToDriveExample_transform', crs=projection['crs'], crsTransform=projection['transform'], region=geometry, ) task.start()
このコードが実行されると、Code Editor の [タスク] タブにエクスポート タスクが作成されます。タスクの横にある [実行] ボタンをクリックしてタスクを開始します。(タスク マネージャーの詳細については、コードエディタのセクションをご覧ください)。指定された fileFormat
を使用して、ドライブ アカウントに画像が作成されます。
Cloud Storage に転送する
イメージを Google Cloud Storage バケットにエクスポートするには、Export.image.toCloudStorage()
を使用します。前の例の Landsat 画像をドライブではなく Cloud Storage にエクスポートするには、次のコマンドを使用します。
コードエディタ(JavaScript)
// Export the image to Cloud Storage. Export.image.toCloudStorage({ image: landsat, description: 'imageToCloudExample', bucket: 'your-bucket-name', fileNamePrefix: 'exampleExport', crs: projection.crs, crsTransform: projection.transform, region: geometry });
import ee import geemap.core as geemap
Colab(Python)
# Export the image to Cloud Storage. task = ee.batch.Export.image.toCloudStorage( image=landsat, description='imageToCloudExample', bucket='your-bucket-name', fileNamePrefix='exampleExport', crs=projection['crs'], crsTransform=projection['transform'], region=geometry, ) task.start()
ドライブへのエクスポートと同様に、[タスク] タブからエクスポートを開始します。Cloud Storage バケットのロケーションは、パフォーマンスとストレージ費用に影響する可能性があります。詳細については、ロケーションに関する考慮事項に関するよくある質問をご覧ください。
アセットに
Earth Engine アセット フォルダのアセットに画像をエクスポートするには、Export.image.toAsset()
を使用します。Earth Engine アセットを管理したり、使用中のストレージ割り当てを確認したりするには、アセット マネージャーを使用します。次の例は、同じバンドに異なるピラミッド化ポリシーを使用して Landsat 画像の一部をエクスポートする方法を示しています。ピラミッド化ポリシーは、Earth Engine がアセットの低解像度バージョンを計算する方法を指定します。Earth Engine が複数の解像度を処理する方法について詳しくは、スケールに関するドキュメントをご覧ください。
コードエディタ(JavaScript)
// Get band 4 from the Landsat image, copy it. var band4 = landsat.select('B4').rename('b4_mean') .addBands(landsat.select('B4').rename('b4_sample')) .addBands(landsat.select('B4').rename('b4_max')); // Export the image to an Earth Engine asset. Export.image.toAsset({ image: band4, description: 'imageToAssetExample', assetId: 'exampleExport', crs: projection.crs, crsTransform: projection.transform, region: geometry, pyramidingPolicy: { 'b4_mean': 'mean', 'b4_sample': 'sample', 'b4_max': 'max' } });
import ee import geemap.core as geemap
Colab(Python)
# Get band 4 from the Landsat image, copy it. band_4 = ( landsat.select('B4') .rename('b4_mean') .addBands(landsat.select('B4').rename('b4_sample')) .addBands(landsat.select('B4').rename('b4_max')) ) # Export the image to an Earth Engine asset. task = ee.batch.Export.image.toAsset( image=band_4, description='imageToAssetExample', assetId='projects/your-project/assets/exampleExport', crs=projection['crs'], crsTransform=projection['transform'], region=geometry, pyramidingPolicy={ 'b4_mean': 'mean', 'b4_sample': 'sample', 'b4_max': 'max', }, ) task.start()
'.default'
キーを使用して、明示的に指定されていないすべてのバンドにデフォルトのピラミッド化ポリシーを指定できます。'.default'
キーのみを渡すこともできます。たとえば、すべてのバンドをデフォルトで「サンプル」ピラミッド化ポリシーに設定するには、{'.default': 'sample'}
を使用します。
構成パラメータ
Export.image
に渡される構成パラメータのディクショナリには、scale
(メートル単位)とエクスポート リージョンが ee.Geometry
として含まれています。エクスポートされた画像は、指定されたスケールのピクセルで指定された領域を覆います。明示的に指定されていない場合、出力の CRS はエクスポートする画像の最初のバンドから取得されます。
エクスポートされたイメージの dimensions
、crs
、crsTransform
を指定することもできます。crs
と crsTransform
の詳細については、用語集をご覧ください。たとえば、別のデータソースに正確に位置合わせされたピクセル ブロックを取得するには、dimensions
、crs
、crsTransform
を指定します。リージョンをカバーする事前定義されたサイズのピクセル ブロック(256x256 のサムネイル画像など)を取得するには、dimensions
と region
を指定します。
画像の出力形式(宛先が toAsset()
でない場合)は、fileFormat
パラメータ(デフォルトは 'GeoTIFF'
)で指定できます。
formatOptions
パラメータ
その他の構成オプションは formatOptions
パラメータで設定します。これは、以下で説明するように、各 fileFormat
に固有の他の形式オプションをキーとする辞書にする必要があります。
GeoTIFF
クラウド用に最適化された GeoTIFF
クラウドに最適化された GeoTIFF をエクスポートするには、cloudOptimized
キーが true に設定されている formatOptions
の JavaScript リテラルを渡します。前の例を続けます。
コードエディタ(JavaScript)
// Export a cloud-optimized GeoTIFF. Export.image.toDrive({ image: landsat, description: 'imageToCOGeoTiffExample', crs: projection.crs, crsTransform: projection.transform, region: geometry, fileFormat: 'GeoTIFF', formatOptions: { cloudOptimized: true } });
import ee import geemap.core as geemap
Colab(Python)
# Export a cloud-optimized GeoTIFF. task = ee.batch.Export.image.toDrive( image=landsat, description='imageToCOGeoTiffExample', crs=projection['crs'], crsTransform=projection['transform'], region=geometry, fileFormat='GeoTIFF', formatOptions={'cloudOptimized': True}, ) task.start()
クラウドに最適化された GeoTIFF は、Cloud Storage から Image
に再読み込みできます。詳しくは、Image
の概要ドキュメントをご覧ください。
Nodata
GeoTIFF の nodata 値を指定するには、formatOptions
パラメータ内の noData
キーを使用します。次に例を示します。
コードエディタ(JavaScript)
// Set a nodata value and replace masked pixels around the image edge with it. var noDataVal = -9999; landsat = landsat.unmask(noDataVal); Export.image.toDrive({ image: landsat, description: 'imageNoDataExample', crs: projection.crs, scale: 2000, // large scale for minimal demo region: landsat.geometry(), // full image bounds fileFormat: 'GeoTIFF', formatOptions: { noData: noDataVal, } });
import ee import geemap.core as geemap
Colab(Python)
# Set a nodata value and replace masked pixels around the image edge with it. no_data_val = -9999 landsat = landsat.unmask(no_data_val) task = ee.batch.Export.image.toDrive( image=landsat, description='imageNoDataExample', crs=projection['crs'], scale=2000, # large scale for minimal demo region=landsat.geometry(), # full image bounds fileFormat='GeoTIFF', formatOptions={'noData': no_data_val}, ) task.start()
nodata 値は、画像の PixelType
の有効な範囲内にある必要があります。PixelType
を確認するには、画像メタデータを出力して、最初のバンドの data_type
プロパティを確認します。たとえば、イメージ メソッド toShort()
または toInt()
を使用してデータを特定の型にキャストすることで、イメージの PixelType
を設定することもできます。
TFRecord
TFRecord データ形式のページをご覧ください。
maxPixels
maxPixels
パラメータは、非常に大きなエクスポートが誤って作成されないようにすることを目的としています。デフォルト値が目的の出力画像に対して低すぎる場合は、maxPixels
を増やすことができます。次に例を示します。
Export.image.toDrive({ image: landsat, description: 'maxPixelsExample', crs: projection.crs, crsTransform: projection.transform, region: geometry, maxPixels: 1e9 });
大容量ファイルのエクスポート
出力画像が大きい場合は、複数のファイルとしてエクスポートされます。GeoTIFF にエクスポートする場合、画像はタイルに分割されます。各タイルのファイル名は baseFilename-yMin-xMin
の形式になります。ここで、xMin
と yMin
は、エクスポートされた画像の全体的な境界ボックス内の各タイルの座標です。
TFRecord にエクスポートする場合、ファイルには -00000
、-00001
、... -0000N
が追加され、N+1 ファイルになります。ファイルに対して推論を実行し、予測を画像として Earth Engine にアップロードする場合は、この順序を維持することが重要です。詳細については、画像を TFRecord ファイルとしてアップロードするをご覧ください。
コードエディタに表示される画像をエクスポートする
Earth Engine で画面にレンダリングされた画像として画像をエクスポートするには、可視化画像と合成とモザイク化のセクションで説明されているように、可視化画像を作成します。Code Editor は 'EPSG:3857'
CRS を使用するため、エクスポートで 'EPSG:3857'
の CRS を指定して、Code Editor マップに表示されるものと同一のプロジェクションで画像を取得します。出力の解像度と座標系を指定する方法については、画像エクスポートの構成に関するセクションをご覧ください。