- 13 aprile 2012: ATTENZIONE!
Nel mese scorso il PCN ha modificato le specifiche WCS, passando dalla versione 1.0.0 alla 1.1.2. Inoltre, con l'occasione, ha impostato diversamente nomi e caratteristiche dei servizi. In poche parole, questo articolo deve essere aggiornato... ma non ho tempo!!!
In attesa di farlo, ho inserito nell'articolo anche la stringa corretta, evidenziata in GIALLO.
Trovate ulteriori dettagli su questa soluzione speditiva - ma funzionante! - nel commento che ho inserito oggi in coda all'articolo (...in fondo, in fondo... 61° posizione!). Vi anticipo però che a me funziona SOLO utilizzando FIREFOX.
- 9 febbraio 2011: leggendo i numerosi commenti collegati a questo post e nella speranza di evitare gli errori più comuni, ho ritenuto opportuno rivedere alcuni passaggi dell'articolo originale. Come sempre vi invito a leggere i commenti di coda, vi assicuro che sono ricchi di informazioni e consigli tecnici!
Cari utenti ArcGIS,
dopo aver parlato di servizi WMS (Web Map Service) e WFS (Web Feature Service), tocca ora ai servizi WCS (Web Coverage Service), la modalità scelta dal PCN (Portale Cartografico Nazionale) per distribuire dati in formato raster.
Un esempio?
Il DTM (o DEM) - acronimo di Digital Terrain Model - grazie al quale ho ottenuto l'immagine qui sotto: un'affascinante veduta in 3D dell'isola d'Elba ottenuta tramite ArcScene (voglia di mare???).
Se ben ricordate avevo già parlato di WCS, più precisamente in un passaggio inserito nell'articolo del 21 gennaio scorso :
"....un rapidissimo accenno ai servizi WCS (Web Coverage Service) che, in pratica, sono complementari ai WFS. Sono infatti utilizzati per distribuire dati di tipo raster: celle (GRID) più i relativi attributi.
Si pensi ad esempio ad un DTM (Modello Digitale del Terreno) e all'associazione tra ogni cella e il corrispondente valore di quota.
Se volete approfondire anche questo argomento, vi consiglio la lettura, sempre su Wikipedia, della seguente pagina: http://it.wikipedia.org/wiki/Web_Coverage_Service "
Diciamo subito che mentre i servizi WMS sono ormai molto diffusi e i WFS vanno lentamente affermandosi, i servizi WCS sono ancora rarissimi.
In Italia, ad esempio, mi risulta che li esponga solo il Portale Cartografico Nazionale.
Chiariamo anche, onde evitare false speranze, che tra i servizi WCS del PCN non sono comprese le ortofoto che, almeno fino ad oggi, sono esposte solo come servizi WMS.
Vi segnalo però che su questo argomento, qualche tempo fa, avevamo aperto una discussione che trovate nello "spazio libero" a fondo pagina, ecco i passaggi chiave:
"...solo un servizio WCS (Web Coverage Service) ti consentirebbe di scaricare il dato raster originale, esattamente come avviene per i dati vettoriali quando si utilizza un servizio WFS.
Ma il PCN, almeno per ora, non espone le ortofoto come WCS...
In effetti, visto che le ortofoto sono - per definizione - dati "statici", non sarebbe male poterle scaricare, se non altro per minimizzare i tempi di attesa dovuti al collegamento internet...
Se ti serve una zona limitata puoi tentare però un "accrocchio": massimizza l'area del tuo schermo e opera uno zoom adeguato al tuo utilizzo, accedi poi al menu "file" e clicca su "export map", scegli il formato jpg, imposta una risoluzione adatta al tuo caso e metti il flag nella casella "write world file".
Otterrai così un'immagine georeferenziata corrispondente all'area visibile a monitor... dopo qualche prova, finalizzata a trovare la risoluzione più adatta ai tuoi scopi, sono certo che otterrai il risultato voluto.
Se ti servisse un'area più estesa, dovrai ripetere l'operazione spostando il centramento della mappa. Produrrai così una serie di immagini, identiche per caratteristiche, che potrai visualizzare assieme oppure - meglio ancora - mosaicare in un raster catalog o in raster dataset.
Ovviamente ci vuole più tempo e fatica, ma se l'area è poco estesa..."
In realtà l'idea di scrivere un post sui servizi WCS è nata mentre stavo preparando il primo articolo dedicato ai servizi WFS.
Infatti, sulla scia dell'entusiasmo, avevo provato a scaricare dal PCN anche i raster esposti come servizi WCS ma, ahimè, con risultati poco soddisfacenti.
Dopo alcuni tentativi infruttuosi decisi di confrontarmi con Marco, un sostenitore del blog che sapevo impegnato nella stessa operazione. Ecco il nostro fraseggio:
"Ciao Marco,
volevo chiederti se nella tua euforia dei giorni scorsi hai scaricato anche qualche dato esposto con i servizi WCS.
Ieri ho provato con alcuni servizi, in particolare DTM 20, 40 e 75m, ma il risultato mi ha molto sorpreso: infatti sono sempre raster di 512x512 celle (quindi troppo "piccoli" per essere corretti) e privi di qualsiasi significato.
Inutile dire che mi aspettavo di scaricare lo stesso dato che alimenta i corrispondenti servizi WMS...
Tu hai avuto lo stesso risultato?"
"Ciao Paolo,
... ho fatto dei tentativi con il servizio WCS del PCN, in particolare ho provato a scaricare il DTM 20 mt. Riesco a scaricarlo ma quando vado a fare il preview, il dato mi appare come un rettangolo nero sia per il DTM fuso 32 che per quello fuso 33.
Se poi vado a vedere le properties in effetti il raster risulta costituito da 512 righe e 512 colonne, così come è sucesso a te. Anche tu vedi un rettangolo nero come me?"
In realtà, applicando un'opportuna simbologia, il rettangolo nero si trasfoma nell'immagine qui sotto che, a questa scala, potrebbe sembrare corretta:
L'immagine che segue, mostra però i limiti del dato raster appena scaricato: non ci crederete ma quella qui sotto è proprio l'isola d'Elba, peccato che ogni pixel misuri oltre 2Km di lato...
Dopo ulteriori tentativi mi sono quindi convinto che i servizi WCS del PCN sono poco "graditi", almeno per ora, al nostro beneamato ArcView (quindi anche ad ArcEditor ed ArcInfo).
La mail che ho ricevuto ad inizio febbraio da Roberto - altro sostenitore del blog - ha confermato i miei sospetti:
"Da quanto ho capito io hanno pubblicato i servizi WCS rispettando la lettera del protocollo WCS, cosa che però li rende al momento inutilizzabili con ArcGIS (funzionano invece con il nostro software) : Warning: "A selcted item could not be added to the map. Failed to open raster dataset."
Ho segnalato la cosa allo staff del PCN che mi ha risposto il 15 febbraio scorso: "Stiamo, comunque, provvedendo a verficare, tramite test, cosa debba essere modificato nei nostri servizi Wcs affinchè siano fruibile con ArcGis (9.3.1). Sarà nostra premura contattarla quando ne avremo verificato la compatibilità."
Precisando che Roberto faceva riferimento ad AdbToolbox - software liberamente scaricabile proprio dal PCN - ho tentato di installare questo prodotto per verificare se i servizi WCS fossero realmente fruibili.
Purtroppo sul mio notebook - sistema operativo Windows Vista - la procedura di installazione va subito in errore, impedendomi così di effettuare il test...
Purtroppo sul mio notebook - sistema operativo Windows Vista - la procedura di installazione va subito in errore, impedendomi così di effettuare il test...
Questa ennesima delusione mi ha condotto però sulla strada più corretta: definire una "chiamata" WCS rigorosamente in linea con le specifiche di questo standard.
Un approccio diverso che, nel vero spirito degli standards OGC e del concetto di interoperabilità, fosse totalmente indipendente da qualsiasi tecnologia software.
Ho quindi scaricato le specifiche WCS versione 1.0.0 (la stessa attualmente implementata dal PCN) e letto attentamente il documento, giungendo così da "una" soluzione del problema.
Passiamo quindi alla fase operativa scegliendo come dato di riferimento il DTM con maglia 20 metri (sicuramente uno dei tematismi più interessanti pubblicati dal PCN) nella "versione" restituita in coordinate UTM WGS84 e, nello specifico, relativa al fuso 32 Nord.
Passiamo quindi alla fase operativa scegliendo come dato di riferimento il DTM con maglia 20 metri (sicuramente uno dei tematismi più interessanti pubblicati dal PCN) nella "versione" restituita in coordinate UTM WGS84 e, nello specifico, relativa al fuso 32 Nord.
Il primo passo è conoscere, con maggior dettaglio, le modalità con le quali viene pubblicato questo strato informativo.
A questo scopo le specifiche WCS prevedono l'istruzione describecoverage il cui compito, come facilmente intuibile, è quello di restituire informazioni descrittive del dato.
Nel caso specifico mi sono collegato alla pagina del PCN che elenca tutte le risorse WCS disponibili, cliccando poi sul link capabilities relativo allo strato di mio interesse. Modificando l'ultima parte della URL, ovvero sostituendo getcapabilities con describecoverage, si ottiene la stringa qui sotto:
http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/wcs/DTM_20M_wcs_32.map&service=wcs&version=1.0.0&request=describecoverage
http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/wcs/DTM_20M_wcs_32.map&service=wcs&version=1.0.0&request=describecoverage
Cliccandovi sopra potrete visualizzare una pagina XML che, come anticipato, vi elenca una serie di caratteristiche descrittive della "coverage" DTM20: nome, sistema di riferimento, formato di restituzione, metodo di interpolazione, ecc...
In particolare vi faccio notare come il raster che andremo a scaricare verrà generato in formato GeoTiff.
Premesso che le informazioni appena ottenute forniscono tutti gli elementi necessari per impostare correttamente l'istruzione getcoverage, riporto qui sotto la stringa completa che mi ha permesso il download della parte di DTM20m relativa all'isola d'Elba:
ATTENZIONE:
a seguito delle modifiche apportate dal PCN nel mese di marzo 2012, la stringa precedente NON è più utilizzabile.
La stringa corretta (anche se a me funziona solo con FIREFOX) è:
http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/wcs/dtm_20m.map&service=WCS&version=1.1.2&request=GetCoverage&Identifier=EL.DTM.20M&BoundingBox=42.69,10.08,42.89,10.48,urn:ogc:def:crs:EPSG::4326&format=image/tiff
In attesa di aggiornare tutto l'articolo (forse...), vi rimando al commento che ho lasciato oggi (13 aprile 2012) in coda a questo post.
Ulteriore nota del 12/10/2015 - Nonostante la richiesta qui sopra sia formalmente corretta, in questi giorni restituisce un misero riquadro nero, privo di qualsiasi dato di elevazione...
Ipotizzando qualche problema nel servizio (quindi lato PCN), vi rimando alla risposte che ho dato a Geomarty in coda al commento inserito in data 8/10/2015 (in sintesi: il servizio sembra funzionare solo in alcune zone).
Si attendono, ovviamente, indicazioni utili a risolvere il problema.
Cliccando direttamente sul mio link - operazione che equivale a lanciare la richiesta WCS direttamente dal vostro browser - otterrete il download dell'immagine GeoTiff che, applicando un'opportuna simbologia, produce il risultato qui sotto.
Attenzione: nel mio caso - ovvero utilizzando Internet Explorer 8 - il file scaricato viene denominato "mapserv[1].tif" e salvato in un cartella temporanea.
Nei commenti all'articolo (leggeteli sempre!), Stefano segnala che Firefox produce invece un file "mapserver.exe", strano ma vero! Comunque basta modificare l'estensione in .tif per rendere subito consultabile il raster...
Ribadisco il concetto: in questo momento NON sto utilizzando ArcCatalog o ArcMap, mi limito a "lanciare" la richiesta direttamente dal browser (nel mio caso Internet Explorer 8).
Attenzione poi alla simbologia da applicare ai dati: il file scaricato presenta infatti una "striscia" di pixels, fortunatamente in mare aperto, con un valore di quota di oltre 32.000 metri!
Anomalia che però va rimossa dalla simbologia per evitare che il territorio appaia troppo "pianeggiante" (intendo visivamente).
Inizialmente ho pensato ad un errore del server PCN.
Poi, rispondendo ad alcuni commenti dei lettori, ho approfondito meglio la problematica individuando così una possibile soluzione che oggi - 9/2/2011 - aggiungo all'articolo.
E' infatti sufficiente ottenere le statistiche del raster per risolvere il problema, che ritengo dovrebbe interessare tutte le zone "perimetrali" del tematismo.
Il metodo più semplice per generare le statistiche è tramite ArcCatalog: è sufficiente cliccare con il tasto destro sul DTM e lanciare il comando "Calculate Statistics...".
A seguito di questa operazione ArcGIS interpreta meglio i dati: ora l'altimetria di questa zona risulta compresa tra 0 e 1012 m.s.l.m.
Le celle con valore 32.767 sono invece interpretate come "NoData" (vedi proprietà del layer - scheda "Source"), di conseguenza non vengono considerate... (nota: il valore 32.767 deriva dal fatto che il raster prodotto è a 16bit, in grado quindi di gestire 65.536 valori: da -32.768 a +32.767).
Resta inteso che, una volta scaricata, l'immagine sarà disponibile in ArcMap/ArcCatalog per tutte le analisi e le elaborazioni del caso.
Avrete notato che la risoluzione del DTM è ora nettamente migliore (ogni pixel misura infatti 20x20 metri) e l'immagine qui sotto - uno zoom in scala 1:25.000 - rende ancor meglio il concetto.
Proviamo ora ad illustrare il significato delle diverse "componenti" che, nell'insieme, definiscono la richiesta WCS utilizzata nel mio esempio.
In questo modo ogni lettore potrà "personalizzare" la stringa, adattandola quindi alle proprie esigenze.
Notate innanzi tutto che ogni singola componente è preceduta da una & la cui funzione è appunto quella di "concatenare" i vari elementi della URL.
A - http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/wcs/DTM_20M_wcs_32.map
Rappresenta la URL del servizio, esattamente come appare cliccando sul tasto "URL" corrispondente al servizio WCS di vostro interesse.
Notate innanzi tutto che ogni singola componente è preceduta da una & la cui funzione è appunto quella di "concatenare" i vari elementi della URL.
A - http://wms.pcn.minambiente.it/cgi-bin/mapserv.exe?map=/ms_ogc/wcs/DTM_20M_wcs_32.map
Rappresenta la URL del servizio, esattamente come appare cliccando sul tasto "URL" corrispondente al servizio WCS di vostro interesse.
B - &service=wcs
Indica il tipo di servizio.
C - &version=1.0.0
Indica la versione del protocollo utilizzato dal PCN per esporre il servizio WCS.
D - &request=getcoverage
E' la "richiesta" che consente il download dei dati raster.
E - &coverage=DTM_20M_f32
Indica il nome della "coverage", ovvero del tematismo raster che si intende scaricare.
F - &crs=EPSG:32632
Indica il CRS - Coordinate Reference System - al quale fa riferimento la richiesta. Nel mio caso ho indicato il CRS associato alla coverage, informazione ottenuta dopo aver letto la scheda XML restituita dalla richiesta describecoverage (sezione: supportedCRSs).
Si noti che il codice EPSG 32632 corrisponde al sistema di riferimento cartografico UTM WGS84 fuso 32Nord.
ATTENZIONE: dopo aver risposto a parecchi lettori (vedi commenti), vorrei evidenziare come il sistema ci coordinate dipenda SIA dal tematismo CHE dalla zona di vostro interesse, quindi non è sempre 32632!!!
G - &bbox=586000,4726000,620000,4750000
Con riferimento al CRS di cui al punto precedente, definisce un quadrante (34x24Km) centrato sull'isola d'Elba.
Il riquadro è identificato dalle coordinate del vertice basso-sinistro e da quelle del vertice alto-destro.
Per maggiori informazioni sull'istruzione BBOX potete fare riferimento al mio articolo del 21 gennaio 2010 . Nello stesso articolo troverete illustrata un buon metodo per determinare facilmente le coordinate BBOX che fanno al caso vostro.
H - &width=1700
Definisce la larghezza dell'immagine raster, espressa in numero di pixel. Nel mio caso ho voluto mantenere le dimensioni dei pixel coincidenti con il livello di dettaglio "nominale" del DTM, quindi 20x20 metri.
I - &height=1200
Definisce l'altezza dell'immagine raster, espressa in numero di pixel. Per le dimensioni dei pixel vale quanto detto al punto precedente.
L - &format=geotiff
Indica il formato immagine scelto per il download dei dati, formato che, ovviamente, deve essere compreso fra quelli "supportati" dalla servizio WCS (informazione che si ottiene dalla già citata richiesta describecoverage).
Tutte le componenti sopra descritte sono OBBLIGATORIE, l'assenza di una sola di esse rende la richiesta invalida, producendo così un messaggio di errore.
E' anche evidente come alcune componenti siano "invarianti" (B-C-D-L), mentre altre siano STRETTAMENTE CORRELATE sia al tematismo che si intende scaricare, sia all'area di interesse.
ATTENZIONE: dopo aver risposto a parecchi lettori (vedi commenti), mi sembra opportuno ribadire l'importanza del'ultimo concetto espresso, leggetelo bene!
Per ulteriori dettagli in merito allo standard WCS vi rimando alle specifiche OGC, in particolare alla tabella qui sotto, che troverete pubblicata a pagina 32 :
Ma perchè ArcView non carica direttamente i servizi WCS esposti dal PCN?
La mia impressione è che il problema sia riconducibile all'impostazione RectifiedGrid, un parametro opzionale che, probabilmente, mette in crisi ArcView.
Se provate a consultare il file restituito dall'istruzione DescribeCoverage, noterete che per questa coverage è prevista una griglia di 512x512 pixels, ognuno con dimensioni rettangolari pari a 2.008 metri (larghezza) x 2.568 metri (altezza).
Per completezza vi segnalo che in azienda abbiamo effettuato alcune prove "parallele", in particolare ho chiesto a NicoGIS di pubblicare un servizio WCS di test utilizzando a tale scopo la nostra licenza ArcGIS Server.
In questo caso il collegamento alla risorsa WCS funziona senza problemi, qualcosa però non torna: in effetti, mantenendo monitorate le "chiamate" di ArcMap o ArcCatalog al servizio, non vi è traccia dell'istruzione GetCoverage...
In definitiva devo ammettere che ho ancora le idee confuse ma, come recita un noto proverbio, "a caval donato non si guarda in bocca".
Un caro saluto.
PaoloGIS
PS: come al solito attendo commenti ed osservazioni per migliorare, correggere ed integrare il contenuto di questo articolo.