Version: [6240] Universal Earth Observation 1.1.11

1.1.11 - Una funzione morta che sarebbe esplosa, e un controllo tarato
sul ramo sbagliato. Il rapporto di sicurezza del repository,
finalmente letto per intero invece che dedotto, dice cinquantasei
segnalazioni: e' il conteggio a tutte le gravita', non solo a quelle
medie e alte. Il validatore ha due modi di lavorare e usa il piu'
severo; la verifica che avevo scritto interrogava l'altro, e di quelle
cinquantasei non ne vedeva nessuna. Ora usa il conteggio completo, che
vale per entrambi i modi. Fra le segnalazioni ce n'era una vera,
trovata dal controllo di qualita' e non da quello di sicurezza: in
osm_layers una funzione rimasta dal percorso sostituito nella 1.1.7
chiamava un nome che non esiste piu'. Nessuno la chiamava, quindi non
si e' mai vista; chi l'avesse chiamata avrebbe ricevuto un errore
secco. E' stata tolta. Le altre cinquantacinque sono annotate una per
una sulla riga: quarantadue sono blocchi che ingoiano deliberatamente
un'eccezione — la chiusura di una finestra, un osservatore difettoso,
una cache che non deve far fallire una richiesta riuscita — e restano
come sono, perche' cambiarle significherebbe cambiare il comportamento
in punti che nessun test copre; sette sono nomi che contengono «token»
o «password» e non sono chiavi, cinque sono firme di metodi di accesso
con il parametro vuoto, una e' il sorteggio che distanzia i
ritentativi di rete, che non ha scopo crittografico. Corretti anche i
tre difetti di stile che il rapporto elencava. Nessuna modifica al
funzionamento del plugin.
1.1.10 - Il controllo che diceva sempre di si'. La 1.1.9 doveva
sbloccare la pubblicazione e non l'ha sbloccata, perche' la verifica
scritta per accertarsene non stava verificando niente: detect-secrets,
senza l'opzione che il repository gli passa, esamina solo i file
tracciati da git, e una cartella estratta da uno ZIP non ne ha
nessuno. Zero file letti, zero segnalazioni, esito positivo. Con il
comando giusto le segnalazioni sono quattro, tutte in un punto solo e
tutte false: il rilevatore guarda il nome dell'identificatore e non il
valore, e in un modulo che descrive i modi di autenticazione trova
«api_key» come nome di un tipo e «Nome utente e password» come
etichetta italiana di un menu. Sono annotate riga per riga con la
ragione. Ora i due controlli girano sul pacchetto costruito, estratto
come fa il repository invece che sul sorgente, e prima di fidarsi di
un esito negativo piantano un segreto evidente e pretendono che lo
strumento lo trovi: se il canarino tace non e' il pacchetto a essere
pulito, e' il controllo a essere cieco. Nessuna modifica al
funzionamento del plugin.
1.1.9 - Il pacchetto torna scaricabile, e una bomba XML non passa
piu'. La 1.1.8 era stata bloccata dal repository dei plugin con la
sola motivazione «critical security issues were found during
validation», senza elenco: i reperti li vede soltanto l'autore
autenticato. Il criterio, letto nel codice del repository, non ha
soglia — un singolo reperto di gravita' media basta a bloccare la
pubblicazione, e ce n'erano cinque. Quattro erano falsi positivi su
query in cui la parte composta e' una fila di segnaposti, una clausola
scritta nel codice, o un nome di colonna gia' filtrato da una lista
chiusa: restano, annotati riga per riga con la ragione per cui non
sono sfruttabili, invece di essere spenti in blocco — una regola
disattivata avrebbe taciuto anche il prossimo caso vero. Il quinto era
un difetto reale. L'analisi di un GetCapabilities rifiutava le
dichiarazioni di entita' XML guardando i primi ottomila byte del
documento, e novemila byte di commento prima del DOCTYPE bastavano a
spingere la dichiarazione oltre quella finestra: la bomba di
espansione passava, verificato su questo stesso codice prima di
correggerlo. Ora la dichiarazione si cerca in tutto il testo, che
costa millisecondi: la ragione per cui non si faceva era sbagliata. Il
DTD dello standard, che i server WMS 1.1.1 mandano per convenzione e
che non definisce nulla, resta accettato — rifiutare ogni DOCTYPE
avrebbe scartato EFFIS e GWIS, due servizi che funzionano. Gli stessi
due strumenti del repository girano ora dentro la suite, su cio' che
viene spedito.
1.1.8 - Le chiavi si salvano, si capisce quale serve, e si possono
provare. Il difetto del salvataggio era piu' sottile di quello del
ciclo precedente: la custodia rispondeva «so scrivere» anche quando
cio' che scriveva viveva solo in memoria, e l'interfaccia mostrava
«Salvata» a chi avrebbe ritrovato il campo vuoto il giorno dopo. Ora
le domande sono due — se puo' scrivere, e se cio' che scrive resta — e
l'operatore legge «salvata nel profilo di QGIS», «salvata solo per
questa sessione» oppure il motivo per cui non si salva affatto. I nomi
in interfaccia dicono a che servono le chiavi invece di ripetere le
sigle dei portali: «Meteo Copernicus (ERA5)» e «Immagini Copernicus
(Sentinel)», con una riga in cima che spiega perche' le due «API
Copernicus» non sono intercambiabili — e' l'errore che costa mezz'ora
a chi ne rigenera una che era gia' giusta, per l'altro servizio.
Infine ogni riga ha un pulsante «Verifica» che interroga davvero il
servizio, senza scaricare niente: il catalogo dei processi per il
meteo, il rilascio di un token per le immagini. Un rifiuto dice quale
chiave e' stata scambiata; un token accettato non promette il
download, perche' il dataset puo' avere condizioni d'uso ancora da
accettare; e le chiavi che il plugin non usa restano «salvate, non
verificate», che e' cio' che sono.
1.1.7 - Una richiesta invece di ventuno, una guida per le chiavi, le
viste del Browser sull'area. La regressione della rete e' chiusa alla
radice: sette temi diventavano sette interrogazioni a OpenStreetMap, e
con i tre ritentativi ventuno richieste in fila allo stesso servizio
pubblico, che smetteva di rispondere a meta' strada e ne serviva due.
Ora i selettori stanno in un blocco solo e il risultato si smista al
ritorno: una richiesta, sette layer. Misurato sul caso di prova, con
tremilanovantuno tratti di viabilita', quattrocentosettantuno di
idrografia, centocinquanta sentieri, quattordici elettrodotti,
diciassette tratti di ferrovia, un'area protetta e cinquemila edifici.
Al primo avvio compare una guida che dice dove si prende ogni chiave,
una pagina per volta, e si puo' saltare; se QGIS non ha la master
password lo dice prima, perche' chiedere una chiave e perderla e' il
modo piu' rapido per far ripetere il lavoro. Arriva l'identita' del
Sentinel Hub, distinta da quella del Climate Data Store: l'account
puo' essere lo stesso, le credenziali no. Da li' si chiedono al
servizio le visualizzazioni del Browser sull'area — colori naturali,
falsi colori, indice di vegetazione, di umidita' e di area bruciata —
con gli script fissati nel plugin invece che scaricati, perche' uno
script che cambia sotto i piedi cambierebbe i numeri di un fascicolo
gia' scritto. E si possono confrontare due date: la differenza si
calcola solo fra due volte lo stesso indice, mai fra due immagini a
colori, e quando le date non sono la coppia dell'incendio il layer
dichiara di non essere un dNBR.
1.1.6 - Il pacchetto dimagrisce, le credenziali si chiedono una volta
sola, il territorio arriva in cartella. I test non viaggiano piu' col
plugin: erano ottantasei file e trecentoventi chilobyte, e il
pacchetto stava milleseicento byte sotto il limite d'installazione —
ora ne pesa seicentottantadue, e i test restano dove si eseguono. Le
credenziali si chiedono per account e non per portale: Climate e
Atmosphere Data Store sono lo stesso account e stanno su una riga
sola, con i loro due token distinti, perche' scambiarli produce un
rifiuto che sembra una chiave sbagliata; la MAP_KEY di FIRMS resta
separata da NASA Earthdata, che e' lo stesso ente e un'altra cosa. Del
Climate Data Store si e' verificato che indirizzo e nome del dataset
sono quelli giusti e che senza token risponde 401: cio' che manca a un
download e' soltanto una chiave valida. Arrivano quattro temi di
contesto da OpenStreetMap — aree protette, elettrodotti, ferrovia,
edificato — accanto ai tre della rete, tutti ritagliati sull'area piu'
un chilometro. Le aree protette dichiarano di non essere il perimetro
del decreto; elettrodotti e ferrovia richiamano il quadro di cap. 14.3
e negano di essere una causa. Fra un tema e l'altro c'e' una pausa:
senza, l'istanza pubblica ne serviva due su sette. La popolazione
esposta resta una lacuna dichiarata: WorldPop promette letture
parziali e restituisce centottantatre megabyte, i COG di GHS-POP
rispondono 404, e scaricare un paese intero per un'area di lavoro non
e' una soluzione.
1.1.5 - Le credenziali restano, e quando non possono restare lo dicono
prima. Il difetto era invisibile: la catena delle custodie rispondeva
che tutto era a posto perche' quella delle variabili d'ambiente e'
sempre disponibile, ma e' in sola lettura e non salva niente.
L'operatore inseriva la chiave, il salvataggio falliva, e il campo
tornava vuoto alla sessione dopo. Ora leggibile e scrivibile sono due
domande distinte: se nessuna custodia sa scrivere il modulo lo
dichiara in cima, prima che si digiti, e dice dove si risolve — la
master password di QGIS, in Impostazioni, Opzioni, Autenticazione.
Anche la chiave FIRMS non si salva piu' in silenzio: prima l'esito
veniva ignorato. Il Climate Data Store accetta ora sia il token
personale sia la vecchia coppia UID:APIKEY, e distingue la chiave
rifiutata dal prodotto di cui non si sono accettate le condizioni: due
cause diverse e due cose diverse da fare. I dati del caso vivono in
una cartella sola, con le sottocartelle previste e un indice accanto
che elenca cosa c'e', da dove viene e quanto pesa, e per cio' che
manca il perche' — una lacuna dichiarata e' un'informazione, una
casella vuota e' un dubbio. I percorsi sono relativi, cosi' il
fascicolo si puo' consegnare. Un pulsante esegue in fila tutto cio'
che l'area consente, senza calcolare il dNBR da solo: quello resta una
scelta.
1.1.4 - Meteo sull'area, rete del territorio, e una catena che dice
dove si e' fermata. La richiesta ERA5 partiva senza dimensione
temporale: l'area c'era, il periodo no, perche' una scheda non lo
passava e l'altra lo passava con nomi che il servizio non legge. Ora
la costruisce un solo punto del codice, con l'area del caso piu' un
margine e i giorni del periodo scelto; un'area piu' larga di quattro
gradi viene rifiutata invece di scaricare mezza Europa. Arrivano tre
layer dal territorio, interrogati su OpenStreetMap e ritagliati
sull'area piu' un chilometro: viabilita', idrografia e sentieristica.
Sono luoghi da verificare, non cause, e restano fuori da qualunque
punteggio. Il servizio pubblico e' instabile e il plugin ritenta, ma
quando non risponde lo dice con parole diverse da «qui non c'e'
niente»: in un fascicolo sono due affermazioni opposte. Quando il
calcolo del dNBR non parte, la riga di stato nomina l'anello — coppia
assente, tessere diverse, bande o maschera mancanti, pixel utili sotto
soglia — e dice cosa fare. Un perimetro vuoto non e' piu' un guasto
silenzioso ma un esito, con la soglia che l'ha prodotto. Accanto agli
ettari compaiono ora i due numeri che permettono di giudicarli: quanti
giorni separano le due scene, e quanti rilevamenti FIRMS della
finestra cadono davvero dentro il perimetro.
1.1.3 - Console per l'indagine, e cinque cose che non si leggevano. Il
titolo di ogni sezione era illeggibile: i temi di QGIS colorano i
titoli dei riquadri per il proprio fondo, e sul pannello del plugin
finivano chiari su chiaro. Ora il titolo lo scrive il plugin, con un
contrasto misurato su tre temi e due livelli di ingrandimento. Il
modello del terreno si sceglie fra fonti verificate una per una con
richieste reali: Copernicus GLO-30 e GLO-90, NASADEM di NASA e USGS.
USGS 3DEP e Google restano elencati ma spenti, con il codice HTTP che
hanno restituito: Google non pubblica un modello del terreno anonimo,
e i suoi riquadri «terrain» sono immagini, non quote. I servizi
cartografici entrano in mappa con un nome in italiano invece che con
l'identificativo del server, e con una scheda nei metadati che dice
cosa sono, a cosa servono in indagine e qual e' il loro limite. I
punti fuoco NASA non chiedono piu' di scegliere un paese: il paese lo
determina l'area disegnata, e se l'area sta a cavallo di un confine si
scaricano entrambi gli archivi e si ritaglia. La scheda Clima e' stata
riorganizzata in tre tessere su una colonna, con l'area del caso in
testa e una riga che dice cosa c'e' e cosa manca. I numeri meteo al
centroide restano non estratti, e la scheda lo dichiara invece di
mostrare cifre che nessuno ha potuto verificare.
1.1.2 - Il perimetro non nasce piu' da una scena quasi vuota. La
percentuale di nubi che il catalogo dichiara riguarda una tessera di
110 km: su un'area di lavoro puo' essere l'opposto della verita', e su
un incendio reale una scena data allo 0% aveva l'11% di pixel
utilizzabili. Ora la copertura si misura sull'area prima di scegliere,
le coppie si ordinano per quella e non per le nubi dichiarate, e sotto
soglia il calcolo non parte senza una conferma esplicita che resta
scritta nei metadati, nel GeoPackage e nel PDF. Il GeoPackage del
fascicolo comprende ora anche i punti fuoco e l'area di lavoro, che
prima restavano fuori, e la scheda di rilievo vuota non viene piu'
omessa. La carta per l'atto esce su fondo bianco anche con QGIS in
tema scuro.
1.1.1 - Scarica davvero. La ricerca restituiva i prodotti senza gli
indirizzi dei file, e nessuno li completava: il modello di elevazione
e la copertura del suolo non si scaricavano, e ogni coppia di immagini
veniva scartata «senza le bande necessarie». Una sola correzione
chiude i tre sintomi. I punti fuoco si filtrano ora per l'area e per
l'intervallo scelto, non per l'anno intero. La coppia di immagini si
sceglie fra le candidate, con tessera e date in chiaro. Il pacchetto
investigativo porta finalmente in mappa cio' che il plugin gia'
calcolava: geometria dell'area percorsa, forma dell'abaco, zona di
inizio, accessi, scheda di rilievo vuota.
1.1.0 - Banco da lavoro per l'indagine sugli incendi. La scheda
Incendi diventa una console in sette blocchi, dall'area al fascicolo.
Arrivano la geometria dell'area percorsa secondo la Guida da campo
NIAB, la forma dell'abaco, la zona di inizio come poligono proposto,
gli accessi viabili nella zona, la scheda di rilievo e lo stato
dell'origine. Il plugin non produce mai un punto d'innesco e non
calcola punteggi: la zona e' una proposta geometrica, l'area di inizio
la delimita chi va sul posto, e il punto lo determina il rilievo.
Tutta l'interfaccia passa da un unico sistema di colori derivato dal
tema di QGIS, con il contrasto verificato invece che giudicato.
1.0.0 - Dall'area bruciata all'elaborato. Prima versione non
sperimentale: il plugin smette di essere solo un motore di ricerca e
diventa un banco da lavoro. Nuova scheda Incendi con il flusso
completo: si sceglie l'area e la data, il plugin trova una coppia di
immagini Sentinel-2 prima e dopo l'evento, calcola dNBR, severita' e
perimetro, e porta tutto in mappa gia' stilizzato. Non serve alcun
account e non si scarica la scena intera: viene letta solo la finestra
richiesta, che su un'area di qualche chilometro quadrato significa
novanta kilobyte invece di centoventi megabyte. I punti di incendio
NASA FIRMS arrivano ora da tre satelliti VIIRS invece di due, e c'e'
l'archivio storico per paese e anno; il periodo che nessuna via
pubblica copre viene dichiarato invece di restituire un elenco vuoto.
Dal modello di elevazione Copernicus si ricavano pendenza,
esposizione, ombreggiatura e le forme del terreno che incanalano il
fuoco; un DEM in coordinate geografiche viene rifiutato, perche' in
gradi una pendenza non ha significato. La copertura del suolo e'
mondiale e non europea, e gli ettari per classe si contano dentro il
perimetro. L'elaborato finale esce come GeoPackage, carta PDF con
attribuzione e disclaimer, e un fascicolo JSON con scene, formule,
soglie e impronte dei file. Tredici algoritmi nel Toolbox per chi
vuole costruirsi la propria catena. Preset per Europa, Cile, Argentina
e Messico, che impostano fra l'altro la stagione degli incendi: sotto
l'equatore e' invertita, e cercarne uno a luglio per abitudine europea
non trova niente.
0.9.0 - Dati climatici. Nuova scheda Clima con sei famiglie di dati
climatici e di rianalisi: ERA5 (temperatura e precipitazione ora per
ora dal 1940), CAMS (qualita' dell'aria in Europa), CHIRPS (pioggia
mensile globale), WorldClim (medie climatiche di lungo periodo),
NCEP/NCAR (rianalisi storica dal 1948) e le stazioni GHCN, che
arrivano in mappa come punti invece che come immagini. Quattro
famiglie su sei non richiedono alcun account. ERA5 e CAMS ne chiedono
uno gratuito ciascuno, e sono due account distinti: Climate Data Store
e Atmosphere Data Store si somigliano ma la chiave dell'uno non
funziona sull'altro, quindi ora sono due voci separate con istruzioni
proprie. I file scaricati vengono portati in una forma che QGIS sa
aprire: il GeoTIFF compresso viene estratto, l'archivio WorldClim
viene aperto dichiarando quante bande restano su disco, e del NetCDF
viene scelta la variabile giusta. Rimossi i servizi cartografici
italiani, che non erano piu' mantenibili. Il pacchetto scende da 3,4
MB a 656 KB: l'originale ad alta risoluzione dell'icona non veniva mai
caricato.
0.8.0 - Servizi cartografici e icona ufficiale. Nuova scheda con i
servizi WMS e WMTS: incendi europei e mondiali (EFFIS e GWIS),
immagini NASA quasi in tempo reale con scelta della data. I layer si
aggiungono alla mappa con un pulsante e si tolgono tutti insieme. Un
solo motore per tutti: il registro dei servizi e' un file di dati, e i
servizi cercati ma non confermati restano elencati con la ragione
invece di sparire. Risolto alla radice il difetto per cui l'ultima
parte della pagina iniziale restava irraggiungibile anche scorrendo:
il contenitore dichiarava un'altezza che non teneva conto del testo
mandato a capo. Aggiunta l'icona ufficiale del plugin.
0.7.0 - Iperspettrale, Sud America e un pannello finalmente
raggiungibile. Il pannello Ricerca ora scorre: con sei riquadri di
missioni, su un portatile con scaling elevato il pulsante di ricerca
finiva sotto il bordo dello schermo e non c'era modo di premerlo.
Arrivano EnMAP e DESIS (immagini iperspettrali, oltre duecento bande
per scena) e CBERS e Amazonia-1 per il Sud America, questi ultimi
pubblici senza account. Corretta una classificazione sbagliata: EnMAP
era dato per accessibile solo a mano, ma il suo catalogo e' pubblico.
Corretto un difetto del motore: un catalogo che offre la ricerca in
piu' formati veniva interrogato in HTML e risultava non disponibile
pur funzionando. ASI PRISMA resta accessibile solo dal portale
ufficiale, riverificato. Aggiunta la finestra Informazioni con
l'attribuzione agli autori.
0.6.0 - Archivi cloud. Arrivano Microsoft Planetary Computer e AWS
Open Data: DEM Copernicus globale, copertura del suolo ESA WorldCover,
Sentinel-1, Sentinel-2 e Landsat come immagini gia' pronte, banda per
banda, senza archivi da estrarre. Nessun account in nessuno dei due
casi. I due servizi pero' non funzionano allo stesso modo, e il plugin
lo dice: AWS e' pubblico e si scarica direttamente, Planetary Computer
richiede un permesso temporaneo che il plugin ottiene da solo. Il
nuovo stato 'accesso firmato' li distingue, cosi' non viene chiesta
una password che non esiste. Se un servizio sovraccarico non
restituisce i file di un prodotto, ora lo dice invece di non fare
niente.
0.5.0 - Ondata USGS. Arriva l'archivio Landsat: Landsat 7, 8 e 9,
Collection 2 Level-1 e Level-2, dal catalogo STAC ufficiale USGS. La
ricerca funziona senza account e il filtro sulla copertura nuvolosa
viene applicato dal server. Il download richiede un account gratuito
USGS ERS. Corretto un difetto che riguardava tutti i fornitori: un
portale che rimanda al proprio modulo di accesso risponde con stato
200 e una pagina HTML, e il plugin la scriveva su disco col nome del
file richiesto dichiarando il download riuscito; il problema emergeva
molto piu' tardi, quando QGIS non riusciva ad aprire il file. Ora
viene riconosciuta e rifiutata, con l'indicazione di configurare le
credenziali. Le ricerche non interrogano piu' fornitori che l'utente
non ha selezionato.
0.4.0 - Ondata NASA. Il plugin interroga ora tre cataloghi NASA invece
di uno: alle collection MODIS, VIIRS e ASTER si aggiungono le
precipitazioni GPM IMERG (GES_DISC), le quote ICESat-2 (NSIDC) e i
modelli di elevazione NASADEM e SRTM. Ventitre collection in tutto,
con identificativi verificati uno per uno sul servizio reale. La
stessa classe serve tutti e tre i cataloghi: cambia la configurazione,
non il codice, e ogni catalogo riceve solo le collection che conosce.
Corretto un difetto nei test: quarantacinque prove di integrazione con
QGIS venivano saltate in Python puro e facevano abortire l'interprete
dentro QGIS, quindi non giravano da nessuna parte.
0.3.6 - Download MODIS funzionante. Il download dei prodotti NASA
falliva con 'il servizio richiede un accesso valido' anche con
credenziali corrette: NASA rimanda dal server dei dati a
urs.earthdata.nasa.gov per farsi presentare le credenziali, e la
libreria HTTP rimuoveva l'intestazione di autenticazione a ogni cambio
di host. Ora ogni provider dichiara a quali host il proprio accesso
puo' essere ripresentato, e i reindirizzamenti del download vengono
validati uno per uno come tutte le altre richieste (prima non lo
erano: un reindirizzamento da HTTPS a HTTP sarebbe stato seguito in
silenzio). Earthdata accetta anche un token utente, che il plugin ora
sa generare da solo con il pulsante 'Genera token'. I messaggi di
accesso negato distinguono credenziale mancante, rifiutata e
insufficiente, invece di dire sempre la stessa cosa.
0.3.5 - Gestione delle credenziali e procedura guidata. Il pannello
Impostazioni raccoglie ora i 22 portali previsti dal progetto in 7
categorie, dicendo per ciascuno se serve un account, quale credenziale
chiede e dove si ottiene; undici funzionano senza registrarsi da
nessuna parte. Le credenziali si salvano solo nel gestore cifrato di
QGIS, si verificano con una richiesta reale (Connesso / non valide /
servizio non raggiungibile, mai un traceback) e si possono rimuovere.
Al primo avvio una procedura guidata mostra prima cosa funziona gia' e
poi accompagna, passo per passo, sui cinque portali principali: resta
riapribile in qualsiasi momento dal pannello. Le credenziali NASA si
scrivono una volta sola e valgono per CMR, LAADS, GIBS e PO.DAAC.
0.3.4 - Robustezza dopo un aggiornamento in loco. QGIS aggiorna i
plugin mentre e' in esecuzione, e Python tiene in memoria i moduli
gia' caricati: il pannello viene ricostruito con il codice nuovo
mentre i provider restano quelli vecchi, e ne nasce un AttributeError
incomprensibile. Ora l'interfaccia non presuppone piu' che un provider
conosca il contratto (funziona anche con connettori di terze parti o
rimasti in memoria), e lo squilibrio fra moduli viene riconosciuto e
segnalato con l'invito a riavviare QGIS, invece di manifestarsi come
errore. Corretto anche un difetto nei test: le righe FIRMS di prova
avevano date fisse e smettevano di passare il giorno dopo.
0.3.3 - Contratto unico per lo stato della sessione. Aprire la
finestra di accesso per NASA produceva KeyError: 'label', perche' ogni
provider descriveva il proprio stato con un dizionario di forma
diversa e l'interfaccia era stata scritta guardando quello di
Copernicus. Introdotto core/session.py con un modello canonico ad
attributi tipizzati, normalizzato prima della GUI: un provider non
puo' piu' rompere la finestra dimenticando un campo. Corretto anche:
NASA FIRMS non aveva affatto il metodo di stato; NASA CMR dichiarava
"sessione attiva" appena le credenziali erano salvate, che non e' la
stessa cosa; un provider senza endpoint impediva perfino di descrivere
il proprio stato. I provider pubblici ora dicono "accesso non
richiesto" invece di offrire un login inutile.
0.3.2 - FASE 3.2: il download locale funziona davvero. Corretto il
difetto alla radice: il gestore dei download della GUI veniva
costruito senza autenticazione, quindi l'intestazione di
autorizzazione non partiva mai e il download protetto non poteva
riuscire nemmeno dopo un accesso corretto. L'autenticazione ora si
risolve per provider (Copernicus e NASA hanno sessioni distinte).
Premendo Scarica, se servono credenziali si apre il dialogo di accesso
e al termine il download riprende da solo, senza rifare la selezione;
gli asset pubblici non aspettano piu' un login che non serve. Aggiunta
la cartella di destinazione scelta dall'utente, ricordata fra le
sessioni, con organizzazione per provider e missione. Nomi di file
utilizzabili: le anteprime CDSE non si chiamano piu' tutte $value.
Selezione esplicita dell'asset di prodotto, con priorita' documentata.
0.3.1 - FASE 3.1: gli incendi FIRMS finiscono davvero sulla mappa. Il
pulsante "Aggiungi punti alla mappa" ora crea un layer con nome
parlante, simbologia per sensore (VIIRS/MODIS) e dimensione
proporzionale all'FRP, 17 attributi interrogabili con l'Identify, e
inquadra automaticamente i punti sul canvas riproiettando se il
progetto non e' in EPSG:4326. Corretto: una ricerca con un solo
incendio produceva un layer dichiarato inutilizzabile e mai inquadrato
(estensione di area zero letta come vuota). Corretto: FIRMS troncava i
risultati prima del motore, che percio' non poteva segnalare "altri
disponibili" e faceva sparire gli eventi in eccesso senza dirlo.
Aggiunto il filtro punto-in-poligono per le AOI non rettangolari, e un
rapporto diagnostico che conta ogni passaggio da evento a feature.
0.3.0 - FASE 3: NASA CMR (MODIS 9 collection, VIIRS 4, ASTER GDEM),
verificate una per una con item reali. NASA FIRMS: incendi attivi come
punti (non immagini), da file pubblici NASA senza account; MAP_KEY
facoltativa per verificarne la validita'. Ricerca sempre anonima; il
download NASA richiede un account Earthdata Login gratuito. Nuove
sezioni nella scheda Ricerca (NASA CMR, NASA FIRMS), entrambe
disattivate per default per non rallentare le ricerche Sentinel.
Pulsante "Aggiungi punti alla mappa" per creare un layer QGIS dagli
eventi FIRMS. Verificato l'intero percorso GUI - AOI - provider -
tabella per ogni missione e in combinazione con Copernicus.
0.2.2 - Debug forense. Eliminato il messaggio "Errore imprevisto":
ogni eccezione ora riporta tipo, messaggio, fase, collection, pagina e
prodotto, e il traceback completo finisce sempre nel log a livello
ERROR. Aggiunto un identificativo di ricerca che lega tutte le righe
di log. Isolamento per collection: una collection che fallisce non
azzera piu' l'intero provider (stato PARZIALE). Ricevere prodotti e
non riuscire a interpretarne nemmeno uno non e' piu' riportato come
ricerca riuscita. Nuovo pannello Diagnostica con il rapporto
dell'ultima ricerca e il pulsante Copia diagnostica, che non copia
alcuna credenziale.
0.2.1 - Correzione bloccante: la ricerca restituiva zero prodotti. La
selezione delle missioni nell'interfaccia veniva usata come filtro
esatto sul nome del satellite (sentinel-2 contro sentinel-2a) e
scartava ogni risultato. Aggiunti: ricerca alleggerita (payload
ridotto di 14 volte), timeout di connessione e lettura separati,
diagnostica che mostra dove si perdono i risultati.
0.2.0 - FASE 2: motore STAC generico, provider Copernicus Data Space
(Sentinel-1/2/3), filtri CQL2 lato server, paginazione, anteprime,
autenticazione OIDC, download manager con ripresa e checksum.
0.1.0 - FASE 1: fondazione (modello dati, AOI, catalogo, registro
provider, motore di ricerca, sicurezza, logging, GUI, test).

yes

Forestalia

2026-09-08T11:27:42.229294+00:00

4.0.0

4.99.0

no

Version management

Plugin details