Working with the database » History » Revision 5
Revision 4 (Rafael Bailon-Ruiz, 2020-12-04 11:31) → Revision 5/14 (Rafael Bailon-Ruiz, 2020-12-04 11:41)
!db%20diagram.png!
h1. Working with the database
The feature database is CAMS managing the storage and access of vector data, pieces of information like sensor measurements that can be described in space with a geometric figure such as a points, lines or polygons. See http://wiki.gis.com/wiki/index.php/Vector_data_modelto read more about vector data models.
The basic piece of information of this data model is the _feature_, defined by a _geometry_ that indicates unequivocally its position and shape in the world, and a set of _attributes_ which are the characteristics associated to that location. Related features sharing a common geometry definition and attribute set are usually grouped together.
{{toc}}
h2. Data model
The CAMS database model is takes inspiration from the _OGR data model_ and the _OGC OpenPackage specification_.
h3. Dataset
A dataset is encompasses a set of feature collections stored in the same database or file.
h3. Collection
A collection describes the characteristics of features of the same kind or category. I.e.: "Wind", "UAV state", "Liquid water content", etc. It corresponds roughly to a table in a relational database or a layer in many geographic information models.
A collection is defined by the following parameters:
# A computer id (name_id),
# A human-readable name,
# An coordinate reference system as an "EPSG code":https://en.wikipedia.org/wiki/EPSG_Geodetic_Parameter_Dataset,
# A geometry type (As of 12/2020 only the "point" geometry is supported),
# A ordered set of attributes and corresponding types. Attributes can be of type _int_, _str_, _float_, or _datetime_.
# And, optionally, a long description.
h3. Feature
!vector_feature.png!
The collection field is used to identify the collection to with a particular field belongs; thus determining the geometry and attribute set.
General attributes, *t* (time) and *producer* , are mandatory for features generated repeatedly by UAV sensors. The time attribute is represented by a date and time (datetime.datetime in python) in Coordinated Universal Time (UTC). The producer attribute is a string.
Specific attributes are unique to a particular collection. All features of the same collection must have the same attributes, but features of different collections do not need to share specific attributes unlike general ones. For instance, a _"wind"_ collection can have the _"east"_ and _"west"_ attributes to describe the wind vector components.
h2. Code architecture
h3. Class diagram
!db%20diagram.png!
h3. DataServer
h3. FeatureDatabase
h3. StorageBackends
h2. Code examples
h3. Initialization
h3. Inserting feature
h3. Querying the database
h2. Post-mission analysis