Filtrare una raccolta di immagini

Come illustrato nella sezione Inizia e nella sezione Informazioni sulle raccolte di immagini, Earth Engine fornisce una serie di metodi di utilità per filtrare le raccolte di immagini. Nello specifico, molti casi d'uso comuni sono gestiti da imageCollection.filterDate(), e imageCollection.filterBounds(). Per i filtri generici, utilizza imageCollection.filter() con un ee.Filter come argomento. L'esempio seguente mostra sia i metodi di praticità sia filter() per identificare e rimuovere le immagini con copertura nuvolosa elevata da un ImageCollection.

Editor di codice (JavaScript)

// Load Landsat 8 data, filter by date, month, and bounds.
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
  .filterDate('2015-01-01', '2018-01-01')  // Three years of data
  .filter(ee.Filter.calendarRange(11, 2, 'month'))  // Only Nov-Feb observations
  .filterBounds(ee.Geometry.Point(25.8544, -18.08874));  // Intersecting ROI

// Also filter the collection by the CLOUD_COVER property.
var filtered = collection.filter(ee.Filter.eq('CLOUD_COVER', 0));

// Create two composites to check the effect of filtering by CLOUD_COVER.
var badComposite = collection.mean();
var goodComposite = filtered.mean();

// Display the composites.
Map.setCenter(25.8544, -18.08874, 13);
Map.addLayer(badComposite,
             {bands: ['B3', 'B2', 'B1'], min: 0.05, max: 0.35, gamma: 1.1},
             'Bad composite');
Map.addLayer(goodComposite,
             {bands: ['B3', 'B2', 'B1'], min: 0.05, max: 0.35, gamma: 1.1},
             'Good composite');

Configurazione di Python

Per informazioni sull'API Python e sull'utilizzo di geemap per lo sviluppo interattivo, consulta la pagina Ambiente Python.

import ee
import geemap.core as geemap

Colab (Python)

# Load Landsat 8 data, filter by date, month, and bounds.
collection = (
    ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    # Three years of data
    .filterDate('2015-01-01', '2018-01-01')
    # Only Nov-Feb observations
    .filter(ee.Filter.calendarRange(11, 2, 'month'))
    # Intersecting ROI
    .filterBounds(ee.Geometry.Point(25.8544, -18.08874))
)

# Also filter the collection by the CLOUD_COVER property.
filtered = collection.filter(ee.Filter.eq('CLOUD_COVER', 0))

# Create two composites to check the effect of filtering by CLOUD_COVER.
bad_composite = collection.mean()
good_composite = filtered.mean()

# Display the composites.
m = geemap.Map()
m.set_center(25.8544, -18.08874, 13)
m.add_layer(
    bad_composite,
    {'bands': ['B3', 'B2', 'B1'], 'min': 0.05, 'max': 0.35, 'gamma': 1.1},
    'Bad composite',
)
m.add_layer(
    good_composite,
    {'bands': ['B3', 'B2', 'B1'], 'min': 0.05, 'max': 0.35, 'gamma': 1.1},
    'Good composite',
)
m