صادرات تصاویر، صادرات تصاویر

می توانید تصاویر را از Earth Engine در قالب GeoTIFF یا TFRecord صادر کنید. برای گزینه های خروجی بیشتر به پارامترهای پیکربندی مراجعه کنید.

راه اندازی مثال

با تعریف داده های تصویری که صادر می شود شروع کنید:

ویرایشگر کد (جاوا اسکریپت)

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

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 تعیین می شود. نمونه هایی از ماتریس های افین را ببینید.

ویرایشگر کد (جاوا اسکریپت)

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

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 برای پر کردن مقادیر xScale و yScale crsTransform استفاده می شود، اما مقادیر xTranslation و yTranslation به گونه ای محاسبه می شوند که اگر بر مقادیر xScale و yScale مربوطه تقسیم شوند، باقیمانده صفر خواهد بود. این پارامترها یک شبکه پیکسلی را مشخص می کنند که مبدأ طرح ریزی در گوشه یک پیکسل است. این قرارداد با پارامترهای ترجمه استفاده شده توسط برخی از ارائه دهندگان داده، که از شبکه‌هایی استفاده می‌کنند که از مبدأ طرح‌ریزی جدا شده‌اند، متفاوت است. به عنوان مثال، تصاویر Landsat ارائه شده توسط USGS از پارامترهای ترجمه استفاده می کنند که با 1/2 پیکسل از مبدأ طرح فاصله دارد (15m offset برای باندهای 30 متری) در حالی که تصاویر Sentinel-2 ارائه شده توسط ESA از پارامترهای ترجمه استفاده می کنند که با مبدأ طرح ریزی هماهنگ هستند. اگر crsTransform مشخص‌شده در یک صادرات با crsTransform تصویر اصلی مطابقت نداشته باشد، پیکسل‌های خروجی مجدداً نمونه‌گیری می‌شوند (به طور پیش‌فرض با استفاده از نزدیک‌ترین همسایه)، که باعث می‌شود تصویر حاصل نسبت به تصویر اصلی جابجا شود.

به طور خلاصه، اگر نیاز دارید پیکسل های تصویر صادر شده را با یک تصویر خاص مطابقت دهید، مطمئن شوید که از پارامترهای crs و crsTransform برای کنترل کامل شبکه استفاده کنید.

به درایو

برای صادرات یک تصویر به حساب Drive خود، از Export.image.toDrive() استفاده کنید. به عنوان مثال، برای صادرات بخش هایی از یک تصویر Landsat، یک منطقه برای صادرات تعریف کنید، سپس Export.image.toDrive() را فراخوانی کنید:

ویرایشگر کد (جاوا اسکریپت)

// 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
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

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

هنگامی که این کد اجرا می شود، یک کار صادراتی در تب وظایف ویرایشگر کد ایجاد می شود. برای شروع روی دکمه Run در کنار کار کلیک کنید. (در مورد Task Manager از قسمت Code Editor بیشتر بیاموزید). تصویر در حساب Drive شما با fileFormat مشخص شده ایجاد می شود.

به فضای ذخیره سازی ابری

برای صادر کردن یک تصویر به سطل فضای ذخیره‌سازی Google Cloud، از Export.image.toCloudStorage() استفاده کنید. برای صادر کردن تصویر Landsat در مثال قبلی به جای Drive به Cloud Storage، از:

ویرایشگر کد (جاوا اسکریپت)

// 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
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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، صادرات را از برگه Tasks شروع کنید. مکان سطل ذخیره‌سازی ابری می‌تواند بر عملکرد و هزینه‌های ذخیره‌سازی تأثیر بگذارد، برای اطلاعات بیشتر به بخش سؤالات متداول در مورد ملاحظات مکان مراجعه کنید.

به دارایی

برای صادر کردن یک تصویر به یک دارایی در پوشه دارایی های Earth Engine خود، از Export.image.toAsset() استفاده کنید. برای مدیریت دارایی‌های Earth Engine یا بررسی میزان استفاده از سهمیه فضای ذخیره‌سازی، از Asset Manager استفاده کنید. مثال زیر صادرات بخش‌هایی از تصویر Landsat را با استفاده از سیاست‌های مختلف هرمی برای یک باند نشان می‌دهد. خط‌مشی هرمی نشان می‌دهد که Earth Engine چگونه نسخه‌های با وضوح پایین‌تر از دارایی را محاسبه می‌کند. درباره نحوه عملکرد Earth Engine با وضوح های متعدد در مقیاس سند بیشتر بیاموزید.

ویرایشگر کد (جاوا اسکریپت)

// 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'
  }
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 بهینه سازی شده ابری ، یک جاوا اسکریپت تحت اللفظی برای formatOptions ارسال کنید که در آن کلید cloudOptimized روی true تنظیم شده است. ادامه مثال قبل:

ویرایشگر کد (جاوا اسکریپت)

// 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
  }
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 های بهینه سازی شده در فضای ابری را می توان از فضای ذخیره سازی ابری در یک Image بارگیری مجدد کرد. برای جزئیات به اسناد نمای کلی Image مراجعه کنید.

نوداده

مقدار Nodata GeoTIFF را با استفاده از کلید noData در پارامتر formatOptions تعیین کنید. به عنوان مثال:

ویرایشگر کد (جاوا اسکریپت)

// 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,
  }
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 باند اول بررسی کنید. همچنین می‌توانید PixelType تصویر را با فرستادن داده‌ها به یک نوع خاص با استفاده از روش‌های تصویر toShort() یا toInt() تنظیم کنید.

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، تصاویر تجسمی ایجاد کنید همانطور که در تصاویر Visualization و بخش های Compositing و Mosaicking نشان داده شده است. از آنجایی که ویرایشگر کد از CRS 'EPSG:3857' استفاده می‌کند، یک CRS از 'EPSG:3857' را در صادرات مشخص کنید تا تصویری در همان تصویری که در نقشه ویرایشگر کد نمایش داده شده است، دریافت کنید. برای جزئیات در مورد تعیین وضوح و سیستم مختصات خروجی، به بخش پیکربندی صادرات تصویر مراجعه کنید.

،

می توانید تصاویر را از Earth Engine در قالب GeoTIFF یا TFRecord صادر کنید. برای گزینه های خروجی بیشتر به پارامترهای پیکربندی مراجعه کنید.

راه اندازی مثال

با تعریف داده های تصویری که صادر می شود شروع کنید:

ویرایشگر کد (جاوا اسکریپت)

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

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 تعیین می شود. نمونه هایی از ماتریس های افین را ببینید.

ویرایشگر کد (جاوا اسکریپت)

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

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 برای پر کردن مقادیر xScale و yScale crsTransform استفاده می شود، اما مقادیر xTranslation و yTranslation به گونه ای محاسبه می شوند که اگر بر مقادیر xScale و yScale مربوطه تقسیم شوند، باقیمانده صفر خواهد بود. این پارامترها یک شبکه پیکسلی را مشخص می کنند که مبدأ طرح ریزی در گوشه یک پیکسل است. این قرارداد با پارامترهای ترجمه استفاده شده توسط برخی از ارائه دهندگان داده، که از شبکه‌هایی استفاده می‌کنند که از مبدأ طرح‌ریزی جدا شده‌اند، متفاوت است. به عنوان مثال، تصاویر Landsat ارائه شده توسط USGS از پارامترهای ترجمه استفاده می کنند که با 1/2 پیکسل از مبدأ طرح فاصله دارد (15m offset برای باندهای 30 متری) در حالی که تصاویر Sentinel-2 ارائه شده توسط ESA از پارامترهای ترجمه استفاده می کنند که با مبدأ طرح ریزی هماهنگ هستند. اگر crsTransform مشخص‌شده در یک صادرات با crsTransform تصویر اصلی مطابقت نداشته باشد، پیکسل‌های خروجی مجدداً نمونه‌گیری می‌شوند (به طور پیش‌فرض با استفاده از نزدیک‌ترین همسایه)، که باعث می‌شود تصویر حاصل نسبت به تصویر اصلی جابجا شود.

به طور خلاصه، اگر نیاز دارید پیکسل های تصویر صادر شده را با یک تصویر خاص مطابقت دهید، مطمئن شوید که از پارامترهای crs و crsTransform برای کنترل کامل شبکه استفاده کنید.

به درایو

برای صادرات یک تصویر به حساب Drive خود، از Export.image.toDrive() استفاده کنید. به عنوان مثال، برای صادرات بخش هایی از یک تصویر Landsat، یک منطقه برای صادرات تعریف کنید، سپس Export.image.toDrive() را فراخوانی کنید:

ویرایشگر کد (جاوا اسکریپت)

// 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
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

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

هنگامی که این کد اجرا می شود، یک کار صادراتی در تب وظایف ویرایشگر کد ایجاد می شود. برای شروع روی دکمه Run در کنار کار کلیک کنید. (در مورد Task Manager از قسمت Code Editor بیشتر بیاموزید). تصویر در حساب Drive شما با fileFormat مشخص شده ایجاد می شود.

به فضای ذخیره سازی ابری

برای صادر کردن یک تصویر به سطل فضای ذخیره‌سازی Google Cloud، از Export.image.toCloudStorage() استفاده کنید. برای صادر کردن تصویر Landsat در مثال قبلی به جای Drive به Cloud Storage، از:

ویرایشگر کد (جاوا اسکریپت)

// 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
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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، صادرات را از برگه Tasks شروع کنید. مکان سطل ذخیره‌سازی ابری می‌تواند بر عملکرد و هزینه‌های ذخیره‌سازی تأثیر بگذارد، برای اطلاعات بیشتر به بخش سؤالات متداول در مورد ملاحظات مکان مراجعه کنید.

به دارایی

برای صادر کردن یک تصویر به یک دارایی در پوشه دارایی های Earth Engine خود، از Export.image.toAsset() استفاده کنید. برای مدیریت دارایی‌های Earth Engine یا بررسی میزان استفاده از سهمیه فضای ذخیره‌سازی، از Asset Manager استفاده کنید. مثال زیر صادرات بخش‌هایی از تصویر Landsat را با استفاده از سیاست‌های مختلف هرمی برای یک باند نشان می‌دهد. خط‌مشی هرمی نشان می‌دهد که Earth Engine چگونه نسخه‌های با وضوح پایین‌تر از دارایی را محاسبه می‌کند. درباره نحوه عملکرد Earth Engine با وضوح های متعدد در مقیاس سند بیشتر بیاموزید.

ویرایشگر کد (جاوا اسکریپت)

// 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'
  }
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 بهینه سازی شده ابری ، یک جاوا اسکریپت تحت اللفظی برای formatOptions ارسال کنید که در آن کلید cloudOptimized روی true تنظیم شده است. ادامه مثال قبل:

ویرایشگر کد (جاوا اسکریپت)

// 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
  }
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 های بهینه سازی شده در فضای ابری را می توان از فضای ذخیره سازی ابری در یک Image بارگیری مجدد کرد. برای جزئیات به اسناد نمای کلی Image مراجعه کنید.

نوداده

مقدار Nodata GeoTIFF را با استفاده از کلید noData در پارامتر formatOptions تعیین کنید. به عنوان مثال:

ویرایشگر کد (جاوا اسکریپت)

// 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,
  }
});

راه اندازی پایتون

برای اطلاعات در مورد API پایتون و استفاده از geemap برای توسعه تعاملی به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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 باند اول بررسی کنید. همچنین می‌توانید PixelType تصویر را با فرستادن داده‌ها به یک نوع خاص با استفاده از روش‌های تصویر toShort() یا toInt() تنظیم کنید.

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، تصاویر تجسمی ایجاد کنید همانطور که در تصاویر Visualization و بخش های Compositing و Mosaicking نشان داده شده است. از آنجایی که ویرایشگر کد از CRS 'EPSG:3857' استفاده می‌کند، یک CRS از 'EPSG:3857' را در صادرات مشخص کنید تا تصویری در همان تصویری که در نقشه ویرایشگر کد نمایش داده شده است، دریافت کنید. برای جزئیات در مورد تعیین وضوح و سیستم مختصات خروجی، به بخش پیکربندی صادرات تصویر مراجعه کنید.