Transcript
Page 1: Spatial Statistics on the Geospatial Web

Spatial Statistics on the

Geospatial Web

Matthias Hinz, Daniel Nüst, Benjamin Proß,

Edzer Pebesma

Page 2: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 2

Web Service (mediation layer)

Domain

Scientists Scripting Environment

(software / languages)

Web Developer /

Admin

Heterogeneous

Audience

browser clients

community platforms

GIS-applications

services

Process Sharing

mobile devices

Geospatial Web

Page 3: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 3

Run the script as a

web process

Upload script

to server

Enhance

script

Page 4: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 4

The Annotation Concept

metadata

technical instructions

has name + parameter list

as code comments

locally and on a server

Page 5: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 5

Four Annotation Types

general process description

dynamic inputs

process outputs

resources

Page 6: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 6

1) General Process Description

# des: id = my42process, title= “my script”,

# abstract = “analyze 42 things”,

# author= “me”;

# myRuntime.des: id = …

Page 7: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 7

# number for factorization

myFactor <- 10

2) Dynamic Inputs

Page 8: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 8

2) Dynamic Inputs

# number for factorization

myFactor <- 10

# in: id = myFactor, type = integer,

# title = “numerical factor”,

# abstract = “the number to be used

# for factorization”,

# value = 1,

# minOccurs = 0, maxOccurs = 1;

Page 9: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 9

# number for factorization

# off;

myFactor <- 10

# on;

# in: id = myFactor, type = integer,

# title = “numerical factor”,

# abstract = “the number to be used

# for factorization”,

# value = 1,

# minOccurs = 0, maxOccurs = 1;

2) Dynamic Inputs

Page 10: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 10

3) Process Outputs

# number for factorization

myResult <- myAlgorithm(1, 2, myDataSet)

# out: id = myResult, type = string,

# title = “factorized output”,

# abstract = “output number as text in

# scientific notation (a x 10^b)”;

Page 11: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 11

4) Resources

# res: file1.data, file2.zip, file3.txt,

...;

# load auxiliary data

data1 <- foo("file2.zip")

data2 <- bar(“fixed_path/file3.txt")

Page 12: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 12

Ignore flags

# off;

script.part.to = be_ignored_on_server()

# on;

script.part.to = run_on_the_server()

Page 13: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 13

Application Example: WPS4R

Rserve

WPS Client

HTTP GET / POST

TCP / IP

Web Admin Console

- Upload R scripts - Manage processes - Config parameters

WPS4R

XML Requests / Responses

R

HTTP GET / POST

User Administrator

Apache Tomcat Server

Processing

Service

Page 14: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 14

Example: Interpolation

+Kappasys WPS-Client

Quantum GIS

Page 15: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 15

WPS Process Description

[…] <ProcessDescription statusSupported="true"

storeSupported="true" wps:processVersion="1.0.0">

<ows:Identifier>org.n52.wps.server.r.Idw</ows:Identifier>

<ows:Title>Inverse distance weighted

interpolation</ows:Title>

<ows:Abstract>A simple interpolation carried out by R,

uses packages gstat, sp and rgdal</ows:Abstract>

<ows:Metadata xlin:title="R Script used for this process"

xlin:href="http://localhost:8080/wps/R/scripts/Idw.R"/>

<ows:Metadata xlin:title="Resource Directory URL"

xlin:href="http://localhost:8080/wps/R/resources" />

<ows:Metadata xlin:title="R Session Info"

xlin:href="http://localhost:8080/wps/R/sessioninfo.jsp"/>

<DataInputs> […]

# wps.des: id = idw,

# title = "Inverse distance weighted interpolation",

# abstract = "A simple interpolation carried out

# by R, uses packages gstat, sp and rgdal",

# author = "Matthias Hinz";

Page 16: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 16

Page 17: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 17

Page 18: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 18

Example: Live WeatheR Plots

live sensor data

analysis on server

image output

Page 19: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 19

Page 20: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 20

Conclusion

annotation framework

script-based web processing

demo with open source framework

open approach

reproducibility

Page 21: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 21

Outlook

security

provenance

rights

further implementations / tools

usability

bidirectional communication

Page 22: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 22

Thanks for your Attention!

Page 23: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 23

Resources

WPS4R Website:

https://wiki.52north.org/bin/view/Geostatistics/

WPS4R

Page 24: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 24

Further Information

Page 25: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 25

Server Environment Variables

if(exists(“server”) && server == TRUE){

srv.metadata = get_server_url();}

Page 26: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 26

Annotated R script: IDW

Page 27: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 27

WPS Process Description […]

<Input minOccurs="1" maxOccurs="1">

<ows:Identifier>attributename</ows:Identifier>

<ows:Title>Attribute name</ows:Title>

<ows:Abstract>Name of the attribute to be

interpolated, musst match the

observations</ows:Abstract>

<LiteralData>

<ows:DataType ows:reference="xs:string" />

<ows:AnyValue />

</LiteralData>

</Input>

[…]

# wps.in: attributename, string, "Attribute name",

# "Name of the attribute to be interpolated,

# must match the observations";

Page 28: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 28

WPS Process Description […]

<DataInputs>

<Input minOccurs="1" maxOccurs="1">

<ows:Identifier>points</ows:Identifier>

<ows:Title>Observations</ows:Title>

<ows:Abstract>The point observations and

measurements

to be interpolated</ows:Abstract>

<ComplexData>

<Default>

<Format>

<MimeType>application/x-zipped-

shp</MimeType>

</Format>

</Default>

<Supported>

<Format>

<MimeType>text/xml;subtype=gml/3.0.0</MimeType>

<Encoding>UTF-8</Encoding>

<Schema>http://schemas.opengis.net/gml/3.

0.0/base/feature.xsd</Schema>

</Format>

<Format> […]

Page 29: Spatial Statistics on the Geospatial Web

AGILE 2013 - Spatial Statistics on the Geospatial Web 29

WPS Process Description […]<Output>

<ows:Identifier>result</ows:Identifier>

<ows:Title>Interpolated predictions</ows:Title>

<ows:Abstract>A raster file that contains

predictions for the observed area</ows:Abstract>

<ComplexOutput>

<Default>

<Format>

<MimeType>image/geotiff</MimeType>

</Format>

</Default>

<Supported>

<Format>

<MimeType>application/image-ascii-

grass</MimeType>

<Encoding>base64</Encoding>

</Format> […]

# wps.out: result, image/geotiff,

# "Interpolated predictions",

# "A raster file that contains predictions

# for the observed area";


Recommended