Slide 1

Slide 1 text

State of GeoServer FOSS4G 2018 edition!

Slide 2

Slide 2 text

Andrea Aime Technical Lead [email protected] @geowolf GeoSolutions Innovative, robust and cost-effective solutions leveraging best-of-breed Open Source products. This presentation is brought to you by Jody Garnett Community Lead [email protected] @jodygarnett Boundless Provides geospatial tools and services for managing data and building applications. Ian Turon Open Source Evangelist [email protected] @ijturton Astun technologies Passionate about geography and passionate about open (source, standards and data).

Slide 3

Slide 3 text

GeoServer at a Glance Java Web Application to share and edit geospatial data. Publish data from any major spatial data source using open standards. Core Protocols WMS – maps WFS – vector WFS-T – editing WCS – coverage WMTS – tiles TMS – tiles WMS-C – tiles Extension/community protocols WPS – process CSW – search OpenSearch for Earth Observation – search

Slide 4

Slide 4 text

GeoServer 2018 What’s in a year?

Slide 5

Slide 5 text

stable maintenance development September 2017 March 2018 September 2018 March 2019 2.12.x 2.13.x 2.14.x Releases covered by this presentation

Slide 6

Slide 6 text

Are you using a older version? Upgrade! ● User list and stack exchange typically covers only supported versions ○ Today it means 2.13.x and 2.12.x ○ In September it will mean 2.14.x and 2.13.x ● Security fixes being added to supported versions only ● Please upgrade your GeoServer installations!

Slide 7

Slide 7 text

Upgrade? What’s in it for me? ● Much! ● Let’s check what’s new in 2.12, 2.13 and in the upcoming 2.14 releases ● Check the bottom of each slide to see who sponsored a certain feature, who implemented it, and what version contains it Version Author Sponsor

Slide 8

Slide 8 text

Vector data sources Precisely placed and attributed!

Slide 9

Slide 9 text

GeoPackage graduated from community module to “core”: ● Provides an sqlite database containing vector or raster data ○ Initial idea from spatialite project ○ Now an OGC Standard to replace shapefile and personal file geodatabase ● GeoPackage improvements: ○ Bug fix - raster mosaic geopackage had y-axis inverted. ○ Support for spatial indexes an RnD topic ● Additional GeoPackage community modules ○ GeoPackage WMS output available as a community module ○ GeoPackage WFS output format ○ GeoPackage WPS output format GeoPackage support built-in! 2.12 GeoSolutions Boundless Community Boundless Suite

Slide 10

Slide 10 text

GeoPackage performance improvements GeoPackage reading and rendering: ● Up to two times faster on large datasets ● Up to 50% faster as you zoom in GeoPackage performance is now on par with PostGIS (Shapefile remains fastest / most optimized) 2.13 Andrea Aime GeoSolutions Community

Slide 11

Slide 11 text

MongoDB Graduated to extension status! ● Makes use of the supported GeoTools MongoDB DataStore ● Publish information stored in the MongoDB Document Database, via a mapping configuration 2.14 Nuno Oliveira GeoSolutions NPRA

Slide 12

Slide 12 text

Support for more PostgreSQL data types ● Basic HStore and JSON data types support. Both render as a JSON formatted string field in WFS output (2.13.x), read only, no filtering support ● Array support in progress (2.14.x), read, write, limited filtering ● Geometry XYZM support (2.14.x) 2.13 - 2.14 Daniele Romagnoli - Andrea Aime GeoSolutions MDA / DLR

Slide 13

Slide 13 text

Raster data sources Pixels, pixels, billions of them!

Slide 14

Slide 14 text

● Initial version in 2.11 ● Several fixes in 2.12, e.g. accuracy, performance, dateline crossing handling ● Being tested against global mosaics of Sentinel2 (each image in a different UTM zone), more improvements/fixes incoming Heterogeneous CRS image mosaics 2.11/2.12 Boundless/GeoSolutions RnD/DLR UTM60 image footprints UTM1 image footprints Dateline wrapped image mosaic

Slide 15

Slide 15 text

Coverage views from heterogeneous bands 2.13 Source data (e.g. Sentinel 2) A new feature in 2.13 is the ability to define a coverage view using mix bands from seperate files, at different resolutions, into a single multiband coverage view. Daniele Romagnoli - Andrea Aime GeoSolutions DLR Virtual multiband coverage Select 3 bands and contrast stretch

Slide 16

Slide 16 text

S3 GeoTIFF Community Module + Mosaic Support for GeoTiffs hosted on Amazon S3 ● In 2.14.x, can be coupled with image mosaic to support mosaics of AWS images (experimental!) 2.12 - 2.14 Devon / Niels Boundless Boundless s3://landsat-pds/L8/001/002/LC80010022016230LGN00/LC8001 0022016230LGN00_B1.TIF?useAnon=true&awsRegion=US_WEST_2

Slide 17

Slide 17 text

Web Map Service Got maps?

Slide 18

Slide 18 text

Nearest match in time dimension ● Time dimension now supports “nearest match” ● Map will return the closest time to the one selected ● Possibility to set a search “radius” ● The actual time used is returned in a HTTP response header 2.14 Andrea Aime GeoSolutions EUMETSAT

Slide 19

Slide 19 text

WMS sortBy vendor param ● Sort by recency, cloud cover, and so on ● Supported by vector data and image mosaic 2.12 Andrea Aime GeoSolutions DLR Mosaic sorted by recency Mosaic sorted by cloud cover

Slide 20

Slide 20 text

Better centroid / label placement in “vector” outputs KML ● generate placemarks that are always inside polygon (for concave polygons) Vector Tiles ● Pregenerate label points in tiles ○ Reduce effort on client 2.12 Kevin Smith Justin Deoliveira RnD Label Label vs

Slide 21

Slide 21 text

Web Feature Service To the source of vector data!

Slide 22

Slide 22 text

Almost WFS 2.0 certified compliant ● Lot of work went into making GeoServer pass the WFS 2.0 certification on simple features ● 48 issues fixed ● Almost there, still a couple of minor fixes to do (but so many other urgent things to work on…) 2.12 - 2.13 - 2.14 Andrea Aime GeoSolutions OGC and GeoSolutions

Slide 23

Slide 23 text

1 -2 10 0 1 3 15 1 5 3 20 2 5 -2 25 3 Nuno / GeoSolutions Jody / Boundless Encode coordinates measures - Enable to encode coordinate measures (“M”) in WFS output formats that support measures. - PostGIS is supported today! WFS Measure Support Community 2.14

Slide 24

Slide 24 text

App-schema improvements ● Improvements to connection pool usage (only one connection used per request now) ● Some improvements helping while using MongoDB as a source for app-schema records ● Hale mapping support being extended to support MongoDB ● Support for SOLR as a data source for MongoDB, as well as secondary index for full text search engines 2.12 - 2.13 - 2.14 Nuno Oliveira GeoSolutions NPRA

Slide 25

Slide 25 text

Web Coverage Service To the source of raster data, too!

Slide 26

Slide 26 text

CQL_FILTER and SORT_BY on mosaics ● Sort by recency, cloud cover, and so on ● Filter on the same ● Maps to image mosaic read parameters ● Uses attributes in the mosaic index ● Consistent with WMS now, first see and then download 2.12 Andrea Aime GeoSolutions DLR

Slide 27

Slide 27 text

NetCDF input/output improvements 2.12 Niels (Scitus) Ben (Transient) Community ● Can configure NCML files as sources ● Support variable attribute definition in NetCDF output ● Copy scalars from NetCDF/GRIB source ● Copy scalars from source granules to make vector in NetCDF output

Slide 28

Slide 28 text

GHRSST Community Module ● WCS output format plugin ● Builds a NetCDF file complaint with the “Group for High Resolution Sea Surface Temperature” specification ● It’s the first multi-coverage output, e.g. ○ Sea surface temperature ○ Sea ice fraction ○ Quality level ○ Pixels per bin ○ ... 2.13 Andrea Aime GeoSolutions EUMETSAT

Slide 29

Slide 29 text

Tiles My alphabet: X,Y and Z

Slide 30

Slide 30 text

● GeoServer supports “cascading” remote WMTS services ○ GeoServer acts as a client, rather than just rerouting each request ○ Same as WMS cascading WMTS cascading 2.12 Ian Turton - Emanuele Tajariol GeoSolutions GeoInfo

Slide 31

Slide 31 text

Parameter filter cache drop fixes/improvements ● GeoWebCache can cache based on request parameters like style, time, or elevation. ○ Could not truncate (remove cached tiles) across all parameter values, each must be known and truncated separately. ○ Now truncates all possible values ● Added operations for ○ Cross parameter truncate ○ Orphan purge ● Enabled cross parameter truncate on data update GWC 1.12 GS 2.12 Kevin Smith Boundless MapStory

Slide 32

Slide 32 text

Manage and configure “blob store” used to hold cached tiles, and “gridsets” to define tile grids associated with a spatial reference system. GeoWebCache REST API - new endpoints! 2.13 Boundless Torben Barsballe Boundless

Slide 33

Slide 33 text

Styling Your cartographic tailor

Slide 34

Slide 34 text

Labelling improvements ● Kerning on by default (adjusts spacing between chars, e.g. Check space between T and r in Trimble) ● Underline and Strikethrough ● Char and word spacing control ● Labelling border of polygon (instead of the centroid) 2.11 2.12 Andrea Aime Nuno Oliveria Community/Geoinfo/ OpenGeoGroep

Slide 35

Slide 35 text

Determining a good location for a label can be tricky. Use of maxDisplacement indicates how far a label is allowed to move ● Previously we searched in a circular area for a good location ● Now you can supply your preference using displacementMode Labelling improvements 2.13 Nikolaos Pringouris

Slide 36

Slide 36 text

● Allow using SVG as shapes for marks ● Filling and stroking can be controlled from SLD SVGs as fillable/strokable marks 2.14 Andrea Aime GeoSolutions Community file://firestation.svg #FF0000 32

Slide 37

Slide 37 text

● JSON representation of styling ○ More limited than SLD/YSLD/CSS ● Works well with vector tiles ○ Cross platform styling (OpenLayers, MapBoxGL) ● Work in progress: ○ Currently a GeoTools community module ○ Should package and go to extension if we get time! MapBox Style Community Module 2.12 David Vick Boundless Boundless Suite MapBox Style in GeoServer and OpenLayers

Slide 38

Slide 38 text

● Usage of units for more readable scale dependencies ● LessCSS functions to alter colors ● Convenient syntax to use env variables, @varName ● Much faster CSS -> SLD translation CSS improvements 2.12 Andrea Aime Community [class = 'major'][@sd < 25M] { [@scale > 3M] { mark: url('./symbols/place/place-6.svg'); mark-mime: 'image/svg+xml'; label-anchor: 0.5 0; label-offset: 0 2 }; label: [name]; font-size: [interpolate(@sd, 400k, 15, 25M, 12)]; font-color: lighten(red, 10%); }

Slide 39

Slide 39 text

● ChannelSelection allows for env variables now ● Build pseudo-color styles with a default band layout ● Change the selected bands in GetMap request ● No need to prepare tens of different styles ● What if you want to do band math? You wait just 1 minute! Dynamic channel selection 2.14 Andrea Aime GeoSolutions DLR ...&env=r:4;g:3,b:2 ...&env=r:8;g:11,b:4 Pseudo color Vegetation analysis

Slide 40

Slide 40 text

Web Processing Service When the going gets tough the processes get going

Slide 41

Slide 41 text

Unleash map algebra with Jiffle ● Powerful and fast map algebra language ● Can be used as a rendering transformation ● Example, computing NDVI on the fly: 2.14 Andrea Aime GeoSolutions Bayer nir = src[7]; vir = src[3]; dest = (nir-vir)/(nir+vir); Sentinel 2 Jiffle script On the fly NDVI index display

Slide 42

Slide 42 text

WPS Download (Community module) ● Download large raw rasters ● Download large raw vector ● Download large static maps with remote maps inclusion ● Build time based animations ● Allows usage of async calls for expensive map rendering and long animation building 2.13 GeoSolutions EUMETSAT

Slide 43

Slide 43 text

CSV input/output for WPS ● Allows the input and output of CSV for use in WPS processes ● This will lead to GeoTools CSV Datastore being upgraded to community (and hopefully to supported) 2.12 Ian Turton Astun RnD

Slide 44

Slide 44 text

Configuration and management

Slide 45

Slide 45 text

User Interface - Autocompletion Entering in URLs for data files has been improved with autocomplete ● Entering URLs for data files, will scan the path suggest existing files ● Long lists of stores or layers also feature autocomplete 2.13.0 Andrea Aime Community

Slide 46

Slide 46 text

User Interface - Raster Parameters Filling in raster layer, parameters is now easier and less error prone ● checkboxes ● dropdowns 2.13.0 Andrea Aime Community

Slide 47

Slide 47 text

Full-screen style editor Andrea & Torben Community 2.14

Slide 48

Slide 48 text

External graphic chooser in style editor Niels - ● Security fixes being added to supported versions only ● Please upgrade your GeoServer installations! 2.14

Slide 49

Slide 49 text

Color picker in style editor Andrea Aime Community You know…. just in case you don’t remember the hex code of the color you want! 2.14

Slide 50

Slide 50 text

● Label export, most shared configurations exported ● Some in the works (word/char spacing, strikethrough, polygon border labelling) ● Some changes needed in GeoServer SE 1.1 parser too If you prefer point and click: QGIS 3.0 style export 2.12 Andrea Aime GeoSolutions OpenGeoGroep

Slide 51

Slide 51 text

Isolated Workspaces Workspaces are used to partition what is published for ease of management: ● A workspace has a namespace (used to keep XML content from conflict) ● Workspace published as a web service Problem: ● INSPIRE standard requires the use of a specific namespace ● Cannot use same namespace, preventing reuse of INSPIRE namespace Isolated workspace: ● Allows one workspace to publish the common layers ● The remaining workspace (each one marked isolated) can reuse these common layer Allows the same application schema to be published from multiple workspaces, each mapped onto different datasets 2.13.0 Nuno Oliveira GeoSolutions SYKE

Slide 52

Slide 52 text

JDBCConfig and JDBCStore (Community) Use a database, rather than data directory, for clustering: ● GeoServer “Catalog” configuration ● GeoServer support files (styles, icons, fonts, config files) Work done for 2.13: ● Reduce number of database queries to improve performance ● Consistently log configuration queries for analysis 2.13.0 Niels Charlier Steve Ikeoka -

Slide 53

Slide 53 text

Search Where did I put that satellite image again??

Slide 54

Slide 54 text

OpenSearch for Earth Observations ● Recent addition to OGC protocol for search of earth imagery ● Simpler alternative to CSW with ebRIM ● Two steps search ○ First find collection of similar products (by satellite/sensor) ○ Then search products in it (by other attributes, e.g., cloud cover, off nadir) ● Keeps database of searchable metadata ● Links to OGC services providing said data ● Allows downloading ISO/O&M metadata 2.12 GeoSolutions DLR/EVO-ODAS

Slide 55

Slide 55 text

Help us help you

Slide 56

Slide 56 text

User List Participation ● Answering users questions relies on a low number of people Action: ● We are sending reminder on effective use of the user list on subscription and at the bottom of each mail ● Community building activity - remind developers about the definition of “supported” (not only reviewing pull requests, also answering user questions, used to be obvious, but it’s not obvious to devs hired into open source)

Slide 57

Slide 57 text

● Keep exploit details out of issue report ● Mark the issue as a vulnerability. ● Be prepared to work with Project Steering Committee (PSC) on a solution ● Keep in mind PSC members are volunteers and an extensive fix may require fundraising / resources If you are not in position to communicate in public please consider commercial support, contacting a PSC member, or reaching us via the Open Source Geospatial Foundation at [email protected]. In case you stumble into a vulnerability: Responsible Disclosure

Slide 58

Slide 58 text

● Bug stomp introduced in 2016 ○ Relying on volunteer time not working out ○ allowed developers to reserve time ● Moved to fixed schedule in 2017 ○ Arranging day each month too random ● Last Friday of each month ○ Check blog post for tips on participation You can join and help, too! Standing “last friday of the month” bug stomp

Slide 59

Slide 59 text

Thanks!