Resimleri dışa aktarma

Earth Engine'daki resimleri GeoTIFF veya TFRecord biçiminde dışa aktarabilirsiniz. Diğer çıkış seçenekleri için Yapılandırma Parametreleri bölümüne bakın.

Örnek Kurulum

Dışa aktarılacak resim verilerini tanımlayarak başlayın:

Kod Düzenleyici (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]);

Python kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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])

Ardından, aşağıdaki dışa aktarma işlemlerinde kullanılacak projeksiyon parametrelerini tanımlayın. Koordinat sistemini belirtmek için crs parametresini, piksel ızgarasını tam olarak belirtmek için de crsTransform parametresini kullanırız. crsTransform parametresi, satır öncelikli sıradaki [xScale, xShearing, xTranslation, yShearing, yScale, yTranslation] bir afin dönüşüm matrisinden alınan parametrelerin listesidir. Bir resmin orijini xTranslation ve yTranslation değerleriyle, resmin piksel boyutu ise xScale ve yScale değerleriyle tanımlanır. Doğrusal olmayan matris örneklerine bakın.

Kod Düzenleyici (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();

Python kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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 ayarı

Kısayol olarak bir scale parametresi belirtebilirsiniz. Earth Engine, sizin için bir crsTransform parametresi hesaplar. Ancak bir resmin ölçeğini ayarlamak, projeksiyonun orijinini belirtmez ve aynı piksel boyutuna sahip başka bir resme göre kaydırılmış bir resimle sonuçlanabilir.

Olası kaymanın nedeni, crsTransform öğesinin xScale ve yScale değerlerini doldurmak için scale parametresinin kullanılmasıdır. Ancak xTranslation ve yTranslation değerleri, ilgili xScale ve yScale değerlerine bölündüğünde kalan sıfır olacak şekilde hesaplanır. Bu parametreler, projeksiyonun orijininin bir pikselin köşesinde olduğu bir piksel ızgarası belirtir. Bu kural, bazı veri sağlayıcılar tarafından kullanılan ve projeksiyonun orijininden kaydırılmış ızgaralar kullanan çeviri parametrelerinden farklıdır. Örneğin, USGS tarafından sağlanan Landsat görüntüleri, projeksiyonun orijininden 1/2 piksel (30 metrelik bantlar için 15 metrelik ofset) ofset uygulanmış kaydırma parametreleri kullanırken ESA tarafından sağlanan Sentinel-2 görüntüleri, projeksiyonun orijiniyle hizalanmış kaydırma parametreleri kullanır. Bir dışa aktarma işleminde belirtilen crsTransform, orijinal resmin crsTransform ile eşleşmezse çıkış pikselleri yeniden örneklenir (varsayılan olarak en yakın komşu kullanılarak). Bu durumda, ortaya çıkan resim orijinal resme göre kaydırılır.

Özetlemek gerekirse, dışa aktarılan resmin piksellerini belirli bir resimle eşleştirmeniz gerekiyorsa ızgara üzerinde tam kontrol sahibi olmak için crs ve crsTransform parametrelerini kullandığınızdan emin olun.

Drive'a

Bir resmi Drive hesabınıza aktarmak için Export.image.toDrive() simgesini kullanın. Örneğin, bir Landsat görüntüsünün bölümlerini dışa aktarmak için dışa aktarılacak bir bölge tanımlayın ve ardından Export.image.toDrive() işlevini çağırın:

Kod Düzenleyici (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
});

Python kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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()

Bu kod çalıştırıldığında Kod Düzenleyici'nin Görevler sekmesinde bir dışa aktarma görevi oluşturulur. Görevi başlatmak için yanındaki Çalıştır düğmesini tıklayın. (Görev Yöneticisi hakkında daha fazla bilgiyi Kod Düzenleyici bölümünde bulabilirsiniz.) Resim, belirtilen fileFormat ile Drive hesabınızda oluşturulur.

Cloud Storage'a aktarma

Bir resmi Google Cloud Storage paketine aktarmak için Export.image.toCloudStorage() simgesini kullanın. Önceki örnekteki Landsat görüntüsünü Drive yerine Cloud Storage'a aktarmak için:

Kod Düzenleyici (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
});

Python kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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()

Drive'a dışa aktarma işlemlerinde olduğu gibi, dışa aktarma işlemini Görevler sekmesinden başlatın. Cloud Storage paketi konumu, performansı ve depolama maliyetlerini etkileyebilir. Daha fazla bilgi için konumla ilgili dikkat edilmesi gereken noktalarla ilgili SSS girişine göz atın.

Öğe

Bir resmi Earth Engine öğeleriniz klasöründeki bir öğeye dışa aktarmak için Export.image.toAsset() simgesini kullanın. Earth Engine öğelerinizi yönetmek veya depolama kotanızın ne kadarının kullanıldığını kontrol etmek için Öğe Yöneticisi'ni kullanın. Aşağıdaki örnekte, aynı bant için farklı piramit oluşturma politikaları kullanılarak bir Landsat görüntüsünün bölümleri dışa aktarılmaktadır. Piramit oluşturma politikası, Earth Engine'ın öğenin düşük çözünürlüklü sürümlerini nasıl hesapladığını belirtir. Earth Engine'in birden fazla çözünürlüğü nasıl ele aldığı hakkında daha fazla bilgiyi ölçek dokümanında bulabilirsiniz.

Kod Düzenleyici (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'
  }
});

Python kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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' anahtarını kullanarak açıkça belirtilmeyen her bant için varsayılan bir piramide oluşturma politikası sağlayabilirsiniz. Yalnızca '.default' anahtarını da iletebilirsiniz. Örneğin, tüm bantların varsayılan olarak "örnek" piramide oluşturma politikasını kullanmasını sağlamak için {'.default': 'sample'} değerini kullanın.

Yapılandırma parametreleri

Export.image işlevine iletilen yapılandırma parametreleri sözlüğünün scale'ı (metre cinsinden) ve dışa aktarma bölgesini ee.Geometry olarak içerdiğini unutmayın. Dışa aktarılan resim, belirtilen ölçekte piksellerle belirtilen bölgeyi kapsar. Açıkça belirtilmezse çıkışın CRS'si, dışa aktarılacak görüntünün ilk bandından alınır.

Ayrıca, dışa aktarılan resmin dimensions, crs ve/veya crsTransform değerini de belirtebilirsiniz. crs ve crsTransform hakkında daha fazla bilgi için sözlüğe göz atın. Örneğin, başka bir veri kaynağıyla tam olarak hizalanmış bir piksel bloğu almak için dimensions, crs ve crsTransform değerlerini belirtin. Bir bölgeyi kapsayan, önceden tanımlanmış boyuttaki bir piksel bloğu (ör. 256x256 küçük resim) almak için dimensions ve region değerlerini belirtin.

Resim çıkış biçimini (hedef toAsset() değilse) fileFormat parametresiyle (varsayılan olarak 'GeoTIFF') belirtebilirsiniz.

formatOptions parametresi

Diğer yapılandırma seçenekleri formatOptions parametresi ile belirlenir. Bu parametre, aşağıda açıklandığı gibi her fileFormat'ye özel diğer biçim seçeneklerine göre anahtarlanmış bir sözlük olmalıdır.

GeoTIFF

Bulut için optimize edilmiş GeoTIFF

Bulut için optimize edilmiş bir GeoTIFF dışa aktarmak istiyorsanız cloudOptimized anahtarının true olarak ayarlandığı bir formatOptions JavaScript değişmez değeri iletin. Önceki örneğe devam edecek olursak:

Kod Düzenleyici (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
  }
});

Python kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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()

Cloud'da optimize edilmiş GeoTIFF'ler Cloud Storage'dan bir Image'e yeniden yüklenebilir. Ayrıntılar için Image genel bakış belgelerine göz atın.

Nodata

formatOptions parametresindeki noData anahtarını kullanarak GeoTIFF nodata değerini belirtin. Örneğin:

Kod Düzenleyici (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,
  }
});

Python kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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 değerinin, resmin PixelType için geçerli aralıkta olması gerektiğini unutmayın. Resim meta verilerini yazdırıp ilk bandın data_type mülküne bakarak PixelType değerini kontrol edebilirsiniz. Örneğin, resim yöntemleri toShort() veya toInt()'yi kullanarak verileri belirli bir türe yayınlayarak da resmin türünü ayarlayabilirsiniz.PixelType

TFRecord

TFRecord veri biçimi sayfasına bakın.

maxPixels

maxPixels parametresi, çok büyük dışa aktarma işlemlerinin yanlışlıkla oluşturulmasını önlemek için tasarlanmıştır. Varsayılan değer, amaçladığınız çıkış resmi için çok düşükse maxPixels değerini artırabilirsiniz. Örneğin:

Export.image.toDrive({
  image: landsat,
  description: 'maxPixelsExample',
  crs: projection.crs,
  crsTransform: projection.transform,
  region: geometry,
  maxPixels: 1e9
});

Büyük dosyaları dışa aktarma

Çıkış resmi büyükse birden fazla dosya olarak dışa aktarılır. GeoTIFF'lere dışa aktarıyorsanız görüntü kartlara bölünür. Her karonun dosya adı baseFilename-yMin-xMin biçimindedir. Burada xMin ve yMin, dışa aktarılan görüntünün genel sınır kutusu içindeki her karonun koordinatlarıdır.

TFRecord'a dışa aktarıyorsanız N+1 dosya için dosyalara -00000, -00001,... -0000N eklenir. Dosyalar üzerinde çıkarım yapmak ve tahminleri resim olarak Earth Engine'a geri yüklemek istiyorsanız bu sırayı korumanız önemlidir. Ayrıntılar için resimleri TFRecord dosyası olarak yükleme bölümüne bakın.

Resimleri kod düzenleyicide göründüğü şekilde dışa aktarma

Görüntüleri Earth Engine'da ekranda oluşturulduğu şekilde dışa aktarmak için Görselleştirme resimleri ve Oluşturma ve Mozaikleme bölümlerinde gösterildiği gibi görselleştirme resimleri oluşturun. Kod Düzenleyici, 'EPSG:3857' CRS'sini kullandığından, Kod Düzenleyici haritasında gösterilenle aynı projeksiyonda bir resim elde etmek için dışa aktarma işleminde 'EPSG:3857' CRS'sini belirtin. Çıktının çözünürlüğünü ve koordinat sistemini belirtmeyle ilgili ayrıntılar için resim dışa aktarma işlemlerini yapılandırmayla ilgili bölüme bakın.