इमेज एक्सपोर्ट करना

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

Python सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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

Python सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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 इमेज में, ट्रांसलेशन पैरामीटर का इस्तेमाल किया जाता है. ये पैरामीटर, प्रोजेक्शन के ऑरिजिन (30 मीटर बैंड के लिए 15 मीटर का ऑफ़सेट) से 1/2 पिक्सल ऑफ़सेट होते हैं. वहीं, ESA की ओर से उपलब्ध कराई गई Sentinel-2 इमेज में, ट्रांसलेशन पैरामीटर का इस्तेमाल किया जाता है. ये पैरामीटर, प्रोजेक्शन के ऑरिजिन के साथ अलाइन होते हैं. अगर किसी एक्सपोर्ट में दिया गया crsTransform, मूल इमेज के crsTransform से मेल नहीं खाता है, तो आउटपुट पिक्सल को फिर से सैंपल किया जाएगा. इसके लिए, डिफ़ॉल्ट रूप से नेियरेस्ट नेबर का इस्तेमाल किया जाएगा. इससे, नतीजे वाली इमेज, मूल इमेज के मुकाबले शिफ़्ट हो जाएगी.

खास तौर पर, अगर आपको एक्सपोर्ट की गई इमेज के पिक्सल को किसी खास इमेज से मैच करना है, तो ग्रिड को पूरी तरह कंट्रोल करने के लिए, crs और crsTransform पैरामीटर का इस्तेमाल करना न भूलें.

Drive में

किसी इमेज को अपने Drive खाते में एक्सपोर्ट करने के लिए, 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
});

Python सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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

इस कोड को चलाने पर, कोड एडिटर के टास्क टैब में एक एक्सपोर्ट टास्क बन जाएगा. टास्क शुरू करने के लिए, उसके बगल में मौजूद चालू करें बटन पर क्लिक करें. कोड एडिटर सेक्शन में जाकर, टास्क मैनेजर के बारे में ज़्यादा जानें. इमेज, आपके Drive खाते में तय किए गए fileFormat के साथ बन जाएगी.

को Cloud Storage में अपलोड किया जा सकता है

किसी इमेज को Google Cloud Storage बकेट में एक्सपोर्ट करने के लिए, Export.image.toCloudStorage() का इस्तेमाल करें. पिछले उदाहरण में दी गई Landsat इमेज को Drive के बजाय 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
});

Python सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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 में एक्सपोर्ट करने की तरह ही, Tasks टैब से एक्सपोर्ट शुरू करें. क्लाउड स्टोरेज बकेट की जगह की जानकारी से, परफ़ॉर्मेंस और स्टोरेज के शुल्क पर असर पड़ सकता है. ज़्यादा जानकारी के लिए, जगह से जुड़ी बातों पर अक्सर पूछे जाने वाले सवाल देखें.

ऐसेट में

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

Python सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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 के तौर पर शामिल किया गया है. एक्सपोर्ट की गई इमेज, तय किए गए स्केल पर पिक्सल के साथ तय किए गए इलाके को कवर करेगी. अगर साफ़ तौर पर नहीं बताया गया है, तो आउटपुट का सीआरएस, एक्सपोर्ट की जाने वाली इमेज के पहले बैंड से लिया जाएगा.

एक्सपोर्ट की गई इमेज के dimensions, crs, और/या crsTransform की जानकारी भी दी जा सकती है. crs और crsTransform के बारे में ज़्यादा जानकारी के लिए, ग्लॉसरी देखें. उदाहरण के लिए, किसी दूसरे डेटा सोर्स के साथ सटीक रूप से अलाइन किए गए पिक्सल का ब्लॉक पाने के लिए, dimensions, crs, और crsTransform की वैल्यू दें. किसी इलाके को कवर करने वाले, पहले से तय किए गए साइज़ (उदाहरण के लिए, 256x256 थंबनेल इमेज) के पिक्सल का ब्लॉक पाने के लिए, dimensions और region की वैल्यू दें.

अगर डेस्टिनेशन toAsset() नहीं है, तो fileFormat पैरामीटर (डिफ़ॉल्ट रूप से 'GeoTIFF') की मदद से इमेज का आउटपुट फ़ॉर्मैट तय किया जा सकता है.

formatOptions पैरामीटर

कॉन्फ़िगरेशन के अन्य विकल्प, formatOptions पैरामीटर के साथ सेट किए जाते हैं. यह एक डिक्शनरी होनी चाहिए, जिसमें हर fileFormat के लिए, फ़ॉर्मैट के अन्य विकल्पों को शामिल किया गया हो. इस बारे में नीचे बताया गया है.

GeoTIFF

क्लाउड के लिए ऑप्टिमाइज़ किया गया GeoTIFF

क्लाउड के लिए ऑप्टिमाइज़ की गई GeoTIFF एक्सपोर्ट करने के लिए, formatOptions के लिए JavaScript लिटरल पास करें. इसमें cloudOptimized बटन को सही पर सेट करें. पिछले उदाहरण को जारी रखते हुए:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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

formatOptions पैरामीटर में noData बटन का इस्तेमाल करके, GeoTIFF की 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,
  }
});

Python सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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 में एक्सपोर्ट किया जा रहा है, तो N+1 फ़ाइलों के लिए, फ़ाइलों को -00000, -00001,... -0000N से जोड़ा जाएगा. अगर आपको फ़ाइलों पर अनुमान लगाना है और अनुमानित नतीजों को इमेज के तौर पर Earth Engine में फिर से अपलोड करना है, तो यह क्रम बनाए रखना ज़रूरी है. ज़्यादा जानकारी के लिए, इमेज को TFRecord फ़ाइलों के तौर पर अपलोड करना देखें.

इमेज को वैसा ही एक्सपोर्ट करना जैसा वे कोड एडिटर में दिखती हैं

Earth Engine में स्क्रीन पर रेंडर की गई इमेज को एक्सपोर्ट करने के लिए, विज़ुअलाइज़ेशन इमेज और कंपोज़िटिंग और mosaicking सेक्शन में दिखाए गए तरीके से विज़ुअलाइज़ेशन इमेज बनाएं. Code Editor, 'EPSG:3857' सीआरएस का इस्तेमाल करता है. इसलिए, Code Editor के मैप में दिखने वाले प्रोजेक्शन में इमेज पाने के लिए, एक्सपोर्ट में 'EPSG:3857' सीआरएस डालें. आउटपुट के रिज़ॉल्यूशन और कोऑर्डिनेट सिस्टम के बारे में जानकारी पाने के लिए, इमेज एक्सपोर्ट को कॉन्फ़िगर करने के बारे में सेक्शन देखें.