Introduzione a Geoserver - Sviluppi in corso per lo studio del Climate Change Ing. Simone Giannecchini, GeoSolutions Ing. Andrea Antonello, Hydrologis
Outline GeoSolutions Facts GeoServer 2.0 Funzionalità di GeoServer Sviluppi per supporto environmental data
GeoSolutions - Facts Funded mid 2006 in Italy Staff of 7 engineers (2 consultants) Expertise Image Processing, GeoSpatial Data Fusion Java, Java Enterprise, C++, Python JPEG2000, JPIP, Advanced 2D visualization Supporting/Developing FOSS4G projects GeoTools, GeoServer, GeoBatch, ImageIO-Ext, udig Focus on Consultancy (prevalentemente B2B) Training Building stack of geospatial Open Source products
GeoServer GeoSpatial enterprise gateway Management dati raster e vettoriali Standards compliant OGC WCS 1.0-1.1.1 (RI) OGC WFS 1.0-1.1 (RI) OGC WMS 1.1.1 OGC WPS 1.0.0 Google Earth/Maps support KML, GeoSearch, etc..
Funzionalità di GeoServer GeoServer Shapefile PostGIS DB2 Oracle MySql ArcSDE WFS ---------- ---------- ---------- --------- ---------- ---------- --------- ---------- Vector files DBMS Servers GeoTIFF ArcGrid GTopo30 Img+world Mosaic Raster files MrSID JPEG 2000 ECW,Pyramid WFSv* WFS 1.0 WFS 1.1 WMS 1.1.1 Google* WCS 1.0 WCS 1.1.1 WPS 1.0.0 GWC Raw vector data Styled maps Raw raster data Shapefile GML2 GML3 GeoRSS GeoJSON CSV/XLS PNG, GIF JPEG TIFF, GeoTIFF SVG, PDF KML/KMZ GeoTIFF ArcGrid GTopo30 Img+World KML superoverlays Google maps tiles
Interfaccia grafica
Integrated Security Spring Security framework Specificare regole su singoli layer Configurazione semplificata con liste di regole namespace.layer.mode=role1,role2,... A name, or * to mean any r: read w: write The roles that will be authorized to access the data under this rule
Integrated Security: Web UI
Amministrazione RESTful Configurazione programmatica Workspaces DataStores/CoverageStores Layers e Stili Estensioni per classificazioni Esposizione struttura interna Ajax-JavaScript friendly Modulo stabile Sicurezza integrata
WMS 1.1.1 Advanced Styling
WMS 1.1.1 Advanced Styling
WMS 1.1.1 KML Output TEMPORAL SERIES KML EXTRUDE KML SUPEROVERLAY
ImageIO-Ext GDAL Support Nuovi plug-ins: BigTiff*, netcdf-cf,grib1,matfile 5, HDF4 JPEG2000, Kakadu senza l ausilio di GDAL Ongoing work on GDAL 1.7.1 GDAL integration via ImageIO-ext Estensione SUN ImageIO framework JPEG2000,MrSID, ECW, BigTIFF*, ERDAS Image, HDF4,etc... Mix di plugin proprietari ed open
Environmental data support
Environmental data support Ingest, catalog and disseminate multidmensional (X,Y,Z,T, TRun) data Raster, Vector (MetOc, In Situ, Remote Sensing) Exploit WCS/WMS for dissemination Exploit ebrim for cataloguing Support for metoc data Hdf4, netcdf, GriB1 ImageMosaic extensions Support for time and elevation In situ observations WPS integration of IDL and JGrass
ESB OpenSDI Open Spatial Data Infrastructure BI A&A&A geosdi-era OpenLayers Monitoring Data Collection Agents GeoTools GeoWebCache GeoBatch GeoServer Buddata ebrim GeoTools PostGIS Net Storage FOSS4G 2009, Sydney 23 rd September 2009
Ingestion/Preprocessing Real-time produced data Remote Sensing, In situ, Models, etc.. Recognizable, isolate data streams Flow Incoming series of geospatial data Defined rules for preprocessing Defined rules for ingestion and/or exploitation Automatic Ingestion and preprocessing No manual intervention Example, flow of MetOc raster data Buddata ebrim GeoWebCache Producer WRF netcdf netcdf CF Publish GeoServer
GeoBatch FileSystemMonitor Directory Monitoring Event Mailbox Action Action Action EventDispatcher FlowManager Event Consumer Event Consumer
Registry: Buddata EbRR Open Source ebxml Registry/Repository (or ebrr in short) ESA founded ERGO project lead by Intecs OGC specifications implemented e brr buddata 07-110r4: CSW-ebRIM Registry Service - Part 1: ebrim profile of CSW (1.0.1) 07-144r4: CSW-ebRIM Registry Service Part 2: Basic extension package (1.0.1) 07-038: OGC Cataloguing of ISO Metadata (CIM) using the ebrim profile of CS-W (0.1.11) 06-131r6: EO Products Extension Package for ebrim (ISO/TS 15000-3) Profile of CSW 2.0 Code on Google Code (http://code.google.com/p/buddataebxml-registry/) Wiki ERGO project (ESA HMA wiki)
Buddata EbRR @ Work Metadata published with data contextually Use of custom profiles e brr buddata Input Data GeoBatch --------- --------- ----- Publish Metadata Publish Data Registry GeoServer Profiles Find Metadata Consume Data Consmer
Use Case: Super Ensemble Modeling Discover Buddata EbRR Toolbox WPS Ensemble GUI Harvest Invoke Publish Results MATLAB WCS::getCoverage WMS::getMap GeoServer Input Data GeoBatch Deploy
Use Case: Super Ensemble Modeling
JGrass netcdf, time and depth on grids FOSS4G 2009, Sydney 23 rd September 2009
JGrass netcdf, time and depth on grids FOSS4G 2009, Sydney 23 rd September 2009
Obiettivi Conclusions Completamento e rilascio sviluppi in GeoServer Completamento e rilascio integrazione JGrass e IDL in GeoServer Miglioramento supporto parametri WMS/WCS TIME- ELEVATION Rilascio GeoBatch ToDo Animazioni temporali su WMS Disseminazione Cubi NetCDF-CF da WCS Esposizione parametri TIME ed ELEVATION in WFS
The End Domande? Simone.giannecchini@geo-solutions.it
Funzionalità di GeoServer 2.0 WCS WMS WFS WFSv REST Google GWC GeoTools ImageIO 389 JAI JTS GDAL JMagick Vector Style Raster
Integrated Security *.*.r=* *.*.w=no_one RDONLY lock down private.*.r=trusted_role private.*.w=trusted_role topp.districts.w=legislators Per-layer override private.* topp.* topp. districts Other layers TRUSTED_ROLE r/w r r r LEGISLATORS (all other users) (no access) r r/w r (no access) r r r
WMS 1.1.1 - CQL GeoServer WMS CQL Examples STATE_NAME = 'Montana' MALE > FEMALE LAND_KM > 300000
WFSv
Altri moduli Features Pre-generalizzate Pre-processing del dataset per creare una piramide di Features. Dacimated distance =... Dacimated distance = 10 Dacimated distance = 5 Il DataStore seleziona automaticamente il layer semplificato in base al livello di zoom. Full resolution
Complex Features Altri moduli Supporto per Community Schema e Complex Types (Features di Features) Fondamentale per supportare INSPIRE!
Altri moduli WPS 1.0.0: Sextante Integration (experimental) JGrass integration (tentative) IDL integration (proprietary) Obiettivi: Full OGC-WPS 1.0.0 compliancy Raster Processing (WCPS)
Altri moduli JDBC Next Generation drivers Obiettivi: Ridurre il tempo di sviluppo di nuovi DataStores Evitare la duplicazione di codice Aumentare la qualità verso il backend, in termini di security, performance e testing Come: Unica JDBCDataStore class final, in modo da non poter essere subclassata Introduzione del concetto di Dialect per incapsulare le operazioni specifiche ad ogni DataBase
GeoWebCache GeoServer GeoWebCache Persistent raster/kml tile cache Sistema di tile cache per WMS Layer statici Fornisce KML/raster tiles GMap, Gearth OpenLayers VEarth, Bing Speed up fattore 10/100 REST interface
Hibernate Catalog Web REST WMS WFS WCS... Catalog Interface Hibernate Based Catalog Configuration stored in DB Hibernate Spring based Dao ServiceDAO CatalogDAO Transactions via Spring/EJB3 Caching with EhCache Hibernate 2 L cache Same catalog interface, different implementation Catalog interface needs tweaking Net Storage DB GeoServer UI still needs tweaking Transaction demarcation needs tweaking
Use Case: Super Ensemble Modeling Current solution Split hyper-cubes of data into a set of 2D slices recompose with mosaic Use registry for registering T and Z........................... Input 5D Cubes GeoBatch Vertical Interpolation Geo-Rectification Resampling Mosaic Recomposition Publish Metadata Publish Data Registry GeoServer Next Step RasterVault
RasterVault Raster sono intrinsecamente multidimensionali (x,y,z,t) [(fielda1,fielda2),(fieldb1)]
RasterVault Web REST WMS WFS WCS... Catalog Interface CoverageStore Interface CoverageStore GeoServer RasterLayerDAO RangeDAO Hibernate Spatial 2 L cache RasterVault Net Storage DB
GeoBatch: Basics Event-based geospatial-aware batch ingestion/processing system Basic tools for automatic collection, processing and publication of data. Open Source (leverages on GeoTools, Apache FTP, Spring, Xstream, etc ) Embedded FTP Server Publish to GeoServer Publish to GeoWebCache (ongoing) Web based XML configuration http://docs.codehaus.org/display/geobatch
GeoBatch:Sample Flow - <FlowConfiguration> <workingdirectory>aisanomalies</workingdirectory> <autorun>true</autorun> - <EventConsumerConfiguration> <workingdirectory>aisanomalies</workingdirectory> <performbackup>true</performbackup> - <FileEventRule> <optional>false</optional> <originaloccurrencies>1</originaloccurrencies> <regex>.*\.shp</regex> <id>r1</id> <description>description</description> <name>test</name> </FileEventRule>. - <GeoServerActionConfiguration> <crs>epsg:4326</crs> <envelope /> <datatransfermethod>url</datatransfermethod> <geoserverpwd>geoserver</geoserverpwd> <geoserveruid>admin</geoserveruid> <geoserverurl>http://localhost:8080/geoserver</geoserverurl> <wmspath>/</wmspath> <defaultstyle>polygon</defaultstyle> <styles /> </GeoServerActionConfiguration>
GeoBatch:Sample Flow - <GeoServerActionConfiguration> <crs>epsg:4326</crs> <envelope /> <datatransfermethod>url</datatransfermethod> <geoserverpwd>geoserver</geoserverpwd> <geoserveruid>admin</geoserveruid> <geoserverurl>http://localhost:8080/geoserver</geoserverurl> <wmspath>/</wmspath> <defaultstyle>polygon</defaultstyle> <serviceid>aisanomaliesgeoservergeneratorservice</serviceid> <styles /> </GeoServerActionConfiguration> </EventConsumerConfiguration> <eventgeneratorconfiguration class="fseventgeneratorconfiguration"> <wildcard>*.*</wildcard> <watchdirectory>aisanomalies/in</watchdirectory> <keepfiles>true</keepfiles> <ostype>os_undefined</ostype> <eventtype>file_added</eventtype> </eventgeneratorconfiguration> <id>flowaisanomalies</id> <description>flowaisanomalies: testing injection of AISAnomalies shapefiles </description> <name>flowaisanomalies</name> </FlowConfiguration>
GeoBatch: UI
Index & Search Capabilities: ebrim Registry versus Repository Flexible Information Model Object Lifecycle Management Trader Authority Content Management Service Provider Event Notification Protocol Bindings Publish-Find-Subscribe(Consume) Federation Registry Publish Find Broker Consumer Provider Subscribe Consume Consumer
Web Service Interface Layer EbRR: Architecture overview HTTP GetRepositoryItem Interface SOAP Interfaces e brr buddata HTTP GetRepositoryItem Interface HTTP GetRepositoryItem Interface API Layer CSW SOAP Client Registry APIs CSW Backend Client Deployer Business Layer Lifecycle Manager Transaction Manager Query Manager Repository Manager Core Registry Functions Add-on Functions Translator Harvester Validator Data Layer Postgresql Database Persistence PostGIS Functions
Use Case: Super Ensemble Modeling Optimal MetOc models mixing Same model, different boundary conditions Different model same boundary coinditions System training (Kalman filter) historycal data Output Series of weight for optimal MetOc model mixing Result optimal MetOc model as fusion of weighted models
Use Case: Super Ensemble Modeling
Use Case: LAMMA NCEP-GFS W\RF NMM Postproc Postproc ECMWF
Use Case: LAMMA NCEP-GFS W\RF NMM Postproc GeoServer Publish Data GeoBatch Publish Metadata ECMWF RasterVault Registry
ESB Enterprise Spatial Data Infrastructure Reporting A&A&A GeoPortal Monitoring Data Collection Agents Data Management Layer Batch Processing Map Accelerator Online Processing Data Dissemination Server Data Management Layer Index & Search Spatial DBMS Net Storage
ESB Enterprise Spatial Data Infrastructure GeoBI A&A&A geosdi-era OpenLayers Monitoring Data Collection Agents GeoTools GeoWebCache GeoBatch GeoServer Buddata ebrim GeoTools PostGIS Net Storage