geoserver: an introduction for beginner

55
GeoServer an introduction for beginners Ing. Andrea Aime, GeoSolutions Ing. Simone Giannecchini, GeoSolutions INSPIRE Conference 2016, Barcelona 26 th Sept 2016

Upload: geosolutions-sas

Post on 21-Jan-2017

1.428 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: GeoServer: an introduction for beginner

GeoServeran introduction for beginners

Ing. Andrea Aime, GeoSolutionsIng. Simone Giannecchini, GeoSolutions

INSPIRE Conference 2016, Barcelona26th Sept 2016

Page 2: GeoServer: an introduction for beginner

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…

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 3: GeoServer: an introduction for beginner

GeoSolutions

INSPIRE Conf 2016, Barcelona26th Sept 2016

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

Page 4: GeoServer: an introduction for beginner

Outline Quick intro to GeoServer Basic concepts, administration GUI and

REST WMS / WFS / WCS / WPS Security

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 5: GeoServer: an introduction for beginner

Resources Our website

http://www.geo-solutions.it Our Blog

http://www.geo-solutions.it/category/blog/ Our Slideshare Deck

http://www.slideshare.net/geosolutions Our Training

http://geoserver.geo-solutions.it/edu/en Online Material http://geoserver.geo-solutions.it/downloads/training//linux Linux VM http://geoserver.geo-solutions.it/downloads/training/windows Windows

Package

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 6: GeoServer: an introduction for beginner

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..

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 7: GeoServer: an introduction for beginner

Form

ats

and

Prot

ocol

s

Geo

Serv

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

Google

WPS

CSW

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 8: GeoServer: an introduction for beginner

Administering GeoServer

Page 9: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 10: GeoServer: an introduction for beginner

Virtual Services

Expose different OGC services per workspace Styles and layer groups per workspace

Have different administrators per workspace multi-tenancy

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 11: GeoServer: an introduction for beginner

Administration GUI

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 12: GeoServer: an introduction for beginner

Administration GUI

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 13: GeoServer: an introduction for beginner

Administration GUI

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 14: GeoServer: an introduction for beginner

Administration GUI

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 15: GeoServer: an introduction for beginner

Administration GUI

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 16: GeoServer: an introduction for beginner

Administration GUI

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 17: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 18: GeoServer: an introduction for beginner

RESTful Configuration example

Automate management of layers and their configuration

FTP

ETL

Get and process data

Publish new layers

via REST config

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 19: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 20: GeoServer: an introduction for beginner

Many Rendering Options

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 21: GeoServer: an introduction for beginner

Some examples from IGN

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 22: GeoServer: an introduction for beginner

Many Supported Projections

Dateline crossing management

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 23: GeoServer: an introduction for beginner

WMS: TIME and ELEVATION

TIME = 20100512T0000000ZELEVATION = 0.0

FeatureType Editor

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 24: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 25: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 26: GeoServer: an introduction for beginner

KML/KMZ

TEMPORAL SERIES

KML EXTRUDE KML SUPEROVERLAY

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 27: GeoServer: an introduction for beginner

Publishing Vector Data

Page 28: GeoServer: an introduction for beginner

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)

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 29: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 30: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 31: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 32: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 33: GeoServer: an introduction for beginner

Complex Features Support – The Good

INSPIRE Conf 2016, Barcelona26th Sept 2016

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

Page 34: GeoServer: an introduction for beginner

Complex Features support

INSPIRE Conferece 2016, Barcelona26th Sept 2016

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

Page 35: GeoServer: an introduction for beginner

Complex Features – HALE at rescue

INSPIRE Conf 2016, Barcelona26th Sept 2016

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

• Done in steps• Most common transformation firsts• Hopefully, no need to manually edit the final result

Page 36: GeoServer: an introduction for beginner

Complex Features – HALE at rescue

INSPIRE Conf 2016, Barcelona26th Sept 2016

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 Editing support

Bonus Track Funding Appreciated Integrate HALE ETL Engine in GeoServer

Batch exports (Predefined dataset) Periodic batch + Preprocessing for efficient

publishing

Page 37: GeoServer: an introduction for beginner

Publishing Raster Data

Page 38: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 39: GeoServer: an introduction for beginner

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)

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 40: GeoServer: an introduction for beginner

N-dimensional mosaic/NetCDF support

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 41: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 42: GeoServer: an introduction for beginner

Analyzing & Processing data

Page 43: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 44: GeoServer: an introduction for beginner

An example

Buffer a L shaped geometry with distance “2”

Get the result back as GML

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 45: GeoServer: an introduction for beginner

A chaining example

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 46: GeoServer: an introduction for beginner

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

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 47: GeoServer: an introduction for beginner

Tight integration

WPS

RemoteWCS

RemoteWFS

HTTP server

WPSclient

All GeoServer Layers

WMSclientWMS

GeoServer UI

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 48: GeoServer: an introduction for beginner

Writing processes

Python Groovy

JavaScript Ruby

JSR-223

http://geoscript.org

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 49: GeoServer: an introduction for beginner

Securing Data

Page 50: GeoServer: an introduction for beginner

Security: Authentication

Pluggable authentication mechanisms

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 51: GeoServer: an introduction for beginner

Authentication mechanism mix per URL

Different access paths need different auth mechanisms (GUI vs REST vs OGC service):

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 52: GeoServer: an introduction for beginner

Basic data access security

Simple built-in role and layer based data access:

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 53: GeoServer: an introduction for beginner

Basic service access security

Simple built-in role and service based data access:

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 54: GeoServer: an introduction for beginner

Advanced security via external tools

https://github.com/geoserver/geofence

INSPIRE Conf 2016, Barcelona26th Sept 2016

Page 55: GeoServer: an introduction for beginner

The End

[email protected]

INSPIRE Conf 2016, Barcelona26th Sept 2016