RiverGIS handles all data as objects with common properties. There are seven data types, which can be grouped into two major classes and several sub-classes. The two major classes are geographical data and tabular data.
Geographical data has three sub-classes: vector, grid and network.
Geographical data have properties common to all geographical data types and each data type also has properties specific to it's sub-class.Properties can be viewed and changed with the File->Properties menu option. Within a data class, all sub-classes inherit the object resources of the "parent" class.Data is always classified to a major data class and sub-class, and all data files in the same sub-class have the same "header resources". The header resources can be set when RiverGIS creates a new data object or edited later with the File->Header Info menu option.
The most important design concept of RiverGIS is its tabular structure. Each RiverGIS data object is built from several tables and corresponding data arrays. Tables consist of a series of records with varying field structures, while arrays are made up of varying records with uniform fields. Table records and most of their fields are accessible to the user, while arrays are always hidden. Every data object has at least two tables DBItems and DBRelations, however there may also be additional tables. DBItems is the table which contains the records of the primary items of the data object. This is the table which users will access most frequently. The structure of DBItems varies by data type. A data object may also have the following tables: DBSymbols, DBNodes, DBContours, DBLayers, DBCells and DBRelations. These tables always have the same set of mandatory fields regardless of the type of data object. Tables can be manipulated and viewed via the Edit->Add Field, Edit->Fields and Display->Table menu options. The table below shows the list RiverGIS Tables associated with the seven data types.
|Point||Line||Polygon||Continuous Grid||Discrete Grid||Network||Tabular|
|File name suffix||.gdbp||.gdbl||.gdbp||.gdbc||.gdbd||.gdbn||.gdbt|
Data linkage is the key mechanism for specifying the data objects to use in multi- object functions such as grid sampling. Grid sampling requires a linkage between a grid data object, which will be sampled, and a point data object, which defines the sampling points. A data object can have only one link at a time. Links are directional, meaning, when data object A is linked to B, it does not mean B is linked to A. As a matter of fact B can be linked to a different coverage, forming a chain of links (A-to-B-to-C etc.). Chains of links can be used as multiple links to the same object. Functions which can be performed on multiple data objects search the link chain to find them.
The Meta Database mechanism maintains a list of data objects that the user has used before. It also maintains a list of the Geographical Domains and Subjects those data objects covered. Currently Meta Database also maintains the list of the data object which were loaded in to RiverGIS during the previous session. RiverGIS maintains a meta database for each user.
Meta database entries are stored in the $(GHAAS_DIR)/GHAASMetadb file. GHAAS_DIR is the only environment variable that RiverGIS users might need to set. When GHAAS_DIR is not specified, RiverGIS will default to GHAAS_DIR in the users $HOME directory.