ee.Image.getDownloadURL

Uzyskaj adres URL pobierania małych fragmentów danych obrazu w formacie GeoTIFF lub NumPy. Maksymalny rozmiar żądania to 32 MB, a maksymalny wymiar siatki to 10 000.

W przypadku formatów wizualizacji RGB PNG i JPG użyj funkcji getThumbURL.

Zwraca adres URL pobierania lub wartość undefined, jeśli określono wywołanie zwrotne.

WykorzystanieZwroty
Image.getDownloadURL(params, callback)Object|String
ArgumentTypSzczegóły
to: imageObrazInstancja Image.
paramsObiektObiekt zawierający opcje pobierania z tymi możliwymi wartościami:
name:  nazwę podstawową do tworzenia nazw plików; Ma zastosowanie tylko wtedy, gdy format to „ZIPPED_GEO_TIFF” (domyślny) lub filePerBand ma wartość true. Domyślnie jest to identyfikator obrazu (lub „download” w przypadku obrazów obliczonych), gdy format to „ZIPPED_GEO_TIFF” lub gdy parametr filePerBand ma wartość true. W innych przypadkach generowany jest losowy ciąg znaków. Nazwy pasm są dołączane, gdy parametr filePerBand ma wartość true.
bands:  opis pasm do pobrania; Musi to być tablica nazw pasm lub tablica słowników, z których każdy zawiera te klucze (parametry opcjonalne mają zastosowanie tylko wtedy, gdy filePerBand ma wartość true):
  • id:  nazwa zespołu, ciąg znaków, wymagana.
  • crs:  opcjonalny ciąg CRS określający projekcję pasma.
  • crs_transform: opcjonalna tablica 6 liczb określająca transformację afiniczną z określonego układu CRS w kolejności wierszowej: [xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]
  • dimensions:  opcjonalna tablica 2 liczb całkowitych określających szerokość i wysokość, do których ma zostać przycięty pasma.
  • scale:  – opcjonalna liczba określająca skalę pasma w metrach; ignorowana, jeśli podano wartości crs i crs_transform.
crs: domyślny ciąg znaków CRS, który będzie używany w przypadku wszystkich pasm, które nie określają go wprost.
crs_transform: domyślne przekształcenie afiniczne, które ma być używane w przypadku wszystkich pasm, które nie określają przekształcenia, w tym samym formacie co crs_transform pasm.
dimensions: domyślne wymiary przycinania obrazu, które będą używane w przypadku wszystkich pasm, które ich nie określają.
scale: domyślna skala do użycia w przypadku wszystkich pasm, które nie określają skali; ignorowana, jeśli określono crscrs_transform.
region: wielokąt określający region do pobrania; ignorowany, jeśli podano wartości crscrs_transform.
filePerBand:  czy wygenerować osobny plik GeoTIFF dla każdego pasma (wartość logiczna). Domyślna wartość to true. Jeśli wartość to false, generowany jest jeden plik GeoTIFF, a wszystkie przekształcenia na poziomie pasma są ignorowane.
format:  format pobierania. Jedna z tych wartości:
  • „ZIPPED_GEO_TIFF” (pliki GeoTIFF spakowane w plik ZIP, domyślnie)
  • „GEO_TIFF” (plik GeoTIFF)
  • „NPY” (binarny format NumPy)
Jeśli format to „GEO_TIFF” lub „NPY”, parametry filePerBand i wszystkie przekształcenia na poziomie pasma zostaną zignorowane. Wczytanie danych wyjściowych NumPy powoduje utworzenie tablicy strukturalnej.
callbackFunkcja (opcjonalnie)opcjonalne wywołanie zwrotne. Jeśli nie zostanie podany, wywołanie zostanie wykonane synchronicznie.

Przykłady

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

print('Single-band GeoTIFF files wrapped in a zip file',
  img.getDownloadURL({
    name: 'single_band',
    bands: ['B3', 'B8', 'B11'],
    region: region
  }));

print('Multi-band GeoTIFF file wrapped in a zip file',
  img.getDownloadURL({
    name: 'multi_band',
    bands: ['B3', 'B8', 'B11'],
    region: region,
    scale: 20,
    filePerBand: false
  }));

print('Band-specific transformations',
  img.getDownloadURL({
    name: 'custom_single_band',
    bands: [
      {id: 'B3', scale: 10},
      {id: 'B8', scale: 10},
      {id: 'B11', scale: 20}
    ],
    region: region
  }));

print('Multi-band GeoTIFF file',
  img.getDownloadURL({
    bands: ['B3', 'B8', 'B11'],
    region: region,
    scale: 20,
    format: 'GEO_TIFF'
  }));

Konfiguracja Pythona

Informacje o interfejsie Python API i używaniu geemap do interaktywnego programowania znajdziesz na stronie Środowisko Python.

import ee
import geemap.core as geemap

Colab (Python)

"""Demonstrates the ee.Image.getDownloadURL 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
url = img.getDownloadUrl({
    'bands': ['B3', 'B8', 'B11'],
    'region': region,
    'scale': 20,
    'format': 'NPY'
})
response = requests.get(url)
data = numpy.load(io.BytesIO(response.content))
print(data)
print(data.dtype)

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

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

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

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