OpenGIS Ser- OpenGIS Ser- vices vices @ Delft Software Days 2014 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ 1 of 148 04/11/14 10:29
Aug 03, 2015
OpenGIS Ser-OpenGIS Ser-vicesvices
@ Delft Software Days 2014
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
1 of 148 04/11/14 10:29
Fedor Baart
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
3 of 148 04/11/14 10:29
AgendaAgenda09:00 - 09:15 Introduction, Fedor Baart09:15 - 10:30 PostGIS and Qgis, Frank Keppel10:30 - 11:00 !
11:00 - 12:30 Gridded data, Giorgio Santinelli12:30 - 14:00 "
14:00 - 15:30 Visualizing with KML, Kees den Heijer15:30 - 16:00 !
16:00 - 17:30 Services, Fedor Baart17:30 - 18:30 #
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
5 of 148 04/11/14 10:29
HistoryHistoryOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
7 of 148 04/11/14 10:29
Open Source GISOpen Source GIS1980 Lagrid @ Westervelt
1983 Proj4 @ Evenden
1983 GRASS GIS @ CERL
1994 www
1994 Open Geospatial Consortium
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
9 of 148 04/11/14 10:29
First mapFirst map
1993 @ Xerox
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
11 of 148 04/11/14 10:29
MapserverMapserver
1994 @ NASA/ForNet (open source since 1999)
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
13 of 148 04/11/14 10:29
First processFirst process
1995 @ Berkeley
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
15 of 148 04/11/14 10:29
Location based services: rout-Location based services: rout-inging
1996 @ Mapquest & Multimap
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
17 of 148 04/11/14 10:29
Spatial queryingSpatial querying
2000 @ Geoserver
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
19 of 148 04/11/14 10:29
NASA World WindNASA World Wind
2003 @ NASA
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
21 of 148 04/11/14 10:29
OpenStreetMapOpenStreetMap
2004 @ Steve Coast
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
23 of 148 04/11/14 10:29
OpenStreetMapOpenStreetMap2004 @ Steve Coast
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
25 of 148 04/11/14 10:29
StylingStyling
2005 @ Mapnik
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
27 of 148 04/11/14 10:29
Google MapsGoogle Maps
2005 @ Google
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
29 of 148 04/11/14 10:29
TilecacheTilecache
src: renderfast.com
2006 @ Metacarta
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
31 of 148 04/11/14 10:29
StreetviewStreetview
2007 @ Google
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
33 of 148 04/11/14 10:29
SensorsSensors
2007 @ OGC
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
35 of 148 04/11/14 10:29
INSPIREINSPIRE
2007 @ EU
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
37 of 148 04/11/14 10:29
StylesheetsStylesheets
2008 @ Mapnik & Tilemill
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
39 of 148 04/11/14 10:29
Model as a serviceModel as a service
2010 @ ESMF (Saint)
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
41 of 148 04/11/14 10:29
Earth EngineEarth Engine
2010 @ Google
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
43 of 148 04/11/14 10:29
Vectors and 3DVectors and 3Dtransitions
2011 @ W3
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
45 of 148 04/11/14 10:29
Vectors and 3DVectors and 3D
2011 @ W3
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
47 of 148 04/11/14 10:29
AnimationsAnimations
2011 @ W3
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
49 of 148 04/11/14 10:29
AnimationsAnimations
2011 @ W3
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
51 of 148 04/11/14 10:29
Map Content ManagementMap Content Management
2011 @ CartoDB
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
53 of 148 04/11/14 10:29
Interactive modelsInteractive models
2014 @ 3Di
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
55 of 148 04/11/14 10:29
OpenEarth stackOpenEarth stackOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
57 of 148 04/11/14 10:29
2013 @ TUDOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
58 of 148 04/11/14 10:29
FutureFutureSensorsPush/MessagesGlobal processingModel setup
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
59 of 148 04/11/14 10:29
OGC ServiceOGC ServiceOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
61 of 148 04/11/14 10:29
Web Map ServicesWeb Map ServicesGet map in bitmap formGet information for 1 locationCustom bounding boxMap rendered by server on requestQuery by time and elevationCoordinate transformation
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
63 of 148 04/11/14 10:29
GetCapabilitiesGetCapabilities<wms_capabilities> <service> <title>OpenEarth test server</title> <maxwidth>2048</maxwidth> </service> <capability> <request> <getmap> <format>image/png</format> <dcptype><http><get><onlineresource xlink:type="simple" xlink:href </getmap> </request> <layer> <crs>EPSG:4326</crs> <title>daily averaged meteo parameter.</title> </layer> </capability></wms_capabilities>
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
65 of 148 04/11/14 10:29
ImplementationsImplementationsGeoserverMapserverncWMSADAGUC
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
67 of 148 04/11/14 10:29
GetMapGetMaphttp://geoport.whoi.edu/thredds/wms/bathy/srtm30plus_v6?
service=WMS&
request=GetMap&
layers=topo&
version=1.3.0&
CRS=epsg:4326&
bbox=50,0,55,10&
width=256&height=256&
styles=&
format=image/png
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
69 of 148 04/11/14 10:29
ExampleExamplehttp://geoport.whoi.edu/thredds/wms/bathy/srtm30plus_v6
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
71 of 148 04/11/14 10:29
ExtensionsExtensionsCOLORSCALERANGELOGSCALE
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
73 of 148 04/11/14 10:29
WMTSWMTSOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
75 of 148 04/11/14 10:29
UTFGridUTFGridOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
77 of 148 04/11/14 10:29
ChallengesChallengesVideo
Streaming
Voxels
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
79 of 148 04/11/14 10:29
VectorVectorOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
81 of 148 04/11/14 10:29
Everything is a featureEverything is a featureOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
83 of 148 04/11/14 10:29
The question "What is a feature?" leads directlyto a philosophical rabbit hole which deposits theunwary questioner in a wonderland from which
it is difficult to return.
Nordgren, 2006
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
85 of 148 04/11/14 10:29
Web Feature ServiceWeb Feature ServiceGet list of featuresGet table with feature infoCustom bounding boxNot renderedCoordinate transformation
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
87 of 148 04/11/14 10:29
GetFeatureGetFeaturehttp://geo.vliz.be/geoserver/wfs?
request=GetFeature&
service=wfs&
typeName=World:worldcities&
bbox=51,2,55,5&
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
89 of 148 04/11/14 10:29
CoveragesCoveragesFeature that acts as a function to return valuesfrom its range for any direct position within its
spatiotemporal domain
a grid
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
91 of 148 04/11/14 10:29
Web Coverage ServiceWeb Coverage ServiceGet a grid fileCustom bounding boxNot renderedCoordinate transformation
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
93 of 148 04/11/14 10:29
GetCoverageGetCoveragehttp://geoport.whoi.edu/thredds/wcs/bathy/srtm30plus_v6?
request=GetCoverage
&version=1.0.0
&service=WCS
&format=geotiff
&coverage=topo
&BBOX=0,50,10,55
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
95 of 148 04/11/14 10:29
OPeNDAP vs WCSOPeNDAP vs WCSarray or spatial?
10.1111/j.1467-9671.2012.01312.x
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
97 of 148 04/11/14 10:29
Other servicesOther servicesSensor Observation ServiceOpen Model InterfaceCatalogue Service for the WebOPeNDAP
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
99 of 148 04/11/14 10:29
Client librariesClient librariesOGR/GDAL (C,python,R)OWSLib (python)geotools (java)
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
101 of 148 04/11/14 10:29
Client softwareClient softwareQGis (desktop)uDig (desktop)Leaflet (web)OpenLayers (web)
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
103 of 148 04/11/14 10:29
Web ProcessingWeb ProcessingServicesServices
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
105 of 148 04/11/14 10:29
ProcessesProcessesCall a functionDefine input variables/filesDefine output variables/filesCustom bounding boxCan be rendered or notStart processChain processes
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
107 of 148 04/11/14 10:29
Typical examplesTypical examplesSpatial operationsConversionsProcess @ dataSimple modelsFacade to complex models
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
109 of 148 04/11/14 10:29
OperationsOperationsGetCapabilitiesDescribeProcessExecute
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
111 of 148 04/11/14 10:29
Tide ExampleTide ExampleOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
113 of 148 04/11/14 10:29
OSU Tidal constituentsOSU Tidal constituentsOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
115 of 148 04/11/14 10:29
Tidal predictTidal predictOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
117 of 148 04/11/14 10:29
GetCapabilitiesGetCapabilities <wps:capabilities service="WPS" version="1.0.0"> <ows:serviceidentification> <ows:title>OpenEarth WPS server</ows:title> <ows:accessconstraints>none</ows:accessconstraints> </ows:serviceidentification> <ows:serviceprovider> <ows:providername>Deltares</ows:providername> </ows:serviceprovider> <wps:processofferings> <wps:process wps:processversion="0.1"> <ows:identifier>tidal_predict</ows:identifier> <ows:title>Tidal prediction tool</ows:title> </wps:process> </wps:processofferings></wps:capabilities>
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
119 of 148 04/11/14 10:29
DescribeProcessDescribeProcess <wps:processdescriptions service="WPS" version="1.0.0" xml:lang="en-CA"> <processdescription> <ows:identifier>tidal_predict</ows:identifier> <ows:title>Tidal prediction tool</ows:title> <datainputs> ...<identifier>startdate</identifier>... </datainputs> <processoutputs> <output> <ows:identifier>tide</ows:identifier> <ows:title>Calculated water level for requested locations and date</ows:title> <complexoutput> ...<mimetype>text/csv</mimetype>... </complexoutput> </output> </processoutputs> </processdescription></wps:processdescriptions>
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
121 of 148 04/11/14 10:29
Input/OutputInput/OutputTitle/AbstractDescriptionUnitDefaultMin/max occurance
TypesTypesLiteral (string, number)Bounding BoxComplex (raster, vector)
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
123 of 148 04/11/14 10:29
ExecuteExecute <wps:executeresponse><wps:process wps:processversion="0.1"> <ows:identifier>tidal_predict</ows:identifier> <wps:status creationtime="2014-11-02T19:50:39Z"> <wps:processsucceeded>PyWPS Process tidal_predict successfully calculated</ </wps:status> <wps:processoutputs> <wps:output> <ows:title>Calculated water level for requested locations and date</ows:title <wps:data> <wps:complexdata mimetype="text/csv">date,h,lat,lon2014-11-02 19:50:37,0.3735264572229592,3.0,52.0 </wps:complexdata> </wps:data> </wps:output> </wps:processoutputs></wps:process></wps:executeresponse>
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
125 of 148 04/11/14 10:29
Server ImplementationsServer ImplementationsZooPyWPSGeoserver52North
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
127 of 148 04/11/14 10:29
Tools and languagesTools and languagesJTSGRASSOrfeoSextantepython, R, java
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
129 of 148 04/11/14 10:29
Implementing a processImplementing a processclass Process(WPSProcess): def __init__(self): WPSProcess.__init__(self, "tidal_predict", title="Tidal prediction tool") def execute(self): """execute a tidal prediction""" date = self.date.getValue() location = self.location.getValue() df = openearthtools.physics.tide.predict(location, date=date) self.tide.setValue(df.to_json())
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
131 of 148 04/11/14 10:29
Client ImplementationsClient ImplementationsOpenLayersOWSLibGeotools (unsupported)
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
133 of 148 04/11/14 10:29
Client ExampleClient Example // OpenLayers exampleclient = new OpenLayers.WPSClient({ servers: { opengeo: 'http://demo.opengeo.org/geoserver/wps' }}); intersect = client.getProcess('opengeo', 'JTS:intersection'); intersect.configure({ inputs: { a: features, b: geometry }, success: function(outputs) { map.baseLayer.addFeatures(outputs.result); }});
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
135 of 148 04/11/14 10:29
Setting up a serverSetting up a serverGet OSX/linux computer with VirtualBox1. Install ansible2. Install vagrant3. Download OpenEarth stack @ github4. $ vagrant up wps5.
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
137 of 148 04/11/14 10:29
Missing featuresMissing featuresStop a processRESTSpatial types (everything is complex)Layout hints/classesVariable relationsPush/notifications
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
139 of 148 04/11/14 10:29
Planned in WPS 2Planned in WPS 2Fall of 2014?
Pause,Resume,DismissREST?
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
141 of 148 04/11/14 10:29
ExcercisesExcercisesOpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
143 of 148 04/11/14 10:29
WMS + WFSWMS + WFSwfs/wms client
WPSWPSwps client
OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/
145 of 148 04/11/14 10:29