Web Processing Service:The Final Frontier For Web GIS
Mike Pumphrey
April 25, 2012
• Serve data to anyone with a Net connection
• Create pretty/informative interactive maps
• Integrate maps and software/interfaces
Web Mapping is cool
2
Q: So why does anyone still use Desktop GIS software?
3
“It looks nice, but can I determine viewsheds?”
A: Web Mapping != GIS
4
The End
5
The End
6
• Distribution of time
• Distribution of energy
• Distribution of content
Benefits of web-based anything
7
• Web Map Service (WMS)
• Web Feature Service (WFS)
• Web Coverage Service (WCS)
OGC services (review)
8
Introducing:Web Processing Service
9
“[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.”
WPS Definition:
10
You can do analysis over the web.
(Cool!)
Translation:
11
• Processes exist on a server
• Request comes from client
• Server executes and outputs
How Does It Work
12
• GetCapabilities (GetCapabilities)
• DescribeProcess (DescribeFeatureType)
• ExecuteProcess (GetFeature)
Just Like Other OGC Services
13
• Can be POSTed (ugh)
• Can be stored on the server (yay!)
What About Data?
14
• 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 andsave on the server
Data on server = interesting!
15
• Available as a GeoServer community extension
• Alternately, core component in OpenGeo Suite
GeoServer has WPS support
16
GeoServer: GUI interface for WPS
17
Unavoidable example:Point Buffer
18
19
20
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))
Crop Coverage
21
Bounds
22
Vector Clip and Ship
23
Thanks to Andrea Aime @ GeoSolutions for this one
Even Better: Chain processes
24
BufferBuffer UnionUnion
ClipClip ContourContourReprojectReproject ImportImport
Etc…
• JTS Topology Suite– Buffer, centroid, contains, touches, etc.
• Internal GeoTools/GeoServer processes– Bounds, Clip, Snap, Import, Query, Reproject, etc.
• And user defined…
What processes?
25
• Extensible architecture
• WPS doesn’t even have to be spatial
• WPS is a framework
• So…
Build yer own damn process
26
Option 1: Be a Java dev
27
• Use your own familiar scripting language
• JavaScript! Python! Scala! Groovy!
Option 2: GeoScript(.org)
28
• 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)
Real World Ideas
29
• Big data
• Big processing
• Small input/outputs
The real benefit to using WPS
30
Norwegian Mapping Agency: Draw a line on a map and generate an elevation profile
http://norgeskart.no/adaptive2/default.aspx?gui=1&lang=1
More Real World Usage
31
32
Rendering Transformations
33
Rendering Transformations
34
• Better client-side apps that utilize server processes
• Improved method of defining processes
Future
35