Annotation Database Entity Documentation: Difference between revisions
(Automated update of generated documentation section) |
(Automated update of generated documentation section) |
||
Line 20: | Line 20: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="admin.cache_table"></span> | |||
====== cache_table ====== | ====== cache_table ====== | ||
A table containing information about cache refreshment procedures and the tables they impact. The cache_refresh_tables procedure will read this table and execute the procedures stored therein. | A table containing information about cache refreshment procedures and the tables they impact. The cache_refresh_tables procedure will read this table and execute the procedures stored therein. | ||
Line 55: | Line 56: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="cache.cruise_stats"></span> | |||
====== cruise_stats ====== | ====== cruise_stats ====== | ||
Stores compiled statistics for [[#rov.cruise|cruises]]. | Stores compiled statistics for [[#rov.cruise|cruises]]. | ||
Line 122: | Line 124: | ||
| True if the cruise has field of view measurements. | | True if the cruise has field of view measurements. | ||
|} | |} | ||
<span id="cache.cruise_track"></span> | |||
====== cruise_track ====== | ====== cruise_track ====== | ||
Constructs a geometry for each [[#rov.cruise|cruise]] which describes the path of the ship. | Constructs a geometry for each [[#rov.cruise|cruise]] which describes the path of the ship. | ||
Line 144: | Line 147: | ||
| The cruise track geometry. | | The cruise track geometry. | ||
|} | |} | ||
<span id="cache.dive_track"></span> | |||
====== dive_track ====== | ====== dive_track ====== | ||
Constructs a geometry for each [[#rov.dive|dive]] which describes the path of the submersible. | Constructs a geometry for each [[#rov.dive|dive]] which describes the path of the submersible. | ||
Line 172: | Line 176: | ||
| The dive track geometry. | | The dive track geometry. | ||
|} | |} | ||
<span id="cache.evt_depth"></span> | |||
====== evt_depth ====== | ====== evt_depth ====== | ||
Creates a relation between an [[#rov.event|event]] and the [[#rov.measurement|depth]] nearest the start and end times of the event. | Creates a relation between an [[#rov.event|event]] and the [[#rov.measurement|depth]] nearest the start and end times of the event. | ||
Line 194: | Line 199: | ||
| The array of [[#rov.measurement|depths]] between the event's start and end times. If the event covers a span of time, multiple depths are returned. | | The array of [[#rov.measurement|depths]] between the event's start and end times. If the event covers a span of time, multiple depths are returned. | ||
|} | |} | ||
<span id="cache.evt_measurement"></span> | |||
====== evt_measurement ====== | ====== evt_measurement ====== | ||
Creates a relation between an [[#rov.event|event]] and the [[#rov.measurement|measurement]] nearest the start and end times of the event. | Creates a relation between an [[#rov.event|event]] and the [[#rov.measurement|measurement]] nearest the start and end times of the event. | ||
Line 219: | Line 225: | ||
| The array of [[#rov.measurement|measurements]] between the event's start and end times. If the event covers a span of time, multiple measurements are returned. | | The array of [[#rov.measurement|measurements]] between the event's start and end times. If the event covers a span of time, multiple measurements are returned. | ||
|} | |} | ||
<span id="cache.evt_pos"></span> | |||
====== evt_pos ====== | ====== evt_pos ====== | ||
Creates a relation between an [[#rov.event|event]] and the [[#rov.position|positions]] within the span of the event, as a MultiPoint. | Creates a relation between an [[#rov.event|event]] and the [[#rov.position|positions]] within the span of the event, as a MultiPoint. | ||
Line 241: | Line 248: | ||
| The list of positions comprising the ROV track during the time span of the event. A MultiPoint. | | The list of positions comprising the ROV track during the time span of the event. A MultiPoint. | ||
|} | |} | ||
<span id="cache.transect_track"></span> | |||
====== transect_track ====== | ====== transect_track ====== | ||
Constructs a geometry for each [[#rov.transect|transect]] which describes the path of the submersible. | Constructs a geometry for each [[#rov.transect|transect]] which describes the path of the submersible. | ||
Line 285: | Line 293: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="geo.area"></span> | |||
====== area ====== | ====== area ====== | ||
Stores area geometries linked to [[#geo.area_group|area groups]]. | Stores area geometries linked to [[#geo.area_group|area groups]]. | ||
Line 313: | Line 322: | ||
| The area geometry, a MultiPolygon. | | The area geometry, a MultiPolygon. | ||
|} | |} | ||
<span id="geo.area_group"></span> | |||
====== area_group ====== | ====== area_group ====== | ||
Stores groups of similar areas, such as MPAs, seamounts, etc. Linked by [[#geo.area|areas]]. | Stores groups of similar areas, such as MPAs, seamounts, etc. Linked by [[#geo.area|areas]]. | ||
Line 348: | Line 358: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="maxmind.geoip_city_blocks"></span> | |||
====== geoip_city_blocks ====== | ====== geoip_city_blocks ====== | ||
Contains both IPv4 and IPv6 network addresses, which reference locations in the [[#maxmind.geoip_city_locations|geoip_city_locations]] table. | Contains both IPv4 and IPv6 network addresses, which reference locations in the [[#maxmind.geoip_city_locations|geoip_city_locations]] table. | ||
Line 397: | Line 408: | ||
| | | | ||
|} | |} | ||
<span id="maxmind.geoip_city_locations"></span> | |||
====== geoip_city_locations ====== | ====== geoip_city_locations ====== | ||
Stores the country, region and city data for GeoIP. | Stores the country, region and city data for GeoIP. | ||
Line 449: | Line 461: | ||
| True if the location is within the European Union. | | True if the location is within the European Union. | ||
|} | |} | ||
<span id="maxmind.geoip_last_update"></span> | |||
====== geoip_last_update ====== | ====== geoip_last_update ====== | ||
Stores the time of last update of the database. | Stores the time of last update of the database. | ||
Line 473: | Line 486: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="ndst.cruise"></span> | <span id="ndst.cruise"></span> | ||
====== cruise ====== | |||
Contains information about a cruise, as entered by NDST staff. Will be combined with other data to populate the [[#rov.cruise|cruise]] table. | Contains information about a cruise, as entered by NDST staff. Will be combined with other data to populate the [[#rov.cruise|cruise]] table. | ||
Line 518: | Line 532: | ||
| True if the entity should be hidden in the UI. | | True if the entity should be hidden in the UI. | ||
|} | |} | ||
<span id="ndst.diveconfig"></span> | |||
====== diveconfig ====== | ====== diveconfig ====== | ||
Stores configurations for each dive, including the submersible, ship and any instruments on either. | Stores configurations for each dive, including the submersible, ship and any instruments on either. | ||
Line 561: | Line 576: | ||
| The date and time of the entity's last update. | | The date and time of the entity's last update. | ||
|} | |} | ||
<span id="ndst.dives"></span> | |||
====== dives ====== | ====== dives ====== | ||
Stores information about each dive. | Stores information about each dive. | ||
Line 622: | Line 638: | ||
| The date and time of the entity's last update. | | The date and time of the entity's last update. | ||
|} | |} | ||
<span id="ndst.equipconfig"></span> | |||
====== equipconfig ====== | ====== equipconfig ====== | ||
Stores configurations for [[#ndst.equipment|equipment]], including instruments and platforms. | Stores configurations for [[#ndst.equipment|equipment]], including instruments and platforms. | ||
Line 662: | Line 679: | ||
| The date and time of the entity's last update. | | The date and time of the entity's last update. | ||
|} | |} | ||
<span id="ndst.equipment"></span> | |||
====== equipment ====== | ====== equipment ====== | ||
Stores equipment, including instruments and platforms. | Stores equipment, including instruments and platforms. | ||
Line 714: | Line 732: | ||
| The date and time of the entity's last update. | | The date and time of the entity's last update. | ||
|} | |} | ||
<span id="ndst.people"></span> | |||
====== people ====== | ====== people ====== | ||
Stores the people who worked on the [[#ndst.cruise|cruise]]. | Stores the people who worked on the [[#ndst.cruise|cruise]]. | ||
Line 754: | Line 773: | ||
| The date and time of the entity's last update. | | The date and time of the entity's last update. | ||
|} | |} | ||
<span id="ndst.transects"></span> | |||
====== transects ====== | ====== transects ====== | ||
Stores information about each transect. | Stores information about each transect. | ||
Line 819: | Line 839: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="public.auth_group"></span> | |||
====== auth_group ====== | ====== auth_group ====== | ||
A Django table for authorization groups. | A Django table for authorization groups. | ||
Line 835: | Line 856: | ||
| | | | ||
|} | |} | ||
<span id="public.auth_group_permissions"></span> | |||
====== auth_group_permissions ====== | ====== auth_group_permissions ====== | ||
A Django table for permissions on authorization groups. | A Django table for permissions on authorization groups. | ||
Line 854: | Line 876: | ||
| | | | ||
|} | |} | ||
<span id="public.auth_permission"></span> | |||
====== auth_permission ====== | ====== auth_permission ====== | ||
A Django table for available permissions. | A Django table for available permissions. | ||
Line 876: | Line 899: | ||
| | | | ||
|} | |} | ||
<span id="public.auth_user"></span> | |||
====== auth_user ====== | ====== auth_user ====== | ||
A Django table for users. | A Django table for users. | ||
Line 964: | Line 988: | ||
| | | | ||
|} | |} | ||
<span id="public.auth_user_groups"></span> | |||
====== auth_user_groups ====== | ====== auth_user_groups ====== | ||
A Django table to relate users to groups. | A Django table to relate users to groups. | ||
Line 983: | Line 1,008: | ||
| | | | ||
|} | |} | ||
<span id="public.auth_user_user_permissions"></span> | |||
====== auth_user_user_permissions ====== | ====== auth_user_user_permissions ====== | ||
A Django for user permissions. | A Django for user permissions. | ||
Line 1,002: | Line 1,028: | ||
| | | | ||
|} | |} | ||
<span id="public.django_admin_log"></span> | |||
====== django_admin_log ====== | ====== django_admin_log ====== | ||
A Django table for admin logging. | A Django table for admin logging. | ||
Line 1,037: | Line 1,064: | ||
|} | |} | ||
<span id="public.django_celery_beat_clockedschedule"></span> | <span id="public.django_celery_beat_clockedschedule"></span> | ||
====== django_celery_beat_clockedschedule ====== | |||
''No comment'' | ''No comment'' | ||
Line 1,052: | Line 1,080: | ||
| | | | ||
|} | |} | ||
<span id="public.django_celery_beat_crontabschedule"></span> | |||
====== django_celery_beat_crontabschedule ====== | ====== django_celery_beat_crontabschedule ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,083: | Line 1,112: | ||
| | | | ||
|} | |} | ||
<span id="public.django_celery_beat_intervalschedule"></span> | |||
====== django_celery_beat_intervalschedule ====== | ====== django_celery_beat_intervalschedule ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,102: | Line 1,132: | ||
| | | | ||
|} | |} | ||
<span id="public.django_celery_beat_periodictask"></span> | |||
====== django_celery_beat_periodictask ====== | ====== django_celery_beat_periodictask ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,181: | Line 1,212: | ||
| | | | ||
|} | |} | ||
<span id="public.django_celery_beat_periodictasks"></span> | |||
====== django_celery_beat_periodictasks ====== | ====== django_celery_beat_periodictasks ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,197: | Line 1,229: | ||
| | | | ||
|} | |} | ||
<span id="public.django_celery_beat_solarschedule"></span> | |||
====== django_celery_beat_solarschedule ====== | ====== django_celery_beat_solarschedule ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,219: | Line 1,252: | ||
| | | | ||
|} | |} | ||
<span id="public.django_celery_results_chordcounter"></span> | |||
====== django_celery_results_chordcounter ====== | ====== django_celery_results_chordcounter ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,241: | Line 1,275: | ||
| | | | ||
|} | |} | ||
<span id="public.django_celery_results_groupresult"></span> | |||
====== django_celery_results_groupresult ====== | ====== django_celery_results_groupresult ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,272: | Line 1,307: | ||
| | | | ||
|} | |} | ||
<span id="public.django_celery_results_taskresult"></span> | |||
====== django_celery_results_taskresult ====== | ====== django_celery_results_taskresult ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,330: | Line 1,366: | ||
| | | | ||
|} | |} | ||
<span id="public.django_content_type"></span> | |||
====== django_content_type ====== | ====== django_content_type ====== | ||
A Django table for content types. | A Django table for content types. | ||
Line 1,349: | Line 1,386: | ||
| | | | ||
|} | |} | ||
<span id="public.django_migrations"></span> | |||
====== django_migrations ====== | ====== django_migrations ====== | ||
Records migrations applied to database. | Records migrations applied to database. | ||
Line 1,371: | Line 1,409: | ||
| | | | ||
|} | |} | ||
<span id="public.django_session"></span> | |||
====== django_session ====== | ====== django_session ====== | ||
Django session management. | Django session management. | ||
Line 1,390: | Line 1,429: | ||
| | | | ||
|} | |} | ||
<span id="public.django_site"></span> | |||
====== django_site ====== | ====== django_site ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,409: | Line 1,449: | ||
| | | | ||
|} | |} | ||
<span id="public.event_group"></span> | |||
====== event_group ====== | ====== event_group ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,425: | Line 1,466: | ||
| | | | ||
|} | |} | ||
<span id="public.knox_authtoken"></span> | |||
====== knox_authtoken ====== | ====== knox_authtoken ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,450: | Line 1,492: | ||
| | | | ||
|} | |} | ||
<span id="public.spatial_ref_sys"></span> | |||
====== spatial_ref_sys ====== | ====== spatial_ref_sys ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,475: | Line 1,518: | ||
| | | | ||
|} | |} | ||
<span id="public.thumbnail_kvstore"></span> | |||
====== thumbnail_kvstore ====== | ====== thumbnail_kvstore ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,494: | Line 1,538: | ||
===== Views ===== | ===== Views ===== | ||
<span id="public.geography_columns"></span> | |||
====== geography_columns ====== | ====== geography_columns ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,525: | Line 1,570: | ||
| | | | ||
|} | |} | ||
<span id="public.geometry_columns"></span> | |||
====== geometry_columns ====== | ====== geometry_columns ====== | ||
''No comment'' | ''No comment'' | ||
Line 1,572: | Line 1,618: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="rov.abundance"></span> | |||
====== abundance ====== | ====== abundance ====== | ||
Stores a list of abundance labels from the ACFOR scale. | Stores a list of abundance labels from the ACFOR scale. | ||
Line 1,600: | Line 1,647: | ||
| Contains a short code that can be used to look up an abundance (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up an abundance (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.annotation_job"></span> | |||
====== annotation_job ====== | ====== annotation_job ====== | ||
Stores information about the annotation projects that generate information from photo and video media. | Stores information about the annotation projects that generate information from photo and video media. | ||
Line 1,634: | Line 1,682: | ||
| The date of last modification of the entity. | | The date of last modification of the entity. | ||
|} | |} | ||
<span id="rov.annotation_job_annotation_protocol"></span> | |||
====== annotation_job_annotation_protocol ====== | ====== annotation_job_annotation_protocol ====== | ||
Associates the annotation job with one or more [[#rov.annotation_protocol|annotation protocols]], which are used to direct annotation activities. | Associates the annotation job with one or more [[#rov.annotation_protocol|annotation protocols]], which are used to direct annotation activities. | ||
Line 1,653: | Line 1,702: | ||
| The ID of the [[#rov.annotation_protocol|annotation protocol]]. | | The ID of the [[#rov.annotation_protocol|annotation protocol]]. | ||
|} | |} | ||
<span id="rov.annotation_job_crew"></span> | |||
====== annotation_job_crew ====== | ====== annotation_job_crew ====== | ||
Associates crew members with an [[#rov.annotation_job|annotation job]] with their respective [[#rov.annotation_job_role|roles]]. | Associates crew members with an [[#rov.annotation_job|annotation job]] with their respective [[#rov.annotation_job_role|roles]]. | ||
Line 1,675: | Line 1,725: | ||
| The ID of the [[#rov.annotation_job_role|role]]. | | The ID of the [[#rov.annotation_job_role|role]]. | ||
|} | |} | ||
<span id="rov.annotation_job_role"></span> | |||
====== annotation_job_role ====== | ====== annotation_job_role ====== | ||
Stores the possible roles one can perform on an [[#rov.annotation_job|annotation job]]. | Stores the possible roles one can perform on an [[#rov.annotation_job|annotation job]]. | ||
Line 1,694: | Line 1,745: | ||
| A descript of the role. | | A descript of the role. | ||
|} | |} | ||
<span id="rov.annotation_protocol"></span> | |||
====== annotation_protocol ====== | ====== annotation_protocol ====== | ||
A table to record annotation protocols for annotation projects. Stores information such as the author of the protocol, the observation interval, the medium used and the types of observations to be made. | A table to record annotation protocols for annotation projects. Stores information such as the author of the protocol, the observation interval, the medium used and the types of observations to be made. | ||
Line 1,779: | Line 1,831: | ||
| A unit for the field of view interval, such as 's' for seconds or 'm' for metres. | | A unit for the field of view interval, such as 's' for seconds or 'm' for metres. | ||
|} | |} | ||
<span id="rov.annotation_protocol_document"></span> | |||
====== annotation_protocol_document ====== | ====== annotation_protocol_document ====== | ||
Contains documents related to an [[#rov.annotation_protocol|annotation protocol]]. These can be a URL or actual file data. If the file data are present in the database, the URL can still be used to provide the origin of the file, etc. | Contains documents related to an [[#rov.annotation_protocol|annotation protocol]]. These can be a URL or actual file data. If the file data are present in the database, the URL can still be used to provide the origin of the file, etc. | ||
Line 1,813: | Line 1,866: | ||
| A reference to the [[#shared.uploaded_file|uploaded file]]. | | A reference to the [[#shared.uploaded_file|uploaded file]]. | ||
|} | |} | ||
<span id="rov.annotation_software"></span> | |||
====== annotation_software ====== | ====== annotation_software ====== | ||
The software used for annotation. | The software used for annotation. | ||
Line 1,833: | Line 1,887: | ||
|} | |} | ||
<span id="rov.biigle_label_map"></span> | <span id="rov.biigle_label_map"></span> | ||
====== biigle_label_map ====== | |||
Contains mappings from Biigle labels to properties that apply to events. | Contains mappings from Biigle labels to properties that apply to events. | ||
Line 1,869: | Line 1,924: | ||
| Time of last update of the record. | | Time of last update of the record. | ||
|} | |} | ||
<span id="rov.biigle_label_map_restriction"></span> | |||
====== biigle_label_map_restriction ====== | ====== biigle_label_map_restriction ====== | ||
Links a [[#rov.biigle_label_map|Biigle label map]] to a [restriction][#shared.restriction]. | Links a [[#rov.biigle_label_map|Biigle label map]] to a [restriction][#shared.restriction]. | ||
Line 1,888: | Line 1,944: | ||
| A link to the [[#rov.biigle_label_map|label map]]. | | A link to the [[#rov.biigle_label_map|label map]]. | ||
|} | |} | ||
<span id="rov.biocover"></span> | |||
====== biocover ====== | ====== biocover ====== | ||
A lookup table listing the available biocover types for the [[#rov.event|habitat_event]] table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. TODO: Should perhaps refer to the [[#taxonomy.taxon|taxon]] table. | A lookup table listing the available biocover types for the [[#rov.event|habitat_event]] table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. TODO: Should perhaps refer to the [[#taxonomy.taxon|taxon]] table. | ||
Line 1,910: | Line 1,967: | ||
| Contains a short code that can be used to look up a biocover (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a biocover (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.complexity"></span> | |||
====== complexity ====== | ====== complexity ====== | ||
A lookup table listing the available habitat complexity types for the [[#rov.event|habitat_event]] table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. | A lookup table listing the available habitat complexity types for the [[#rov.event|habitat_event]] table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. | ||
Line 1,932: | Line 1,990: | ||
| Contains a short code that can be used to look up a complexity (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a complexity (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.coverage"></span> | |||
====== coverage ====== | ====== coverage ====== | ||
A lookup table listing the percentage of coverage for the [[#rov.event|habitat_event]] table. The coverages are given as ranges so the text of the level is given in the name field and the values in the min and max fields contain the bounding values. | A lookup table listing the percentage of coverage for the [[#rov.event|habitat_event]] table. The coverages are given as ranges so the text of the level is given in the name field and the values in the min and max fields contain the bounding values. | ||
Line 1,960: | Line 2,019: | ||
| Contains a short code that can be used to look up a coverage (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a coverage (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.cruise"></span> | |||
====== cruise ====== | ====== cruise ====== | ||
Cruise legs occur within a [[#rov.cruise|cruise]] and are assigned specific [[#rov.cruise_crew|crews]], [[#rov.program|scientific programs]], etc. A single leg can cover an entire cruise, legs can be spaced end-to-end, or can theoretically overlap. Legs can share members or equipment, and crew members can have specific roles related to a leg. Cruise legs can be created without a [[#rov.program|scientific program]] or a [[#rov.cruise|cruise]] because imported data sets may only list the name of the cruise and not indicate whether it was part of a longer cruise. | Cruise legs occur within a [[#rov.cruise|cruise]] and are assigned specific [[#rov.cruise_crew|crews]], [[#rov.program|scientific programs]], etc. A single leg can cover an entire cruise, legs can be spaced end-to-end, or can theoretically overlap. Legs can share members or equipment, and crew members can have specific roles related to a leg. Cruise legs can be created without a [[#rov.program|scientific program]] or a [[#rov.cruise|cruise]] because imported data sets may only list the name of the cruise and not indicate whether it was part of a longer cruise. | ||
Line 2,015: | Line 2,075: | ||
| Marks the entity for asynchronous deletion by the runner. | | Marks the entity for asynchronous deletion by the runner. | ||
|} | |} | ||
<span id="rov.cruise_crew"></span> | |||
====== cruise_crew ====== | ====== cruise_crew ====== | ||
Associates [[#shared.person|crew members]] with a [[#rov.cruise|cruise leg]] and their [[#rov.cruise_role|roles]]. A crew member can have multiple roles. Note: these roles are distinct from members of [[#rov.program|programs]], such as Chief Scientist. It may be necessary to revisit this structure or the division of roles. | Associates [[#shared.person|crew members]] with a [[#rov.cruise|cruise leg]] and their [[#rov.cruise_role|roles]]. A crew member can have multiple roles. Note: these roles are distinct from members of [[#rov.program|programs]], such as Chief Scientist. It may be necessary to revisit this structure or the division of roles. | ||
Line 2,040: | Line 2,101: | ||
| An optional note about the crew member. | | An optional note about the crew member. | ||
|} | |} | ||
<span id="rov.cruise_document"></span> | |||
====== cruise_document ====== | ====== cruise_document ====== | ||
Stores information about documents related to a [[#rov.cruise|cruise]]. | Stores information about documents related to a [[#rov.cruise|cruise]]. | ||
Line 2,074: | Line 2,136: | ||
| | | | ||
|} | |} | ||
<span id="rov.cruise_fn_contact"></span> | |||
====== cruise_fn_contact ====== | ====== cruise_fn_contact ====== | ||
A table for associating First Nations contacts with a cruise. | A table for associating First Nations contacts with a cruise. | ||
Line 2,105: | Line 2,168: | ||
| A note about the contact. | | A note about the contact. | ||
|} | |} | ||
<span id="rov.cruise_import"></span> | |||
====== cruise_import ====== | ====== cruise_import ====== | ||
Stores cruise import tasks in the database. These contain the JSON data description, a status message and complete processing log. | Stores cruise import tasks in the database. These contain the JSON data description, a status message and complete processing log. | ||
Line 2,142: | Line 2,206: | ||
| Stores the task ID for the asychrnonous task (i.e., a Celery task) used to process the import. | | Stores the task ID for the asychrnonous task (i.e., a Celery task) used to process the import. | ||
|} | |} | ||
<span id="rov.cruise_program"></span> | |||
====== cruise_program ====== | ====== cruise_program ====== | ||
A table to link [[#rov.program|programs]] and [[#rov.cruise|cruises]]. A cruise can be under the auspices of more than one program or none. | A table to link [[#rov.program|programs]] and [[#rov.cruise|cruises]]. A cruise can be under the auspices of more than one program or none. | ||
Line 2,161: | Line 2,226: | ||
| The ID of a [[#rov.program|program]]. | | The ID of a [[#rov.program|program]]. | ||
|} | |} | ||
<span id="rov.cruise_role"></span> | |||
====== cruise_role ====== | ====== cruise_role ====== | ||
A lookup table of roles available to members of [[#rov.cruise_crew|cruise leg crews]]. | A lookup table of roles available to members of [[#rov.cruise_crew|cruise leg crews]]. | ||
Line 2,183: | Line 2,249: | ||
| A short string used to identify the role. | | A short string used to identify the role. | ||
|} | |} | ||
<span id="rov.disturbance"></span> | |||
====== disturbance ====== | ====== disturbance ====== | ||
Provides a nominal level of disturbance for [[#rov.event|habitat events]]. | Provides a nominal level of disturbance for [[#rov.event|habitat events]]. | ||
Line 2,205: | Line 2,272: | ||
| Contains a short code that can be used to look up a disturbance (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a disturbance (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.dive"></span> | |||
====== dive ====== | ====== dive ====== | ||
A dive is what an ROV does. The dive has a start and end time (not necessarily submerge/resurface), a [[#rov.dive_crew|crew]] and possibly a name. [[#rov.transect|Transects]] occur during dives. | A dive is what an ROV does. The dive has a start and end time (not necessarily submerge/resurface), a [[#rov.dive_crew|crew]] and possibly a name. [[#rov.transect|Transects]] occur during dives. | ||
Line 2,267: | Line 2,335: | ||
|} | |} | ||
<span id="rov.dive_crew"></span> | <span id="rov.dive_crew"></span> | ||
====== dive_crew ====== | |||
Assigns roles to dive crew members. Crew members are selected from the [[#shared.person|person]]. | Assigns roles to dive crew members. Crew members are selected from the [[#shared.person|person]]. | ||
Line 2,291: | Line 2,360: | ||
| An optional note about the crew member. | | An optional note about the crew member. | ||
|} | |} | ||
<span id="rov.dive_role"></span> | |||
====== dive_role ====== | ====== dive_role ====== | ||
A list of roles available to crew members on a [[#rov.dive|dive]] via the [[#rov.dive_crew|dive_crew]] table. | A list of roles available to crew members on a [[#rov.dive|dive]] via the [[#rov.dive_crew|dive_crew]] table. | ||
Line 2,313: | Line 2,383: | ||
| A short string used to identify the role. | | A short string used to identify the role. | ||
|} | |} | ||
<span id="rov.equipment_type"></span> | |||
====== equipment_type ====== | ====== equipment_type ====== | ||
This is a lookup table to provide the names of types of equipment for the [[#rov.model|model]] table, e.g., "Digital Still Camera", "Thermometer," "ROV," etc. | This is a lookup table to provide the names of types of equipment for the [[#rov.model|model]] table, e.g., "Digital Still Camera", "Thermometer," "ROV," etc. | ||
Line 2,335: | Line 2,406: | ||
| An enumeration column identifying the equipment as platform, instrument or some other type. | | An enumeration column identifying the equipment as platform, instrument or some other type. | ||
|} | |} | ||
<span id="rov.event"></span> | |||
====== event ====== | ====== event ====== | ||
The event table, a schemaless table storing all recorded observations and statuses during operations. | The event table, a schemaless table storing all recorded observations and statuses during operations. | ||
Line 2,381: | Line 2,453: | ||
| A reference to the [[#rov.import_group|import group]], which tracks events which were imported at the same time, from the same file. | | A reference to the [[#rov.import_group|import group]], which tracks events which were imported at the same time, from the same file. | ||
|} | |} | ||
<span id="rov.event_group"></span> | |||
====== event_group ====== | ====== event_group ====== | ||
Links the [[#rov.event|event]] table to the [[#public.auth_group|group]] table to facilitate the [[#shared.restriction|restriction]] mechanism. | Links the [[#rov.event|event]] table to the [[#public.auth_group|group]] table to facilitate the [[#shared.restriction|restriction]] mechanism. | ||
Line 2,397: | Line 2,470: | ||
| Links to the [[#public.auth_group|group]] table. | | Links to the [[#public.auth_group|group]] table. | ||
|} | |} | ||
<span id="rov.event_logger"></span> | |||
====== event_logger ====== | ====== event_logger ====== | ||
This table tracks the [[#shared.person|people]] who contributed to annotation, which may be composed of a number of separate labels. | This table tracks the [[#shared.person|people]] who contributed to annotation, which may be composed of a number of separate labels. | ||
Line 2,416: | Line 2,490: | ||
| The [[#rov.event|event]] that was created from the annotation(s). | | The [[#rov.event|event]] that was created from the annotation(s). | ||
|} | |} | ||
<span id="rov.flow"></span> | |||
====== flow ====== | ====== flow ====== | ||
Stores categories of current flow for [[#rov.event|habitat]]. | Stores categories of current flow for [[#rov.event|habitat]]. | ||
Line 2,438: | Line 2,513: | ||
| A short code for the flow category. | | A short code for the flow category. | ||
|} | |} | ||
<span id="rov.generic_label_map"></span> | |||
====== generic_label_map ====== | ====== generic_label_map ====== | ||
A table for storing mappings from annotation labels to property sets. | A table for storing mappings from annotation labels to property sets. | ||
Line 2,466: | Line 2,542: | ||
| The date of last update. | | The date of last update. | ||
|} | |} | ||
<span id="rov.generic_label_map_restriction"></span> | |||
====== generic_label_map_restriction ====== | ====== generic_label_map_restriction ====== | ||
Links a [[#rov.generic_label_map|generic label mapping]] to a [[#shared.restriction|restriction]]. | Links a [[#rov.generic_label_map|generic label mapping]] to a [[#shared.restriction|restriction]]. | ||
Line 2,485: | Line 2,562: | ||
| A reference to a [[#rov.generic_label_map|generic label mapping]]. | | A reference to a [[#rov.generic_label_map|generic label mapping]]. | ||
|} | |} | ||
<span id="rov.image_quality"></span> | |||
====== image_quality ====== | ====== image_quality ====== | ||
Nominal image quality levels, originally used by VideoMiner but applicable to new records. | Nominal image quality levels, originally used by VideoMiner but applicable to new records. | ||
Line 2,510: | Line 2,588: | ||
| Contains a short code that can be used to look up an image quality (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up an image quality (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.import_group"></span> | |||
====== import_group ====== | ====== import_group ====== | ||
Stores information about a group of [[#rov.measurement|measurements]], [[#rov.position|positions]] or [[#rov.event|events]] so they can be distinguished by when or from what file they were imported. This provides the ability to delete a single stream of data at a finer resolution that just the [[#rov.instrument_config|instrument config]], [[#rov.platform_config|platform config]], [[#rov.dive|dive]], etc. The initial entries in the table are created retroactively, and contain undifferentiated records based on the instrument config and measurement type (measurements); the instrument config (positions) or the dive and instrument config (events). | Stores information about a group of [[#rov.measurement|measurements]], [[#rov.position|positions]] or [[#rov.event|events]] so they can be distinguished by when or from what file they were imported. This provides the ability to delete a single stream of data at a finer resolution that just the [[#rov.instrument_config|instrument config]], [[#rov.platform_config|platform config]], [[#rov.dive|dive]], etc. The initial entries in the table are created retroactively, and contain undifferentiated records based on the instrument config and measurement type (measurements); the instrument config (positions) or the dive and instrument config (events). | ||
Line 2,535: | Line 2,614: | ||
| | | | ||
|} | |} | ||
<span id="rov.import_queue_annotator"></span> | |||
====== import_queue_annotator ====== | ====== import_queue_annotator ====== | ||
Stores the import packages created by annotators. Some fields are transferred to the [[#rov.annotation_job|annotation job]] to record the objectives of the project. Each queue item (and therefore each job) should correspond to a single annotation project, and not encompass multiple projects with different objectives. | Stores the import packages created by annotators. Some fields are transferred to the [[#rov.annotation_job|annotation job]] to record the objectives of the project. Each queue item (and therefore each job) should correspond to a single annotation project, and not encompass multiple projects with different objectives. | ||
Line 2,584: | Line 2,664: | ||
| | | | ||
|} | |} | ||
<span id="rov.import_queue_annotator_label_map_prefill"></span> | |||
====== import_queue_annotator_label_map_prefill ====== | ====== import_queue_annotator_label_map_prefill ====== | ||
A table to store the last configured tags and values for labels. Provides pre-filling in label mapping application. | A table to store the last configured tags and values for labels. Provides pre-filling in label mapping application. | ||
Line 2,618: | Line 2,699: | ||
| | | | ||
|} | |} | ||
<span id="rov.import_queue_pi"></span> | |||
====== import_queue_pi ====== | ====== import_queue_pi ====== | ||
Stores the import packages created by principal investigators. | Stores the import packages created by principal investigators. | ||
Line 2,655: | Line 2,737: | ||
| | | | ||
|} | |} | ||
<span id="rov.instrument"></span> | |||
====== instrument ====== | ====== instrument ====== | ||
This table represents instruments, which are concrete instances of the types represented in the [[#rov.model|model]] table. instruments tend to be things that generate data, be it a thermometer or a camera. For the purposes of this database, an instrument is anything that is not a [[#rov.platform|platform]]. | This table represents instruments, which are concrete instances of the types represented in the [[#rov.model|model]] table. instruments tend to be things that generate data, be it a thermometer or a camera. For the purposes of this database, an instrument is anything that is not a [[#rov.platform|platform]]. | ||
Line 2,695: | Line 2,778: | ||
| A name for the instrument to distinguish it from others of the same model. | | A name for the instrument to distinguish it from others of the same model. | ||
|} | |} | ||
<span id="rov.instrument_config"></span> | |||
====== instrument_config ====== | ====== instrument_config ====== | ||
This table records the configuration of an instrument, including settings and its spatial relationship to a parent entity -- another configured vehicle or instrument upon which this instrument is mounted. | This table records the configuration of an instrument, including settings and its spatial relationship to a parent entity -- another configured vehicle or instrument upon which this instrument is mounted. | ||
Line 2,729: | Line 2,813: | ||
| Marks the entity for asynchronous deletion by the runner. | | Marks the entity for asynchronous deletion by the runner. | ||
|} | |} | ||
<span id="rov.measurement"></span> | |||
====== measurement ====== | ====== measurement ====== | ||
This table preserves time-stamped measurements generated by [[#rov.instrument_config|instruments]]. Each measurement has an associated quantity and unit. TODO: At this point multi-part measurement would be stored separately as the ability to store vectors isn't universal across DBMSes. | This table preserves time-stamped measurements generated by [[#rov.instrument_config|instruments]]. Each measurement has an associated quantity and unit. TODO: At this point multi-part measurement would be stored separately as the ability to store vectors isn't universal across DBMSes. | ||
Line 2,763: | Line 2,848: | ||
| A reference to the [[#rov.import_group|import group]], which tracks measurements which were imported at the same time, from the same file. | | A reference to the [[#rov.import_group|import group]], which tracks measurements which were imported at the same time, from the same file. | ||
|} | |} | ||
<span id="rov.measurement_type"></span> | |||
====== measurement_type ====== | ====== measurement_type ====== | ||
This is a lookup table of types of measurement types for the [[#rov.measurement|measurement]] table. This is fairly open-ended and can represent something like salinity with a specific unit, be it the SI unit or a discipline-specific unit. It is provided to allow users to easily select units for a measurement category when importing data. | This is a lookup table of types of measurement types for the [[#rov.measurement|measurement]] table. This is fairly open-ended and can represent something like salinity with a specific unit, be it the SI unit or a discipline-specific unit. It is provided to allow users to easily select units for a measurement category when importing data. | ||
Line 2,794: | Line 2,880: | ||
| Contains a short code that can be used to look up a measurement type (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a measurement type (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.medium_format"></span> | |||
====== medium_format ====== | ====== medium_format ====== | ||
A lookup table for data formats. This will include things like video, photo and acoustic. Medium formats can be discriminated as granularly as desired: as video/photo/acoustic/etc. or by format (JPG, MP4, AAC) and possibly more specific encoding parameters. | A lookup table for data formats. This will include things like video, photo and acoustic. Medium formats can be discriminated as granularly as desired: as video/photo/acoustic/etc. or by format (JPG, MP4, AAC) and possibly more specific encoding parameters. | ||
Line 2,822: | Line 2,909: | ||
| Contains a short code that can be used to look up a medium format (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a medium format (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.medium_type"></span> | |||
====== medium_type ====== | ====== medium_type ====== | ||
A simple lookup to provide media types to the [[#rov.annotation_protocol|annotation_protocol]] table. These are not specific media formats (as stored in [[#rov.medium_format|medium_format]]), but provided a higher-level distinction. | A simple lookup to provide media types to the [[#rov.annotation_protocol|annotation_protocol]] table. These are not specific media formats (as stored in [[#rov.medium_format|medium_format]]), but provided a higher-level distinction. | ||
Line 2,844: | Line 2,932: | ||
| Provides a short code for looking up the entity. | | Provides a short code for looking up the entity. | ||
|} | |} | ||
<span id="rov.model"></span> | |||
====== model ====== | ====== model ====== | ||
This table records the brand and model of equipment in the inventory. This data is abstract, which is to say, there is only one record for "GoPro Hero4" but there will be one record for each concrete instance of the model in the [[#rov.instrument|instrument]] table. The model table stores both [[#rov.instrument|instruments]] and [[#rov.platform|platforms]]. | This table records the brand and model of equipment in the inventory. This data is abstract, which is to say, there is only one record for "GoPro Hero4" but there will be one record for each concrete instance of the model in the [[#rov.instrument|instrument]] table. The model table stores both [[#rov.instrument|instruments]] and [[#rov.platform|platforms]]. | ||
Line 2,872: | Line 2,961: | ||
| A reference to the [[#rov.equipment_type|equipment type]]. | | A reference to the [[#rov.equipment_type|equipment type]]. | ||
|} | |} | ||
<span id="rov.observation_confidence"></span> | |||
====== observation_confidence ====== | ====== observation_confidence ====== | ||
Provides a nominal observation confidence level for [[#rov.event|observation events]]. | Provides a nominal observation confidence level for [[#rov.event|observation events]]. | ||
Line 2,897: | Line 2,987: | ||
| Contains a short code that can be used to look up a observation confidence (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a observation confidence (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.orientation"></span> | |||
====== orientation ====== | ====== orientation ====== | ||
This table preserves time-stamped orientation measurements from [[#rov.instrument_config|instruments]]. These are interpreted according to a [[#rov.orientation_type|specified type]]. Ship and ROV orientation will be recorded here, though ships don't ordinarily have an orientation. | This table preserves time-stamped orientation measurements from [[#rov.instrument_config|instruments]]. These are interpreted according to a [[#rov.orientation_type|specified type]]. Ship and ROV orientation will be recorded here, though ships don't ordinarily have an orientation. | ||
Line 2,928: | Line 3,019: | ||
| The [[#rov.instrument_config|configured instrument]] used to generate this item. | | The [[#rov.instrument_config|configured instrument]] used to generate this item. | ||
|} | |} | ||
<span id="rov.orientation_type"></span> | |||
====== orientation_type ====== | ====== orientation_type ====== | ||
These entities describe the interpretation of the orientation vector in the [[#rov.instrument_config|instrument_config]] and [[#rov.orientation|orientation]] tables. This can be a 3- or 4-element vector representing yaw, pitch roll; Tait-Bryan angles; Euler angles or a Quaternion. | These entities describe the interpretation of the orientation vector in the [[#rov.instrument_config|instrument_config]] and [[#rov.orientation|orientation]] tables. This can be a 3- or 4-element vector representing yaw, pitch roll; Tait-Bryan angles; Euler angles or a Quaternion. | ||
Line 2,953: | Line 3,045: | ||
| Contains a short code that can be used to look up an orientation type (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up an orientation type (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.platform"></span> | |||
====== platform ====== | ====== platform ====== | ||
This table maintains the inventory of vehicles, that is, ships and ROVs. | This table maintains the inventory of vehicles, that is, ships and ROVs. | ||
Line 2,996: | Line 3,089: | ||
| A reference to the organisation that owns and operates the platform. | | A reference to the organisation that owns and operates the platform. | ||
|} | |} | ||
<span id="rov.platform_config"></span> | |||
====== platform_config ====== | ====== platform_config ====== | ||
This table stores configuration information about vehicles (ships, ROVs,etc.) used for surveys. All references to vehicles are made through this table rather than directly to the [[#rov.platform|platform]] table, because the disposition of equipment on the platform is essential to understanding how data has been generated, as well as for simple record-keeping purposes. | This table stores configuration information about vehicles (ships, ROVs,etc.) used for surveys. All references to vehicles are made through this table rather than directly to the [[#rov.platform|platform]] table, because the disposition of equipment on the platform is essential to understanding how data has been generated, as well as for simple record-keeping purposes. | ||
Line 3,027: | Line 3,121: | ||
| Marks the entity for asynchronous deletion by the runner. | | Marks the entity for asynchronous deletion by the runner. | ||
|} | |} | ||
<span id="rov.position"></span> | |||
====== position ====== | ====== position ====== | ||
This table preserves time-stamped position measurements from [[#rov.instrument_config|instruments]]. These can be linear (e.g., UTM) or angular (e.g., Geographic) positions in a [[#rov.position_type|specified unit]]. Ship and ROV positions will be recorded here. TODO: Should this table have a spatial object (point) as well, or be split into two tables, one for absolute georeferenced positions and one for relative positions and orientations? | This table preserves time-stamped position measurements from [[#rov.instrument_config|instruments]]. These can be linear (e.g., UTM) or angular (e.g., Geographic) positions in a [[#rov.position_type|specified unit]]. Ship and ROV positions will be recorded here. TODO: Should this table have a spatial object (point) as well, or be split into two tables, one for absolute georeferenced positions and one for relative positions and orientations? | ||
Line 3,062: | Line 3,157: | ||
|} | |} | ||
<span id="rov.position_type"></span> | <span id="rov.position_type"></span> | ||
====== position_type ====== | |||
Describes the interpretation of a coordinate vector in the [[#rov.position|position]] table. These can be geographic or Cartesian positions or orientations and have defined linear or angular units. | Describes the interpretation of a coordinate vector in the [[#rov.position|position]] table. These can be geographic or Cartesian positions or orientations and have defined linear or angular units. | ||
Line 3,086: | Line 3,182: | ||
| Contains a short code that can be used to look up a position type (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a position type (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.program"></span> | |||
====== program ====== | ====== program ====== | ||
This is a listing of scientific or other programs that can be associated with [[#rov.cruise|cruises]]. | This is a listing of scientific or other programs that can be associated with [[#rov.cruise|cruises]]. | ||
Line 3,123: | Line 3,220: | ||
| A summary of the [[#rov.program|program]]; whether objectives were met, problems encountered, etc. | | A summary of the [[#rov.program|program]]; whether objectives were met, problems encountered, etc. | ||
|} | |} | ||
<span id="rov.program_member"></span> | |||
====== program_member ====== | ====== program_member ====== | ||
Assigns [[#shared.person|user]] [[#rov.program_role|roles]] to a [[#rov.program|program]]. | Assigns [[#shared.person|user]] [[#rov.program_role|roles]] to a [[#rov.program|program]]. | ||
Line 3,145: | Line 3,243: | ||
| A reference to the [[#rov.program_role|program role]]. | | A reference to the [[#rov.program_role|program role]]. | ||
|} | |} | ||
<span id="rov.program_role"></span> | |||
====== program_role ====== | ====== program_role ====== | ||
Represents the roles a [[#shared.person|person]] might perform in respect to a [[#rov.program|program]]. A person can be assigned multiple roles within a single program, and multiple people can work on a program with the same role. | Represents the roles a [[#shared.person|person]] might perform in respect to a [[#rov.program|program]]. A person can be assigned multiple roles within a single program, and multiple people can work on a program with the same role. | ||
Line 3,164: | Line 3,263: | ||
| An optional note about the role. | | An optional note about the role. | ||
|} | |} | ||
<span id="rov.protocol"></span> | |||
====== protocol ====== | ====== protocol ====== | ||
This table stores "(survey) protocol" entries from the source data. TODO: Used by [[#rov.event|events]] though it's not yet clear if it should stay this way. | This table stores "(survey) protocol" entries from the source data. TODO: Used by [[#rov.event|events]] though it's not yet clear if it should stay this way. | ||
Line 3,186: | Line 3,286: | ||
| Contains a short code that can be used to look up a survey protocol (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a survey protocol (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.relief"></span> | |||
====== relief ====== | ====== relief ====== | ||
Provides a nominal level of terrain relief for [[#rov.event|habitat events]]. | Provides a nominal level of terrain relief for [[#rov.event|habitat events]]. | ||
Line 3,208: | Line 3,309: | ||
| Contains a short code that can be used to look up a relief (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a relief (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.signup_area"></span> | |||
====== signup_area ====== | ====== signup_area ====== | ||
Stores the region within which sign-ups are permitted, generally North America. | Stores the region within which sign-ups are permitted, generally North America. | ||
Line 3,227: | Line 3,329: | ||
| The geometry of the sign-up region. | | The geometry of the sign-up region. | ||
|} | |} | ||
<span id="rov.status_type"></span> | |||
====== status_type ====== | ====== status_type ====== | ||
This is a lookup table for available status types, such as "on bottom" or "off bottom." These are specialized in the [[#rov.status_type_detail|status_type_detail]] table where a note distinguishes different flavours of a given type. For example, there can be multiple types of "Off Transect" events with a different explanation for each. | This is a lookup table for available status types, such as "on bottom" or "off bottom." These are specialized in the [[#rov.status_type_detail|status_type_detail]] table where a note distinguishes different flavours of a given type. For example, there can be multiple types of "Off Transect" events with a different explanation for each. | ||
Line 3,249: | Line 3,352: | ||
| A short code for referencing the status type in import documents. | | A short code for referencing the status type in import documents. | ||
|} | |} | ||
<span id="rov.status_type_detail"></span> | |||
====== status_type_detail ====== | ====== status_type_detail ====== | ||
This table associates a [[#rov.status_type|status type]] with a [[#rov.event|status event]]. The point of this indirection is to allow the addition of detail relative to the status type. For example, there are multiple reasons why an ROV might be "off transect", including that the vehicle has experienced a failure, or the pilot is investigating some interesting object with no research value. The [[#rov.status_type|status type]] value is the discriminator for the event, but the detail adds context the doesn't interfere with it. | This table associates a [[#rov.status_type|status type]] with a [[#rov.event|status event]]. The point of this indirection is to allow the addition of detail relative to the status type. For example, there are multiple reasons why an ROV might be "off transect", including that the vehicle has experienced a failure, or the pilot is investigating some interesting object with no research value. The [[#rov.status_type|status type]] value is the discriminator for the event, but the detail adds context the doesn't interfere with it. | ||
Line 3,274: | Line 3,378: | ||
| Contains a short code that can be used to look up a status type detail (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a status type detail (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.substrate"></span> | |||
====== substrate ====== | ====== substrate ====== | ||
A lookup table listing the available substrate types for the [[#rov.event|habitat_event]] table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. | A lookup table listing the available substrate types for the [[#rov.event|habitat_event]] table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. | ||
Line 3,296: | Line 3,401: | ||
| Contains a short code that can be used to look up a substrate (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a substrate (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.survey_mode"></span> | |||
====== survey_mode ====== | ====== survey_mode ====== | ||
This table stores "survey mode" entries from the source data. TODO: Used by [[#rov.event|events]] though it's not yet clear if it should stay this way. | This table stores "survey mode" entries from the source data. TODO: Used by [[#rov.event|events]] though it's not yet clear if it should stay this way. | ||
Line 3,318: | Line 3,424: | ||
| Contains a short code that can be used to look up a survey mode (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a survey mode (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.thickness"></span> | |||
====== thickness ====== | ====== thickness ====== | ||
A lookup table listing the available substrate thicknesses for the [[#rov.event|habitat_event]] table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. | A lookup table listing the available substrate thicknesses for the [[#rov.event|habitat_event]] table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. | ||
Line 3,346: | Line 3,453: | ||
| Contains a short code that can be used to look up a thickness (e.g., during import) without relying on the primary key. | | Contains a short code that can be used to look up a thickness (e.g., during import) without relying on the primary key. | ||
|} | |} | ||
<span id="rov.transect"></span> | |||
====== transect ====== | ====== transect ====== | ||
A transect is a section of a [[#rov.dive|dive]] during which interesting data are collected. Every transect is associated with a [[#rov.dive|dive]]. | A transect is a section of a [[#rov.dive|dive]] during which interesting data are collected. Every transect is associated with a [[#rov.dive|dive]]. | ||
Line 3,386: | Line 3,494: | ||
| | | | ||
|} | |} | ||
<span id="rov.weather_observation"></span> | |||
====== weather_observation ====== | ====== weather_observation ====== | ||
Surface weather observations can be recorded by any [[#rov.cruise_crew|crew member]] aboard a ship during a [[#rov.cruise|cruise leg]]. | Surface weather observations can be recorded by any [[#rov.cruise_crew|crew member]] aboard a ship during a [[#rov.cruise|cruise leg]]. | ||
Line 3,436: | Line 3,545: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="shared.db_version"></span> | |||
====== db_version ====== | ====== db_version ====== | ||
Stores the current database version so that upgrade scripts can perform migrations appropriately. | Stores the current database version so that upgrade scripts can perform migrations appropriately. | ||
Line 3,461: | Line 3,571: | ||
| The revision number. | | The revision number. | ||
|} | |} | ||
<span id="shared.file"></span> | |||
====== file ====== | ====== file ====== | ||
Stores a record of a file object and its location on disk, along with some metadata. This entity is used by all other entities in all schemas that refer to a file object. This should make it easier to audit file stores and e.g., find duplicates using the hash. | Stores a record of a file object and its location on disk, along with some metadata. This entity is used by all other entities in all schemas that refer to a file object. This should make it easier to audit file stores and e.g., find duplicates using the hash. | ||
Line 3,501: | Line 3,612: | ||
| A URL referencing the file in online blob storage. This field is subject to change depending on where the files reside and will change if they're moved. | | A URL referencing the file in online blob storage. This field is subject to change depending on where the files reside and will change if they're moved. | ||
|} | |} | ||
<span id="shared.file_type"></span> | |||
====== file_type ====== | ====== file_type ====== | ||
A list of file types. | A list of file types. | ||
Line 3,520: | Line 3,632: | ||
| A short code for referencing the file type in import documents. | | A short code for referencing the file type in import documents. | ||
|} | |} | ||
<span id="shared.mseauser"></span> | |||
====== mseauser ====== | ====== mseauser ====== | ||
Represents an MSEA user and is linked to a single Django auth User. Stores extra application-related properties such as the Biigle API key. | Represents an MSEA user and is linked to a single Django auth User. Stores extra application-related properties such as the Biigle API key. | ||
Line 3,578: | Line 3,691: | ||
| If true, the user is allowed to sign in. This can be set to false during sign up (e.g., by failing the IP check) or by an admin. | | If true, the user is allowed to sign in. This can be set to false during sign up (e.g., by failing the IP check) or by an admin. | ||
|} | |} | ||
<span id="shared.organisation"></span> | |||
====== organisation ====== | ====== organisation ====== | ||
Convenient storage for organisations involved in MSEA activities. | Convenient storage for organisations involved in MSEA activities. | ||
Line 3,600: | Line 3,714: | ||
| An optional note about the organisation. | | An optional note about the organisation. | ||
|} | |} | ||
<span id="shared.person"></span> | |||
====== person ====== | ====== person ====== | ||
Stores information about people involved in all aspects of the application. This is not intended to be a comprehensive duplicate of the individual's HR dossier, just a means of representing a person and providing a means of associating it with a real-world individual, e.g., by their email. | Stores information about people involved in all aspects of the application. This is not intended to be a comprehensive duplicate of the individual's HR dossier, just a means of representing a person and providing a means of associating it with a real-world individual, e.g., by their email. | ||
Line 3,637: | Line 3,752: | ||
| The organization with which this user is currently affiliated. | | The organization with which this user is currently affiliated. | ||
|} | |} | ||
<span id="shared.restriction"></span> | |||
====== restriction ====== | ====== restriction ====== | ||
The restriction table provides restrictions for [[#rov.event|events]], based on specific property keys and values. If any event has a key and matching value in a restriction, the event is not shown to non-administrators. | The restriction table provides restrictions for [[#rov.event|events]], based on specific property keys and values. If any event has a key and matching value in a restriction, the event is not shown to non-administrators. | ||
Line 3,668: | Line 3,784: | ||
| The date of last update of the restriction. | | The date of last update of the restriction. | ||
|} | |} | ||
<span id="shared.restriction_group"></span> | |||
====== restriction_group ====== | ====== restriction_group ====== | ||
Links the restriction to a group. Members of linked groups are able to view the restricted items. | Links the restriction to a group. Members of linked groups are able to view the restricted items. | ||
Line 3,687: | Line 3,804: | ||
| The ID of the Django authentication group. | | The ID of the Django authentication group. | ||
|} | |} | ||
<span id="shared.site"></span> | |||
====== site ====== | ====== site ====== | ||
Contains the names and geographic boundaries of study sites. This will be useful not only for mapping but for querying data by spatial extent. | Contains the names and geographic boundaries of study sites. This will be useful not only for mapping but for querying data by spatial extent. | ||
Line 3,709: | Line 3,827: | ||
| An optional note about the site. | | An optional note about the site. | ||
|} | |} | ||
<span id="shared.spatial_library"></span> | |||
====== spatial_library ====== | ====== spatial_library ====== | ||
Maintains a library of spatial data. | Maintains a library of spatial data. | ||
Line 3,749: | Line 3,868: | ||
| A raster. | | A raster. | ||
|} | |} | ||
<span id="shared.spatial_library_file"></span> | |||
====== spatial_library_file ====== | ====== spatial_library_file ====== | ||
Allows a [[#shared.spatial_library|spatial library]] entity to own more than one file. | Allows a [[#shared.spatial_library|spatial library]] entity to own more than one file. | ||
Line 3,768: | Line 3,888: | ||
| A link to the [[#shared.file|file]]. | | A link to the [[#shared.file|file]]. | ||
|} | |} | ||
<span id="shared.uploaded_file"></span> | |||
====== uploaded_file ====== | ====== uploaded_file ====== | ||
A table to store uploaded files that can be associated with other entities in separate requests. This table is intended to store temporary entities: when an uploaded file has been handled, these records should be deleted. | A table to store uploaded files that can be associated with other entities in separate requests. This table is intended to store temporary entities: when an uploaded file has been handled, these records should be deleted. | ||
Line 3,809: | Line 3,930: | ||
===== Tables ===== | ===== Tables ===== | ||
<span id="taxonomy.taxon"></span> | |||
====== taxon ====== | ====== taxon ====== | ||
Stores taxonomic names from a variety of databases in a common format distinguished by source and taxon_id. | Stores taxonomic names from a variety of databases in a common format distinguished by source and taxon_id. |
Revision as of 02:20, 21 September 2025
Database entity documentation is generated automatically from the production database by the Django task, db_documentation.py. The script automatically modifies this page, replacing the text between the <!-- BEGIN GENERATED CONTENT --> and <!-- END GENERATED CONTENT --> tags.
Documentation resides in the database itself, in the form of comments on the relations and columns. Documentations can be created by executing SQL statements in the form,
COMMENT ON SHCEMA [schema] IS 'This is a schema comment.' COMMENT ON TABLE [schema].[table name] IS 'This is a table comment.' COMMENT ON COLUMN [schema].[table name].[column name] IS 'This is a column comment.'
Comments on MSEA's tables are managed using DDL, as described on the Database Upgrades page. Many other tables are generated by application frameworks and are not documented.
Note: this page is auto-generated from the documentation comments in the actual database. Do not edit it directly.
Entity Documentation
Schemas
Schema: admin
Tables
cache_table
A table containing information about cache refreshment procedures and the tables they impact. The cache_refresh_tables procedure will read this table and execute the procedures stored therein.
Column Comment id table_name Stores the name of the table impacted by the associated cache procedure. Triggers will be disabled on the table, then re-enabled. proc_name The name of the cache refresh procedure to be called. created_on updated_on
Indexes
Schema: cache
Tables
cruise_stats
Stores compiled statistics for cruises.
Column Comment id cruise_id The ID of the cruise. name The name of the cruise. leg The cruise leg. start_date The start date of the cruise. end_date The end date of the cruise. num_dives The number of dives performed during the cruise. num_measurements The number measurements collected during the cruise. num_positions The number positions collected during the cruise. num_habitats The number habitats annotated during the cruise. num_observations The number observations annotated during the cruise. is_approved num_transects The number of transects that occurred during this cruise. num_taxa The number of taxa observed during this cruise. num_cruise_crew The number of crew members configured for this cruise. num_dive_crew The number of crew members configured for the dives of this cruise. num_ap_docs The number of documents attached to an annotation protocol used to annotate this cruise's data. num_cruise_docs True if there is at least one document attached this cruise. has_fov True if the cruise has field of view measurements.
cruise_track
Constructs a geometry for each cruise which describes the path of the ship.
dive_track
Constructs a geometry for each dive which describes the path of the submersible.
evt_depth
Creates a relation between an event and the depth nearest the start and end times of the event.
Column Comment event_id The link to the event's event ID. instrument_config_id The link to the instrument configuration. timestamps The array of timestamps corresponding to the depths. depths The array of depths between the event's start and end times. If the event covers a span of time, multiple depths are returned.
evt_measurement
Creates a relation between an event and the measurement nearest the start and end times of the event.
Column Comment event_id The link to the event's event ID. instrument_config_id The link to the instrument configuration. measurement_type_id The link to the measurement type. timestamps The array of timestamps corresponding to the measurements. measurements The array of measurements between the event's start and end times. If the event covers a span of time, multiple measurements are returned.
evt_pos
Creates a relation between an event and the positions within the span of the event, as a MultiPoint.
Column Comment event_id The link to the event's's event ID. instrument_config_id The link to the instrument configuration. timestamps The list of timestamps corresponding to the geometries in the geoms column. geoms The list of positions comprising the ROV track during the time span of the event. A MultiPoint.
transect_track
Constructs a geometry for each transect which describes the path of the submersible.
Column Comment transect_id The reference to the transect. dive_id The reference to the dive. cruise_id The reference to the cruise. transect_name The transect name. dive_name The dive name. cruise_name The cruise name. colour The a colour code generated from the cruise's ID. Used for cartography. geom The transect track geometry.
Indexes
Schema: geo
Tables
area
Stores area geometries linked to area groups.
Column Comment id area_group_id name_en The english name of the area. name_fr The french name of the area. properties A JSON object containing properties of the area. geom The area geometry, a MultiPolygon.
area_group
Stores groups of similar areas, such as MPAs, seamounts, etc. Linked by areas.
Column Comment id name_en The english name of the area group. name_fr The french name of the area group. description_en The english description of the area group. description_fr The french description of the area group.
Indexes
Schema: maxmind
Tables
geoip_city_blocks
Contains both IPv4 and IPv6 network addresses, which reference locations in the geoip_city_locations table.
Column Comment network The network address, IPv4 or IPv6. geoname_id References the location ID in the geoip_city_locations table. registered_country_geoname_id The location ID in the geoip_city_locations table which is registered to the network address. represented_country_geoname_id The location ID in the geoip_city_locations table from which the IP comes. is_anonymous_proxy True if the address is of an anonymous proxy. is_satellite_provider True if the address is used by a satellite network provider. postal_code The postal code of the location. latitude The latitude of the geographic center of a region, defined by the accuracy radius, which contains the location. longitude The longitude of the geographic center of a region, defined by the accuracy radius, which contains the location. accuracy_radius The radius (m) of a circle within which the location is located. is_anycast True if the address is that of an Anycast network. location region
geoip_city_locations
Stores the country, region and city data for GeoIP.
Column Comment geoname_id The internal GeoIP city ID. locale_code The two-character local code. continent_code The two-character ISO continent code. continent_name The continent name country_iso_code The two-character ISO country code. country_name The country name subdivision_1_iso_code The ISO subdivision 1 code. subdivision_1_name The ISO subdivision 1 name. subdivision_2_iso_code The ISO subdivision 2 code. subdivision_2_name The ISO subdivision 2 name. city_name The city name. metro_code The three-digit metro code. time_zone The name of the time zone. is_in_european_union True if the location is within the European Union.
geoip_last_update
Stores the time of last update of the database.
Column Comment last_update The time of last update of the database.
Indexes
Schema: ndst
Tables
cruise
Contains information about a cruise, as entered by NDST staff. Will be combined with other data to populate the cruise table.
Column Comment row_id A UUID providing a universally-unique identifier for the cruise. name The name of the cruise. leg The leg of the cruise. Should start at 1 and increase. objective summary A summary of the cruise, its accomplishments, problems, etc. note The objective of the cruise. status The current status of the cruise viz. database import. created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update. id active Set to true if the entity is active, that is, if it's currently being used. If not, set to false. hide True if the entity should be hidden in the UI.
diveconfig
Stores configurations for each dive, including the submersible, ship and any instruments on either.
Column Comment row_id A UUID providing a universally-unique identifier for the entity. name The name of the dive config. ship_config Stores the name of the ship configuration during the dive. sub_config Stores the name of the submersible configuration during the dive. ship_instrument_configs Stores the names of the instruments on the ship during the dive. sub_instrument_configs Stores the names of the instruments on the sub during the dive. note A note about the dive config. active Set to true if the entity is active, that is, if it's currently being used. If not, set to false. id created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update.
dives
Stores information about each dive.
Column Comment row_id A UUID providing a universally-unique identifier for the entity. cruise_name The name of the cruise. leg The leg of the cruise. name The name of the dive. pilot The pilot(s) of the dive. start_time The time of dive start. end_time The time of dive ending. site_name The name of the dive site. dive_config The name of the dive configuration. objective The objective of the dive. summary A summary of the dive, its accomplishments, problems, etc. note A note about the dive. active Set to true if the entity is active, that is, if it's currently being used. If not, set to false. hide True if the entity should be hidden in the UI. id created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update.
equipconfig
Stores configurations for equipment, including instruments and platforms.
Column Comment row_id A UUID providing a universally-unique identifier for the entity. name The name of the equipment config. short_code A short, easy-to-use identifier for the configuration. type The type of equipment. configuration A JSON object containing configuration properties. note A note about the equipment config. active Set to true if the entity is active, that is, if it's currently being used. If not, set to false. id created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update.
equipment
Stores equipment, including instruments and platforms.
Column Comment row_id A UUID providing a universally-unique identifier for the entity. short_code The short code for the equipment as used in the ROV database equipment table. brand The brand name of the equipment. model The model name of the equipment. serial_number The serial number. type The type of equipment. note A note about the equipment. instrument_id The ID of the instrument in the ROV database. Mutually exclusive with platform_id. platform_id The ID of the platform in the ROV database. Mutually exclusive with instrument_id. short_code_mapped An optional mapping from the origin short code to an internal short code. Not unique because multiple source items can map to a single internal item. active Set to true if the entity is active, that is, if it's currently being used. If not, set to false. id created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update.
people
Stores the people who worked on the cruise.
Column Comment row_id A UUID providing a universally-unique identifier for the entity. initials The initials. Used like a short code for the person. first_name The first name. last_name The last name. email The email address. person_id The ID of the person in the ROV database. active Set to true if the entity is active, that is, if it's currently being used. If not, set to false. id created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update.
transects
Stores information about each transect.
Column Comment row_id A UUID providing a universally-unique identifier for the entity. cruise_name The name of the cruise. leg The leg of the cruise. dive_name The name of the dive. name The name of the transect. start_time The time of transect start. end_time The time of transect ending. objective The objective of the transect. summary A summary of the transect, its accomplishments, problems, etc. note A note about the transect. active Set to true if the entity is active, that is, if it's currently being used. If not, set to false. hide True if the entity should be hidden in the UI. id created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update.
Indexes
Schema: public
Tables
auth_group
A Django table for authorization groups.
Column Comment id name
auth_group_permissions
A Django table for permissions on authorization groups.
Column Comment id group_id permission_id
auth_permission
A Django table for available permissions.
Column Comment id name content_type_id codename
auth_user
A Django table for users.
Column Comment id password last_login is_superuser first_name last_name email is_staff is_active date_joined biigle_username biigle_api_key organization org_type registration_reason bio verification_code verification_expiry verification_time registration_ip ip_in_region registration_note allowed password_reset_code password_reset_expiry registration_location
auth_user_groups
A Django table to relate users to groups.
Column Comment id user_id group_id
auth_user_user_permissions
A Django for user permissions.
Column Comment id user_id permission_id
django_admin_log
A Django table for admin logging.
Column Comment id action_time object_id object_repr action_flag change_message content_type_id user_id
django_celery_beat_clockedschedule
No comment
Column Comment id clocked_time
django_celery_beat_crontabschedule
No comment
Column Comment id minute hour day_of_week day_of_month month_of_year timezone
django_celery_beat_intervalschedule
No comment
Column Comment id every period
django_celery_beat_periodictask
No comment
Column Comment id name task args kwargs queue exchange routing_key expires enabled last_run_at total_run_count date_changed description crontab_id interval_id solar_id one_off start_time priority headers clocked_id expire_seconds
django_celery_beat_periodictasks
No comment
Column Comment ident last_update
django_celery_beat_solarschedule
No comment
Column Comment id event latitude longitude
django_celery_results_chordcounter
No comment
Column Comment id group_id sub_tasks count
django_celery_results_groupresult
No comment
Column Comment id group_id date_created date_done content_type content_encoding result
django_celery_results_taskresult
No comment
Column Comment id task_id status content_type content_encoding result date_done traceback meta task_args task_kwargs task_name worker date_created periodic_task_name date_started
django_content_type
A Django table for content types.
Column Comment id app_label model
django_migrations
Records migrations applied to database.
Column Comment id app name applied
django_session
Django session management.
Column Comment session_key session_data expire_date
django_site
No comment
Column Comment id domain name
event_group
No comment
Column Comment event_id group_id
knox_authtoken
No comment
Column Comment digest created user_id expiry token_key
spatial_ref_sys
No comment
Column Comment srid auth_name auth_srid srtext proj4text
thumbnail_kvstore
No comment
Column Comment key value
Views
geography_columns
No comment
Column Comment f_table_catalog f_table_schema f_table_name f_geography_column coord_dimension srid type
geometry_columns
No comment
Column Comment f_table_catalog f_table_schema f_table_name f_geometry_column coord_dimension srid type
Indexes
Functions
Procedures
Schema: rov
Tables
abundance
Stores a list of abundance labels from the ACFOR scale.
Column Comment id name A descriptive label for the abundance level. rank A rank used to objectively interpret the abundance label as an ordinal rank. It doesn't matter what the values are so long as they increase monotonically and do not overlap. source A source label to distinguish abundance labels with the same names. TODO: Provisional, pending determination of how abundance codes are handled. note An optional note about the abundance level. short_code Contains a short code that can be used to look up an abundance (e.g., during import) without relying on the primary key.
annotation_job
Stores information about the annotation projects that generate information from photo and video media.
Column Comment id name A name for the annotation project. objective A statement of the objectives of the annotation project. note Operational notes about the annotation project. start_date The starting date of the project. end_date The ending date of the project. created_on The date of creation of the entity. updated_on The date of last modification of the entity.
annotation_job_annotation_protocol
Associates the annotation job with one or more annotation protocols, which are used to direct annotation activities.
Column Comment id annotation_job_id The ID of the annotation job. annotation_protocol_id The ID of the annotation protocol.
annotation_job_crew
Associates crew members with an annotation job with their respective roles.
Column Comment id annotation_job_id The ID of the annotation job. person_id The ID of the crew member. role_id The ID of the role.
annotation_job_role
Stores the possible roles one can perform on an annotation job.
Column Comment id name The name of the role. note A descript of the role.
annotation_protocol
A table to record annotation protocols for annotation projects. Stores information such as the author of the protocol, the observation interval, the medium used and the types of observations to be made.
Column Comment id medium_type_id The type of media used for annotation. Looked up in media type table. annotation_software_id Software used to annotate the video or images. Looked up in the annotation software table. name The name of the annotation protocol. Should be unique. is_template If this is meant to be a template that is copied for use, mark this column `true`. image_interval The interval between images or frame grabs. Typically 3 to 10 seconds. image_overlap Is there overlap between the images (true) or do they represent independent non-overlapping space (false). habitat_only Set to true if only habitat variables were recorded. species_guide A URL to the iNaturalist species guide that was used for annotation. note If only a subset of invert, fish or algae species were identified, note here which groups were the primary focus (target species). For example, benthic fish or corals and sponges. Also for other notes of interest. created_on The date of creation of this record. updated_on The date of update of this record. creator_id Records the identity of the person who created this protocol. invertebrate_species Whether all invertebrate species are identified: "all", "subset" or "none". fish_species Whether all fish species are identified: "all", "subset" or "none". algae_species Whether all algae species are identified: "all", "subset" or "none". biogenic_habitat True if any habitat categories include fauna (e.g., sponge reefs). protocol_document Link, title, DOI, etc. of a document describing the protocol in full. observation_interval The time interval between species or anthropogenic observations. habitat_interval The time interval between habitat observations. fov_interval The time interval between field-of-view measurements. image_interval_unit A unit for the image interval, such as 's' for seconds or 'm' for metres. observation_interval_unit A unit for the observation interval, such as 's' for seconds or 'm' for metres. habitat_interval_unit A unit for the habitat interval, such as 's' for seconds or 'm' for metres. fov_interval_unit A unit for the field of view interval, such as 's' for seconds or 'm' for metres.
annotation_protocol_document
Contains documents related to an annotation protocol. These can be a URL or actual file data. If the file data are present in the database, the URL can still be used to provide the origin of the file, etc.
Column Comment id annotation_protocol_id A reference to the annotation protocol. note An optional note about the document. title The title of the document. url An optional URL for the document. If file data are not given, this field is required. created_on The time of creation of the record. updated_on The time of update of the record. file_id A reference to the uploaded file.
annotation_software
The software used for annotation.
Column Comment id name The name of the annotation software. note An optional note about the annotation software.
biigle_label_map
Contains mappings from Biigle labels to properties that apply to events.
Column Comment id label_tree_id The ID of the Biigle label tree. label_id The ID of the Biigle label. label_hierarchy The full hierarchical text of the Biigle label. label_text The text of the final element of the label. properties Stores the properties of the observation. note A textual note or comment. created_on The time of creation of the record. updated_on Time of last update of the record.
biigle_label_map_restriction
Links a Biigle label map to a [restriction][#shared.restriction].
Column Comment id restriction_id A link to the restriction. biigle_label_map_id A link to the label map.
biocover
A lookup table listing the available biocover types for the habitat_event table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity. TODO: Should perhaps refer to the taxon table.
Column Comment id name The name of the biocover. note An optional description of the biocover. short_code Contains a short code that can be used to look up a biocover (e.g., during import) without relying on the primary key.
complexity
A lookup table listing the available habitat complexity types for the habitat_event table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity.
Column Comment id name The name of the complexity type. note An optional description of the complexity type. short_code Contains a short code that can be used to look up a complexity (e.g., during import) without relying on the primary key.
coverage
A lookup table listing the percentage of coverage for the habitat_event table. The coverages are given as ranges so the text of the level is given in the name field and the values in the min and max fields contain the bounding values.
Column Comment id name A characterization of percent coverage. Presented as a range of percentages. minimum The minimum value in the range. maximum The minimum value in the range. note An optional note about the coverage percentage. short_code Contains a short code that can be used to look up a coverage (e.g., during import) without relying on the primary key.
cruise
Cruise legs occur within a cruise and are assigned specific crews, scientific programs, etc. A single leg can cover an entire cruise, legs can be spaced end-to-end, or can theoretically overlap. Legs can share members or equipment, and crew members can have specific roles related to a leg. Cruise legs can be created without a scientific program or a cruise because imported data sets may only list the name of the cruise and not indicate whether it was part of a longer cruise.
Column Comment id name A name for this leg of the cruise. objective A statement of the operational or scientific objectives of the cruise. start_time The start time of the leg. end_time The end time of the leg. planned_track A multilinestring containing the planned track of the leg. TODO: Not known whether this is necessary. note Notes about the cruise. created_on The date of creation of this record. updated_on The date of update of this record. leg Cruise legs are numbered from 1. summary A summary of the cruise, with information about whether the objectives were met and any other pertinent information. approved If zero, the record is not approved and should not be shown or used. Currently a non-zero value represents approval, but may be expanded to various levels of approval in the future. ship_id The ID of the ship used on this cruise. admin_note Notes by the database administrator about this entity. mark_for_delete Marks the entity for asynchronous deletion by the runner.
cruise_crew
Associates crew members with a cruise leg and their roles. A crew member can have multiple roles. Note: these roles are distinct from members of programs, such as Chief Scientist. It may be necessary to revisit this structure or the division of roles.
Column Comment id cruise_id Reference to the cruise leg to which the member is assigned. person_id Reference to the person on the crew. cruise_role_id Reference to the cruise role. note An optional note about the crew member.
cruise_document
Stores information about documents related to a cruise.
Column Comment id cruise_id The ID of the cruise. note A note about the document. title The title of the document. url A URL for the online copy of the document. May be used when no file is available. created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update. file_id
cruise_fn_contact
A table for associating First Nations contacts with a cruise.
Column Comment id cruise_id A reference to the cruise. contact_name The full name of the contact. email The email address of the contact. phone The phone number of the contact. nation The name of the nation or group represented by the contact. note A note about the contact.
cruise_import
Stores cruise import tasks in the database. These contain the JSON data description, a status message and complete processing log.
Column Comment id name A unique name for the import job. data A JSON document containing the cruise import data. status A status message about processing. logs A JSON array containing the complete processing log. created_on updated_on version task_id Stores the task ID for the asychrnonous task (i.e., a Celery task) used to process the import.
cruise_program
A table to link programs and cruises. A cruise can be under the auspices of more than one program or none.
cruise_role
A lookup table of roles available to members of cruise leg crews.
Column Comment id name The name of the role. note An optional note about the role and its responsibilities. short_code A short string used to identify the role.
disturbance
Provides a nominal level of disturbance for habitat events.
Column Comment id name The textual representation of the disturbance level. note A note about the disturbance level. short_code Contains a short code that can be used to look up a disturbance (e.g., during import) without relying on the primary key.
dive
A dive is what an ROV does. The dive has a start and end time (not necessarily submerge/resurface), a crew and possibly a name. Transects occur during dives.
Column Comment id cruise_id A reference to the cruise leg during which the dive was performed. name A name for the dive. objective A statement of the practical or research objectives for this dive. start_time The start of the dive. Not necessarily the time the vehicle is placed in the water. end_time The end of the dive. note An optional note about the dive. attributes A JSON column used for recording structured attributes that do not fit with the regular table structure. created_on The date of creation of this record. updated_on The date of update of this record. summary A summary of the dive; whether objectives were met, problems encountered, etc. sub_config_id A reference to the platform config for the submersible or ROV. ship_config_id A reference to the platform config for the ship. admin_note seatube_id The ID of a dive on SeaTube corresponding to this dive. mark_for_delete Marks the entity for asynchronous deletion by the runner. site An optional name for the site.
dive_crew
Assigns roles to dive crew members. Crew members are selected from the person.
dive_role
A list of roles available to crew members on a dive via the dive_crew table.
Column Comment id name The name of the role. note An optional description of the role. short_code A short string used to identify the role.
equipment_type
This is a lookup table to provide the names of types of equipment for the model table, e.g., "Digital Still Camera", "Thermometer," "ROV," etc.
Column Comment id name A name for the equipment type. note An optional note about the equipment type. category An enumeration column identifying the equipment as platform, instrument or some other type.
event
The event table, a schemaless table storing all recorded observations and statuses during operations.
Column Comment id dive_id A reference to the dive during which this event occurred. annotation_job_id instrument_config_id start_time The start time of the event. end_time The end time of the event. Null, if the event is discrete. properties A JSON object containing name-value pairs describing the event. note An optional note about the event. Do not use to store event data. created_on The time of creation of the event. updated_on The time of update of the event. Automatically updated by a trigger. hidden If true, the entity should be hidden from searches and reports. An alternative to deleting entities that may prove useful in the future. import_group_id A reference to the import group, which tracks events which were imported at the same time, from the same file.
event_group
Links the event table to the group table to facilitate the restriction mechanism.
event_logger
This table tracks the people who contributed to annotation, which may be composed of a number of separate labels.
flow
Stores categories of current flow for habitat.
Column Comment id name A note about the flow category. note short_code A short code for the flow category.
generic_label_map
A table for storing mappings from annotation labels to property sets.
Column Comment id label_text The text of the label. properties A dictionary of mapped properties. note A note about the mapping. created_on The date of creation. updated_on The date of last update.
generic_label_map_restriction
Links a generic label mapping to a restriction.
Column Comment id restriction_id A reference to a restriction. generic_label_map_id A reference to a generic label mapping.
image_quality
Nominal image quality levels, originally used by VideoMiner but applicable to new records.
Column Comment id name A name for the quality level. rank An ordinal rank (zero is high) for the quality level. note An optional note. short_code Contains a short code that can be used to look up an image quality (e.g., during import) without relying on the primary key.
import_group
Stores information about a group of measurements, positions or events so they can be distinguished by when or from what file they were imported. This provides the ability to delete a single stream of data at a finer resolution that just the instrument config, platform config, dive, etc. The initial entries in the table are created retroactively, and contain undifferentiated records based on the instrument config and measurement type (measurements); the instrument config (positions) or the dive and instrument config (events).
Column Comment id name A name for the import or the name of the file from which the data were imported. note created_on The date and time that the import was initiated. source_file
import_queue_annotator
Stores the import packages created by annotators. Some fields are transferred to the annotation job to record the objectives of the project. Each queue item (and therefore each job) should correspond to a single annotation project, and not encompass multiple projects with different objectives.
Column Comment id user_id A reference to the MSEA user that created the record. note An optional note about the import package. created_on The date of creation of the record. updated_on The date of update of the record. name A unique name for the import queue record. status A short description of the processing status of the job. cruise_name The name of the cruise to which this record is linked. A lookup is not used because the cruise record may not have been created yet. data Stores the JSON representation of the import job. hidden objective start_date end_date
import_queue_annotator_label_map_prefill
A table to store the last configured tags and values for labels. Provides pre-filling in label mapping application.
Column Comment id tags The list of tags. properties The the tag data. created_on The date and time of creation of the entity. updated_on The date and time of the entity's last update. name The text of the label. label_tree_name The label tree name. If given identifies the label uniquely with the tree name. event_type
import_queue_pi
Stores the import packages created by principal investigators.
Column Comment id user_id A reference to the MSEA user that created the record. name A name of the import job note An optional note about the import package. status A short description of the processing status of the job. created_on The date of creation of the record. updated_on The date of update of the record. cruise_id A reference to the cruise. hidden
instrument
This table represents instruments, which are concrete instances of the types represented in the model table. instruments tend to be things that generate data, be it a thermometer or a camera. For the purposes of this database, an instrument is anything that is not a platform.
Column Comment id model_id A reference to the instrument model. serial_number The serial number of the instrument. If a serial number is not available, some unique identifier can be substituted. No two instruments of the same model may have the same serial number. retired If the instrument is retired, this records the retirement date. If null, the instrument is assumed to be active. attributes A freeform list of attributes for this instrument. note An optional note about this instrument. created_on The date of creation of this record. updated_on The date of update of this record. organisation_id A reference to the organisation that owns and operates the instrument. name A name for the instrument to distinguish it from others of the same model.
instrument_config
This table records the configuration of an instrument, including settings and its spatial relationship to a parent entity -- another configured vehicle or instrument upon which this instrument is mounted.
Column Comment id configuration Configuration information about the instrument config. note An optional note about this configuration. created_on The date of creation of this record. updated_on The date of update of this record. platform_config_id The ID of the platform upon which the instrument is used. instrument_id Reference to the instrument targeted by the configuration. mark_for_delete Marks the entity for asynchronous deletion by the runner.
measurement
This table preserves time-stamped measurements generated by instruments. Each measurement has an associated quantity and unit. TODO: At this point multi-part measurement would be stored separately as the ability to store vectors isn't universal across DBMSes.
Column Comment id measurement_type_id A reference to the type of this measurement. timestamp The time that the measurement was recorded. quantity The scalar quantity or magnitude of the measurement. signal_quality A quality of the measurement as reported by the instrument. TODO: Requires clarification. is_modelled A flag to indicate whether the value is derived from measurements by some modelling process. instrument_config_id The configured instrument used to generate this item. import_group_id A reference to the import group, which tracks measurements which were imported at the same time, from the same file.
measurement_type
This is a lookup table of types of measurement types for the measurement table. This is fairly open-ended and can represent something like salinity with a specific unit, be it the SI unit or a discipline-specific unit. It is provided to allow users to easily select units for a measurement category when importing data.
Column Comment id name The type of measurement. E.g., "Density" or "Salinity." unit The unit. SI units are preferred but not required. The unit selection should probably depend on field-specific idiomatic or cultural preferences. minimum An optional lower bound on the value of the measurement. Null implies no limit. maximum An optional upper bound on the value of the measurement. Null implies no limit. note An optional note about this measurement type. short_code Contains a short code that can be used to look up a measurement type (e.g., during import) without relying on the primary key.
medium_format
A lookup table for data formats. This will include things like video, photo and acoustic. Medium formats can be discriminated as granularly as desired: as video/photo/acoustic/etc. or by format (JPG, MP4, AAC) and possibly more specific encoding parameters.
Column Comment id medium_type_id A reference to the medium type (e.g., video or photo). name The name of the format. extensions A list of file extensions that correspond to this medium type. For example, the JPEG image type may have extensions "jpg" or "jpeg" in any case. This list will help applications guess the correct format of a file if it isn't known. Note that more than one media type can have the same extension, so this feature doesn't provide a guaranteed one-to-one mapping. Use it only as a guide. note An optional note about the format. short_code Contains a short code that can be used to look up a medium format (e.g., during import) without relying on the primary key.
medium_type
A simple lookup to provide media types to the annotation_protocol table. These are not specific media formats (as stored in medium_format), but provided a higher-level distinction.
Column Comment id name The name of the media type. note An optional note about the media type. short_code Provides a short code for looking up the entity.
model
This table records the brand and model of equipment in the inventory. This data is abstract, which is to say, there is only one record for "GoPro Hero4" but there will be one record for each concrete instance of the model in the instrument table. The model table stores both instruments and platforms.
Column Comment id brand_name The brand name. model_name The model name. attributes A free-form JSON field for attributes of this model. note An optional note about the model. equipment_type_id A reference to the equipment type.
observation_confidence
Provides a nominal observation confidence level for observation events.
Column Comment id name The textual representation of the confidence level. rank This field is a way of ranking confidence levels so that an ordering can be established. note A note about the confidence level. short_code Contains a short code that can be used to look up a observation confidence (e.g., during import) without relying on the primary key.
orientation
This table preserves time-stamped orientation measurements from instruments. These are interpreted according to a specified type. Ship and ROV orientation will be recorded here, though ships don't ordinarily have an orientation.
Column Comment id orientation_type_id A reference to the orientation type of this orientation. timestamp The time the position was recorded. orientation The orientation vector. signal_quality The signal quality of the position as reported by the instrument. TODO: Requires clarification. is_modelled A flag to indicate whether the value is derived from measurements by some modelling process. instrument_config_id The configured instrument used to generate this item.
orientation_type
These entities describe the interpretation of the orientation vector in the instrument_config and orientation tables. This can be a 3- or 4-element vector representing yaw, pitch roll; Tait-Bryan angles; Euler angles or a Quaternion.
Column Comment id name The name of the orientation type (e.g., "Quaternion"). unit The units used to interpret the elements of the vector. note An optional note about the orientation type. short_code Contains a short code that can be used to look up an orientation type (e.g., during import) without relying on the primary key.
platform
This table maintains the inventory of vehicles, that is, ships and ROVs.
Column Comment id model_id A reference to the model of the platform. name The name of the platform. If this is a ship, it might be "CCGS Vector" or if it's an ROV, it might be given an arbitrary name by the maintainer. serial_number The serial number of the platform. If this is an ROV it will be the manufacturer's serial number. If it's a vessel, this might be the IMO number. In any case, it must be unique. retired If the platform is retired, this records the date. If null, the platform is assumed to be active. attributes A freeform list of attributes for this platform. note An optional note about this platform. created_on The date of creation of this record. updated_on The date of update of this record. short_code Contains a short code that can be used to look up a platform (e.g., during import) without relying on the primary key. organisation_id A reference to the organisation that owns and operates the platform.
platform_config
This table stores configuration information about vehicles (ships, ROVs,etc.) used for surveys. All references to vehicles are made through this table rather than directly to the platform table, because the disposition of equipment on the platform is essential to understanding how data has been generated, as well as for simple record-keeping purposes.
Column Comment id platform_id A reference to the platform. configuration The configuration data as a JSON object. note An optional note about the configuration record. created_on The date of creation of this record. updated_on The date of update of this record. mark_for_delete Marks the entity for asynchronous deletion by the runner.
position
This table preserves time-stamped position measurements from instruments. These can be linear (e.g., UTM) or angular (e.g., Geographic) positions in a specified unit. Ship and ROV positions will be recorded here. TODO: Should this table have a spatial object (point) as well, or be split into two tables, one for absolute georeferenced positions and one for relative positions and orientations?
Column Comment id position_type_id A reference to the position type of this position. timestamp The time the position was recorded. signal_quality The signal quality of the position as reported by the instrument. TODO: Requires clarification. geom The point geometry. is_modelled A flag to indicate whether the value is derived from measurements by some modelling process. instrument_config_id The configured instrument used to generate this item. import_group_id A reference to the import group, which tracks positions which were imported at the same time, from the same file.
position_type
Describes the interpretation of a coordinate vector in the position table. These can be geographic or Cartesian positions or orientations and have defined linear or angular units.
Column Comment id name The name of the position type. E.g., "Geographic" or "Yaw, Pitch, Roll." unit The unit. Linear or angular. E.g., "m" or "radians." note An optional note about this position type. short_code Contains a short code that can be used to look up a position type (e.g., during import) without relying on the primary key.
program
This is a listing of scientific or other programs that can be associated with cruises.
Column Comment id name The name of the program. objective The objective or mandate of the program. start_date The starting date of the program. end_date The optional end date of the program. note An optional note about the program. created_on The date of creation of this item. updated_on The date of update of this record. summary A summary of the program; whether objectives were met, problems encountered, etc.
program_member
Assigns user roles to a program.
Column Comment id program_id The reference to the program. person_id A reference to the person. role_id A reference to the program role.
program_role
Represents the roles a person might perform in respect to a program. A person can be assigned multiple roles within a single program, and multiple people can work on a program with the same role.
Column Comment id name The name of the role. E.g., "Chief Scientist." note An optional note about the role.
protocol
This table stores "(survey) protocol" entries from the source data. TODO: Used by events though it's not yet clear if it should stay this way.
Column Comment id name A name for the survey protocol. note An optional note about the protocol. short_code Contains a short code that can be used to look up a survey protocol (e.g., during import) without relying on the primary key.
relief
Provides a nominal level of terrain relief for habitat events.
Column Comment id name The textual representation of the relief level. note A note about the relief level. short_code Contains a short code that can be used to look up a relief (e.g., during import) without relying on the primary key.
signup_area
Stores the region within which sign-ups are permitted, generally North America.
Column Comment id name The name of the sign-up region. geom The geometry of the sign-up region.
status_type
This is a lookup table for available status types, such as "on bottom" or "off bottom." These are specialized in the status_type_detail table where a note distinguishes different flavours of a given type. For example, there can be multiple types of "Off Transect" events with a different explanation for each.
Column Comment id name The name of the status event. note An optional description of the status type. short_code A short code for referencing the status type in import documents.
status_type_detail
This table associates a status type with a status event. The point of this indirection is to allow the addition of detail relative to the status type. For example, there are multiple reasons why an ROV might be "off transect", including that the vehicle has experienced a failure, or the pilot is investigating some interesting object with no research value. The status type value is the discriminator for the event, but the detail adds context the doesn't interfere with it.
Column Comment id status_type_id A reference to the status type. name The status type detail. This field distinguishes different uses for status types. For example, there can be more than one reason to record an "Off Transect" event. note Optional extended description of detail. short_code Contains a short code that can be used to look up a status type detail (e.g., during import) without relying on the primary key.
substrate
A lookup table listing the available substrate types for the habitat_event table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity.
Column Comment id name The name of the substrate. note An optional description of the substrate. short_code Contains a short code that can be used to look up a substrate (e.g., during import) without relying on the primary key.
survey_mode
This table stores "survey mode" entries from the source data. TODO: Used by events though it's not yet clear if it should stay this way.
Column Comment id name The name of the survey mode. note An optional note about the survey mode. short_code Contains a short code that can be used to look up a survey mode (e.g., during import) without relying on the primary key.
thickness
A lookup table listing the available substrate thicknesses for the habitat_event table. TODO: This table may be altered to provide a hierarchical list of types with increasing specificity.
Column Comment id name A characterization of biocover thickness. minimum The minimum value in the range. maximum The maximum value in the range. note An optional note about the biocover thickness. short_code Contains a short code that can be used to look up a thickness (e.g., during import) without relying on the primary key.
transect
A transect is a section of a dive during which interesting data are collected. Every transect is associated with a dive.
Column Comment id dive_id A reference to the dive during which this transect occurred. name The name of the transect. objective A statement of the practical or research objectives for this true. start_time The start time of the transect. end_time The end time of the transect. note An optional note about the transect. attributes A JSON column used for recording structured attributes that do not fit with the regular table structure. summary A summary of the transect; whether objectives were met, problems encountered, etc. admin_note
weather_observation
Surface weather observations can be recorded by any crew member aboard a ship during a cruise leg.
Column Comment id cruise_crew_id A reference to the cruise leg crew member who is making the report. temperature The air temperature. pressure The air pressure. wind_speed The wind speed. wind_direction The wind direction. swell Description of swell. time An optional note about the weather. note An optional note about the observation cruise_id A link to the cruise during which this record was recorded.
Indexes
Tables
db_version
Stores the current database version so that upgrade scripts can perform migrations appropriately.
Column Comment id version_major The major version. version_minor The minor version number. updated_on The time the upgrade was performed. revision The revision number.
file
Stores a record of a file object and its location on disk, along with some metadata. This entity is used by all other entities in all schemas that refer to a file object. This should make it easier to audit file stores and e.g., find duplicates using the hash.
Column Comment id file_type_id An optional reference to the file type. name The name for the file. description An optional description for the file. metadata A JSON dictionary containing metadata relating to the file. path A path of the file, relative to the root directory where files are stored. created_on The creation time of the file record, not necessarily the file itself (this should be stored in metadata). updated_on The update time of the file record, not necessarily the file itself (this should be stored in metadata). hash And MD5 hash of the file data. Used to compare files and search for identical versions. blob_url A URL referencing the file in online blob storage. This field is subject to change depending on where the files reside and will change if they're moved.
file_type
A list of file types.
Column Comment id name The name of the file type. short_code A short code for referencing the file type in import documents.
mseauser
Represents an MSEA user and is linked to a single Django auth User. Stores extra application-related properties such as the Biigle API key.
Column Comment id user_id A reference to the Django user. biigle_username The Biigle username. biigle_api_key The Biigle API key. pg_role The name of the PostgreSQL role that the user will use to log in directly to the database. organization The organization with which a user is affiliated. org_type The the type of organization with which the user is affiliated. registration_reason A short note about why the user registered. bio Biographical information about the user. verification_code An auto-generated string used to identify the user for verification purposes. verification_expiry The time of expiration of the verification code. verification_time The date and time at which the user was verified. registration_ip The IP used by the user to register. ip_in_region Set to true if the user's IP is within the signup region. False positives and negatives are possible. registration_note Administrator notes about the user's registration status. allowed If true, the user is allowed to sign in. This can be set to false during sign up (e.g., by failing the IP check) or by an admin.
organisation
Convenient storage for organisations involved in MSEA activities.
Column Comment id name The full name of the organisation. country The code for the country where the organisation is based (e.g., "CA" for Canada). note An optional note about the organisation.
person
Stores information about people involved in all aspects of the application. This is not intended to be a comprehensive duplicate of the individual's HR dossier, just a means of representing a person and providing a means of associating it with a real-world individual, e.g., by their email.
Column Comment id biigle_user_id The Biigle database ID of a user. The UUID should be used instead. first_name First name. last_name Last name. email Email address. photo A photo of the person. bio A brief biography of the person. biigle_uuid The Biigle UUID is used to identify the user in Biigle apps. affiliation The organization with which this user is currently affiliated.
restriction
The restriction table provides restrictions for events, based on specific property keys and values. If any event has a key and matching value in a restriction, the event is not shown to non-administrators.
Column Comment id name The name of the restriction. key The top-level property name or key. pattern A pattern matching the property value using the SQL ILIKE operator. An exact (case-insensitive) match is a bare string, while appending % at any location is a wildcard match. For example, '%term' matches 'exterm' but not 'exterminate'. note An optional note about the restriction. created_on The date of creation of the restriction. updated_on The date of last update of the restriction.
restriction_group
Links the restriction to a group. Members of linked groups are able to view the restricted items.
Column Comment id restriction_id The ID of the restriction. group_id The ID of the Django authentication group.
site
Contains the names and geographic boundaries of study sites. This will be useful not only for mapping but for querying data by spatial extent.
Column Comment id spatial_library_id A reference to the spatial library entry. name A name for the site. note An optional note about the site.
spatial_library
Maintains a library of spatial data.
Column Comment id file_id A reference to a related file. name A name for the entry. note A note about this library item. thumbnail A small thumbnail in binary (JPG) form. created_on The time when this record was created. updated_on The date of update of this record. geom A vector representation of the object(s), projected into WGS84 (lat/lon) and stored as a geography type. metadata A JSON object containing metadata related to the spatial object. rast A raster.
spatial_library_file
Allows a spatial library entity to own more than one file.
Column Comment id spatial_library_id A link to the spatial library. file_id A link to the file.
uploaded_file
A table to store uploaded files that can be associated with other entities in separate requests. This table is intended to store temporary entities: when an uploaded file has been handled, these records should be deleted.
Column Comment id path The path to the temporary location of the file. type The guessed MIME type of the file. name The original name of the file. created_on The time of creation of the record. expires_on The expiry time of the file. It may be deleted by a maintenance script after this time. marked_for_delete If true, the file is marked for delete. Otherwise it will not be touched unless there is an age limit set in the daemon.
Indexes
Schema: taxonomy
Tables
taxon
Stores taxonomic names from a variety of databases in a common format distinguished by source and taxon_id.
Column Comment id taxon_id The taxonomic ID from the source database. source The name of the source database: "inaturalist", "worms", "obis", etc. rank The name of the taxonomic rank of the record, e.g., "class", "subspecies", etc. scientific_name The scientific name of the species. common_name The common name of the species. superdomain The superdomain name. domain The domain name. kingdom The kingdom name. subkingdom The subkingdom name. infrakingdom The infrakingdom name. phylum The phylum name. phylum_division The phylum division name. subphylum_subdivision The subphylum division name. subphylum The subphylum name. infraphylum The infraphylum name. parvphylum The parvphylum name. gigaclass The gigaclass name. megaclass The megaclass name. superclass The superclass name. class The "class" name. subclass The subclass name. infraclass The infraclass name. subterclass The subterclass name. superorder The superorder name. order The "order" name. suborder The suborder name. infraorder The infraorder name. parvorder The parvorder name. superfamily The superfamily name. family The family name. subfamily The subfamily name. supertribe The supertribe name. tribe The tribe name. subtribe The subtribe name. genus The genus name. genus_hybrid The genus hybrid name. subgenus The subgenus name. section The section name. subsection The subsection name. series The series name. species The species name. hybrid The hybrid name. subspecies The subspecies name. natio The natio name. variety The variety name. subvariety The subvariety name. form The form name. subform The subform name. no_common_name If a search has been performed for a common name and none was found, this prevents the processor from trying again. accepted_taxon_id The taxon ID of the accepted taxon for this unaccepted taxon. If this column is null, the taxon is accepted. parent_taxon_id The taxon ID of the taxon's parent taxon. If this column is null, the taxon has no parents.