The time is flying by and soon we reach midway of the Google Summer of Code (GSoC) with 52°North. It is the typical time in between – I already managed to meet the first milestones, but there is no proper product yet. Catching up with the changes from the SOS main development branch is a constant challenge, but the infrastructural changes within the “Exchangeable Encodings for SOS” project are slowly but continuously leading towards a robust and standardized, yet limited, encoding plugin API (application programming interface).
The main use case is the request for observations (GetObservation request) that could be delivered in CSV (comma separated values) format for legacy applications, WaterML2.0, an upcoming OGC (Open Geospatial Consortium) data transfer standard for the hydrological domain, possibly netCDF (Network Common Data Form), also an OGC standard for meteorological applications, and in O&M (Observations & Measurements) for the generic use within sensor networks and spatial data infrastructures.
An open question is whether there is a need to also encode sensor and feature information in different format (affecting DescribeSensor and GetFeatureOfInterest requests). And which other encoding schemes would be interesting? Please add your ideas in the comments! We are starting to document the preliminary API on the project’s wiki site:
Basically, if you would like to create another observation output encoding, you create a simple SOS module and implement one class per SOS version (1 respectively 2) and operation (for now only GetOberservation). Important is the “responseFormat”, as this is listed in the Capabilities document and used to identify the desired response encoder:
package org.n52.sos.encode;import org.n52.sos.SosConfigurator; import org.n52.sos.encode.IGenericObservationEncoder_V2; import org.n52.sos.ogc.om.SosObservationCollection; ...public class WML2Encoder_V2 implements IGenericObservationEncoder_V2 {private static final String responseFormat = "text/xml;subtype="waterml/2.0.0quot;";public String createObservationCollection(SosObservationCollection sosObsCol) throws OwsException {...}
A first alpha version showing the feasibility will soon be open for testing and comments with an online demo SOS server. This instance will be able to deliver observations in CSV format, in addition to the O&M 1.0 and 2.0 standard encodings. Furthermore we are very keen to present a first basic WaterML2.0 support as soon as possible. I myself am particularly looking towards Salzburg and New Zealand, where already researchers and hydrologists anticipate the availability of this format :-).
And imagine a SOS server that could be easily installed and maintained? Thanks to the “SOS Administrator” GSoC project, it will be much simpler to share your hydrological time-series. Within the Google Summer of Code we intend to integrate the projects with each other, so that you could just upload and enable an encoding plugin via the SOS administration interface. Together with the general flexible software architecture of the 52°North SOS server, it is the ultimate toolbox for your time-series and sensor networks.
In this week I will visit the AGIT and GI_Forum conference and spread the word about 52°North and our GSoC projects. Please get in touch with me in person if you have any questions.
Watch this space and stay updated!
Leave a Reply