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
Plugin Tags