====== SpatiaLite Interpretation Database ====== ---- ==== Introduction ==== **Geocene3D** uses a SpatiaLite database to store interpretation points. SpatiaLite is an extension of SQLite that adds support for spatial data, enabling the storage and management of point geometries directly within the database. The database is generated during [[:geoscene3d:building_a_layered_model::modelsetup-stepbystep]]. Each interpretation point layer in Geocene3D is stored as a separate table in the database. These tables include a geometry field named ''xypoint'', which holds the spatial location of each interpretation point as a two-dimensional coordinate. The ''xypoint'' field is of type ''POINT'' and uses SpatiaLite’s spatial format to store each point’s position in terms of **Easting (X)** and **Northing (Y)** coordinates. ---- ==== Table Structure ==== Each interpretation point table in the database includes the following fields: ''uid'': VARCHAR(255) — unique identifier (primary key) ''z'': REAL — elevation value ''zstd'': REAL — standard deviation of elevation ''pointvalue'': REAL — value associated with the point ''pointvaluestd'': REAL — standard deviation of the point value ''pointtype'': INTEGER — numeric code for point type ''quality'': INTEGER — quality score ''value'': REAL — optional additional value ''selected'': INTEGER — flag indicating if the point is selected ''snaptype'': INTEGER — snapping type information ''snapid'': VARCHAR(255) — identifier for snapped feature ''origintype'': INTEGER — origin type code ''accepted'': INTEGER — accepted status ''remark'': VARCHAR(255) — textual note or comment ''importdescription'': VARCHAR(255) — description related to import ''author'': VARCHAR(255) — name of the person who created or imported the point ''editdate'': DATETIME — timestamp of the last modification ''xypoint'': POINT — geometry field storing the coordinates as Easting and Northing {{:geoscene3d:building_a_layered_model:fieldsspl.png|}} ==== Geometry Field: xypoint ==== The ''xypoint'' field stores the location of each interpretation point as a pair of coordinates: Easting — the horizontal position (X) \\ Northing — the vertical position (Y) These coordinates are stored in the geometry field using a specific **EPSG code**, which defines the coordinate reference system used when the data is visualized externally. **Important:** Geocene3D itself does **not use projections** internally. The EPSG code only matters when the database is opened in external software such as QGIS, where the coordinates need to be placed correctly on a projected map. The EPSG value is defined by the user during the modeling setup process ([[modelsetup-stepbystep|]]) to ensure consistency when exchanging data with mapping tools. ==== Required Field: uid ==== The database requires a **GUID (Globally Unique Identifier)** to uniquely identify each entry. A GUID is a 128-bit value written as a string in a fixed format, using five groups of hexadecimal digits separated by hyphens, in the 8-4-4-4-12 pattern. This is the exact format used: {D362ABBF-E812-4276-B216-AE55CB04B187} **Format rules:** * The value must begin and end with curly braces ''{}'' * All letters must be uppercase * Hyphens must follow the 8-4-4-4-12 grouping * The total length must be 38 characters, including the braces **Important:** The GUID must be generated using code that produces valid and unique identifiers. \\ **Copying GUIDs is not allowed — not even between different tables or layers.** Every point must have its own unique GUID, even if it belongs to a separate interpretation layer. Manually typed, duplicated, or reused values will not be accepted and may break uniqueness or cause conflicts in further processing. {{:geoscene3d:building_a_layered_model:recordspl.png}} ---- ==== Using the Database in GeoCloud LARCOS ==== When using GeoCloud LARCOS, this specialized interpretation database is the file that is uploaded when you perform a check-in of your model edits. The edits are made in Geocene3D and then uploaded to the GeoCloud LARCOS website during the check-in process. Any interpretation points you have added or modified are stored in the SpatiaLite database and transferred to the cloud. These points are then used to update the current model in the cloud environment, ensuring that your changes are reflected and made available to other users or cloud-based workflows. In GeoCloud LARCOS, all interpretation points from different layers are merged into a single table, where all existing points also reside. Because of this, it is essential that every GUID is globally unique across all tables in the SpatiaLite interpretation database. This prevents identifier conflicts and ensures that each point can be correctly recognized and updated. This design reinforces the rule described in the **Required Field: uid format** section above — GUIDs must never be reused, even between different interpretation layers. ==== ==== ---- ==== Using the Database in QGIS ==== You can view and work with the Geocene3D SpatiaLite database in QGIS: - **Open QGIS** * Start QGIS and open a project (new or existing). - **Drag the database into QGIS** * In your file system, locate the ''.sqlite'' database file. * Drag it directly onto the **QGIS map canvas**. - **Confirm the layer is added** * The point layer from the database loads automatically into the **Layers panel** and is displayed on the map. - **Inspect or style the layer** * **​​​​​​​**Use the **Identify Features**, **Symbology**, or **Attribute Table** tools to explore and work with the layer as needed. When loaded, QGIS will use the **EPSG code stored in the geometry metadata** to display each point at the correct Easting and Northing coordinates on the map.