Applicazione Web-GIS per la distribuzione di dati territoriali Università degli Studi “Roma Tre” Master in GIS e Telerilevamento per la Pianificazione Geoambientale
Introduzione Creazione del Geodatabase Creazione dei servizi di geoprocessing Pubblicazione sul Web con ArcGIS Server
Obiettivi Costruzione di un geodatabase di dati territoriali relativi alla Regione Lazio Creazione di un servizio Web-GIS di “data delivery” Utilizzo del software ArcGIS Server 9.2 per la pubblicazione di mappe e di servizi di geoprocessing; Creazione di un servizio per la selezione ed il download di un sottoinsieme dei dati presenti nel geodatabase secondo un’area definibile dall’utente
Piattaforma software Sistema operativo Microsoft Windows XP SP2; Web Server Internet Information Serivces versione 5 con supporto per ASP; ESRI ArcGIS Server 9.2 .NET edition; Suite ArcGIS Desktop 9.2.
Il modello dati del Geodatabase Informazione geografica gestita tramite un database relazionale Benefici in termini di performance, sicurezza, scalabilità Tecnologia object-oriented
ArcGIS Server e i sistemi Web-GIS Una serie di strumenti ed un ambiente di sviluppo per la realizzazione di applicazioni Web-GIS evolute SOA (Service Oriented Architecture) anche per i dati geospaziali Diversi tipi di servizi: Mappe Globi Servizi di geocodifica Servizi di geoprocessing Diversi tipi di client Desktop clients Web Applications
Introduzione Creazione del Geodatabase Creazione dei servizi di geoprocessing Pubblicazione sul Web con ArcGIS Server
Contenuto del Geodatabase Dati riguardanti Puglia e Lazio Limiti amministrativi Uso del suolo (CORINE Land Cover del 2000) Geologia (layer vettoriale con legenda associata, doline, sorgenti, giaciture, tettonica) Frane IFFI: layer puntuale + generalità, layer lineare (direzione), layer poligonale (area) Network contenente l’intera viabilità del Lazio + POI Address Locator DEM (20 metri) Tavolette IGM 1:25.000 (raster catalog) CTR (raster catalog)
Fasi della costruzione del Geodatabase Design Importazione dei dati Geoprocessing scripts Implementazione aspetti avanzati Domini e sottotipi Topologie Relazioni (relationship class semplici e composte) Representation rules
Introduzione Creazione del Geodatabase Creazione dei servizi di geoprocessing Pubblicazione sul Web con ArcGIS Server
Definizione degli obiettivi e scelte operative Pubblicazione su web di un servizio che dia la possibilità di selezionare un’area di interesse (un comune oppure un’area di studio) e di scaricarne i dati associati sotto forma di archivio compresso Modelli di geoprocessing pubblicati, sotto forma di servizi, insieme alle mappe Uso di parametri e variabili nei modelli per renderli sufficientemente flessibili e batch processing Integrazione di script Python nei modelli
Design dei modelli Due modelli distinti Requisiti Estrazione dei dati “per comune” Estrazione dei dati “per area di studio” Requisiti Tipi di dato dei parametri di input e di output Percorsi UNC (“Uniform Naming Convention”) \\ComputerName\SharedFolder\Resource %scratchworkspace% Output: inserito in scratch workspace, parametro, non managed
Parametri di input Tematismi da estrarre Estrazione “per comune” Nome del comune Estrazione “per area di studio” Nome dell’area di studio Poligono che la rappresenta
Implementazione dei modelli Estrazione “per comune” Estrazione “per area di studio” Fase 1 Costruzione clausola WHERE della query SQL Selezione comune (se esiste) Fase 2 Creazione maschera provvisoria Preparazione scratch workspace Fase 3 Estrazione dei dati Creazione dell’archivio zip Fase 4 Creazione link HTML all’archivio Maschera definitiva Fase 1 Creazione feature class della maschera sulla base del feature set inserito dall’utente (Copy Feature) Fase 2 Creazione maschera provvisoria Preparazione scratch workspace Fase 3 Estrazione dei dati Creazione dell’archivio zip Fase 4 Creazione link HTML all’archivio Maschera definitiva
Implementazione dei modelli Fase 1 Costruzione clausola WHERE della query SQL Selezione comune (se esiste) Fase 2 Creazione maschera provvisoria Preparazione scratch workspace Fase 3 Estrazione dei dati Creazione dell’archivio zip Fase 4 Creazione link HTML all’archivio Maschera definitiva SELECT * FROM {Layer dei comuni} WHERE … “LABEL” = ‘ROMA’ “LABEL” LIKE ‘ROMA%’ “LABEL” LIKE ‘%ROMA%’ Controllo con gp.GetCount() Selezione sul layer dei comuni per attributo
Implementazione dei modelli Fase 1 Creazione feature class della maschera sulla base del feature set inserito dall’utente (Copy Feature) Fase 2 Creazione maschera provvisoria Preparazione scratch workspace Fase 3 Estrazione dei dati Creazione dell’archivio zip Fase 4 Creazione link HTML all’archivio Maschera definitiva La feature disegnata dall’utente viene trasformata in feature class con il tool “Copy Features” e quindi passata allo script di estrazione che la utilizzerà come maschera per il ritaglio
Implementazione dei modelli Fase 1 Costruzione clausola WHERE della query SQL Selezione comune (se esiste) Fase 2 Creazione maschera provvisoria Preparazione scratch workspace Fase 3 Estrazione dei dati Creazione dell’archivio zip Fase 4 Creazione link HTML all’archivio Maschera definitiva La maschera e tutti i dati estratti successivamente vengono inseriti in una apposita cartella dello scratch workspace Uno script python recupera la posizione dello scratch workspace e crea la cartella
Implementazione dei modelli Fase 1 Costruzione clausola WHERE della query SQL Selezione comune (se esiste) Fase 2 Creazione maschera provvisoria Preparazione scratch workspace Fase 3 Estrazione dei dati Creazione dell’archivio zip Fase 4 Creazione link HTML all’archivio Maschera definitiva Script di estrazione Parametri di input Due funzioni, una per il clipping dei layer vettoriali, una per l’estrazione dei raster
Implementazione dei modelli Fase 1 Costruzione clausola WHERE della query SQL Selezione comune (se esiste) Fase 2 Creazione maschera provvisoria Preparazione scratch workspace Fase 3 Estrazione dei dati Creazione dell’archivio zip Fase 4 Creazione link HTML all’archivio Maschera definitiva Il link HTML viene passato al tool “Calculate Field” come parametro “Expression” con sintassi in stile Python (in ambiente server non è possibile utilizzare VB).
Introduzione Creazione del Geodatabase Creazione dei servizi di geoprocessing Pubblicazione sul Web con ArcGIS Server
Pubblicazione sul Web Preparazione mappe (mxd) e tool layers (servizio di geoprocessing)
Creazione Web Application Geoprocessing tasks
Conclusioni Tecnologia ArcGIS Server giunta ad un livello di potenza e flessibilità tale da garantirle un posto di assoluto rilievo nel panorama del Web-GIS, in forte espansione e caratterizzato da una grande competizione fra tecnologie diverse, anche di tipo open source Vantaggi nell’utilizzo di ArcGIS Server relativa semplicità di utilizzo completezza delle funzioni possibilità di pubblicare modelli di analisi per un utilizzo distribuito
Conclusioni Aspetti da rimarcare: Utilizzo delle potenzialità dello scripting per la gestione di grandi quantità di dati e per la creazione di modelli di analisi sufficientemente complessi e flessibili per un utilizzo in ambito server Creazione di servizi di “data delivery” tramite modelli di geoprocessing, senza programmare in ambiente .NET o Java