geoserver, an introduction for beginners
DESCRIPTION
This presentation will provide an introduction to the GeoServer project and its abilities to publish data with a mix of well known OGC protocols and other pupolar protocol and data formats, including: * Setting up vector and raster data from the GeoServer administration control * Publishing data via WMS, WFS and WCS * Styling layers using desktop tools, with a carousel of GeoServer mapping abilities * Tile caching with WMTS * Moving to data processing with WPS * Brief introduction to securityTRANSCRIPT
GeoServer an introduction for beginners
Ing. Andrea Aime, GeoSolutions Ing. Simone Giannecchini, GeoSolutions
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
GeoSolutions
Founded in Italy in late 2006
Expertise
• Image Processing, GeoSpatial Data Fusion
• Java, Java Enterprise, C++, Python
• JPEG2000, JPIP, Advanced 2D visualization
Supporting/Developing FOSS4G projects
MapStore, GeoServer
GeoNetwork, GeoTools, GeoBatch,
ImageIO-Ext and more: https://github.com/geosolutions-it
Focus on Consultancy
PAs, NGOs, private companies, etc…
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Outline
Quick intro to GeoServer
Basic concepts, administration GUI and REST
WMS / WFS / WCS / WPS
Security
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
GeoServer
GeoSpatial enterprise gateway Java Enterprise
Management and Dissemination of
raster and vector data
Standards compliant OGC WCS 1.0, 1.1.1 (RI), 2.0
OGC WFS 1.0, 1.1 (RI), 2.0
OGC WMS 1.1.1, 1.3
OGC WPS 1.0.0
Google Earth/Maps support
KML, GeoSearch, etc..
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Fo
rmats
an
d P
roto
co
ls
Ge
oS
erv
er
WFS
WMS
PostGIS Oracle H2 DB2 SQL Server MySql Spatialite GeoCouch MongoDB
Shapefile
---------- ---------- --------- ----------
---------- ---------- --------- ----------
---------- ---------- --------- ----------
ArcSDE WFS
PNG, GIF JPEG TIFF, GeoTIFF SVG, PDF KML/KMZ
Shapefile GML2 GML3 GeoRSS GeoJSON CSV/XLS
Raw vector data
Servers
Styled maps
DBMS
Vector files
WCS GeoTIFF WMS ArcGrid GTopo30 Img+world Mosaic MrSID JPEG 2000 ECW,Pyramid, Oracle GeoRaster, PostGis Raster, NetCDF
Raster files
Raw raster data
GeoTIFF ArcGrid GTopo30 Img+World
WMTS, TMS,
WMS-C KML superoverlays Google maps tiles OGC tiles OSGEO tiles
WPS
CSW
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Administering GeoServer
Workspaces: organizational structure/folder/ virtual services
Stores: connections to data sources
Layers: the data and its configuration
Styles: how to draw it
LayerGroups: ready to use maps
Processes
Services: per service config details
Security
Key Concepts
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Virtual Services
Expose different OGC services per workspace
Styles and layer groups per workspace
Have different administrators per workspace multi-tenancy
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Administration GUI
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Administration GUI
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Administration GUI
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Administration GUI
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Administration GUI
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Administration GUI
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
RESTful Configuration
Programmatic configuration of layers via REST calls
Workspaces, Data stores / coverage stores
Layers and Styles, Service configurations
Freemarker templates
Exposing internal configuration to remote clients
Ajax - JavaScript friendly
Various client libraries available in different languages (Java, Python, Ruby, …).
Example, geoserver-manager: https://github.com/geosolutions-it/geoserver-manager
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
RESTful Configuration example
Automate management of layers and their configuration
Get and process data
Publish new layers
via REST config
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
WMS
Dissemination of Maps
Fusing raster and vector data seamlessly
Rule/scale driven rendering
WMS 1.1.1 and 1.3 support
Time/elevation/custom dimension support
SLD
Basic support for SLD 1.1 and SE 1.1
Full support for SLD 1.0
CSS extension for compact styling
Many rendering extensions available
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Many Rendering Options
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Some examples from IGN
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Many Supported Projections
Dateline crossing management
Cutting un-reprojectable geometries
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
WMS: TIME and ELEVATION
TIME = 20100512T0000000Z ELEVATION = 0.0
FeatureType Editor
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
WMS: Rendering Transformations
On-the-fly data transformations
Calling spatial analysis processes from SLD docs
Optimized for performance
Examples: on the fly contour lines, heat maps, point clustering, point interpolation, GCP based image rectification
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
GeoWebCache Integration
GeoServer
GeoWebCache
Persistent raster/KML tile cache
Direct calls to GeoServer rendering engine
Support for layers modified through WFS-T
Support for various tile protocols
GMap, Gearth
OpenLayers, VEarth, Bing
Speed-up factor 10/100
Disk quota support
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
KML/KMZ
TEMPORAL SERIES
KML EXTRUDE KML SUPEROVERLAY
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Publishing Vector Data
WFS
Dissemination and filtering of vector data
WFS 1.0, 1.1 and 2.0 (since 2.2.0)
Transaction and paging available in all versions
Simplified filtering via CQL
Formats:
GML 2, 3.1 and 3.2
CSV, Excel spreadsheet, GeoRSS, GeoJSON
Shapefile (zipped)
Any other format supported by ogr2ogr (configurable)
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Rich Filtering Support
Full standard filter support
Scalar (<, <=, >, >=, =, !=, like)
Temporal
Spatial (intersections, touch, dwithin, dbeyond, …)
Filters directly translated into native data source filtering (e.g., SQL for spatial databases, OGC Filter for WFS cascading, SDE filters, ….)
Rich set of filter functions for advanced filtering (do math and string manipuation in your filters): http://docs.geoserver.org/stable/en/user/filter/function_reference.html
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
More data access options
Paging (native in WFS 2.0, back-ported to other versions as a vendor extension)
Joins (scalar, temporal, spatial) between feature types (WFS 2.0)
Stored queries (WFS 2.0)
Reprojection
Various built-in output formats (GML2/3.1/3.2, shapefile, geojson, csv, excel)
More can be added via ogr2ogr or by programming
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
WFS-Transactional
Modify your data from your remote client (desktop, web or mobile)
WFS-T WMS
Edit with desktop client and commit changes
All protocols will Immediately see
the updates
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Complex Features support
Application/community schemas
Complex Features
Attributes as sub-features
Attributes as list of features
Tree-like structure
Mixing in a single tree heterogeneous data sources
Optimizations if everything is in the same DBMS
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Publishing Raster Data
WCS
Raster data dissemination
Raw raster data useful for analysis, no maps!
Support for TIME and ELEVATION (via ImageMosaic plugin)
WCS 1.0, 1.1.1 and 2.0
Output formats
GeoTiff, ArcGrid
NetCDF
Extensions
ELEVATION as band management
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
WCS features
Everything needed to support the WCS 2.0 Earth Observation profile:
Trimming (spatially , temporally, and on custom dimensions too as a vendor extension)
Band subsetting
Reprojection
GeoTiff output control (tiling, compression, …)
Description of NetCDF/mosaics as EO datasets (list of all the internal slices)
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
N-dimensional mosaic/NetCDF support
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Spatiotemporal Raster Management
REST support to expose a image mosaic internal structure
Dimensions
Granules
Dimensions: list, edit, create, remove /workspaces/<ws>/coveragestores/<cs>/coverages/<mosaic>/dimensions
/workspaces/<ws>/coveragestores/<cs>/coverages/<mosaic>/dimensions/<dimension>[.format]
TODO paging and query of dimension domain
Granules: list, edit, create, remove /workspaces/<ws>/coveragestores/<cs>/coverages/<mosaic>/index
/workspaces/<ws>/coveragestores/<cs>/coverages/<mosaic>/index/pageN
/workspaces/<ws>/coveragestores/<cs>/coverages/<mosaic>/index/pageN/granuleM
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Analyzing & Processing data
WPS
WPS 1.0
Official Extension
Raster and Vector data support
Many built-in processer (almost 100):
Vector and geometric analysis
Raster based
Conversions processes (raster vector)
Tight integration with local data and map rendering
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
An example
Buffer a L shaped geometry with distance “2”
Get the result back as GML
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
A chaining example
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Synchronous vs asynchronous
WPS client
WPS
Launch process
Send back results
Simple Suitable for fast executions
Synchronous
WPS client
WPS
Launch process
Status URL
Check progress
50%
Check progress
100% Results inline Link to results
More complex Suitable for longer computations
Asynchronous
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Tight integration
WPS
Remote WCS
Remote WFS
HTTP server
WPS client
All GeoServer Layers
WMS client WMS
GeoServer UI
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Writing processes
Python Groovy
JavaScript Ruby
JSR-223
http://geoscript.org
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Securing Data
Security: Authentication
Pluggable authentication mechanisms
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Authentication mechanism mix per URL
Different access paths need different auth mechanisms (GUI vs REST vs OGC service):
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Basic data access security
Simple built-in role and layer based data access:
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Basic service access security
Simple built-in role and service based data access:
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Advanced security via external tools
https://github.com/geosolutions-it/geofence
FOSS4G-Europe 2014, Bremen 14th-17th July 2014
Closing Up
Fo
rmats
an
d P
roto
co
ls
Ge
oS
erv
er
WFS
WMS
PostGIS Oracle H2 DB2 SQL Server MySql Spatialite GeoCouch MongoDB
Shapefile
---------- ---------- --------- ----------
---------- ---------- --------- ----------
---------- ---------- --------- ----------
ArcSDE WFS
PNG, GIF JPEG TIFF, GeoTIFF SVG, PDF KML/KMZ
Shapefile GML2 GML3 GeoRSS GeoJSON CSV/XLS
Raw vector data
Servers
Styled maps
DBMS
Vector files
WCS GeoTIFF WMS ArcGrid GTopo30 Img+world Mosaic MrSID JPEG 2000 ECW,Pyramid, Oracle GeoRaster, PostGis Raster, NetCDF
Raster files
Raw raster data
GeoTIFF ArcGrid GTopo30 Img+World
WMTS, TMS,
WMS-C KML superoverlays Google maps tiles OGC tiles OSGEO tiles
WPS
CSW
FOSS4G-Europe 2014, Bremen 14th-17th July 2014