State of GeoServer, GeoTools and Friends 2014

Post on 27-Nov-2014

1.863 views 7 download

Tags:

description

GeoServer and the Java toolkit GeoTools comprise one of OSGeo’s fastest moving mapping ecosystems. In addition to this core we will cover java-stack developments in JTS, GeoWebCache and ImageIO-Ext. First up is “State of GeoServer” reviewing the new and noteworthy features introduced in the past year. Our six month release cycle sees GeoServer 2.5 and 2.6 being released this year. These releases bring together exciting new features: WCS 2.0 and WCS 2.0 Earth Observation profile, batch importer, and a fresh implementation of GetFeatureInfo. Switching to technical for a GeoTools update. A passion for performance sees improvements in PNG and JPEG encoding, rendering from PostGIS and experimental JDK work. This presentation provides a review of new features, api changes and community modules. We have simplified the core FeatureCollection interface, introduced partial 3D support, structured grid coverages, multiple grid coverages and extended JTS Geometry with Curves. Data formats support continues to grow with the latest GeoPackage, native NetCDF support and a new shapefile and wfs client implementation. Database users have table and index management methods to look forward to. Extensions have seen a lot of activity with WMS client improvements, vector grids, and a transform extension for dynamic feature collection processing. Attend this talk for a cheerful update on what is happening with these great OSGeo projects! Whether you are an expert user, a developer, or simply curious what these projects can do for you, this talk is for you.

Transcript of State of GeoServer, GeoTools and Friends 2014

GeoServer, GeoTools and Friends 2014

FOSS4G Tech Talk

Martin Davis
Any comments relevant to GeoTools?
Jody Garnett
well we have our scary subclass to support curve

About your Presenters Contributors, Guests, and Cameos

Andrea Aime (GeoSolutions)Martin Davis (JTS)Justin Deoliveira (Boundless)Jody Garnett (Boundless)Kevin Smith (GeoWebCache)

Outline● Going to go fast - and have time for Q&A● Intro

o GeoServer 2014o GeoTools 2014o JTS 2014 (Martin Davis)o GWC 2014o GeoScript 2014o Friends

● Features● Roadmap Wishlist● Q&A

$Money - Here is how this works

● Thanks to customers/employers/sponsors we can share a preview of some work scheduled for 2014o We thank customers early and ofteno it is how open source software gets made

♡● If you have an idea or can help out

volunteers are always neededo Contact details provided for active developmento Some wishes are ten years old

● Do not assumeo Anyone will pay for a visual SLD editor (sorry users)o A volunteer is testing Java 8 (sorry developers)

Love - here is how this works

GeoServer 2014

GeoServer

Designed for interoperability, it publishes data from any major spatial data source using open standards.

GeoServer: History & Organisations● Quick History …

o OpenPlans: WFS 2002o Refractions: UI 2003o Axios: WMS 2003

● Open Source Geospatial Foundationo Incubation 2009o Graduated 2013o New! © OpenPlans → © OSGeo 2014

GeoServer Highlights for 2014● GeoServer 2.4: released September 2014

o Served as stable branch for six monthso Extended for six months as maintenance branch

● GeoServer 2.5: released April 2014o Current stable brancho Scheduled six months of maintenance updates

● Governanceo Transfer of codebase from OpenPlans to OSGeoo New “community” modules → Graduated extensions

Jody Garnett
Would love some numbers on how many new community modules, how many graduated extensions since FOSS4G 2013

GeoServer: Health Checkup● 28 members of team geoserver

o 779 geoserver-devel!o Core group of very active contributorso New contributors being added

● How about team user-list?o 2290 geoserver-userso 169 geoserver italiao ??? GeoServer en Espanolo ??? OpenGeo.cn (GeoServer and more)o Some help with 2.5-beta … but many wait for 2.5.2

● Active well managed codebaseo 200 pull requests this yearo New! CONTRIBUTING.md file for GitHub

Jody Garnett
+groldan@boundlessgeo.com I need some help here - you have access to user list count at source forge
Justin Deoliveira
Current count is 2288 people subscribed.

GeoServer: 2.5 Series

GeoServer: Downloads this Week

GeoServer moves to OSGeo● Open plans is stepping

back from software development● Strong relationship with OSGeo

o Vendor Neutral custodian to encourage participation from additional parties

o Lazy: Participants had often already signedOSGeo Contributors License for GeoTools

o See: GSIP-118

GeoTools 2014

GeoTools

GeoTools is an open source Java library that provides tools for geospatial data.

GeoTools: History and Organisation● GeoTools 1: 1996-2001

o Leeds University● GeoTools 2: 2002-Present

o OpenPlans, Refractions, GeoSolutions, etc ...● Governance

o OSGeo Incubation 2006o Graduated 2008o Copyright OSGeo as

a vendor neutral organisation

GeoTools Highlights for 2014● GeoTools 10: released September 2014

o Served as stable branch for six monthso Extended for six months as maintenance branch

● GeoTools 11.5: released April 2014o Current stable brancho Scheduled six months of maintenance updates

● Governanceo New “Unsupported” plugins → Graduated pluginso New Committers

GeoTools Health Checkup● 27 members of team geotools

o Active in bursts near releaseo New contributors being added

● Active well managed codebaseo 203 pull requests so far this yearo New! CONTRIBUTING.md file for GitHub

GeoTools 11 Series Downloads

JTS Topology Suite 2014Putting the Geometry in “Geo” since 2001

JTS Topology Suite 2014● Geometry

● SFSQL Implementation● News

● LocationTech proposal● LGPL → BSD / EPL● Version 1.13 (2012)● Version 1.14 (2014 Q4)

Martin DavisSenior Technical Architect

Vivid Solutions Inc.

Jody Garnett
So martin what can we expect for JTS 1.14? I would like to add one JTS slide into the Feature+Fix or Future section

GeoWebCache 2014

GeoWebCache 2014● Tile Cache

o WMS-Co TMSo WMTS

● Newso OpenPlans →

OSGeoo Version 1.5 (2013 Q3)

o Version 1.6 (2014 Q3)

Kevin SmithJunior Software Developer

Boundless Spatial Inc.

GWC: Mass Truncation via RestExternal management of GeoWebCache!

POST http://localhost:8080/geowebcache/rest/masstruncate<truncateLayer> <layerName>trekConventionDensity</layerName></truncateLayer>

1.5.0Kevin SmithBoundless

Kevin Smith
http://geowebcache.org/docs/1.5.3/rest/masstruncate.html

● GeoWebCache 1.5.0: August 2014o Extensible Parameter Filterso First release synchronized with GeoServer

● Fixes/Improvements added to 1.5.3o WMS Metadata Passthrougho WMS GetLegend Passthrough

GWC Features / Fixes

1.5.1Andrea AimeGeoSolutions

1.5.1Eric DahlVolunteer

GeoWebCache Roadmap (1.6.0)● Read ArcGIS Compact Caches

o Generate with ArcGIS and Serve with GWC

● Improvements to Tile Fuser

Nicola 1.6.0GeoSolutions

Bjoern Saxe 1.6.0Independent

Kevin Smith
Tile Fuser: GeoSolutions Contribution
Kevin Smith
ArcGIS: Independent Contribution

GeoScript

Spatial capabilities for dynamic scripting languages● Groovy● Scala● JavaScript● Python

Justin Deolivera

GeoScript

● Jared working hardo Curved geometries, GeoPackage, MBTiles

● Working on a common versioning scheme● Standardizing on GeoTools version● Early stages of incubation● TODO: Logo :)

GeoScript: Update

GeoScript for GeoServer

Friends 2014

ImageIO-Ext (more formats)

Extensions, fixes andfor Java ImageIO:● Support for GDAL● JPEG2000 via

Kakadu● Improved TIFF● Now on GitHub!

Simone Giannecchini

JAI-Ext (more image processing)● more features to

existing operations● improved

performances● developing new

operations

Nicola Lagomarsini

JAI Tools

Image Processing● Tools for analysis● Zonal-Stats● Contours, vectorize

Michael Bedward

Jiffle

Raster Calculator● Domain specific

language for image processing

● C-Syntax for that curly brace comfort

Michael Bedward

The magic of Open Source

Features and Fixes

Customer ReleaseImplementor

A WCS version for human beings

WCS 2.0

DLRAndrea Aime

Simone GiannecchiniDaniele Romagnoli

2.6.0

WCS protocol support● New GeoTools classes to parse/encode

the XML documents in the WCS 2.0 protocol

Full GeoServer implementation● Implementing the full protocol● Including the GeoTiff

Extensions, controlling details of the generated GeoTiff file

● NetCDF output (see later)

Did I mention the protocol looks sane?

http://localhost:8080/geoserver/wcs?request=GetCoverage&service=WCS&version=2.0.1&coverageId=geosolutions__NO2&Format=NetCDF&subset=http://www.opengis.net/def/axis/OGC/0/Long(5,20)&subset=http://www.opengis.net/def/axis/OGC/0/Lat(40,50)&subset=http://www.opengis.net/def/axis/OGC/0/elevation(300,1250)&subset=http://www.opengis.net/def/axis/OGC/0/time ("2013-03-01T10:00:00.000Z","2013-03-01T22:00:00.000Z")

Natively multidimensional

NetCDF/Grib

DLR/EumetsatDaniele

Romagnoli12.0/2.6.0

Many coverages per reader● A GeoTools reader can read and

advertise metadata for multiple coverages now

● GeoServer updated to follow suit

StructuredCoverageGridReader● Drill down in the various dimensions● Interact with slices, list, filter, add, update,

delete (GranuleSource/GranuleStore)● Harvest

entire new files into the sources (mosaic only)

GeoServer support● Publish NetCDF/Grib as any other format● Configure WMS-T dimensions● Return a multidimensional array via WCS

2.0 NetCDF output format

http://localhost:8080/geoserver/wcs?request=GetCoverage&service=WCS&version=2.0.1&coverageId=geosolutions__NO2&Format=NetCDF&subset=http://www.opengis.net/def/axis/OGC/0/Long(5,20)&subset=http://www.opengis.net/def/axis/OGC/0/Lat(40,50)&subset=http://www.opengis.net/def/axis/OGC/0/elevation(300,1250)&subset=http://www.opengis.net/def/axis/OGC/0/time ("2013-03-01T10:00:00.000Z","2013-03-01T22:00:00.000Z")

Handle difficult projections

Coverage reprojection improvements

GeoSolutions Andrea Aime 12.0/2.6.0

Chilling beauty of polarstereographics

BeforeAfter

Crossing the dateline with rasters

Speeding up your PNG and JPEGs

Faster output encoding

GeoSolutions Andrea Aime 2.5.0

GeoServer faster PNG encoder● PNG encoder

based on the PNGJ open source library

● Pure java, yet quite a bit faster

Put a turbo in that JPEG● Based on the libJPEGTurbo encoder● Significant speedup compared to JDK own

encoder

Because we care about your icons

Pixel precise GetFeatureInfo

Eskilstuna Andrea Aime 2.5.0

GetFeatureInfo issues● Most software does a small square bbox

query● Symbol sizes took into account to an extent

(issues with dynamically sized symbols)● No care for symbol shape ● Solution → actually draw stuff and check

pixels

Dynamic sizes● Size proportional to

attribute● Before, either miss

the big circle, or report the small one as being hit

● Now right match

Shapes and offsets● The new code

won’t report a hit if you did not click the symbol

● Takes care of odd symbol shapes, and offsets

Everybody loves curves

Curves support

City of Vienna Andrea Aime 12.0/2.6.0

Represent curves in memory● Circular arc by 3 points● CircularString: sequence of the above● CompoundString: mix straight and circular

arcs● Use in polygons as well

Smart linearization● When rendering, linearize

according to the rendering resolution

● Otherwise, if necessary, do so with a given tolerance (e.g., when using JTS topological operations)

● Selected code paths just keep the curves

GML encoding

Reading Curves● Only from Oracle spatial

$Reading Curves

● Contributions/funding to read from other data sources welcomed!

Restructure your rasters in GeoServer

Coverage views

GeoSolutionsDaniele

Romagnoli2.6.0

Creating coverage views

Band selection

Coming soon: computed bands

Performance and scalability on all platforms

Marlin

VolunteerLaurent Bourges

2.6.0

Java rasterizer scalability issues● Rasterizing: turning vector data into

antialiased images (maps)● Basically two choices

o Use Oracle JDK (Ductus), binary, closed source, fast rasterization, but scales up poorly

o Use OpenJDK (Pisces), pure java, open source, slower rasterization, but scales up well

Marlin rasterizer● Fork of OpenJDK Pisces● As fast as Ductus

o as scalable as Pisceso Testing a complex

multiscale mapwith 10 concurrentclients at differentzoom levels

Marlin Easy Install

For Windows/Linux, Oracle or OpenJDK:1. Download one jar from

https://github.com/bourgesl/marlin-renderer2. Add these options to the

JVM-Xbootclasspath/a:/path/to/marlin-X.Y.jar -

Dsun.java2d.renderer=org.marlin.pisces.PiscesRenderingEngine

3. Done!

Marlin in Java 9?● The author, Laurent Bourges,

is trying to get Marlin merged in Java 9● Lack of response from Oracle● Please Oracle, we care about

performance… don’t you?

Filter 1.0 Classes

Boundless Jody Garnett 12.0

Technical Debt / Cleanup

Filter Interfaces - Technical Debt

GeoTools 2.3 introduced Filter 1.1 Interfaces● Budget only covered new implementation

o GeoTools tests still used classes directlyo GeoServer and other apps also

● Two options for Filter confuses developerso Class or Interface/Factory?o What do I import to make this code work?

OpenGeo Justin Deolivera 2.3

Filter Cleanup - Cleanup

GeoTools 12.0 Cleanup● Cleaned up with / careful refactoring!● Test for XML Parsers / WFS were hardestGeoServer 2.6.0 Cleanup● Cleanup went smoothly● BBOX Filters caused trouble

Boundless Jody Garnett 12.0

wfs-ng

Boundless Niels Charlier 12.0

WFS “Next Generation” client

Ground up implementation of wfs-client● Using GTXML parser (yay!)● Based on ContentDataStore

(implementation is much easier to follow)● WFS-T 1.1 ← exciting!

WFS Cascade● GeoServer surfaces the wfs-ng as the ability

to “cascade” content from remote (or internal) WFS Servers

● Performing 2.6 preflight testing wfs-ng was a marked improvement over the origionalo We have cut over “cold turkey”o We asked the geoserver-users list for help testing all

those tricky INSPIRE services● wfs-ng includes configuration overrides

o You can account for several common mistakes(such as servers that get confused about axis order)

gt-render-wkt

geotools-users Group Effort! 12.0

gt-render-wkt merged to gt-render● Formally an optional unsupported plugin

o This was a hidden “power tool” for great mapso Create symbols using WKT directly inside your SLD

<WellKnownName> wkt://LINESTRING(0.0 0.25, 0.25 0.25, 0.5 0.75, 0.75 0.25, 1.00 0.25)</WellKnownName>

● Merge with gt-rendero Available by default for everyoneo Go out and make maps!

windbarbs

GeoSolutions Simone 12.0

New mark factory for windbarbs● Use WMO compliant wind barbs● Well known name template:windbarbs://$

(value)[m/s]?emisphere=(n/s)

● E.g.: windbarbs://25[m/s]?emisphere=n

ResourceStoreWeaning GeoServer off Disk

Boundless Jody Garnett 2.6.0

ResourceStore (Internal)● GeoServer DataDirectory

o Default is “in the web apps folder”o Copy to separate location when upgradingo Can be split up several directories ← why?

● Optional to Store in JDBC Databaseo “Catalog” configuration stored in Databaseo “Data Directory” still used for SLD, Icons, Fonts

● ResourceStore is “Step 1” of fixing thiso Use “Resource” rather than “File”

Direct access to JDBC BLOB “check out” file from the Database (if needed)

Boundless Jody Garnett 2.6.0

New GeoServer WebsiteOne stop shop for everything GeoServer

BoundlessJustin Deolivera

Jody Garnett2.6.0

GeoServer: Home

BoundlessJustin Deolivera

Jody Garnett2.6.0

WebSite: Downloads

BoundlessJustin Deolivera

Jody Garnett2.6.0

WebSite: GitHub Wiki

BoundlessJustin Deolivera

Jody Garnett2.6.0

DataStore TutorialThanks FOSS4G 2014

Boundless Jody Garnett 12.0-RC1

ContentDataStore

Boundless Jody Garnett 12.0-RC1

RoadmapScheduled Features for 2014

$SOLR data store

● Connect, display, filter data stored in your SOLR server

● Expose all of them to the web via WMS/WFS/WPS

GeoSolutions 2.7.x/2.6.xNSW-GS-AU

$Clustering asynch WPS

● The only OGC operation maintaining state● Improve GS so that the state gets shared

across cluster nodes

GeoSolutions 2.7.xGeoSolutions

WPS1 WPS2 WPS3

Shared async state

Load balancer

$Clustering GS config

● Instantly propagate config changes among GS nodes

GeoSolutionsBoundless

2.7.xGeoSolutions

Boundless

GS1 GS2 GS3

Load balancer

Message passing bus

$GeoFence community module

● Advanced security rules in GeoServer● Separate web app for config, GS plugin to

drive security● Fully open source, already in use by some

GS based projects (GeoOrchestra)

GeoSolutions 2.6.xGeoSolutions

GeoServer GeoFence plugin

GeoFence UI and REST

♡CSS module for GeoTools

● Port of the GeoScript Scala version to Java

● Allow more people to contribute

● Faster translation to SLD● Adding LessCSS features

down the road

Andrea Aime 13.xAndrea Aime

/* @title Population < 2M */[PERSONS

< 2000000] {

fill: #4DFF4D;

fill-opacity: 0.7;

}/* @title 2M < Population < 4M

*/[PERSONS > 2000000] [PERSONS

< 4000000] {

fill: #FF4D4D;

fill-opacity: 0.7;

}/* @title Population > 4M

*/[PERSONS > 4000000] {

fill: #4D4DFF;

fill-opacity: 0.7;

}

WishlistGet involved - your support is needed!

♡Upgrade Wicket User Interface

● User interface is slowly falling aparto No longer works with latest browser

(Current advice - use Firefox!)o Need to upgrade to newer version of “Wicket”

● Why?o User interface is not fun enough to attract volunteerso Popularity of REST API

♡Update CITE Tests

● CITE Tests are the OGC conformance tests● Pass them and you get a cool sticker for

your websiteo Well only if you payo Idea: Ask OSGeo Board to talk to OGC?

● Tests keep us all safe!o We would like some time to upgrade / fixo Help out at the Code Sprint this weekend

♡Money/Love needed for:● WPS 2.0 Operations

o Improved Job Control (stop process?)● WPS has CITE tests!

GeoServer: WPS 2.0

♡High DPI Mapping

● OL3 and GeoServer can already show wonderful images on High DPI displays

● To roll this concept out across the stacko GWC to Tile based on “dpi” format optiono GeoTools rendering external graphics

♡GWC Cloud Storage

● Add options for cloud storage:o Amazon S3, Acumulo, Azure, Google, OpenShift

● Mad ideas:o Integrate S3 with AWS’s CDN

Kevin Smith 1.7.xBoundless

♡GWC Storage Filter

● Processes tiles before storing them● Specific implementations can:

o Image Processing: color balance tileso Re-encode: Changed PNG z-compression levelo Change colour depth: PNG24 → PNG8o Run external tools: PNGCrush etc ...

Kevin SmithBoundless 1.7.x

♡Geometry + Geometry + Geography

JTS Project has limited scope:● GeoTools extends Geometry for Curves● ISO 19107 Point/Curve/Surface● Spatial4J looking at Geography● GML Geometry wrappers around JTSMoney/Love needed: Geometry needed for Open Source GIS industry

Questions?Thank you - for another amazing year!

Q: Software Downloads?http://geoserver.org/download/ http://www.geotools.org http://tsusiatsoftware.net/jts/main.htmlhttp://geowebcache.orghttp://jaitools.orghttps://github.com/geosolutions-it/imageio-ext/

Q&A● Q: When will be Java port of

CSS Style be available? Interested in using it from MapFish.A: Andrea - It is a background activityneed several more months on it.

● Q: Coudl not use as our State Plane defaults to meters and we measure in feet? I reported a bug last monthA: Feet? That is a terrible idea! Still hard to get answer this close to foss4g - will you be at the code sprint? Thanks for bug report.

Q&A● Q: Would anyone here be interested in a

GeoTools Cookbook?A: Please contact Ian Turton