project logo OSGeo Community Project

istSOS Quickstart

istSOS is an OGC SOS server implementation written in Python. istSOS allows for managing and dispatch observations from monitoring sensors according to the Sensor Observation Service standard.

The project provides also a Graphical user Interface that allows for easing the daily operations and a RESTFull Web api for automatizing administration procedures.

istSOS is released under the GPLv2 licence, and runs on all major platforms (Windows, Linux, Mac OS X), even though it has been used in production in linux environment only.

Create postgis database

Open a terminal and execute the following commands:

sudo -u postgres createdb -E UTF8 istsos
sudo -u postgres psql -d istsos -c 'CREATE EXTENSION postgis'

Setting up an istSOS service instance

With istSOS you can organize your sensor data in different instances. Every instance has its own database schema independent from other instances. You can even deploy other databases over your network according to your needs.

The first steps into istSOS setup is to configure the default configuration options. These options will then be automatically used for your convenience by every new istSOS instance created.

1) Open the Web Admin interface

Open a browser and go to http://localhost/istsos/admin

2) Configure your database connection

From the toolbar buttons menu press the “Database” button and fill in the database configuration options:

user: postgres
password: postgres
host: localhost
port: 5432
DB name: istsos

3) Configure the default Service provider information

Press the “Service provider” button and fill it using your institutional information.

4) Configure the default Service identification information

Press the “Service identification” button and fill up with custom metadata that describe the service usage.

5) Configure your service coordinates system

Press the “Coordinates system” button to manage the Coordiante Reference System (CRS).

Default EPSG code: this will be the native Coordinate Reference Systems of your geometries in the database.

Permitted EPSG: here you can configure which other Coordinate Reference Systems your system will support and reproject if requested.

6) Configure your getobservation request options

From the toolbar buttons menu press the “GetObservation Configuration” button to set maximum time interval per getObservation requests (zero for no limits) and aggregation no-data value.

7) Configure your service proxy address

The Proxy URL field is the base URL seen beyond a reverse proxy.

Create a new service

Now that you have configured istSOS, it’s time to create a new service instance.

1) Create a new service

From the toolbar buttons menu press the “new service” button:

Choose the name of your instance. In this workshop use the name demo.

In the EPSG field you can set the database native projection. Leaving it empty, the default one will be used.

Clicking on the “Customize database” box, you are able to change the default database configuration for this new istSOS instance.

2) Press “next”

As you pressed the “next” button, the server status panel is displayed. If something’s gone wrong during the creation you will see here an alert.


The istSOS “demo” instance has inherited all the configuration options from the default configuration. If, for any reason you decide to modify them, the changes will affect only this instance.

Add a new procedure

From the “services” drop down button of the admin interface (http://localhost/istsos/admin ) choose the desired instance.

From the toolbar buttons menu press the “New procedure” button.

Fill in the form using appropriate information.


Once a procedure is created the outputs (observed properties) cannot be changed.


Optional parameters: Fill at your own need and willing

Example (minimal configuration)

Description: temperature weather station in Lugano
Keywords: weather, meteorological, IST
System type: insitu-fixed-point
Sensor type: PTC thermistors of the “switching” type
EPSG: 4326
Coordinates: x: 8.96127 y: 46.02723 z: 344.1

Outputs (confirm the outputs pressing the “add” button):

Observed property: urn:ogc:def:parameter:x-istsos:1.0:meteo:air:temperature
Unit of measure: °C
Description (optional): conversion from resistance to temperature
quality index check (optional): Between / from -40 to +60


Register the new sensor (procedure) pressing the “submit” button.

Add new observations

  1. First we will create a text file with sensor data, formatted according to “text/csv, subtype=istSOS”. The file uses a Comma Separated Values (CSV) format. The first line contains header information, including URI names of the observed properties. The following lines contain the data.

    1. Open a text editor by selecting Accessories ‣ Leafpad.
    2. Copy and paste the follwing text into the text editor window:
    1. Save the file as “T_LUGANO_20140603161000000.dat” on the Desktop. The filename convention being used is: PROCEDURENAME_YYYYMMDDhhmmssfff.dat
    2. Open a terminal by selecting Accessories ‣ LXTerminal.
    3. In the terminal, enter: “cd /usr/share/istsos/” and press ENTER
    4. Write “python scripts/ -p T_LUGANO -u http://localhost/istsos -s demo -w ~/Desktop” and press ENTER
    5. You should see a message “Insert observation success: True”
    6. Click Geospatial ‣ Webservices ‣ istSOS.
    7. Click the ENTER button in the administration page
    8. Click Data Management ‣ Data Viewer.
    9. Select the following:
      • Service = demo
      • Offering = temporary
      • Procedure T_LUGANO
    10. Click the “Add” button
    11. Click the “Plot” button and check that the data have been added (watch out at your time zone!)

What Next?

To learn more about istSOS, a starting point is the istSOS Documentation
and the istSOS Tutorial.