OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ OpenGIS Ser- vices @ Delft Software Days 2014

1 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

2 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

Fedor Baart [email protected]

3 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

4 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Agenda

09:00 - 09:15 Introduction, Fedor Baart 09:15 - 10:30 PostGIS and Qgis, Frank Keppel 10:30 - 11:00 ! 11:00 - 12:30 Gridded data, Giorgio Santinelli 12:30 - 14:00 " 14:00 - 15:30 Visualizing with KML, Kees den Heijer 15:30 - 16:00 ! 16:00 - 17:30 Services, Fedor Baart 17:30 - 18:30 #

5 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

6 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ History

7 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

8 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Open Source GIS 1980 Lagrid @ Westervelt 1983 Proj4 @ Evenden 1983 GRASS GIS @ CERL 1994 www 1994 Open Geospatial Consortium

9 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

10 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ First map

1993 @ Xerox

11 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

12 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Mapserver

1994 @ NASA/ForNet (open source since 1999)

13 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

14 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ First process

1995 @ Berkeley

15 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

16 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Location based services: rout- ing

17 of 148 04/11/14 10:29 1996 @ Mapquest & Multimap OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

18 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Spatial querying

2000 @ Geoserver

19 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

20 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ NASA World Wind

21 of 148 2003 @ NASA 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

22 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ OpenStreetMap

2004 @ Steve Coast

23 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

24 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ OpenStreetMap 2004 @ Steve Coast

25 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

26 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Styling

2005 @ 27 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

28 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

29 of 148 2005 @ Google 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

30 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Tilecache

src: renderfast.com 2006 @ Metacarta 31 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

32 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Streetview

2007 @ Google

33 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

34 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Sensors

2007 @ OGC

35 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

36 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ INSPIRE

2007 @ EU

37 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

38 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Stylesheets

2008 @ Mapnik & Tilemill

39 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

40 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Model as a service

2010 @ ESMF (Saint)

41 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

42 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Earth Engine

2010 @ Google

43 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

44 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Vectors and 3D transitions 2011 @ W3

45 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

46 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Vectors and 3D

2011 @ W3

47 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

48 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Animations

2011 @ W3

49 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

50 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Animations

2011 @ W3 51 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

52 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Map Content Management

2011 @ CartoDB

53 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

54 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Interactive models

2014 @ 3Di

55 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

56 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ OpenEarth stack

57 of 148 04/11/14 10:29 OpenEarth 2013 @ TUD http://siggyf.github.io/presentations/gis2014/?print-pdf#/

58 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Future Sensors Push/Messages Global processing Model setup

59 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

60 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ OGC Service

61 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

62 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Web Map Services Get map in bitmap form Get information for 1 location Custom bounding box Map rendered by server on request Query by time and elevation Coordinate transformation

63 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

64 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ GetCapabilities OpenEarth test server 2048 image/png EPSG:4326 daily averaged meteo parameter.

65 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

66 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Implementations Geoserver Mapserver ncWMS ADAGUC

67 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

68 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ GetMap http://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

69 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

70 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Example http://geoport.whoi.edu/thredds/wms/bathy/srtm30plus_v6

71 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

72 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Extensions COLORSCALERANGE LOGSCALE

73 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

74 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ WMTS

75 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

76 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ UTFGrid

77 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

78 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Challenges Video Streaming Voxels

79 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

80 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Vector

81 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

82 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Everything is a feature

83 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

84 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

The question "What is a feature?" leads directly to a philosophical rabbit hole which deposits the unwary questioner in a wonderland from which it is difficult to return. Nordgren, 2006

85 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

86 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Web Feature Service Get list of features Get table with feature info Custom bounding box Not rendered Coordinate transformation

87 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

88 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ GetFeature http://geo.vliz.be/geoserver/wfs? request=GetFeature& service=wfs& typeName=World:worldcities& bbox=51,2,55,5&

89 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

90 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Coverages Feature that acts as a function to return values from its range for any direct position within its spatiotemporal domain a grid

91 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

92 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Web Coverage Service Get a grid file Custom bounding box Not rendered Coordinate transformation

93 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

94 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ GetCoverage http://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

95 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

96 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ OPeNDAP vs WCS array or spatial? 10.1111/j.1467-9671.2012.01312.x

97 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

98 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Other services Sensor Observation Service Open Model Interface Catalogue Service for the Web OPeNDAP

99 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

100 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Client libraries OGR/GDAL (C,python,R) OWSLib (python) geotools (java)

101 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

102 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Client software QGis (desktop) uDig (desktop) (web) OpenLayers (web)

103 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

104 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Web Processing Services

105 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

106 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Processes Call a function Define input variables/files Define output variables/files Custom bounding box Can be rendered or not Start process Chain processes

107 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

108 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Typical examples Spatial operations Conversions Process @ data Simple models Facade to complex models

109 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

110 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Operations GetCapabilities DescribeProcess Execute

111 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

112 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Tide Example

113 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

114 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ OSU Tidal constituents

115 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

116 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Tidal predict

117 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

118 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ GetCapabilities

OpenEarth WPS server none Deltares tidal_predict Tidal prediction tool

119 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

120 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ DescribeProcess

tidal_predict Tidal prediction tool ...startdate... tide Calculated water level for requested locations and date ...text/csv...

121 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

122 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Input/Output Title/Abstract Description Unit Default Min/max occurance Types Literal (string, number) Bounding Box Complex (raster, vector)

123 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

124 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Execute

tidal_predict PyWPS Process tidal_predict successfully calculated Calculated water level for requested locations and date date,h,lat,lon 2014-11-02 19:50:37,0.3735264572229592,3.0,52.0

125 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

126 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Server Implementations Zoo PyWPS Geoserver 52North

127 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

128 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Tools and languages JTS GRASS Orfeo Sextante python, R, java

129 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

130 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Implementing a process

class 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())

131 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

132 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Client Implementations OpenLayers OWSLib Geotools (unsupported)

133 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

134 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Client Example

// OpenLayers example client = 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); } });

135 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

136 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Setting up a server 1. Get OSX/linux computer with VirtualBox 2. Install ansible 3. Install vagrant 4. Download OpenEarth stack @ github 5. $ vagrant up wps

137 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

138 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Missing features Stop a process REST Spatial types (everything is complex) Layout hints/classes Variable relations Push/notifications

139 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

140 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Planned in WPS 2 Fall of 2014? Pause,Resume,Dismiss REST?

141 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

142 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ Excercises

143 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

144 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ WMS + WFS wfs/wms client WPS wps client

145 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

146 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/ #

147 of 148 04/11/14 10:29 OpenEarth http://siggyf.github.io/presentations/gis2014/?print-pdf#/

148 of 148 04/11/14 10:29