istSOS (Istituto Scienze della Terra Sensor Observation Service) is the implementation of the Sensor Observation Service standard from Open Geospatial Consortium by the Institute of Earth Sciences (IST, Istituto Scienze della Terra). istSOS is distributed with a GPLv2 licence. The development of istSOS started in 2009 in order to provide a simple implementation of the SOS standard for the management, provision and integration of hydro-meteorological data collected in Canton Ticino (Switzerland).
The developement of istSOS started in 2009 in orther to provide a simple implementation of the SOS standard for the management, provision and integration of hydro-meteorological data collected in Canton Ticino (Switzerland).
Mailing list: https://groups.google.com/forum/#!forum/istsos
Web: http://istsos.org
Source code: http://sourceforge.net/projects/istsos
istSOS is entirerly written in Python and is based on:
- PostgreSQL / PostGIS
- Apache / mod_wsgi (mod_python for versions <= 1.0)
- GDAL (for versions < 2.0)
And it takes advantage of other python modules:
- isodate
- python-gdal (for versions < 2.0)
- psycopg2
- pytz
istSOS evolved in time from being a SOS service provider to complete data management system. Initially it was an implementation supporting the standard as defined by the OGC through the istsoslib, the core of the system. Thanks to the continue interaction with hydrologists and data users, We soon realized that the standard didn’t account for a number of requirements, like a missing supporting for irregular time series. So, We started developing extending features and enriched the istSOSlib. Afterward, We understood that without a comfortable Graphical User Interface (GUI) the time used to manage the system and the data (e.g.: update metadata, add new sensors, verify, correct and validate data) were too overwhelming. This lead to the idea of developing a Web Administration interface (wainterface) based on a RESTful service: walib.
As a result today istSOS is like a peach, were the wainterface is the peel, walib is the pulp and istsoslib is the kernel. These three components interact each others and offer different interfaces for different users types: humans, processes or standard clients.
A configuration file store important setting parameters like service metadata (e.g.: name, version, owner), database connection parameters, dictionaries definition, handled requests, etc.
These istSOS service handle the different SOS requests by instantiating subsequntially a factory_filter, a factory_reponder and a factory_renderer wich are capable to call the specific classes for elaborating the correct response.
As illustrated in Figure, at first the factory_filter istantiate the appropriate filter class (function of the request type), then the factory_responder authomatically instantiate the relative reponder class and finally the correct renderer is called by the factory_renderer to produce an SOS response.
A configuration file store important setting parameters like service metadata (e.g.: name, version, owner), database connection parameters, dictionaries definition, handled requests, etc.
Apart from standard features like filter capabilities of the observations by means of time periods, observed properties, geospatial relationships and sensor names istSOS implements several extending features that, according to the developers and decades experienced collaborators in sensor network management and data management were found particularly helpful.
Please look at the DB documentation generated using SchemaSpy istSOS 2.0 Schema
The authors thank all the partners of the Verbano Lake working group for flood risk reduction, and specially the Canton Ticino, (Ufficio dei corsi d’acqua), for supporting this project. Special thanks to people contributing to the software development and Google Summer of Code and OSGeo for sponsoring students works on istSOS.