Web Processing Service: The Final Frontier For Web GIS Mike Pumphrey April 25, 2012 Web Mapping is cool • Serve data to anyone with a Net connection • Create pretty/informative interactive maps • Integrate maps and software/interfaces 2 Q: So why does anyone still use Desktop GIS software? 3 A: Web Mapping != GIS “It looks nice, but can I determine viewsheds?” 4 The End 5 The End 6 Benefits of web-based anything • Distribution of time • Distribution of energy • Distribution of content 7 OGC services (review) • Web Map Service (WMS) • Web Feature Service (WFS) • Web Coverage Service (WCS) 8 Introducing: Web Processing Service 9 WPS Definition: “[WPS] provides rules for standardizing how inputs and outputs (requests and responses) for geospatial processing services ... The standard also defines how a client can request the execution of a process, and how the output from the process is handled.” 10 Translation: You can do analysis over the web. (Cool!) 11 How Does It Work • Processes exist on a server • Request comes from client • Server executes and outputs 12 Just Like Other OGC Services • GetCapabilities (GetCapabilities) • DescribeProcess (DescribeFeatureType) • ExecuteProcess (GetFeature) 13 What About Data? • Can be POSTed (ugh) • Can be stored on the server (yay!) 14 Data on server = interesting! • That's where things get interesting! • Operate on data stored on the server and return to the client • Operate on data stored on the server and save on the server 15 GeoServer has WPS support • Available as a GeoServer community extension • Alternately, core component in OpenGeo Suite 16 GeoServer: GUI interface for WPS 17 Unavoidable example: Point Buffer 18 19 POLYGON ((2 0, 1.9753766811902755 -0.3128689300804617, 1.902113032590307 -0.6180339887498948, 1.7820130483767358 0.9079809994790935, 1.618033988749895 -1.1755705045849463, 1.4142135623730951 -1.414213562373095, 1.1755705045849463 1.618033988749895, 0.9079809994790937 -1.7820130483767356, 0.6180339887498949 -1.902113032590307, 0.3128689300804618 1.9753766811902755, 0.0000000000000001 -2, -0.3128689300804616 1.9753766811902755, -0.6180339887498947 -1.9021130325903073, 0.9079809994790935 -1.7820130483767358, -1.175570504584946 1.618033988749895, -1.414213562373095 -1.4142135623730951, 1.6180339887498947 -1.1755705045849465, -1.7820130483767356 0.9079809994790937, -1.902113032590307 -0.618033988749895, 1.9753766811902753 -0.312868930080462, -2 -0.0000000000000002, 1.9753766811902755 0.3128689300804615, -1.9021130325903073 0.6180339887498946, -1.7820130483767358 0.9079809994790934, 1.618033988749895 1.175570504584946, -1.4142135623730954 1.414213562373095, -1.1755705045849465 1.6180339887498947, 0.9079809994790938 1.7820130483767356, -0.6180339887498951 1.902113032590307, -0.3128689300804621 1.9753766811902753, 0.0000000000000004 2, 0.3128689300804614 1.9753766811902755, 0.6180339887498945 1.9021130325903073, 0.9079809994790933 1.782013048376736, 1.1755705045849458 1.6180339887498951, 1.4142135623730947 1.4142135623730954, 1.6180339887498947 1.1755705045849467, 1.7820130483767356 0.9079809994790939, 1.902113032590307 0.6180339887498952, 1.9753766811902753 0.3128689300804622, 2 0)) 20 Crop Coverage 21 Bounds 22 Vector Clip and Ship Thanks to Andrea Aime @ GeoSolutions for this one 23 Even Better: Chain processes Buffer Clip Union Reproject Contour Import Etc… 24 What processes? • JTS Topology Suite – Buffer, centroid, contains, touches, etc. • Internal GeoTools/GeoServer processes – Bounds, Clip, Snap, Import, Query, Reproject, etc. • And user defined… 25 Build yer own damn process • • • • Extensible architecture WPS doesn’t even have to be spatial WPS is a framework So… 26 Option 1: Be a Java dev 27 Option 2: GeoScript(.org) • Use your own familiar scripting language • JavaScript! Python! Scala! Groovy! 28 Real World Ideas • Hydrography: Draw water features on a map that need to conform to rules (a stream can’t cross a lake) • Forestry: submit an area to find out its average slope, aspect and elevation, to determine ease of cutting/replanting trees. • Cell service: compute viewshed analysis of cell towers (to determine coverage) 29 The real benefit to using WPS • Big data • Big processing • Small input/outputs 30 More Real World Usage Norwegian Mapping Agency: Draw a line on a map and generate an elevation profile http://norgeskart.no/adaptive2/default.aspx?gui=1&lang=1 31 32 Rendering Transformations 33 Rendering Transformations 34 Future • Better client-side apps that utilize server processes • Improved method of defining processes 35 Thanks! mike@opengeo.org 36