Skip to content

SOSI standard for FKB

Introduction

Many as-built deliveries use the SOSI format. It can therefore be useful to have knowledge about this, especially how SOSI files are structured and how object types in Gemini Terrain are linked to SOSI. The Norwegian Mapping Authority also has a free program for checking SOSI files, which we will cover in this chapter.

SOSI format

Below is a relevant excerpt about the SOSI format itself. For a complete description of the SOSI standard, we refer to the SOSI manual.

The SOSI file has this main structure:

.HODE
.data (data groups)
.SLUTT

SOSI header

The header of the SOSI file contains information that applies to the entire file.

In the export setup for SOSI, we set up the information to be included in the header of the SOSI file. Here we can choose:

  • Coordinate system
  • SOSI version
  • Product specification

Info

For SOSI files that include product specification information, SOSI control will automatically identify which checks should be run on the dataset.

SOSI version and SOSI level

It's important to distinguish between SOSI version and SOSI level.

SOSI level indicates the complexity of the dataset:

  • Level 3 covers everything with coding and nodes (lines are cleaned at intersection points), for example datasets with water and sewage data.

  • Level 4 also includes the graphical object area, for example datasets with road data.

Current versions

  • For FKB data, SOSI version 5.0 applies. For this version, there are several product specifications that we can choose from in the setup.

  • For NVDB data, SOSI version 8.1 applies. This choice also includes theme code (S_FCODE) and sets the unit to 0.01.

Example of a SOSI header

.HODE  
..TEGNSETT ISO8859-1  
..TRANSPAR  
... KOORDSYS 22  
...ORIGO-NØ  0 0  
...ENHET 0.001  
..OMRÅDE  
...MIN-NØ 6603613 442794  
...MAX-NØ 6603900 443194  
.. SOSI-VERSJON 5.0  
.. SOSI-NIVÅ 4  
..OBJEKTKATALOG FKB-Veg 5.1

Data groups

Data groups in SOSI files always begin with a SOSI group element name. The most common in connection with FKB data are:

  • .PUNKT
  • .KURVE
  • .FLATE

Data groups are numbered sequentially with serial numbers for identification within the SOSI file.

Numbering of data groups

.KURVE 1
.KURVE 2
.KURVE 3

Data groups can be logically connected using reference numbers that point to serial numbers for other data groups. This is used, among other things, by the geometry type FLATE.

References between data groups

.KURVE 1
.KURVE 2
.KURVE 3
.FLATE 4
..REF :1:2:3

Property information

Each data group can have one or more property details. Everything except the coordinates is called property information. These are specified with a SOSI name and corresponding value.

Property information

.KURVE 1  
..OBJTYPE Overvannsledning  
..DATAFANGSTDATO 20120101  
..KVALITET 10 5

Connection with Gemini Terrain

In Gemini Terrain, we have corresponding object types:

  • Line (corresponds to .KURVE in SOSI)
  • Point (corresponds to .PUNKT in SOSI)
  • Polygon (corresponds to .FLATE in SOSI)

Note

Line objects in Gemini Terrain can contain both line elements and arc elements. Each object type can have a variable number of properties such as OBJTYPE etc., just like a data group in SOSI.

Data group .PUNKT

The geometry type PUNKT is a single freestanding point that can be either: * Three-dimensional (NEH) * Two-dimensional (NE)

.PUNKT in SOSI corresponds to the object type Point in Gemini Terrain.

Example of a point data group

.PUNKT 3:  
.. OBJTYPE Kum  
.. NØH  
71972 7875 0

Data group .KURVE

The geometry type KURVE consists of several points in a sequence where each point has a specific position. The geometry type BUEP defines a 3-point arc. KURVE and BUEP correspond to the object type Line in Gemini Terrain.

Warning

In connection with completed road data, we should not deliver arcs. These must be split into line segments.

Example of a .KURVE data group

.KURVE 1:  
.. OBJTYPE Overvannsledning  
.. NØH  
5051 577 77240  
29610 4992 77240  
37822 15451 77240

Nodes

Nodes on lines are common (...KP 1). Nodes are used as a collective term to indicate geometric relationships. There are three different types of nodes:

  1. Node point
  2. Connection point
  3. Valid loose endpoint

Where two or more geometry types meet, there should be a node point. The elements are interconnected at the node point and have common coordinates.

Info

Valid loose endpoint means endpoints in curve objects that should not be connected to other objects, for example the start of a path or stream.

Data group .FLATE

FLATE is a continuous area limited by, among other things, KURVE and BUEP. The definition takes place by referring to the data groups that delimit the area. The groups are referenced in a descriptive sequence. There should be nodes and identical coordinates between the geometry types involved.

Example of an area data group

.KURVE 1  
.. OBJTYPE Vegkant  
..NØ  
59489 194634  
61661 185617

.KURVE 2  
 (followed by attributes, coordinates etc.)

.KURVE 3  
(followed by attributes, coordinates etc.)

.KURVE 4  
(followed by attributes, coordinates etc.)

.FLATE 1  
.. OBJTYPE Veg  
..REF :1 :2 :3 :4  -> references to lines

Polygon in Gemini Terrain corresponds to FLATE in SOSI. When exporting to SOSI, the program automatically creates areas according to SOSI syntax. The program generates representation points and adds all the properties to each area.

Important

The export requires that the lines are in topological form and that there is a connection between lines and polygons in Gemini Terrain.

Important SOSI properties

DATAFANGSTDATO

SOSI describes many different types of dates. In connection with data collection, we use DATAFANGSTDATO, which indicates the date when the object was last registered/observed/measured in the terrain.

Info

The date should be in the format yyyymmdd.

KVALITET

SOSI has many properties for specifying quality, adapted to different needs in different types of products. In connection with data collection, we talk about position quality. For this we use the property KVALITET.

The complete syntax is:

..KVALITET  
...MÅLEMETODE  
...NØYAKTIGHET  
...SYNBARHET  
...H-MÅLEMETODE  
...H-NØYAKTIGHET

This property should be compacted like this:

..KVALITET <MÅLEMETODE> <NØYAKTIGHET> <SYNBARHET> <H-MÅLEMETODE> <H-NØYAKTIGHET>

Tip

It is common to enter at minimum the measurement method and accuracy. See the SOSI standard for a more detailed description.

Example of the KVALITET property

..KVALITET 82 5 0 82 5

REGISTRERINGSVERSJON

The complete syntax is:

..REGISTRERINGSVERSJON  
...PRODUKT  
...VERSJON  
...UNDERTYPE

This property should be compacted like this:

..REGISTRERINGSVERSJON <PRODUKT> <VERSJON> <UNDERTYPE>

Example of REGISTRERINGSVERSJON

..REGISTRERINGSVERSJON FKB 4.6 2018-01-01

Important

Regarding KVALITET and REGISTRERINGSVERSJON, we need to know the codes and enter them manually. We must add " (quotation marks) before and after, as well as spaces between the codes whether we use Replace or write directly in the horizontal list field.

Dialog for replacing properties

Dialog for replacing properties

IDENT

The property ..IDENT (product specifications from 4.6) should not be included in files produced in Gemini Terrain, even though SOSI control will report this as an error. IDENT should not be applied to the data before they enter the management databases.