geoserver beginners gwf_2015
TRANSCRIPT
GeoServeran introduction for beginners
Ing. Andrea Aime, GeoSolutionsIng. Simone Giannecchini, GeoSolutions
GWF 2015, Lisbon27th May 2015
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, GeoNode,
ImageIO-Ext and more: https://github.com/geosolutions-it
Focus on Consultancy PAs, NGOs, private companies, etc…
GWF 2015, Lisbon27th May 2015
GeoSolutions
GWF 2015, Lisbon27th May 2015
Enterprise Support Services Bug Fixing Support Customizations & New Features 5 packages different types of needs
Professional Training End-To-End Projects (Integration)
Tell me what you need, I’ll put it together for you We take our core products and
Bend them, twist them, embed them Hammer them to make clients happy
FOSS4G Software is core for us Not simply use but develop and support
Outline
Quick intro to GeoServer
Basic concepts, administration GUI and REST
WMS / WFS / WCS / WPS
Security
GWF 2015, Lisbon27th May 2015
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.0 OGC WPS 1.0.0 OGC CSW 2.0.1 (ebRIM)
Google Earth/Maps support KML, GeoSearch, etc..
GWF 2015, Lisbon27th May 2015
Fo
rmat
s an
d P
roto
cols
Ge
oS
erv
er WFS
WMS
PostGISOracleH2DB2SQL ServerMySqlSpatialiteGeoCouchMongoDB
Shapefile
---------------------------------------
---------------------------------------
---------------------------------------
ArcSDEWFS
PNG, GIFJPEGTIFF, GeoTIFFSVG, PDFKML/KMZ
ShapefileGML2GML3GeoRSSGeoJSONCSV/XLS
Raw vectordata
Servers
Styled maps
DBMS
Vector files
WCSGeoTIFFWMSArcGridGTopo30Img+worldMosaicMrSIDJPEG 2000ECW,Pyramid, Oracle GeoRaster, PostGis Raster, NetCDF
Raster files
Raw rasterdata
GeoTIFFArcGridGTopo30Img+World
WMTS,TMS,
WMS-CKML superoverlaysGoogle maps tilesOGC tilesOSGEO tiles
WPS
CSW
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
Virtual Services
Expose different OGC services per workspace Styles and layer groups per workspace
Have different administrators per workspace multi-tenancy
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
RESTful Configuration example
Automate management of layers and their configuration
FTP
ETL
Get and process data
Publish new layers
via REST config
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
WMS: TIME and ELEVATION
TIME = 20100512T0000000ZELEVATION = 0.0
FeatureType Editor
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
GeoWebCache Integration
GeoServer
GeoWebCache
Persistent raster/KMLtile 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
GWF 2015, Lisbon27th May 2015
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)
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
WFS-Transactional
Modify your data from your remote client (desktop, web or mobile)
WFS-T WMS
Edit with desktop clientand commit changes
All protocols will Immediately see
the updates
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
Complex Features Support – The Good
GWF 2015, Lisbon27th May 2015
Official GeoServer extension Complex Features
Multi valued attributes Collection of related objects in one XML Nesting of features (also Complex Features) Required by many Inspire schemas
• Mapping of SimpleFeatures to build Complex Features, that are compliant to a
given XSD Transformations through CQL Feature linking
Complex Features support
GWF 2015, Lisbon27th May 2015
Difficult to configure no UI Manually create XML configuration files Reload Catalog for any change (trial and
error) Need for a graphical mapping tool
Performance Getting good performance can be
difficult Data needs to be preprocessed
(denormalized) Optimized join on JDBC based sources
can help
The Bad
The Ugly
Complex Features – HALE at rescue
GWF 2015, Lisbon27th May 2015
Using HALE as a GUI editor for app-schema config No need to create a new GUI Seamless integration of HALE with GeoServer Implemented as a new type of Alignment Writer Needs to support most common HALE transformations
and translate them to app-schema mappings• Tough work
• Will be done in steps• Most common transformation firsts• Hopefully, no need to manually edit the final result
Complex Features – HALE at rescue
GWF 2015, Lisbon27th May 2015
In the process… Already Funded Improvements and bugfixes to HALE Improvements and bugfixes to GeoServer app-schema New schema/data formats for HALE Spatialite New type of transformations for HALE (e.g.
ReprojectGeometry) Improvements to the app-schema mapping engine to get
a better integration Bonus Track Funding Appreciated
Integrate HALE ETL Engine in GeoServer Batch exports (Predefined dataset) Periodic batch Preprocessing for efficient publishing
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
GWF 2015, Lisbon27th May 2015
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)
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
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
GWF 2015, Lisbon27th May 2015
An example
Buffer a L shaped geometry with distance “2”
Get the result back as GML
GWF 2015, Lisbon27th May 2015
Synchronous vs asynchronous
WPS client WPS
Launch process
Send back results
SimpleSuitable for fast executions
Synchronous
WPS client WPS
Launch process
Status URL
Check progress
50%
Check progress
100%Results inlineLink to results
More complexSuitable for longer computations
Asynchronous
GWF 2015, Lisbon27th May 2015
Tight integration
WPS
RemoteWCS
RemoteWFS
HTTP server
WPSclient
All GeoServer Layers
WMSclientWMS
GeoServer UI
GWF 2015, Lisbon27th May 2015
Writing processes
Python Groovy
JavaScript Ruby
JSR-223
http://geoscript.org
GWF 2015, Lisbon27th May 2015
Authentication mechanism mix per URL
Different access paths need different auth mechanisms (GUI vs REST vs OGC service):
GWF 2015, Lisbon27th May 2015
Basic data access security
Simple built-in role and layer based data access:
GWF 2015, Lisbon27th May 2015
Basic service access security
Simple built-in role and service based data access:
GWF 2015, Lisbon27th May 2015
Advanced security via external tools
https://github.com/geoserver/geofence
GWF 2015, Lisbon27th May 2015