This document discusses the development of a multi-functional "sensor" web service platform for citizen sensing called CITI-SENSE. The project aims to develop citizens' observatories, empower citizens to contribute environmental data, and support decision making. Three prototypes are being developed for air quality, noise, and indoor air quality monitoring using sensor data from 9 locations in Europe. Lessons learned include understanding user requirements, choosing standards to meet them, and that INSPIRE data specifications allowed quick development.
4. www.snowflakesoftware.com
Concept
Standards for Geospatial Data and Services
Citizens’ Observatories
Participation and Empowerment
Information Products and Services
Data and Services Platform
Sensor Infrastructure
Urban Quality Public Spaces
School Indoor
Quality
7. www.snowflakesoftware.com
Air Quality Prototype (6 Mth)
DATA ACCESS PROTOCOLS
PostgreSQL Cloud Database ClusterPostgreSQL Cloud Database Cluster
Model Transformation / Data Fusion / Semantic
Annotation
Model Transformation / Data Fusion / Semantic
Annotation
SENSOR
Data
SENSOR
Data
OGC WFS OGC WFS
8. www.snowflakesoftware.com
Configuring the Data Services
• Publishing from single source to multiple
schemas:
– OGC SWE: SensorML, O&M, KML
– INSPIRE: EMF, O&M Profiles
– W3C: SenML
• Using off-the-shelf software
• Rapid configuration/deployment of data
services to meet specific user
requirements
9. www.snowflakesoftware.com
Deploying Data Services
• Once schema transformation configured –
project is deployed within WFS
• But first need to configure WFS settings:
– GetCapabilities
– Encoding format (compressed/uncompressed)
– Servlet pattern
• Finally, generate WFS war and deploy to
application server
13. www.snowflakesoftware.com
Experiences
Encoding PointTimeSeriesObservation
– O&M describes a collection of observations
– Result cannot be dynamically generated
– Need to have a really good understanding of request
patterns to configure service:
• Get latest observation
• Get last 24 hrs
• Get last 7 days
• Get last month
Issue: O&M does not support
request pattern:
•Get observations within a user
defined time period for a subset of
air quality parameters
14. www.snowflakesoftware.com
Experiences
Encoding PointTimeSeriesObservation
– O&M describes a collection of observations
– Result cannot be dynamically generated
– Need to have a really good understanding of request
patterns to configure service:
• Get latest observation
• Get last 24 hrs
• Get last 7 days
• Get last month
Resolution:
Encoded the observations as
separate features using senML
which is a lightweight encoding to
serve through WFS
15. www.snowflakesoftware.com
Lessons learnt
• You need to understand your end-user
requirements before developing your
services
• Choose the right set of standards for
meeting these requirements
• INSPIRE Data Specifications allowed us
to get going within weeks of project start!!
CITI-SENSE will develop citizens’ observatories to empower citizens to contribute and participate in environmental governance, to enable them to support and influence community and societal priorities and associated decision making. CITI-SENSE will develop, test, demonstrate and validate a community-based environmental monitoring and information system using innovative and novel earth observation applications. The project aims to learn from citizen experience and perception and enable citizenship co-participation in community decision making and co-operative planning.
The concept of the project is to realise the chain from sensors->platforms->products->users. Elements Sensors: Technologies for distributed monitoring Platform: Information and communication technologies Products: Information products and services Users: Citizen involvement in monitoring and societal decisions
We are polling the AirBase database every 15 mins and load the sensor data directly into our PostGIS database cluster (managed by EnterpriseDB). On top of this database we used GO Publisher to develop and deploy various data services such as INSPIRE Environmental Monitoring Facilities (EMF), Observations & Measurements (O&M) and SensorML. We discovered that we ran into a blocker in configuring the translations because the end-user requirements were not specified. Turned out that the end-user requirements involved something that the O&M and EMF models do not support. Users are interested in specific results for specific time intervals (eg. last hour, or between 2 dates and times). The current O&M and WFS standards on which the INSPIRE specifications are based do not allow for this specific query. In the O&M standard an observation is a feature and the results are its properties. When using a WFS to query the data the service will always return a full feature (i.e. Observation) with all its results including the ones you are not interested in. To mitigate this, we changed the models slightly so that the service return a result as a feature. We also look at the W3C senML specification which provides better support for meeting the end-user requirements.
Query Translation - GO Publisher WFS Being able to query data through a translation process is significantly more complex. We can illustrate this by looking at GO Publisher WFS the software architecture of GO Publisher WFS. Configuration takes of the translation takes place in exactly the same way as for GO Publisher Desktop. Once the translation is configured the user adds additional configuration to the GO Publisher project file control the WFS behaviour. GO Publisher Desktop is then used to create a Web Archive (war) file which contains the project file and the WFS software. This war file contains everything needed by an application server to deploy the WFS. The war file is uploaded to an application server which unpacks and deploys the WFS from the war file. When a client submits a query to the WFS GO Publisher translates the WFS request into a SQL query. Because the WFS request is specified in terms of the GML application schema GO Publisher must use the data translation in reverse to translate the query. For example, if we set up a translation that translates the column “NAM” to the XML element “gml:name”, when a WFS request querying against “gml:name” arrives this must be turned into a SQL query against the column “NAM”. The data returned by the SQL query is then translated into GML (using the translation in its forward direction i.e. “NAM” becomes “gml:name”) and returned to the client. Multiple translations can be set up and deployed for a single database, thus allowing the data held in the database to be accessed by different communities of users using different GML application schemas.
Observations and Measurements: This is a brilliantly simple, generic model for encoding the observations collected by a sensor......but its too generic: How should the result (which is the container for the actual observations) be described/encoded? This needs to be defined by someone...... How should the procedure be described/encoded? What is the observedProperty? Is this a single observable parameter (e.g. Ozone) or can it be a collections
Observations and Measurements: For the 6 month prototype we used the INSPIRE PointTimeSeriesObservation as the result, SensorML to describe how the observation was measured Created a set of definitions of observableProperties within the project