ee.data.getDownloadId

מקבלים מזהה הורדה.

הפונקציה מחזירה מזהה וטוקן של הורדה, או null אם מציינים פונקציית קריאה חוזרת.

שימושהחזרות
ee.data.getDownloadId(params, callback)DownloadId
ארגומנטסוגפרטים
paramsאובייקטאובייקט שמכיל אפשרויות להורדה עם הערכים האפשריים הבאים:
name: שם בסיס לשימוש כשיוצרים שמות של קבצים. המאפיין הזה רלוונטי רק אם הפורמט הוא ZIPPED_GEO_TIFF (ברירת מחדל), ZIPPED_GEO_TIFF_PER_BAND או אם הערך של filePerBand הוא true. ברירת המחדל היא מזהה התמונה (או 'הורדה' לתמונות מחושבות) אם הפורמט הוא ZIPPED_GEO_TIFF,‏ ZIPPED_GEO_TIFF_PER_BAND או אם הערך של filePerBand הוא true. אחרת, נוצר מחרוזת אקראית של תווים. שמות הלהקות מצורפים כשהערך של filePerBand הוא true.
bands: תיאור של הרצועות להורדה. חייב להיות מערך של שמות רצועות או מערך של מילונים, שלכל אחד מהם יש את המפתחות הבאים (פרמטרים אופציונליים חלים רק אם filePerBand הוא true):
  • id: שם הלהקה, מחרוזת, חובה.
  • crs: מחרוזת CRS אופציונלית שמגדירה את הקרנת הפס.
  • crs_transform: מערך אופציונלי של 6 מספרים שמציין טרנספורמציה אפינית ממערכת ה-CRS שצוינה, בסדר שורות: [xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]
  • dimensions: מערך אופציונלי של שני מספרים שלמים שמגדירים את הרוחב והגובה של האזור החתוך של הפס.
  • scale: מספר אופציונלי שמציין את קנה המידה במטרים של הפס. המערכת מתעלמת מהערך הזה אם מציינים את crs ואת crs_transform.
crs: מחרוזת CRS שמוגדרת כברירת מחדל לשימוש בכל התדרים שלא צוינה להם מחרוזת כזו באופן מפורש.
crs_transform: טרנספורמציה אפינית שמוגדרת כברירת מחדל לשימוש בכל הרצועות שלא צוינה להן טרנספורמציה, באותו פורמט כמו crs_transform של הרצועות.
dimensions: מימדי ברירת המחדל לחיתוך תמונות לשימוש בכל הרצועות שלא צוינו בהן מימדים.
scale: קנה מידה שמוגדר כברירת מחדל לשימוש בכל הטווחים שלא צוין להם קנה מידה. המערכת מתעלמת מהערך הזה אם צוינו הערכים crs ו-crs_transform.
region: פוליגון שמציין אזור להורדה. המערכת מתעלמת מהערך הזה אם מציינים את crs ואת crs_transform.
filePerBand: האם ליצור קובץ GeoTIFF נפרד לכל פס (ערך בוליאני). ברירת המחדל היא True. אם הערך הוא False, נוצר קובץ GeoTIFF יחיד והמערכת מתעלמת מכל השינויים ברמת הפס. הערה: המערכת מתעלמת מההגדרה הזו אם הפורמט הוא ZIPPED_GEO_TIFF או ZIPPED_GEO_TIFF_PER_BAND.
format: פורמט ההורדה. אחת מהאפשרויות:
  • ‫ZIPPED_GEO_TIFF (קובץ GeoTIFF עטוף בקובץ ZIP, ברירת מחדל)
  • ‫ZIPPED_GEO_TIFF_PER_BAND (מספר קובצי GeoTIFF עטופים בקובץ ZIP)
  • ‫NPY (פורמט בינארי של NumPy)
אם הערך הוא GEO_TIFF או NPY, המערכת תתעלם מהמאפיין filePerBand ומכל ההמרות ברמת הפס. טעינה של פלט NumPy מובילה למערך מובנה.
הפרמטר id: הוצא משימוש. במקומו צריך להשתמש בפרמטר image.
callbackפונקציה, אופציונליקריאה חוזרת אופציונלית. אם לא מספקים את הערך הזה, השיחה מתבצעת באופן סינכרוני.

דוגמאות

עורך הקוד (JavaScript)

// A Sentinel-2 surface reflectance image.
var img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG');

// A small region within the image.
var region = ee.Geometry.BBox(-122.0859, 37.0436, -122.0626, 37.0586);

var downloadId = ee.data.getDownloadId({
    image: img,
    name: 'single_band',
    bands: ['B3', 'B8', 'B11'],
    region: region
});
print('Single-band GeoTIFF files wrapped in a zip file',
      ee.data.makeDownloadUrl(downloadId));

var downloadId = ee.data.getDownloadId({
  image: img,
  name: 'multi_band',
  bands: ['B3', 'B8', 'B11'],
  region: region,
  scale: 20,
  filePerBand: false
});
print('Multi-band GeoTIFF file wrapped in a zip file',
      ee.data.makeDownloadUrl(downloadId));

var downloadId = ee.data.getDownloadId({
  image: img,
  name: 'custom_single_band',
  bands: [
    {id: 'B3', scale: 10},
    {id: 'B8', scale: 10},
    {id: 'B11', scale: 20}
  ],
  region: region
});
print('Band-specific transformations',
      ee.data.makeDownloadUrl(downloadId));

var downloadId = ee.data.getDownloadId({
  image: img,
  bands: ['B3', 'B8', 'B11'],
  region: region,
  scale: 20,
  format: 'GEO_TIFF'
});
print('Multi-band GeoTIFF file',
      ee.data.makeDownloadUrl(downloadId));

הגדרת Python

מידע על Python API ועל שימוש ב-geemap לפיתוח אינטראקטיבי מופיע בדף Python Environment.

import ee
import geemap.core as geemap

Colab (Python)

"""Demonstrates the ee.data.getDownloadId method."""

import io
import requests
import ee


ee.Authenticate()
ee.Initialize()

# A Sentinel-2 surface reflectance image.
img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')

# A small region within the image.
region = ee.Geometry.BBox(-122.0859, 37.0436, -122.0626, 37.0586)

# Image chunk as a NumPy structured array.
import numpy
download_id = ee.data.getDownloadId({
    'image': img,
    'bands': ['B3', 'B8', 'B11'],
    'region': region,
    'scale': 20,
    'format': 'NPY'
})
response = requests.get(ee.data.makeDownloadUrl(download_id))
data = numpy.load(io.BytesIO(response.content))
print(data)
print(data.dtype)

# Single-band GeoTIFF files wrapped in a zip file.
download_id = ee.data.getDownloadId({
    'image': img,
    'name': 'single_band',
    'bands': ['B3', 'B8', 'B11'],
    'region': region
})
response = requests.get(ee.data.makeDownloadUrl(download_id))
with open('single_band.zip', 'wb') as fd:
  fd.write(response.content)

# Multi-band GeoTIFF file wrapped in a zip file.
download_id = ee.data.getDownloadId({
    'image': img,
    'name': 'multi_band',
    'bands': ['B3', 'B8', 'B11'],
    'region': region,
    'scale': 20,
    'filePerBand': False
})
response = requests.get(ee.data.makeDownloadUrl(download_id))
with open('multi_band.zip', 'wb') as fd:
  fd.write(response.content)

# Band-specific transformations.
download_id = ee.data.getDownloadId({
    'image': img,
    'name': 'custom_single_band',
    'bands': [
        {'id': 'B3', 'scale': 10},
        {'id': 'B8', 'scale': 10},
        {'id': 'B11', 'scale': 20}
    ],
    'region': region
})
response = requests.get(ee.data.makeDownloadUrl(download_id))
with open('custom_single_band.zip', 'wb') as fd:
  fd.write(response.content)

# Multi-band GeoTIFF file.
download_id = ee.data.getDownloadId({
    'image': img,
    'bands': ['B3', 'B8', 'B11'],
    'region': region,
    'scale': 20,
    'format': 'GEO_TIFF'
})
response = requests.get(ee.data.makeDownloadUrl(download_id))
with open('multi_band.tif', 'wb') as fd:
  fd.write(response.content)