Skip to content
Jip Claassens edited this page Jul 6, 2026 · 11 revisions

The GeoDMS can read and write data from an own primary data format, called FSS, with the FSS StorageManager. This format has the following advantages:

  1. It is a binary, fast format.
  2. It can store vector data, grid data and non spatial data.
  3. It supports the hierarchical structures of GeoDMS configurations.
  4. It supports both storing and reading tiled/segmented data.

The disadvantage of the format is that it is only supported by the GeoDMS. We therefore advise to use the FSS as exchange format between GeoDMS projects.

example

Writing FSS:

unit<uint32> place := XML/woonplaats/ParsedXML/bag_LVC_Woonplaats
,   StorageName = "= FSSDir + '/place.fss'"
{
   attribute<rdc_mm> geom (polygon) := XML/woonplaats/geoBuilder/result;
   attribute<string> id             := bag_LVC_identificatie;
   attribute<string> name           := bag_LVC_woonplaatsNaam;
   container meta
   {
      attribute<string> status (..) := bag_LVC_woonplaatsStatus;
   }
}

Reading FSS:

unit<uint32> place
:   StorageName     = "= FSSDir + '/place.fss'"
,   StorageReadOnly = "True"
{
   attribute<geometries/rdc_mm> geom (polygon);
   attribute<string>            id;
   attribute<string>            name;

   container meta
   {
      attribute<string> status (..);
   }
}

An FSS Storage always needs to be configured for a unit, as in the storage the number of entries is stored. Configuring a FSS for a container results in an error while reading the data.

The three attributes geom, id and name are stored as files with their name and .dmsdata extension in the place.fss folder (or with their name and a consecutive number in case of tiled/segmented data).

The attribute status is stored in a subfolder place.fss/meta. If data is stored in such subfolders, reading the data from the fss files requires this same hierarchy in your configuration (as in the example).

The value types of the attribute read from the fss files need to match with the value type of the writing configuration script. Use this script to determine these value types and the hierarchy of the fss storage.

Reading FSS with a subfolder using a for each loop

unit<uint32> place
: StorageName     = "= FSSDir + '/place.fss'"
, StorageReadOnly = "True"
{
  attribute<geometries/rdc_mm> geom (polygon);
  attribute<string>            id;
  attribute<string>            name;

  container meta :=
      for_each_ndv(
          status_types/name
         , place
         , string
      );
}

Clone this wiki locally