GeoServer Feature FRENZY Why this Talk?

● State of GeoServer 2.16 talks hit what is New! ● This talk hits what is beloved, amazing, or unexpected! ● 20 min talk

Are you readyyyy? 3

ready 2

set 1

go! 1000 feet view ECW,Pyramid, Oracle GeoRaster, PostGIS Raster,NetCDF GeoPackage SQL Server SQL Server SQL JPEG 2000 JPEG MongoDB Img+world Spatialite ArcSDE PostGIS Shapefile GeoTIFF Oracle ArcGrid MySql Mosaic WFS MrSID DB2 WMS H2 Raster files Raster Vector files ------Servers ------DBMS ------

GeoServer WMS-C WMTS, WFS WMS CSW WCS WPS KML TMS, Raw vector Styled Styled OSGEO tiles OSGEO tiles OGC tiles maps Google KMLsuperoverlays maps Raw raster data data KML/KMZ PDF SVG, TIFF,GeoTIFF JPEG GIF PNG, Img+World GTopo30 ArcGrid GeoTIFF CSV/XLS GeoJSON GeoRSS GML3 GML2 Shapefile Many of these are provided by extensions Configuration GUI: GeoServer for point & clickers GUI: GeoServer for point & clickers GUI: GeoServer for point & clickers Style editor But you’re not limited to point and click, REST! Need to mass-configure layers? Importer!

GUI and REST Bit of safety: backup and restore extension

● Save the configuration to a zip file (not the data!) ● Restore later, in the same or different environment ● UI to run backup and restore ● Asynch operations ● REST Interface ● During backup the configuration is read only ● During restore it’s fully locked ● Support “dry run” to for errors prior to restore Vector data sources Files files, many little files

(OGR) SQL Everybody loves curves

● Read curved geometries from Oracle and PostGIS, paint them, GML output them, linearize everywhere else SqlViews

GeoServer WMS/WFS

... Any DB ...

Run query as layer source

DB2 Parametric SQL Views t s e u q e r

GeoServer WMS/WFS m o r f

s m a ... Any DB ... r a p

t c e j

Run query as n I layer source

DBMS NoSQL! Distributed! Raster data sources Run of the mill

Fully configured Mosaic (custom schemas, attributes, filtering, sorting, custom Old but gold! storage) Simple Mosaic

ArcGrid Going native

Fast JPEG2000

GDAL 2.x (NITF files) Maps, maps everywhere! Basic maps Samples from IGN (using SLD) OSM? Yes OSM! (With CSS this time) Reproject with confidence

GeoServer handles dateline, projection limits, high accuracy projection grids, and so on

Dateline wrap Cut on UTM Cut on polar Densify for stereographic smooth reprojection Only want to play with MVT? Ok!

● Extension for publishing vector tiles ● Great solution for modern High Definition Screens ● Client side styling ● Use for GeoServer for “MapBox without MapBox” ● Also to do “MapBox with OGC fallback” Integrated tiles cache GeoWebCache

● Tile caching application ● Can cache tiles in PNG/JPG/KML/ MVT/GeoJSON ● Can store tiles in file system/SQLite/S3/Azure ● Supports WMS-C, TMS, WMTS Runs integrated in GeoServer

● Configuration integration ● Event integration ○ Configure layer once ○ Change styles, tiles dropped ○ Setup via GUI ○ WFS-T transaction, tiles dropped

● Security integration ● Service integration ○ Configure security once ○ Direct integration ○ Limited checks (only layer access, no ○ Intercept tiled requests from WMS and attributes, areas and alphanumeric uses cache for them filters) Deliver data WFS and WCS

● Download vector data ● Download raster data ● Filter, reproject, join, page ● WCS 2.0, a protocol humans can understand CQL

A light weight “domain specific language”:

● CQL - is a standard from OGC Catalog POP_EST <= 5000000 AND ● E-CQL - extends this basic concept to POP_EST >100000 do everything Filter can do CQL

A light weight “domain specific language”:

● CQL - is a standard from OGC Catalog POP_EST <= 5000000 AND ● E-CQL - extends this basic concept to POP_EST >100000 do everything Filter can do

In GeoServer CQL can filter raster data too… in particular, mosaic images with associated attributes Editing data since 2003 (the original superpower)

PostGIS

Oracle

WFS-T Shapefile

SQLServer

... App Schema Complex GML making your eyes bleed?

{ "type": "FeatureCollection", "features": [ { ● No worries "type": "Feature", "id": "0001000001", ● Your 2020 nightmares will be made of "geometry": { "type": "Point", "coordinates": [51.0684, 1.4298] complex GeoJSON instead! }, "properties": { "@featureType": "Borehole", "identifier": { "value": "BSS000AAAA", "@codeSpace": "http://www.ietf.org/rfc/rfc2616" }, "bholeHeadworks": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [51.0684, 1.4298] }, "properties": { "@featureType": "BoreCollar", "collarElevation": { "value": -32,

INSPIRE application/vnd.iso.19139+xml eng eng eng Process! Integrated WPS

● Analyze, publish, transform on the fly, access local data Think small

● Small is useful ● BBOX for filtered datasets ● Aggregation processes, provides datasets for building charts (group and count) ● Clip and ship ● Build animations Think big!

● Start remote processing nodes, track their progress ● Register the result as a GeoServer layer for preview before download Rendering transformations: process and render at the same time On the fly contour extraction from styles Jiffle and rendering transformations

nir = src[7]; vir = src[3]; dest = (nir-vir)/(nir+vir);

Map Algebra at your fingertips On the fly, or batch with WPS Extract wind barbs from 2 bands raster data

v u u v Extract wind barbs from 2 bands raster data

data < emisphere True interpolation InterpolationBilinear scale 8 Extract wind barbs from 2 bands raster data

windbarbs://default( u u v v )[m/s]?emisphere= emisphere 000000 1 HeatMap Transform title: Heatmap feature-styles: - transform: name: vec:Heatmap params: weightAttr: pop2000 radiusPixels: 100 pixelsPerCell: 10 rules: - symbolizers: - raster: opacity: 0.6 color-map: type: ramp entries: Heatmaps - ['#FFFFFF',0,0.0,nodata] - ['#4444FF',1,0.1,nodata] - ['#FF0000',1,0.5,values] - ['#FFFF00',1,1.0,values] And more

Discrete point interpolation Point stacker Find your style (language) SLD 1.0 and 1.1 Geo-CSS YSLD MapBox GL { name: style_example "version": 8, "layers": [ title: An example of YSLD styling { abstract: Used in the User Manual of GeoServer "id": "default_point", "type": "circle", feature-styles: "source": "test-source", - rules: "source-layer": "place_label", "layout": { - name: all "visibility": "visible" title: Every feature will be styled this way }, symbolizers: "paint": { "circle-color": "#FF0000", - polygon: "circle-opacity": 1, fill-color: '#808080' "circle-radius": 6, "circle-stroke-opacity": 0, fill-opacity: 0.5 } stroke-color: '#000000' } ] stroke-opacity: 0.75 } Help needed! Help needed! Convert around

GeoCSS SLD 1.1

SLD 1.0

MBStyle YSLD SLD Named Layers (Style Groups) Style several layers together into a single map GetMap SLD=” Add Style Group...

Great for SLD and YSLD

Use with MapBox style to define once for GeoServer and OpenLayers Styling Reference, Cookbooks, Workshops Making your Mark

“standard” shape:// extshape:// windbarbs:// wkt:// ttf://

square

circle

triangle

star

square

x Multidimensional data Weather or not you are ready Multidimensional data, in and out!

● Time, elevation in WMS, WMTS and WCS Multidimensional data formats

GRIB Meteorology ready!

Temperature, currents, wind, pressure, time and elevation? We got you covered! Security

Stop or I will say Stop Again Authentication and Authorization

Fully pluggable! Authentication

DIGEST

BASIC

Github Google LDAP GeoNode and OpenID connect Active Directory J2EE

X.509 Database AuthKey Authorization

● Built-in ● GeoFence

● Simple ● Sophisticated rules (“conditions on ● Layer based this layer while being accessed by ● Read/Write/Admin WFS GetFeature) ● Restrict access by attribute, alphanumeric filter, area Reliability Quality Assurance: JUnit (unit and integration tests)

● Build with Tests takes 15 mins ● Build with Tests disabled takes 2 mins ● Thousands of tests Quality Assurance: Continuous Build Box Quality Assurance: Manual Code Review Quality Assurance: PR automatic checks

● Static code checks ○ PMD ○ CheckStyle ○ ErrorProne ○ Deprecated method checks ● One failure above marks the build red And all of this is… Free!? Open Source

Free as in Freedom:

● GPL License Cost Free

Free as in Beer:

● Download now to $0!

● This weeks special 10% off $0! Doesn’t that make you want to contribute? “I can code and want to contribute” “I have money and want to donate a new feature” “I have money and want to donate”

OSGeo Foundation Project

● Donate via PayPAL

Funding is welcome at any time!

PSC occasionally does special call for financial support (usually for maintenance activities).

● GSIP-176 CITE Automation “I have money want invoice for financial support”

OSGeo Foundation Project

● Contact [email protected] for invoice

Funding is welcome at any time!

PSC occasionally does special call for financial support (usually for maintenance activities).

● GSIP-176 CITE Automation “I can’t code nor have money… want to contribute!”

● Yes please!!! ● Community project includes you ● Documentation improvements, Tutorials! ● Answering other users questions on the user list ● Hands on development is not all coding ● Checking tickets can be reproduced ● When we make RC releases, try them out, hunt for regressions! ● “bug stomp” and confirm fixes in real time Question and Answer Thanks!