Domande di carattere generale
Ho un problema, mi serve aiuto!
Pubblica una domanda seguendo questa guida, fornendo quante più informazioni possibili (consulta la guida di Stack Overflow su come porre domande efficaci). In genere, questo significa che:
Inviare un link a uno script nell'editor di codice (fai clic sul pulsante "Ottieni link" per ottenerlo)
condividere gli asset necessari per eseguire lo script
Per i task batch non riusciti, segnala l'ID del task non riuscito. Gli ID attività hanno questo aspetto:
4C25GIJBMB52PXTEJTF4JLGL. Sono disponibili nella scheda Task dell'editor di codice. Scopri di più.
Dove posso trovare informazioni sull'architettura di Earth Engine?
Consulta questo articolo: Gorelick et al. 2017.
Esistono tutorial di Earth Engine consigliati non creati da Google?
Consulta le pagine EDU e Risorse di formazione.
Esistono tutorial consigliati sul rilevamento a distanza?
Consulta questo corso senza costi su EE di Ujaval Gandhi, che include un video con un'introduzione al telerilevamento.
Programmazione di Earth Engine
Quali sono alcuni errori di programmazione comuni?
Consulta la guida al debug.
Perché ricevo un errore "… non è una funzione"?
Questo errore si verifica quando Earth Engine non riesce a trovare il metodo chiamato. Controlla le seguenti cause comuni:
Ortografia o sensibilità alle maiuscole: i metodi sono sensibili alle maiuscole. Verifica l'ortografia rispetto al Riferimento API.
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
Cast di tipo mancanti: i valori restituiti da funzioni come .get() sono istanze ee.ComputedObject generiche e devono essere sottoposti a cast esplicito. Consulta Unknown object type casting.
Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)
Combinazione di metodi client e server: assicurati di non utilizzare metodi JavaScript o Python standard (come .push() o .append()) sugli oggetti Earth Engine. Consulta Evita di combinare le funzioni client e server.
Error: list.push(4) or list.append(4) -> Correct: list.add(4)
Metodi non disponibili: se l'oggetto è digitato correttamente e il metodo esiste nella documentazione o ha funzionato in precedenza, ma ora non funziona, segnala un bug.
Perché non posso utilizzare operazioni matematiche di base come ee.Image("image") * 2?
In EE non devi combinare oggetti o operazioni lato server e lato client. Tutte le operazioni sugli oggetti EE vengono eseguite lato server. I calcoli lato client non funzioneranno come previsto. Per maggiori dettagli, consulta questa pagina.
Come faccio a utilizzare i loop for o le istruzioni if/else?
La programmazione di Earth Engine viene eseguita utilizzando un linguaggio funzionale, pertanto i loop e le operazioni condizionali devono essere espressi utilizzando concetti equivalenti come map o filter. Per maggiori dettagli, consulta questa pagina.
Come faccio a mostrare le etichette di testo nella mia immagine o nel mio video?
Non è previsto il supporto integrato per le etichette di testo, ma puoi:
- Utilizza un pacchetto JS di terze parti. Vedi esempio
- Utilizzare un pacchetto Python di terze parti geemap.
- Utilizza QGIS importando le immagini EE utilizzando il plug-in EE QGIS
Posso utilizzare alcune tavolozze dei colori standard?
Utilizza un pacchetto JS di terze parti ee-palettes.
Come faccio a creare il mio sito web che utilizza Earth Engine?
Utilizza le app di Earth Engine per le applicazioni di base. In casi più complessi, puoi creare app App Engine basate su EE.
Come funzionano gli ID mappa?
Gli ID mappa (chiamati mapid nell'API) sono chiavi che consentono ai client di recuperare i riquadri della mappa. Ogni ID è un hash creato fornendo un'espressione di immagine all'endpoint getMapId. Gli ID risultanti sono chiavi che puntano sia all'espressione dell'immagine sia alle credenziali utente che verranno utilizzate per generare i riquadri in una fase successiva.
La richiesta di tile della mappa prevede la specifica della posizione del tile (x, y, zoom) e della mapid (la chiave per l'immagine e le credenziali). Lo stesso ID può essere riutilizzato per caricare più riquadri della mappa. Non esistono limiti al riutilizzo delle chiavi mapid, ma scadono dopo alcune ore. Non pubblichiamo
periodi di tempo specifici relativi alla loro persistenza, ma qualsiasi codice scritto deve
essere resiliente alla scadenza dell'ID.
La creazione di questi ID comporta l'archiviazione di una piccola quantità di dati e la convalida delle credenziali, pertanto è meglio riutilizzarli il più a lungo possibile. Non esiste una quota API associata specificamente all'endpoint getMapId, ma qualsiasi workflow che prevede la creazione di oggetti mapid a una frequenza simile a quella di recupero dei riquadri probabilmente sta facendo qualcosa di sbagliato. Earth Engine non dispone di un endpoint API per rimuovere, elencare o gestire questi ID, poiché si tratta di risorse temporanee.
Perché ee.Algorithms.If() stampa sia il caso vero che quello falso?
function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());
L'algoritmo If() funziona come qualsiasi altro algoritmo su Earth Engine, in quanto tutti i suoi argomenti devono essere valutati prima che l'algoritmo stesso possa essere eseguito.
L'algoritmo riceve i risultati trueCase e falseCase, quindi sceglie e restituisce un risultato in base all'argomento condition, ma entrambi i percorsi dovevano essere eseguiti affinché questi valori venissero passati all'algoritmo.
Viene visualizzato l'errore "Le dimensioni del payload della richiesta superano il limite"
Stai cercando di inviare a Earth Engine una richiesta molto grande. In genere, questo accade quando il codice utilizza molti cicli "for" lato client o costruisce una FeatureCollection da molti oggetti geometrici. In quest'ultimo caso, anziché creare queste geometrie nello script, genera un file CSV che le contenga e caricalo in un asset tabella.
Qual è la differenza tra ee.Image.clip() e ee.Filter.bounds()?
Consulta questo thread di GIS Stack Exchange.
La funzione ee.Image.clip() maschera i pixel che non intersecano un determinato ee.Geometry o ee.Feature, rendendoli trasparenti nelle visualizzazioni ed escludendoli dai calcoli. Puoi concettualizzarlo come il ritaglio di pixel da un'immagine.
La funzione ee.Filter.bounds() filtra gli oggetti ee.Image da un ee.ImageCollection in base all'intersezione dell'immagine con un ee.Geometry o un ee.Feature. Viene utilizzato per limitare l'ambito di un'analisi solo alle immagini che intersecano una determinata regione, il che aiuta a ottimizzare le espressioni.
Come convertire i pixel delle immagini in raccolte di elementi, con un elemento per pixel?
Utilizza la funzione ee.Image.sample(). Consulta gli esempi di utilizzo nella pagina di riferimento dell'API della funzione.
Qual è la differenza tra ee.ImageCollection.merge() e ee.ImageCollection.combine()?
La funzione ee.ImageCollection.merge() unisce tutte le immagini di due raccolte in un'unica raccolta, indipendentemente dal fatto che le rispettive immagini abbiano bande, metadati, CRS o scala coincidenti. È l'unione di due raccolte. Il metodo combine() combina le bande delle immagini corrispondenti di due raccolte in un'unica raccolta. Le immagini corrispondenti condividono lo stesso ID (proprietà system:index). Si tratta di un inner join di due raccolte basate sull'ID immagine, in cui vengono combinate le bande delle immagini corrispondenti. Per le immagini corrispondenti, le bande dell'immagine secondaria vengono aggiunte all'immagine principale (la sovrascrittura è facoltativa). Se non esistono immagini corrispondenti, viene restituita una raccolta vuota.
Come faccio a filtrare le raccolte di immagini in base a più intervalli di date?
Consulta questo thread di GIS Stack Exchange.
merge() più raccolte insieme o utilizza ee.Filter.or().
Come si crea un riquadro di delimitazione attorno a un punto specifico?
// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);
// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
var box = feature.buffer(30000).bounds();
return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);
Data Catalog
Puoi aggiungere il set di dati X?
Segnala un bug relativo alla richiesta di un set di dati seguendo la guida alla richiesta di un set di dati.
Puoi anche caricare i dati nella cartella home di Earth Engine. Consulta Importazione di dati raster e Importazione di dati tabulari.
È disponibile una nuova versione di un set di dati esistente
Segnala un bug del set di dati seguendo la guida alla richiesta di set di dati e indica che stai richiedendo un aggiornamento del set di dati.
Un set di dati esistente non viene aggiornato o mancano degli asset
Prima di segnalare un problema, verifica, se possibile, che gli asset selezionati esistano effettivamente sul sito del fornitore del set di dati. Per maggiori dettagli, consulta la guida sulle immagini mancanti.
Se stai cercando un asset filtrando un ImageCollection, assicurati che i filtri non siano troppo restrittivi.
In particolare, tieni presente che:
I dati Sentinel-2 SR (livello 2) non sono stati prodotti dall'ESA per le scene di livello 1 precedenti.
Landsat non ha una copertura mondiale prima del 2000.
Un set di dati esistente contiene valori errati
Pubblica un post nel forum degli sviluppatori. Includi uno script che ingrandisca l'asset alla risoluzione originale e mostri chiaramente quali valori sono errati. Spiega dove hai osservato esattamente il valore alternativo.
Dove altro posso chiedere informazioni sui set di dati?
Per domande sui set di dati della NASA, consulta il forum NASA Earth Data.
Per domande sulle toolbox che operano sui set di dati Copernicus, consulta i forum S1, S2 e S3.
Quanto è grande il catalogo EE?
A ottobre 2023, il catalogo contiene oltre 1000 set di dati. Le sue dimensioni su disco superano i 90 petabyte (tenendo conto della compressione lossless).
Con quale frequenza vengono aggiornati i dati in EE?
In genere, tutti i set di dati in corso vengono aggiornati almeno una volta al giorno (anche se non tutti i set di dati di questo tipo contengono nuovi dati ogni giorno). Alcuni set di dati vengono aggiornati più volte al giorno. Tuttavia, non esiste una policy che garantisca la presenza degli asset più recenti nel catalogo.
Come faccio a visualizzare i contenuti del catalogo EE in modo programmatico?
L'elenco dei set di dati viene esportato nel formato STAC in un bucket Google Cloud Storage gs://earthengine-stac.
Il file di ingresso è catalog.json.
Posso utilizzare i dati o le immagini di Google Maps per l'analisi?
Google non concede in licenza né vende i dati della mappa base per l'analisi.
Come faccio a trovare la data di importazione di un asset?
La proprietà dell'asset 'system:version' è il timestamp di importazione, formattato come microsecondi dall'epoca di Unix. Ecco un esempio che converte il timestamp di importazione di un'immagine Landsat in un formato leggibile.
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));
Il catalogo di Earth Engine contiene metadati JSON-LD?
Sì, i metadati JSON-LD sono incorporati nelle pagine HTML del catalogo. Ad esempio, la pagina Sentinel-2 contiene il seguente blocco:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Earth Engine Data Catalog",
"item": "https://developers.google.com/earth-engine/datasets"
},{
"@type": "ListItem",
"position": 2,
"name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
"item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
}]
}
</script>
Landsat
Come viene implementato l'algoritmo simpleComposite?
L'implementazione lato server è equivalente a questo codice JavaScript.
Come faccio a creare compositi senza nuvole dai dati di riflettanza della superficie di Landsat?
I dati Landsat di livello 2 (riflettanza della superficie) hanno diverse bande di qualità che possono essere utilizzate per mascherare le nuvole e altri artefatti indesiderati delle immagini. Un esempio di utilizzo di queste bande per elaborare le immagini Landsat 8 SR e creare un composito mediano senza nuvole è fornito in questo post di GIS Stack Exchange. La stessa procedura viene utilizzata per creare un composito senza nuvole da utilizzare negli esempi di classificazione supervisionata della Guida per gli sviluppatori.
È necessaria l'armonizzazione della riflettanza della superficie Landsat tra sensori?
Roy et al., 2016 includeva un'analisi delle differenze di riflettanza tra la riflettanza TOA e quella della superficie di Landsat 7-8. Hanno pubblicato i coefficienti OLS e RMA in modo che i lettori potessero trasformare i valori di riflettanza dei dati di un sensore in un altro. La riga finale dell'articolo afferma: "Sebbene le differenze tra i sensori siano piuttosto ridotte, potrebbero avere un impatto significativo a seconda dell'applicazione dei dati Landsat". Tuttavia, questa analisi si basava su dati precedenti alla raccolta.
I miglioramenti apportati durante la rielaborazione della Raccolta 1 e della Raccolta 2 potrebbero influenzare la relazione tra i sensori, ma per quanto ne sappiamo, non sono state eseguite analisi simili a quelle di Roy et al. (2016) per i dati della Raccolta 1 o della Raccolta 2. Nonostante non sia stata eseguita un'analisi formale, sembra esserci un consenso generale tra gli utenti influenti di Landsat sul fatto che non sia necessaria alcuna correzione per i dati di Collection 2, Level 2 (riflettanza della superficie). Ad esempio, in risposta a una domanda sulla necessità di armonizzare la Collection 2, Level 2, Mike Wulder del Landsat Science Team ha osservato che, a seconda della natura dell'applicazione di interesse (tra cui la mappatura della copertura del suolo e il rilevamento dei cambiamenti), i prodotti di riflettanza della superficie della Collection 2 sono altamente adatti e affidabili, senza necessità di regolazione tra sensori.
Come posso mascherare le nuvole e le ombre delle nuvole nelle immagini MSS?
Il modulo msslib di terze parti per l'editor di codice JavaScript include un'implementazione dell'algoritmo MSScvm, oltre ad altre funzioni utili per l'esplorazione e la preparazione dei dati MSS.
Gestione dei dati
A chi appartengono i dati che carico?
In base ai Termini di servizio di Earth Engine, i clienti sono proprietari dei dati che caricano su Earth Engine.
Non riesco a caricare i dati.
Controlla lo stato dell'attività di caricamento nel riquadro Tasks nell'angolo in alto a destra dell'editor di codice. Puoi anche visualizzare la pagina dedicata alle attività.
Se non è presente alcuna attività, probabilmente hai provato a caricare il file tramite l'editor di codice, ma a causa di un problema di rete il caricamento del file non è mai stato completato, quindi l'attività non è mai stata creata. Prova a utilizzare un altro browser o un altro computer.
Se un'attività non è riuscita, esamina l'errore visualizzato. Se non viene visualizzato un messaggio di errore specifico, verifica innanzitutto che il file non sia danneggiato eseguendo gdalinfo per i file raster o ogr2ogr per i file vettoriali.
Questi comandi proveranno a leggere tutti i dati dai file di origine e visualizzeranno errori se i file sono danneggiati.
Esempio di chiamata gdalinfo:
gdalinfo -mm -stats -checksum file.tif
Esempio di chiamata ogr2ogr che convertirà in.shp in out.csv:
ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp
Se il file sembra valido, pubblica l'ID attività non riuscita come testo (non come screenshot) nella mailing list degli sviluppatori.
Gli ID attività hanno questo formato: 4C25GIJBMB52PXTEJTF4JLGL. Se possibile, rendi il file di origine leggibile pubblicamente. Se si tratta di un file privato, condividilo solo con earthengine@google.com se vuoi che il team di Earth Engine lo esamini. Se non è possibile condividere il file di origine, fornisci almeno l'output di gdalinfo -mm -stats -checksum.
Se Earth Engine non supporta una determinata proiezione, dovrai riproiettare i dati prima di caricarli utilizzando, ad esempio, gdalwarp.
Come faccio a caricare un file in NetCDF o in un altro formato raster non supportato?
In Earth Engine è possibile caricare solo file GeoTIFF. Altri formati compatibili con GDAL possono essere convertiti in GeoTIFF utilizzando gdal_translate. Esempio:
gdal_translate -co COMPRESS=DEFLATE file.nc file.tif
Tieni presente che alcuni file NetCDF o HDF sono costituiti da più set di dati secondari che possono essere rilevati con gdalinfo. In questo caso, il comando gdal_translate sarà simile al seguente (nota il percorso tra virgolette doppie):
gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif
A volte i file NetCDF non contengono una proiezione riconosciuta da GDAL. In questo caso, dovrai impostare la proiezione e l'estensione spaziale nella riga di comando gdal_translate. Esempio:
gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid
Quali algoritmi di compressione posso utilizzare per i GeoTIFF caricati?
Per il caricamento, i GeoTIFF possono essere compressi con DEFLATE, JPEG, JPEG-XL/JXL, LERC,
LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP o ZSTD. I COG che Earth Engine legge
in loco (con ee.Image.loadGeoTIFF() o come asset basati su COG) possono utilizzare
DEFLATE, JPEG, LZW, PACKBITS, ZSTD o nessuna compressione (consulta
le best practice per i COG).
ZSTD è una buona scelta generale, in quanto è rapido da decomprimere, pur offrendo una buona compressione della maggior parte delle immagini.
Per applicare la compressione ZSTD quando utilizzi gdal_translate, aggiungi queste opzioni. Se i dati hanno valori in virgola mobile, modifica PREDICTOR in 3. Per i file che prevedi di registrare come COG anziché caricarli, consulta la guida alla registrazione dei COG.
gdal_translate in.tif out.tif \
-co BIGTIFF=YES \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
-co COMPRESS=ZSTD \
-co PREDICTOR=2 \
-co ZSTD_LEVEL=16 \
-co INTERLEAVE=BAND \
-co NUM_THREADS=ALL_CPUS
L'importazione dei raster è in corso da giorni e non è ancora terminata.
Utilizzando gdalinfo, controlla se nel file è impostata la seguente opzione GDAL:
INTERLEAVE=PIXEL. Per i file con questa opzione e molte bande, l'importazione potrebbe non terminare mai perché il layout di questi file rende le letture molto lente.
Prova a convertire questi file nel layout band-interleaved prima di caricarli:
gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif
Questo vale per l'importazione; gli asset supportati da COG supportano entrambi gli interleave (consulta File a banda singola e file multibanda).
I raster caricati non corrispondono alla mappa base.
Se i dati sono leggermente sfalsati rispetto alla mappa base, probabilmente la proiezione ha un datum errato (ipotesi sulla forma della Terra).
Questo accade più spesso con la proiezione sinusoidale, che non può essere completamente codificata nei metadati GDAL. Quando sai quale dovrebbe essere la proiezione di destinazione (ad es. SR-ORG:6974 per i file che utilizzano la proiezione sinusoidale MODIS), imposta il flag --crs durante il caricamento da riga di comando o il campo crs del manifest di caricamento.
Se i dati appaiono gravemente distorti o nella posizione completamente sbagliata, è probabile che la proiezione o la trasformazione affine siano errate.
Il mio raster viene visualizzato solo nell'emisfero orientale.
Probabilmente hai caricato un raster globale che copre l'intervallo di longitudine [0, 360]. Tuttavia, Earth Engine richiede che i raster siano compresi nell'intervallo [-180, 180]. Scambia le metà sinistra e destra del raster prima dell'importazione. Consulta questi suggerimenti di GIS Stack Exchange.
Perché l'immagine di classificazione importata sembra maculata?
Probabilmente hai utilizzato la policy di piramidazione MEAN predefinita.
Per le immagini di classificazione, deve essere utilizzata la policy di piramidizzazione MODE. Per le immagini QA/bitmask, deve essere utilizzata la policy di piramidizzazione SAMPLE.
Viene visualizzato il seguente errore: No data value -128.0 cannot be applied to band #0 of type Short<0, 255>.
GDAL non può trattare le bande a singolo byte come contenenti numeri interi con segno, quindi legge queste bande come numeri interi senza segno. Questo entrerebbe in conflitto con i valori negativi di assenza di dati.
Se i valori sono effettivamente numeri interi con segno, utilizza il caricamento del manifest e aggiungi quanto segue alla sezione del tileset contenente il file: data_type: "INT8"
Se i valori sono numeri interi senza segno, il file ha un valore nodata non valido. Puoi
eseguire l'override al momento del caricamento con il valore dei dati corretto (o un valore che non si verifica mai,
se esiste). Puoi anche utilizzare gdal_translate -a_nodata per modificare il valore nodata o gdal_edit.py -unsetnodata per rimuoverlo.
Come faccio a caricare un file in formato GeoJSON o in un altro formato vettoriale non supportato?
Utilizza ogr2ogr per tradurre i formati compatibili con OGR in CSV o SHP. Esempio:
or2ogr -f "ESRI Shapefile" file.shp file.kml
Tieni presente che nei caricamenti CSV la colonna della geometria può contenere GeoJSON.
Voglio caricare i dati utilizzando Python o caricare molti file contemporaneamente.
Utilizza il caricamento da riga di comando. Questi caricamenti richiedono che i file di origine vengano prima inseriti in un bucket GCS (Google Cloud Storage). L'utilizzo di GCS non comporta costi se rimani entro i limiti del Livello senza costi. Consulta la pagina dei prezzi.
Voglio caricare un mosaico raster di grandi dimensioni suddiviso in molti riquadri.
Se i file hanno tutti la stessa proiezione e la stessa dimensione dei pixel, caricali insieme nello stesso asset: verranno uniti automaticamente.
Se i file hanno proiezioni o dimensioni dei pixel diverse, non possono essere uniti in un unico asset raster. Carica invece ogni tile come asset separato nella stessa ImageCollection che può essere unita utilizzando ImageCollection.mosaic()
Sto cercando di caricare un mosaico e ricevo errori relativi a riquadri non corrispondenti.
I riquadri per i mosaici raster di Earth Engine devono avere la stessa proiezione e le stesse dimensioni dei pixel. Inoltre, i riquadri devono essere allineati esattamente ai limiti dei pixel.
Sto tentando di caricare un file da un bucket GCS, ma Earth Engine non riesce a trovarlo.
Potresti aver utilizzato Account Google diversi per il caricamento su GCS e per la connessione a Earth Engine. Assicurati che il file GCS sia leggibile dall'account che utilizzi per connetterti a Earth Engine. Se l'accesso multiplo del browser crea confusione, connettiti a Earth Engine in una finestra di navigazione in incognito.
Voglio esportare molti asset contemporaneamente.
Devi esportare ogni immagine separatamente.
Voglio spostare o eliminare un Folder o un ImageCollection con un unico comando.
earthengine rm -r elimina una cartella o una raccolta e tutti i relativi contenuti, ma un asset alla volta, quindi una raccolta di grandi dimensioni può richiedere ore. Per velocizzare l'operazione, elimina gli elementi secondari in parallelo da uno script, quindi elimina l'elemento principale (consulta Utilizzo di raccolte di grandi dimensioni). Lo stesso approccio funziona per qualsiasi raccolta o cartella piatta. Una cartella che contiene altre cartelle o raccolte deve essere svuotata dal basso verso l'alto, poiché un contenitore non può essere eliminato finché non è vuoto. Per spostarti, utilizza
mv nello stesso modo.
Voglio accedere direttamente ai dati di Earth Engine dall'esterno di EE.
QGIS dispone di un plug-in Earth Engine.
GDAL ha un driver Earth Engine.
Altri sistemi possono utilizzare l'API REST di EE.
Vorrei aggiornare una parte del mio asset Earth Engine senza doverlo importare di nuovo completamente.
Non è possibile aggiornare i dati raster o vettoriali caricati in EE. È possibile aggiornare solo le proprietà dei metadati degli asset. L'eccezione riguarda gli asset supportati da COG, che puoi indirizzare a un file Cloud Storage aggiornato registrandoli nuovamente con la sovrascrittura abilitata.
Sto perdendo l'accesso al mio account. Cosa devo fare con i miei asset?
Se le policy dell'account originale consentono il trasferimento dei dati, condividi le tue risorse con un altro account, quindi copiale in modo che siano di proprietà del nuovo account. Utilizza l'utilità di copia da riga di comando se sono presenti molti asset da spostare.
Se un account viene eliminato, gli asset di sua proprietà non sono più accessibili.
L'immagine esportata si trova nella posizione sbagliata.
Per alcune proiezioni, come quella sinusoidale o conica, a volte i file GeoTIFF non possono memorizzare tutti i parametri di proiezione necessari. In questo modo, il file esportato viene visualizzato nella posizione sbagliata quando viene visualizzato negli strumenti GIS desktop o reimportato in EE.
Per risolvere il problema, specifica un parametro di esportazione crs che funzioni bene con i file GeoTIFF, ad esempio utilizza il codice EPSG per la zona UTM contenente la tua area di interesse.
Gli asset di raccolta di elementi esportati non conservano le proprietà che ho impostato.
Nessuna funzione Export.table.* conserva le proprietà a livello di tabella nell'output.
Molti formati di output (ad es. CSV, GeoJSON) non supportano questi metadati. La funzione Export.table.toAsset potrebbe supportare le proprietà a livello di tabella, ma al momento non lo fa.
Le tabelle esportate su Drive in formato CSV vengono convertite nel formato XLSX.
A seconda delle impostazioni di Google Drive, le tabelle CSV esportate da Earth Engine possono essere convertite in file XLSX con effetti indesiderati, come le conversioni dei tipi di dati. Segui questi passaggi per modificare il comportamento per le esportazioni successive.
- In Google Drive sul web, fai clic sull'icona a forma di ingranaggio Impostazioni in alto a destra.
- Fai clic su Impostazioni.
- Scorri fino a "Converti file caricati nel formato dell'editor di Documenti Google" e deseleziona l'opzione.
GeoTIFF ottimizzati per il cloud (COG)
Per informazioni di base, consulta la panoramica di COG e la guida alla registrazione di COG.
Ho condiviso un asset basato su COG, ma i miei collaboratori ricevono un errore di autorizzazione.
Un asset basato su COG è un puntatore ai file nel tuo bucket Cloud Storage, quindi i collaboratori devono disporre dell'accesso in lettura sia all'asset Earth Engine sia al bucket. Nel bucket, concedi i ruoli Storage Object Viewer e Storage Bucket Viewer. Un errore di autorizzazione su un asset che altrimenti possono visualizzare di solito significa che manca uno dei due ruoli. Consulta la sezione Configura le autorizzazioni.
Quale località del bucket Cloud Storage devo utilizzare per archiviare gli asset COG?
Sono supportate solo alcune località degli Stati Uniti ed Earth Engine rifiuta le richieste di registrazione e lettura per i bucket in qualsiasi altra località. Consulta le località dei bucket supportate.
Ho sostituito un file COG in Cloud Storage. Perché l'asset non viene caricato o mostra ancora i dati precedenti?
Quando registri un COG, Earth Engine blocca la generazione (versione) dell'oggetto del file, quindi la sovrascrittura del file non aggiorna l'asset. Registra nuovamente l'asset con lo stesso nome e con la sovrascrittura abilitata; non è necessario eliminarlo prima. Consulta Aggiornamento, sostituzione ed eliminazione di asset supportati da COG.
Come faccio a sapere a quale versione di un file punta il mio asset basato su COG?
I metadati della risorsa (ee.data.getAsset()) mostrano la generazione bloccata come suffisso nell'URI del file. Consulta Generazioni di oggetti.
Cosa succede se elimino un file COG in Cloud Storage, ma non l'asset Earth Engine, o viceversa?
Sono indipendenti. L'eliminazione dell'asset Earth Engine non influisce sui file in Cloud Storage, mentre l'eliminazione del file lascia l'asset invariato, ma normalmente rende i suoi pixel illeggibili. Consulta Cicli di vita indipendenti.
Qual è il modo più rapido per eliminare o sostituire un ImageCollection di grandi dimensioni supportato da COG?
Non esiste un'eliminazione batch o ricorsiva nell'API Earth Engine e
earthengine rm -r elimina un asset alla volta. Se stai sostituendo le immagini, registrale nuovamente con l'opzione di sovrascrittura abilitata anziché eliminarle. Se le stai eliminando, parallelizza l'operazione da uno script. Consulta la sezione Utilizzo di raccolte di grandi dimensioni per l'approccio e uno script.
Perché la mia registrazione COG non viene visualizzata nella scheda Attività?
La registrazione di un COG è una chiamata API sincrona che indicizza solo i metadati del file, non un job di importazione batch, quindi non crea un'attività. L'asset è disponibile nella scheda Asset non appena la chiamata viene restituita. Consulta la sezione Invia la richiesta di registrazione.
Posso combinare più file COG in un unico asset di Earth Engine?
Solo quando ogni file contiene bande diverse della stessa scena: elenca ogni file come tileset separato nel manifest e mappa le bande ai tileset. Non puoi unire in un mosaico i file adiacenti nello spazio in un unico asset basato su COG; registra ogni file come immagine a sé stante in un ee.ImageCollection e chiama mosaic(). Consulta le limitazioni del file manifest.
Quali schemi di compressione, dimensioni dei riquadri e tipi di pixel possono utilizzare gli asset basati su COG?
Consulta le best practice per la preparazione di COG esterni per gli schemi di compressione, le dimensioni dei riquadri e i tipi di dati dei pixel supportati. I file in formati di compressione che Earth Engine non può leggere direttamente come COG possono comunque essere caricati come asset standard.
Viene visualizzato l'errore "Impossibile leggere i metadati del file TIFF nei primi 10.000.000 di byte".
Earth Engine legge solo l'inizio di un file durante il caricamento o la registrazione; le immagini di grandi dimensioni con molti riquadri e i file troncati superano questo limite. Consulta la sezione Scelta delle dimensioni dei file per conoscere il limite e come rispettarlo.
In che modo ee.Image.loadGeoTIFF() differisce da una risorsa registrata quando il file cambia?
ee.Image.loadGeoTIFF() legge la versione corrente del file per ogni richiesta di calcolo o di riquadro della mappa, quindi rileva le sostituzioni (in modo non uniforme su una mappa, perché i riquadri della mappa visualizzati rimangono memorizzati nella cache). Un asset registrato fissa sempre la generazione con cui è stato registrato e deve essere registrato nuovamente per visualizzare un nuovo file, ma in cambio il suo footprint e i suoi metadati vengono indicizzati, il che lo rende utilizzabile in raccolte di grandi dimensioni. Consulta la sezione sulla lettura dei COG da Cloud Storage.
Editor di codice
Non riesco ad accedere all'editor di codice perché mi viene chiesto di utilizzare l'account sbagliato.
Esci, seleziona l'account registrato per utilizzare Earth Engine nella pagina "Scegli un account", quindi seleziona di nuovo lo stesso account nella seconda pagina "Scegli un account per continuare con l'editor di codice di Earth Engine" (la dicitura esatta potrebbe essere diversa).
Voglio fare uno screenshot di una mappa globale, ma non mi piace la proiezione Web Mercator.
La proiezione della mappa utilizzata nell'editor di codice è
Web Mercator
("EPSG:3857"). Ingrandisce le dimensioni degli oggetti lontani dall'equatore, facendo apparire le regioni ad alta latitudine molto più grandi di quanto non siano in realtà rispetto alle regioni vicine all'equatore. Non puoi modificare la proiezione del canvas della mappa dell'editor di codice, ma puoi "disegnare" un'immagine nella proiezione che preferisci sul canvas Web Mercator utilizzando il metodo ee.Image.changeProj.
Consulta la pagina di riferimento API del metodo per un esempio di visualizzazione di un DEM globale sulla mappa dell'editor di codice nella proiezione di Robinson.
Tieni presente che questa tecnica deve essere utilizzata solo a scopo di visualizzazione, poiché l'editor di codice e gli strumenti di disegno dell'editor di codice continuano a funzionare in Web Mercator.
Il mio script non viene salvato (Script error: Unknown commit).
Se ricevi un messaggio Script error: Unknown commit quando salvi uno script,
è probabile che il repository in cui stai salvando non sia sincronizzato.
La causa di questo stato è variabile e difficile da identificare. Per risolvere il problema, prova ad aggiornare l'elenco degli script utilizzando il pulsante nell'angolo in alto a destra della scheda Script. Se il problema persiste, prova a creare un nuovo repository dal pulsante Nuovo nella scheda Script e a salvare lo script lì (potresti dover spostare gli script nel nuovo repository dal repository non sincronizzato).
Perché visualizzo errori 400 ripetuti nell'editor di codice?
Se nell'editor di codice vengono visualizzati errori 400 ripetuti, vai alla pagina https://myaccount.google.com/connections, trova "Editor di codice di Earth Engine" nell'elenco di app e servizi, selezionalo, quindi seleziona "Elimina tutti i collegamenti con l'editor di codice di Earth Engine" e conferma. Quindi apri l'editor di codice ed esegui nuovamente l'autenticazione.
Come faccio a recuperare script e cartelle eliminati?
Se elimini accidentalmente uno script o una cartella all'interno di un repository esistente, la cronologia completa dei commit viene conservata nei log Git sui nostri server. Puoi ripristinare gli script o le cartelle eliminati clonando il repository localmente utilizzando gli strumenti a riga di comando Git standard.
Tuttavia, l'eliminazione di un intero repository (users/username/repository) rimuove definitivamente il repository e la relativa cronologia dei commit da earthengine.googlesource.com e non può essere annullata o recuperata.
Per istruzioni passo passo su come generare le credenziali Git, clonare il repository e ripristinare file o cartelle eliminati, consulta la guida Recupero degli script e guida alla migrazione del repository.
Come faccio a rinominare la directory principale del mio repository di script?
La directory root degli script (users/username) è associata alla registrazione originale dell'account Earth Engine. Non può essere rinominato direttamente nel backend, perché ciò interromperebbe gli script esterni o i progetti dei collaboratori che importano il codice modulare utilizzando il percorso require('users/username/repository:...').
Se hai bisogno di un nuovo spazio dei nomi, la soluzione alternativa supportata è eseguire la migrazione del tuo lavoro in un nuovo account:
- Registra un nuovo account Earth Engine utilizzando la tua nuova Google Identity (che genera una directory root
users/new_usernamepulita). - Segui le istruzioni per la migrazione del repository per clonare il vecchio repository ed eseguire il push della cronologia completa nel nuovo repository vuoto.
Considerazioni importanti:
- Moduli pubblici: se hai moduli pubblici su cui fanno affidamento altri utenti, ti consigliamo vivamente di mantenere attivi il tuo vecchio account e il repository per non interrompere i loro flussi di lavoro.
- Script privati: se i tuoi script sono completamente privati, puoi aggiornare le istruzioni di importazione
require()in modo che facciano riferimento al nuovo percorso del repository, quindi eliminare in sicurezza i vecchi repository.