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

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

इस कोड को चलाने पर, कोड एडिटर के Tasks टैब में, एक्सपोर्ट करने का टास्क बन जाएगा. टास्क शुरू करने के लिए, उसके बगल में मौजूद चलाएं बटन पर क्लिक करें. (टास्क मैनेजर के बारे में ज़्यादा जानने के लिए, कोड एडिटर सेक्शन पर जाएं). इमेज, आपके 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 में एक्सपोर्ट करने की तरह ही, टास्क टैब से एक्सपोर्ट करना शुरू करें. अगर आपको एक्सपोर्ट की गई फ़ाइलों को Earth Engine में फिर से पढ़ना है, तो बकेट को इस्तेमाल की जा सकने वाली जगह पर होना चाहिए. इसके लिए, ee.Image.loadGeoTIFF() का इस्तेमाल करें या उन्हें सीओजी-बैक्ड ऐसेट के तौर पर रजिस्टर करें.

से ऐसेट

किसी इमेज को अपने 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 की जानकारी दें.

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

formatOptions पैरामीटर

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

GeoTIFF

क्लाउड ऑप्टिमाइज़्ड GeoTIFF (सीओजी)

Cloud Optimized GeoTIFF (COG) को एक्सपोर्ट करने के लिए, formatOptions में cloudOptimized कुंजी को true पर सेट करें. पिछले उदाहरण को जारी रखते हुए:

कोड एडिटर (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()

सीओजी को Cloud Storage से 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 प्रॉपर्टी देखें. इमेज के 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(s) में एक्सपोर्ट करने पर, इमेज को टाइल में बांट दिया जाता है. हर टाइल का फ़ाइल नाम baseFilename-yMin-xMin के फ़ॉर्मैट में होगा. इसमें xMin और yMin, एक्सपोर्ट की गई इमेज के बाउंडिंग बॉक्स में मौजूद हर टाइल के निर्देशांक हैं.

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

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

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