geoserver, an introduction for beginners

51
GeoServer an introduction for beginners Ing. Andrea Aime, GeoSolutions Ing. Simone Giannecchini, GeoSolutions FOSS4G-Europe 2014, Bremen 14 th -17 th July 2014

Upload: geosolutions

Post on 08-Sep-2014

428 views

Category:

Technology


5 download

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 security

TRANSCRIPT

Page 1: GeoServer, an introduction for beginners

GeoServer an introduction for beginners

Ing. Andrea Aime, GeoSolutions Ing. Simone Giannecchini, GeoSolutions

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 2: GeoServer, an introduction for beginners

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

Page 3: GeoServer, an introduction for beginners

Outline

Quick intro to GeoServer

Basic concepts, administration GUI and REST

WMS / WFS / WCS / WPS

Security

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 4: GeoServer, an introduction for beginners

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

Page 5: GeoServer, an introduction for beginners

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

Google

WPS

CSW

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 6: GeoServer, an introduction for beginners

Administering GeoServer

Page 7: GeoServer, an introduction for beginners

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

Page 8: GeoServer, an introduction for beginners

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

Page 9: GeoServer, an introduction for beginners

Administration GUI

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 10: GeoServer, an introduction for beginners

Administration GUI

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 11: GeoServer, an introduction for beginners

Administration GUI

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 12: GeoServer, an introduction for beginners

Administration GUI

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 13: GeoServer, an introduction for beginners

Administration GUI

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 14: GeoServer, an introduction for beginners

Administration GUI

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 15: GeoServer, an introduction for beginners

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

Page 16: GeoServer, an introduction for beginners

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

Page 17: GeoServer, an introduction for beginners

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

Page 18: GeoServer, an introduction for beginners

Many Rendering Options

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 19: GeoServer, an introduction for beginners

Some examples from IGN

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 20: GeoServer, an introduction for beginners

Many Supported Projections

Dateline crossing management

Cutting un-reprojectable geometries

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 21: GeoServer, an introduction for beginners

WMS: TIME and ELEVATION

TIME = 20100512T0000000Z ELEVATION = 0.0

FeatureType Editor

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 22: GeoServer, an introduction for beginners

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

Page 23: GeoServer, an introduction for beginners

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

Page 24: GeoServer, an introduction for beginners

KML/KMZ

TEMPORAL SERIES

KML EXTRUDE KML SUPEROVERLAY

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 25: GeoServer, an introduction for beginners

Publishing Vector Data

Page 26: GeoServer, an introduction for beginners

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

Page 27: GeoServer, an introduction for beginners

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

Page 28: GeoServer, an introduction for beginners

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

Page 29: GeoServer, an introduction for beginners

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

Page 30: GeoServer, an introduction for beginners

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

Page 31: GeoServer, an introduction for beginners

Publishing Raster Data

Page 32: GeoServer, an introduction for beginners

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

Page 33: GeoServer, an introduction for beginners

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

Page 34: GeoServer, an introduction for beginners

N-dimensional mosaic/NetCDF support

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 35: GeoServer, an introduction for beginners

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

Page 36: GeoServer, an introduction for beginners

Analyzing & Processing data

Page 37: GeoServer, an introduction for beginners

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

Page 38: GeoServer, an introduction for beginners

An example

Buffer a L shaped geometry with distance “2”

Get the result back as GML

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 39: GeoServer, an introduction for beginners

A chaining example

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 40: GeoServer, an introduction for beginners

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

Page 41: GeoServer, an introduction for beginners

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

Page 42: GeoServer, an introduction for beginners

Writing processes

Python Groovy

JavaScript Ruby

JSR-223

http://geoscript.org

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 43: GeoServer, an introduction for beginners

Securing Data

Page 44: GeoServer, an introduction for beginners

Security: Authentication

Pluggable authentication mechanisms

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 45: GeoServer, an introduction for beginners

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

Page 46: GeoServer, an introduction for beginners

Basic data access security

Simple built-in role and layer based data access:

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 47: GeoServer, an introduction for beginners

Basic service access security

Simple built-in role and service based data access:

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 48: GeoServer, an introduction for beginners

Advanced security via external tools

https://github.com/geosolutions-it/geofence

FOSS4G-Europe 2014, Bremen 14th-17th July 2014

Page 49: GeoServer, an introduction for beginners

Closing Up

Page 50: GeoServer, an introduction for beginners

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

Google

WPS

CSW

FOSS4G-Europe 2014, Bremen 14th-17th July 2014