SlideShare a Scribd company logo
The status of GeoServer WPS



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




           FOSS4G 2011, Denver
          12th-16th September 2011
Overview

   Who we are
   WPS introduction
   Vector processes
   Raster processes
   Conversion processes
   Accessing local data sources
   Chaining
   Examples
   Rendering transformations
   Limitations and wish list
   Question time
                        FOSS4G 2011, Denver
                       12th-16th September 2011
GeoSolutions
   Founded in Italy in 2006
   Expertise
    •   Image Processing, GeoSpatial Data Fusion
    •   Java, Java Enterprise, C++, Python
    •   JPEG2000, JPIP, Advanced 2D visualization
   Supporting/Developing FOSS4G projects
       GeoTools, GeoServer
       GeoBatch, GeoNetwork

   Clients
       Public Agencies
       Private Companies

   http://www.geo-solutions.it
                               FOSS4G 2011, Denver
                              12th-16th September 2011
WPS Quick introduction




     FOSS4G 2011, Denver
    12th-16th September 2011
WPS

   Wikipedia introduces OGC WPS as:
         [A service] designed to standardize the
          way that GIS calculations are made
          available to the Internet.
         WPS can describe any calculation
          including all of its inputs and outputs,
          and trigger its execution
         The specific processes served up by a WPS
          implementation are defined by the owner of that
          implementation.
         Although WPS was designed to work with spatially
          referenced data, it can be used with any kind of
          data.
                        FOSS4G 2011, Denver
                       12th-16th September 2011
Capabilities document

                              Some metadata
                               about the server
                               and its owner
                              The list of available
                               processes, with a
                               description
                              Let’s say we’re
                               interested in the
                               JTS:buffer process




     FOSS4G 2011, Denver
    12th-16th September 2011
Process description

                                 List of inputs
                                  and outputs
                                 Descriptions
                                 List of accepted
                                  formats (not
                                  shown in the
                                  xml)




    FOSS4G 2011, Denver
   12th-16th September 2011
Process execution

                            Buffer a L shaped
                             geometry with
                             distance “2”
                            Get the result back
                             as GML




   FOSS4G 2011, Denver
  12th-16th September 2011
GeoServer Specifics




   FOSS4G 2011, Denver
  12th-16th September 2011
GeoServer WPS history

   Started by Refractions in 2008, with limited capabilities
    (only single geometry and single feature support)
   First overhaul attempt end of 2008 by the community,
    added testing, support for vector collections
   New development since mid 2010, mostly new
    processes and input/output formats


       Refractions      GS community                  Current activity


2008                    2009               2010               2011




                            FOSS4G 2011, Denver
                           12th-16th September 2011
WPS: demo builder




                 List processes
                 Describe
                 Set parameters and
                  execute
                 All in one form




   FOSS4G 2011, Denver
  12th-16th September 2011
Inputs and outputs




   FOSS4G 2011, Denver
  12th-16th September 2011
IO setup

   Processes parameters
    defined in terms of Java
    objects
   Pluggable converters trade
    between the java object
    and the serialized
    representation
   If a input is internal straight
    read from the source
          Leveraging on all the
           available optimizations!




                           FOSS4G 2011, Denver
                          12th-16th September 2011
“Primitives” IO Parameters

   Numbers: byte, short, int, long, float, double, any Number
    subclass, properly mapped in XML types
   Strings and CharSequence in general
   Date, Time, Timestamp
   CoordinateReferenceSystem       (EPSG:xxx and urn:… forms)

   URLs
   Range (min -> max)
   Interpolation method




                       FOSS4G 2011, Denver
                      12th-16th September 2011
Complexes IO Parameters

   Geometries                      Vectors
         GML 2                           WFS 1.0 collection
         GML 3                           WFS 1.1 collection
         WKT                             GeoJSON
   Rasters                               Zipped shapefile
         ArcGrid                   Others
         GeoTiff                         SLD 1.0
         Unreferenced                    OGC Filter (1.0, 1.1)
          PNG/JPEG
                                          CQL Filter


                      FOSS4G 2011, Denver
                     12th-16th September 2011
Open API

   Easy to plug your own custom process parameter I/O




                     FOSS4G 2011, Denver
                    12th-16th September 2011
Available Vector processes




       FOSS4G 2011, Denver
      12th-16th September 2011
JTS processes




  FOSS4G 2011, Denver
 12th-16th September 2011
Example JTS process
    Intersection




POLYGON ((5 10, 10 10, 10 5, 5 5, 5 10))

         FOSS4G 2011, Denver
        12th-16th September 2011
Query oriented processes

   AKA “All you wanted WFS to do for you but he never
    wanted to”
   gs:Aggregate: count/avg/max/median/min/stddev/sum on
    a feature collection
   gs:Count: like WFS Hits, but on whatever source
   gs:Bounds: bounds of whatever source, missing from
    WFS
   gs:Query: query any source like WFS
   gs:Unique: unique values of an attribute
   gs:Nearest: find the nearest features


                         FOSS4G 2011, Denver
                        12th-16th September 2011
Aggregation example

                          Get the min, max and
                           sum of the PERSONS
                           attribute in the
                           topp:states layer




    FOSS4G 2011, Denver
   12th-16th September 2011
Other Vector processes

   gs:BufferFeatureCollection: buffer all features
   gs:Clip: cookie cut featuresgs:Reproject: reproject any
    vector source
   gs:Simplify: DouglasPeucker simplifier, retain attributes
   gs:Snap: snap to grid
   gs:InclusionFeatureCollection: overlay and get all
    features contained
   gs:IntersectionFeatureCollection: overlay and intersect,
    retain attributes from both
   gs:UnionFeatureCollection: merge two collections in one
   gs:Import: save the features as a new GeoServer layer
                         FOSS4G 2011, Denver
                        12th-16th September 2011
Buffer example




  FOSS4G 2011, Denver
 12th-16th September 2011
Geometry <=> Feature

   gs:collectGeometries: lump up all feature geometries into
    a geometry collection
   gs:feature: turn a single geometry into a feature collection




                                 MULTIPOINT (
                                 (-74.01046109936333 40.707587626256554),
                                 (-74.0108375113659 40.70754683896324),
                                 (-74.01053023879955 40.70938711687079),
                                 (-74.00857344353275 40.711945649065406),
                                 (-74.0118315772888 40.708529961953786),
                                 (-74.00153046439813 40.719885123828675))


                        FOSS4G 2011, Denver
                       12th-16th September 2011
Raster processes




  FOSS4G 2011, Denver
 12th-16th September 2011
Raster processes

   AKA “All you wanted WCS to do for you but it never
    wanted to”
   Add/Multiply: add and multiply two rasters (waiting for full
    algebra to be implemented)
   Crop: crop a coverage based on the specified cutting
    geometry
   RangeLookup: classify raster image based on a set of
    ranges ([min,max] -> value)
   ScaleCoverage: rescale and translate a given raster
   StyleCoverage: apply a SLD style to a raster, getting back a
    styled (but still georeferenced) one
   Georectify: turn a non geo-referenced coverage into one
    based on ground control points
                        FOSS4G 2011, Denver
                       12th-16th September 2011
Crop example
Conversion processes




    FOSS4G 2011, Denver
   12th-16th September 2011
Conversion processes
   Bridging the raster and the vector world
   Contour: extracts isolines given a set of levels or a interval
   RasterAsPointCollection: extracts one point for each cell,
    with band contents as attributes
   PolygonExtraction: extracts uniform polygons from raster,
    eventually given a set of value ranges
   RasterZonalStatistics: given a raster and a polygonal
    compute min/max/sum/avg/stddev of the cells falling in
    each polygon, return an augmented polygonal
   VectorToRaster: rasterizes vectors keeping a chosen
    attribute (a CQL expression eventually) as the band value
Contour example
Chaining




 FOSS4G 2011, Denver
12th-16th September 2011
WPS Chaining
   Feed the output of a process into another process
   Allows for tree-like composition
   Let’s see a typical “clip and ship” example, both raster and
    vector:
         Extract the rivers into the “restricted areas” polygons
         Extract from Blumarble any pixel in the USA




                        FOSS4G 2011, Denver
                       12th-16th September 2011
Raster clip and ship




    FOSS4G 2011, Denver
   12th-16th September 2011
Raster clip and ship




    FOSS4G 2011, Denver
   12th-16th September 2011
Vector clip and ship




    FOSS4G 2011, Denver
   12th-16th September 2011
GeoServer Integration 1: local data access




               FOSS4G 2011, Denver
              12th-16th September 2011
Direct data integration
   WPS normally reads from remote WFS/WCS, parsing
    GML/GeoJSON or GeoTiff/ArcGrid
   When the source is local we can dodge it though, read
    directly from the source (shapefile, DBMS, geotiff)
   Hit the fictious http://geoserver/wfs url for local WFS
   Hit the fictious http://geoserver/wcs url for local WCS
Store back results (only vector)

   gs:Import: saves the
    vector results into a
    store of choice, and
    publish as a layer
   Use right away the
    new layer from
    WMS/WFS/WCS/WPS
   Still missing the
    equivalent for rasters




                        FOSS4G 2011, Denver
                       12th-16th September 2011
GeoServer Integration 2:
rendering transformations




      FOSS4G 2011, Denver
     12th-16th September 2011
Rendering transformations

   On-the-fly data transformations inside rendering
    chain
   Calling WPS processes from SLD docs
   Optimized for performance




                     FOSS4G 2011, Denver
                    12th-16th September 2011
Rendering transformations
   Point feature extraction from two band raster data (e.g.
    Wind(u,v))
   Computation of direction and module from SLD
   Full SLD
         Call gs:RasterAsPointCollection
         Magnitude and direction of the arrow are computed on
          the fly by using filter functions
         <WellKnownName>shape://carrow</WellKnownName>
   Working at visual resolution
         Use overviews and
          decimation
         Fast with large datasets


                       FOSS4G 2011, Denver
                      12th-16th September 2011
Evolution and closing remarks




        FOSS4G 2011, Denver
       12th-16th September 2011
WPS*
   Deficiencies
          No support for asynchronous requests
          Missing request limits enforcements (e.g. input/output
           maximum dimensions)
   Wish list:
          Scripting (Jython, GeoScript)
          Sextante, IDL, JGrass (Grass?) integration
          Improved robustness
          Jiffle (jai-tools) based raster algebra
          New layers as dynamic WPS processes (computing
           data on the fly as people do WMS/WCS/WFS requests)

                          FOSS4G 2011, Denver
                         12th-16th September 2011
The End




        Questions?
   andrea.aime@geo-solutions.it
simone.giannecchini@geo-solutions.it
            FOSS4G 2011, Denver
           12th-16th September 2011

More Related Content

PPTX
Sekolah Sabat - Triwulan 3 2023 - Pelajaran 5
Adam Hiola
 
PDF
Wood@mintec13
Sidek Aziz
 
PPTX
Sekolah Sabat - Triwulan 2 2024 - Pelajaran 10
Adam Hiola
 
PPTX
Sekolah Sabat - Triwulan 2 2023 - Pelajaran 2
Adam Hiola
 
PPTX
Sekolah Sabat - Triwulan 2 2023 - Pelajaran 5
Adam Hiola
 
PPTX
Sekolah Sabat - Triwulan 4 2022 - Pelajaran 13
Adam Hiola
 
PPT
Love, dating and; sex
Tegoeh Santoso
 
PPTX
Sekolah Sabat - Triwulan 3 2023 - Pelajaran 14
Adam Hiola
 
Sekolah Sabat - Triwulan 3 2023 - Pelajaran 5
Adam Hiola
 
Wood@mintec13
Sidek Aziz
 
Sekolah Sabat - Triwulan 2 2024 - Pelajaran 10
Adam Hiola
 
Sekolah Sabat - Triwulan 2 2023 - Pelajaran 2
Adam Hiola
 
Sekolah Sabat - Triwulan 2 2023 - Pelajaran 5
Adam Hiola
 
Sekolah Sabat - Triwulan 4 2022 - Pelajaran 13
Adam Hiola
 
Love, dating and; sex
Tegoeh Santoso
 
Sekolah Sabat - Triwulan 3 2023 - Pelajaran 14
Adam Hiola
 

Similar to The status of the GeoServer WPS (20)

PDF
Raster data in GeoServer and GeoTools: Achievements, issues and future develo...
GeoSolutions
 
PDF
Advanced cartographic map rendering in GeoServer
GeoSolutions
 
PPTX
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
GeoSolutions
 
PDF
GeoServer on Steroids
GeoSolutions
 
PDF
Fossgis 2013 GeoServer Presentation
GeoSolutions
 
PDF
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoSolutions
 
PDF
GFOSS DAY 2012 GeoNetwork Presentation
GeoSolutions
 
PDF
GeoServer, an introduction for beginners
GeoSolutions
 
PDF
GeoServer an introduction for beginners
GeoSolutions
 
PPT
Geosolutions Foss4g It 2010
GeoSolutions
 
PDF
GeoServer The Open Source Solution for the interoperable management of geos...
GeoSolutions
 
PDF
Zoo Presentation Cumtb 2010
djayzen
 
PDF
Geoprocessing with Neo4j-Spatial and OSM
Craig Taverner
 
PPTX
Spatiotemporal Raster Improvements in GeoServer
GeoSolutions
 
PPTX
Advanced Security With GeoServer
GeoSolutions
 
PDF
Geo Package and OWS Context at FOSS4G PDX
Luis Bermudez
 
PDF
GeoServer on Steroids
GeoSolutions
 
PDF
The Galaxy bioinformatics workflow environment
Rutger Vos
 
PDF
Ekon bestof rtl_delphi
Max Kleiner
 
PDF
Advanced Security with GeoServer - FOSS4G 2015
GeoSolutions
 
Raster data in GeoServer and GeoTools: Achievements, issues and future develo...
GeoSolutions
 
Advanced cartographic map rendering in GeoServer
GeoSolutions
 
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
GeoSolutions
 
GeoServer on Steroids
GeoSolutions
 
Fossgis 2013 GeoServer Presentation
GeoSolutions
 
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoSolutions
 
GFOSS DAY 2012 GeoNetwork Presentation
GeoSolutions
 
GeoServer, an introduction for beginners
GeoSolutions
 
GeoServer an introduction for beginners
GeoSolutions
 
Geosolutions Foss4g It 2010
GeoSolutions
 
GeoServer The Open Source Solution for the interoperable management of geos...
GeoSolutions
 
Zoo Presentation Cumtb 2010
djayzen
 
Geoprocessing with Neo4j-Spatial and OSM
Craig Taverner
 
Spatiotemporal Raster Improvements in GeoServer
GeoSolutions
 
Advanced Security With GeoServer
GeoSolutions
 
Geo Package and OWS Context at FOSS4G PDX
Luis Bermudez
 
GeoServer on Steroids
GeoSolutions
 
The Galaxy bioinformatics workflow environment
Rutger Vos
 
Ekon bestof rtl_delphi
Max Kleiner
 
Advanced Security with GeoServer - FOSS4G 2015
GeoSolutions
 
Ad

More from GeoSolutions (20)

PPTX
MapStore 2 - The Story
GeoSolutions
 
PDF
One GeoNode, many GeoNodes
GeoSolutions
 
PPTX
Introduction to GeoNode
GeoSolutions
 
PPTX
Serving earth observation data with GeoServer: addressing real world requirem...
GeoSolutions
 
PDF
GeoServer Feature FRENZY
GeoSolutions
 
PDF
State of GeoServer 2.12
GeoSolutions
 
PPTX
MapStore 2, modern mashups with OL3, Leaflet and React
GeoSolutions
 
PDF
State of GeoServer - FOSS4G 2016
GeoSolutions
 
PPTX
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
GeoSolutions
 
PPTX
Serving earth observation data with GeoServer: addressing real world requirem...
GeoSolutions
 
PPTX
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
GeoSolutions
 
PPTX
GeoServer in Production: we do it, here is how!
GeoSolutions
 
PPTX
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
GeoSolutions
 
PDF
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
GeoSolutions
 
PPTX
Mapping the world beyond web mercator - FOSS4G 2015
GeoSolutions
 
PDF
Advanced Cartographic Map Rendering in GeoServer
GeoSolutions
 
PDF
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
GeoSolutions
 
PDF
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
GeoSolutions
 
PDF
GeoSolutions Keynote at WebMGS 2015
GeoSolutions
 
PPTX
GeoServer beginners gwf_2015
GeoSolutions
 
MapStore 2 - The Story
GeoSolutions
 
One GeoNode, many GeoNodes
GeoSolutions
 
Introduction to GeoNode
GeoSolutions
 
Serving earth observation data with GeoServer: addressing real world requirem...
GeoSolutions
 
GeoServer Feature FRENZY
GeoSolutions
 
State of GeoServer 2.12
GeoSolutions
 
MapStore 2, modern mashups with OL3, Leaflet and React
GeoSolutions
 
State of GeoServer - FOSS4G 2016
GeoSolutions
 
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
GeoSolutions
 
Serving earth observation data with GeoServer: addressing real world requirem...
GeoSolutions
 
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
GeoSolutions
 
GeoServer in Production: we do it, here is how!
GeoSolutions
 
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
GeoSolutions
 
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
GeoSolutions
 
Mapping the world beyond web mercator - FOSS4G 2015
GeoSolutions
 
Advanced Cartographic Map Rendering in GeoServer
GeoSolutions
 
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
GeoSolutions
 
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
GeoSolutions
 
GeoSolutions Keynote at WebMGS 2015
GeoSolutions
 
GeoServer beginners gwf_2015
GeoSolutions
 
Ad

Recently uploaded (20)

PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
The Future of Artificial Intelligence (AI)
Mukul
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 

The status of the GeoServer WPS

  • 1. The status of GeoServer WPS Ing. Andrea Aime, GeoSolutions Ing. Simone Giannecchini, GeoSolutions FOSS4G 2011, Denver 12th-16th September 2011
  • 2. Overview  Who we are  WPS introduction  Vector processes  Raster processes  Conversion processes  Accessing local data sources  Chaining  Examples  Rendering transformations  Limitations and wish list  Question time FOSS4G 2011, Denver 12th-16th September 2011
  • 3. GeoSolutions  Founded in Italy in 2006  Expertise • Image Processing, GeoSpatial Data Fusion • Java, Java Enterprise, C++, Python • JPEG2000, JPIP, Advanced 2D visualization  Supporting/Developing FOSS4G projects  GeoTools, GeoServer  GeoBatch, GeoNetwork  Clients  Public Agencies  Private Companies  http://www.geo-solutions.it FOSS4G 2011, Denver 12th-16th September 2011
  • 4. WPS Quick introduction FOSS4G 2011, Denver 12th-16th September 2011
  • 5. WPS  Wikipedia introduces OGC WPS as:  [A service] designed to standardize the way that GIS calculations are made available to the Internet.  WPS can describe any calculation including all of its inputs and outputs, and trigger its execution  The specific processes served up by a WPS implementation are defined by the owner of that implementation.  Although WPS was designed to work with spatially referenced data, it can be used with any kind of data. FOSS4G 2011, Denver 12th-16th September 2011
  • 6. Capabilities document  Some metadata about the server and its owner  The list of available processes, with a description  Let’s say we’re interested in the JTS:buffer process FOSS4G 2011, Denver 12th-16th September 2011
  • 7. Process description  List of inputs and outputs  Descriptions  List of accepted formats (not shown in the xml) FOSS4G 2011, Denver 12th-16th September 2011
  • 8. Process execution  Buffer a L shaped geometry with distance “2”  Get the result back as GML FOSS4G 2011, Denver 12th-16th September 2011
  • 9. GeoServer Specifics FOSS4G 2011, Denver 12th-16th September 2011
  • 10. GeoServer WPS history  Started by Refractions in 2008, with limited capabilities (only single geometry and single feature support)  First overhaul attempt end of 2008 by the community, added testing, support for vector collections  New development since mid 2010, mostly new processes and input/output formats Refractions GS community Current activity 2008 2009 2010 2011 FOSS4G 2011, Denver 12th-16th September 2011
  • 11. WPS: demo builder  List processes  Describe  Set parameters and execute  All in one form FOSS4G 2011, Denver 12th-16th September 2011
  • 12. Inputs and outputs FOSS4G 2011, Denver 12th-16th September 2011
  • 13. IO setup  Processes parameters defined in terms of Java objects  Pluggable converters trade between the java object and the serialized representation  If a input is internal straight read from the source  Leveraging on all the available optimizations! FOSS4G 2011, Denver 12th-16th September 2011
  • 14. “Primitives” IO Parameters  Numbers: byte, short, int, long, float, double, any Number subclass, properly mapped in XML types  Strings and CharSequence in general  Date, Time, Timestamp  CoordinateReferenceSystem (EPSG:xxx and urn:… forms)  URLs  Range (min -> max)  Interpolation method FOSS4G 2011, Denver 12th-16th September 2011
  • 15. Complexes IO Parameters  Geometries  Vectors  GML 2  WFS 1.0 collection  GML 3  WFS 1.1 collection  WKT  GeoJSON  Rasters  Zipped shapefile  ArcGrid  Others  GeoTiff  SLD 1.0  Unreferenced  OGC Filter (1.0, 1.1) PNG/JPEG  CQL Filter FOSS4G 2011, Denver 12th-16th September 2011
  • 16. Open API  Easy to plug your own custom process parameter I/O FOSS4G 2011, Denver 12th-16th September 2011
  • 17. Available Vector processes FOSS4G 2011, Denver 12th-16th September 2011
  • 18. JTS processes FOSS4G 2011, Denver 12th-16th September 2011
  • 19. Example JTS process Intersection POLYGON ((5 10, 10 10, 10 5, 5 5, 5 10)) FOSS4G 2011, Denver 12th-16th September 2011
  • 20. Query oriented processes  AKA “All you wanted WFS to do for you but he never wanted to”  gs:Aggregate: count/avg/max/median/min/stddev/sum on a feature collection  gs:Count: like WFS Hits, but on whatever source  gs:Bounds: bounds of whatever source, missing from WFS  gs:Query: query any source like WFS  gs:Unique: unique values of an attribute  gs:Nearest: find the nearest features FOSS4G 2011, Denver 12th-16th September 2011
  • 21. Aggregation example  Get the min, max and sum of the PERSONS attribute in the topp:states layer FOSS4G 2011, Denver 12th-16th September 2011
  • 22. Other Vector processes  gs:BufferFeatureCollection: buffer all features  gs:Clip: cookie cut featuresgs:Reproject: reproject any vector source  gs:Simplify: DouglasPeucker simplifier, retain attributes  gs:Snap: snap to grid  gs:InclusionFeatureCollection: overlay and get all features contained  gs:IntersectionFeatureCollection: overlay and intersect, retain attributes from both  gs:UnionFeatureCollection: merge two collections in one  gs:Import: save the features as a new GeoServer layer FOSS4G 2011, Denver 12th-16th September 2011
  • 23. Buffer example FOSS4G 2011, Denver 12th-16th September 2011
  • 24. Geometry <=> Feature  gs:collectGeometries: lump up all feature geometries into a geometry collection  gs:feature: turn a single geometry into a feature collection MULTIPOINT ( (-74.01046109936333 40.707587626256554), (-74.0108375113659 40.70754683896324), (-74.01053023879955 40.70938711687079), (-74.00857344353275 40.711945649065406), (-74.0118315772888 40.708529961953786), (-74.00153046439813 40.719885123828675)) FOSS4G 2011, Denver 12th-16th September 2011
  • 25. Raster processes FOSS4G 2011, Denver 12th-16th September 2011
  • 26. Raster processes  AKA “All you wanted WCS to do for you but it never wanted to”  Add/Multiply: add and multiply two rasters (waiting for full algebra to be implemented)  Crop: crop a coverage based on the specified cutting geometry  RangeLookup: classify raster image based on a set of ranges ([min,max] -> value)  ScaleCoverage: rescale and translate a given raster  StyleCoverage: apply a SLD style to a raster, getting back a styled (but still georeferenced) one  Georectify: turn a non geo-referenced coverage into one based on ground control points FOSS4G 2011, Denver 12th-16th September 2011
  • 28. Conversion processes FOSS4G 2011, Denver 12th-16th September 2011
  • 29. Conversion processes  Bridging the raster and the vector world  Contour: extracts isolines given a set of levels or a interval  RasterAsPointCollection: extracts one point for each cell, with band contents as attributes  PolygonExtraction: extracts uniform polygons from raster, eventually given a set of value ranges  RasterZonalStatistics: given a raster and a polygonal compute min/max/sum/avg/stddev of the cells falling in each polygon, return an augmented polygonal  VectorToRaster: rasterizes vectors keeping a chosen attribute (a CQL expression eventually) as the band value
  • 31. Chaining FOSS4G 2011, Denver 12th-16th September 2011
  • 32. WPS Chaining  Feed the output of a process into another process  Allows for tree-like composition  Let’s see a typical “clip and ship” example, both raster and vector:  Extract the rivers into the “restricted areas” polygons  Extract from Blumarble any pixel in the USA FOSS4G 2011, Denver 12th-16th September 2011
  • 33. Raster clip and ship FOSS4G 2011, Denver 12th-16th September 2011
  • 34. Raster clip and ship FOSS4G 2011, Denver 12th-16th September 2011
  • 35. Vector clip and ship FOSS4G 2011, Denver 12th-16th September 2011
  • 36. GeoServer Integration 1: local data access FOSS4G 2011, Denver 12th-16th September 2011
  • 37. Direct data integration  WPS normally reads from remote WFS/WCS, parsing GML/GeoJSON or GeoTiff/ArcGrid  When the source is local we can dodge it though, read directly from the source (shapefile, DBMS, geotiff)  Hit the fictious http://geoserver/wfs url for local WFS  Hit the fictious http://geoserver/wcs url for local WCS
  • 38. Store back results (only vector)  gs:Import: saves the vector results into a store of choice, and publish as a layer  Use right away the new layer from WMS/WFS/WCS/WPS  Still missing the equivalent for rasters FOSS4G 2011, Denver 12th-16th September 2011
  • 39. GeoServer Integration 2: rendering transformations FOSS4G 2011, Denver 12th-16th September 2011
  • 40. Rendering transformations  On-the-fly data transformations inside rendering chain  Calling WPS processes from SLD docs  Optimized for performance FOSS4G 2011, Denver 12th-16th September 2011
  • 41. Rendering transformations  Point feature extraction from two band raster data (e.g. Wind(u,v))  Computation of direction and module from SLD  Full SLD  Call gs:RasterAsPointCollection  Magnitude and direction of the arrow are computed on the fly by using filter functions  <WellKnownName>shape://carrow</WellKnownName>  Working at visual resolution  Use overviews and decimation  Fast with large datasets FOSS4G 2011, Denver 12th-16th September 2011
  • 42. Evolution and closing remarks FOSS4G 2011, Denver 12th-16th September 2011
  • 43. WPS*  Deficiencies  No support for asynchronous requests  Missing request limits enforcements (e.g. input/output maximum dimensions)  Wish list:  Scripting (Jython, GeoScript)  Sextante, IDL, JGrass (Grass?) integration  Improved robustness  Jiffle (jai-tools) based raster algebra  New layers as dynamic WPS processes (computing data on the fly as people do WMS/WCS/WFS requests) FOSS4G 2011, Denver 12th-16th September 2011
  • 44. The End Questions? [email protected] [email protected] FOSS4G 2011, Denver 12th-16th September 2011