Skip to content

Commit 2149bc7

Browse files
authored
Merge pull request #32 from GeoPressure/v1.0
v1.0
2 parents d7445ea + e5104b4 commit 2149bc7

52 files changed

Lines changed: 3491 additions & 861 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/jekyll.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
runs-on: ubuntu-latest
3333
steps:
3434
- name: Checkout
35-
uses: actions/checkout@v4
35+
uses: actions/checkout@v5
3636
- name: Setup Ruby
3737
uses: ruby/setup-ruby@v1
3838
with:
@@ -48,7 +48,7 @@ jobs:
4848
JEKYLL_ENV: production
4949
- name: Upload artifact
5050
# Automatically uploads an artifact from the './_site' directory by default
51-
uses: actions/upload-pages-artifact@v3
51+
uses: actions/upload-pages-artifact@v4
5252

5353
# Deployment job
5454
deploy:

.github/workflows/validate-profile-and-schemas.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ jobs:
1010
validate-profile-and-schemas:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v4
13+
- uses: actions/checkout@v6
1414
- name: Set up Python 3.9
15-
uses: actions/setup-python@v5
15+
uses: actions/setup-python@v6
1616
with:
1717
python-version: 3.9
1818
- name: Install dependencies

CITATION.cff

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
cff-version: 1.2.0
2-
message: 'To cite "GeoLocator DP" in publications use:'
32
type: software
43
license: MIT
54
title: GeoLocator Data Package
@@ -9,7 +8,17 @@ authors:
98
email: rafnuss@gmail.com
109
affiliation: Swiss Ornithological Institute
1110
orcid: https://orcid.org/0000-0002-8185-1020
11+
- family-names: Capilla-Lasheras
12+
given-names: Pablo
13+
email: pablo.capilla@gvogelwarte.ch
14+
affiliation: Swiss Ornithological Institute
15+
orcid: https://orcid.org/0000-0001-6091-7089
16+
- family-names: Desmet
17+
given-names: Peter
18+
email: peter.desmet@inbo.be
19+
affiliation: Research Institute for Nature and Forest
20+
orcid: https://orcid.org/0000-0002-8442-8025
1221
repository-code: https://github.com/rafnuss/geolocator-dp
13-
url: https://raphaelnussbaumer.com/GeoLocator-DP/
22+
url: https://geopressure.org/GeoLocator-DP/
1423
date-released: "2024-12-02"
1524
doi: 10.5281/zenodo.14258411

README.md

Lines changed: 32 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,46 @@
1-
---
2-
title: GeoLocator DP
3-
background: /assets/home.png
4-
permalink: /
5-
description: Data exchange format for geolocator data
6-
---
1+
# GeoLocator DP
72

8-
**GeoLocator Data Package** (GeoLocator DP) is a data exchange format for geolocator data. It follows the [Data Package standard](https://datapackage.org/standard/data-package/) for structuring the data.
3+
GeoLocator DP is a Data Package profile for geolocator data (raw measurements, field observations, and optional GeoPressureR trajectory outputs).
94

10-
## Structure
5+
## Documentation
116

12-
A GeoLocator Data Package is organized into three components: (1) the project metadata, (2) the core resources containing the main dataset, and (3) optional trajectory data generated with the [GeoPressure suite](https://raphaelnussbaumer.com/GeoPressureManual/#the-geopressure-suite).
7+
- Website: https://geopressure.org/GeoLocator-DP/
8+
- GeoLocator Manual: https://raphaelnussbaumer.com/GeoPressureManual/geolocator-intro.html
9+
- GeoLocatoR package: https://raphaelnussbaumer.com/GeoLocatoR/
1310

14-
### 1. Metadata
11+
## Repository Contents
1512

16-
The description of the project and the data is contained in [`datapackage.json`](https://raphaelnussbaumer.com/GeoLocator-DP/datapackage/).
13+
- `geolocator-dp-profile.json`: GeoLocator DP package profile
14+
- `*-table-schema.json`: table schemas for core and GeoPressureR resources
15+
- `pages/`: website pages rendered by Jekyll
16+
- `example/`: example CSV resources
17+
- `tests/`: validation tests
1718

18-
| File | Description |
19-
| ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
20-
| [`datapackage.json`](https://raphaelnussbaumer.com/GeoLocator-DP/datapackage/) | List of the project's metadata, such as the package's title, licenses, contributors, etc., as well as a list of the data [`resources`](https://datapackage.org/standard/data-resource/) that make up the package |
19+
## Local Development
2120

22-
### 2. Core Resources
21+
Install Ruby dependencies:
2322

24-
The core GeoLocator DP resources consist of the raw geolocator data. These `resources` can be generated without any analysis of the geolocator data.
23+
```bash
24+
bundle install
25+
```
2526

26-
| File | Description |
27-
| ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
28-
| [`tags.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/core/tags/) | Table of devices used in the study. We assume that a `tag` is only used once on a single animal. |
29-
| [`measurements.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/core/measurements/) | Table with the raw measurements of all sensors (e.g., light, pressure, ...) for all tags. |
30-
| [`observations.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/core/observations/) | Table with the field observations associated with tags such as equipment, retrieval, or other events. |
27+
Run the website locally with live reload:
3128

32-
### 3. GeoPressureR Resources
29+
```bash
30+
bundle exec jekyll serve --livereload --incremental
31+
```
3332

34-
The GeoPressureR extension consists of optional trajectory data generated through the [GeoPressureR workflow analysis](https://raphaelnussbaumer.com/GeoPressureManual/geopressuretemplate-workflow.html).
33+
Create a production-style build:
3534

36-
| File | Description |
37-
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
38-
| [`staps.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/geopressurer/staps) | Table of the stationary periods of all tags. |
39-
| [`paths.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/geopressurer/paths) | Table of the trajectory of all tags, typically most likely path or simulation paths. |
40-
| [`edges.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/geopressurer/edges) | Table containing the flight information of the edges associated with the paths. |
41-
| [`twilights.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/geopressurer/twilights) | Table of the twilights estimated from light data for all tags. |
42-
| [`pressurepaths.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/geopressurer/pressurepaths) | Table of pressure-based paths. |
35+
```bash
36+
JEKYLL_ENV=production bundle exec jekyll build
37+
```
4338

44-
## Where to find and explore GeoLocator Data Packages
39+
Run validation tests:
4540

46-
<table>
47-
<tr style="border-top-width: 1px;">
48-
<td>
49-
<a href="https://zenodo.org/communities/geolocator-dp/"><img src="assets/logo.png" width="100px" alt="GeoLocator DP logo"/> </a>
50-
</td>
51-
<td>
52-
You'll be able to find all GeoLocator Data Packages in the <a href="https://zenodo.org/communities/geolocator-dp/">GeoLocator Data Package Zenodo Community</a>. Once you've published your data package, make sure to <a href="https://help.zenodo.org/docs/share/submit-to-community/">submit it to the community</a>.
53-
</td>
54-
</tr>
55-
<tr>
56-
<td>
57-
<a href="https://raphaelnussbaumer.com/GeoLocatorExplorer/"><img src="assets/logo_geolocatorexplorer.svg" width="100px" alt="GeoLocatorExplorer logo"/> </a>
58-
</td>
59-
<td>
60-
Explore the most likely trajectories of all existing data packages on a 3D map with <a href="https://raphaelnussbaumer.com/GeoLocatorExplorer/">GeoLocatorExplorer</a>.
61-
</td>
62-
</tr>
63-
</table>
64-
65-
## Ecosystem
66-
67-
<table>
68-
<tr style="border-top-width: 1px;">
69-
<td>
70-
<a href="https://raphaelnussbaumer.com/GeoPressureManual/geolocator-intro.html"><img src="assets/cover_geopressuremanual.png" width="100px" alt="GeoPressureManual logo"/></a>
71-
</td>
72-
<td>
73-
The <a href="https://raphaelnussbaumer.com/GeoPressureManual/geolocator-intro.html">Geolocator Manual</a> R book has a dedicated part on the use of the GeoLocator Data Package. This is a great place to start learning more about how to use it with your GeoPressureTemplate project.
74-
</td>
75-
</tr>
76-
<tr>
77-
<td>
78-
<a href="https://raphaelnussbaumer.com/GeoLocatoR/"><img src="assets/logo_geolocator.png" width="100px" alt="GeoLocatoR logo"/></a>
79-
</td>
80-
<td>
81-
The <a href="https://raphaelnussbaumer.com/GeoLocatoR/">GeoLocatoR</a> R package is designed to handle GeoLocator DP: creating a DP, adding resources, writing a DP, and reading a DP. It is essentially an extension of the <a href="https://docs.ropensci.org/frictionless/">frictionlessr</a> package for geolocator data.
82-
</td>
83-
</tr>
84-
<tr>
85-
<td><a href="https://raphaelnussbaumer.com/GeoPressureR/"><img src="assets/logo_geopressurer.png" width="100px" alt="GeoPressureR logo"/></a></td>
86-
<td>
87-
<a href="https://raphaelnussbaumer.com/GeoPressureR/">GeoPressureR</a> is the main package to analyze geolocator data. Once a GeoLocator Data Package is created, GeoPressureR is our recommended software to read the data into R and analyze the data.
88-
</td>
89-
</tr>
90-
</table>
91-
92-
## How to Cite
93-
94-
> Nussbaumer, R. (2024). GeoLocator-DP: Data exchange format for multi-sensor geolocator. Zenodo. [10.5281/zenodo.14258411](https://doi.org/10.5281/zenodo.14258411)
41+
```bash
42+
python3 -m venv .venv
43+
source .venv/bin/activate
44+
python -m pip install -r tests/requirements.txt
45+
python tests/validate_profile_and_schemas.py
46+
```

_config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SITE SETTINGS
22
title: GeoLocator DP
33
author: GeoLocator Development Team
4-
url: https://raphaelnussbaumer.com
4+
url: https://geopressure.org
55
baseurl: /GeoLocator-DP
66

77
# THEME SETTINGS

_data/footer.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
columns:
1111
- description: > # E.g. funding acknowledgement. Can be Markdown
12-
This website and Data Package extension were greatly inspired from [Camtrap DP](https://camtrap-dp.tdwg.org/) and the website is using the [petridish](https://peterdesmet.com/petridish/) jekyll theme.
12+
This website and Data Package extension were inspired from [Camtrap DP](https://camtrap-dp.tdwg.org/) and the website is using the [petridish](https://peterdesmet.com/petridish/) jekyll theme.
1313
1414
# Small print license statement to add at the bottom of the footer. Can be Markdown
1515
# Will be prefixed by "© {{ site.author }}" if defined in _config.yml

_data/measurements-table-schema.json

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
{
2+
"name": "measurements",
3+
"title": "Measurements",
4+
"description": "`measurements.csv` is a [tabular data](https://datapackage.org/standard/glossary/#tabular-data) resource from a GeoLocator Data Package containing raw data from sensors on all tags.\n\n{:.alert .alert-warning}\nNote that data from all sensors and all tags are contained in a single table!",
5+
"$schema": "https://datapackage.org/profiles/2.0/tableschema.json",
6+
"fields": [
7+
{
8+
"name": "tag_id",
9+
"description": "Unique identifier of the tag. Foreign key to [`tags.tag_id`](/GeoLocator-DP/core/tags#tag_id).",
10+
"type": "string",
11+
"constraints": {
12+
"required": true
13+
},
14+
"example": "18LX"
15+
},
16+
{
17+
"name": "sensor",
18+
"description": "Sensor type.\n - `light`: Light-level values measured by a solar geolocator. Range and units may vary by provider and tag settings. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000139/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000139/</a></span>\n - `pressure`: Atmospheric pressure in hPa (or mbar). <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000055/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000055/</a></span>\n - `activity`: Measure of movement performed by the bird, computed from acceleration sensors. Range and computation method may vary by tag provider, model, settings, and placement on the animal. In general, higher values indicate more activity. Typically computed as the cumulative sum of the absolute difference of acceleration along the z-axis. See [doi:10.1186/s40462-018-0137-1](https://doi.org/10.1186/s40462-018-0137-1) (SOI), [doi:10.1111/jav.01068](https://doi.org/10.1111/jav.01068) (Lund), and the [migratetech report](https://www.migratetech.co.uk/IntigeoSummary.pdf) for more details. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000114/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000114/</a></span>\n - `mean_acceleration_z`: Mean acceleration along the z-axis, computed from acceleration sensors. Mainly used by SOI devices. This metric is sometimes used as a proxy for pitch and was named `pitch` in GeoLocator DP versions earlier than v1.0.\n - `temperature_external`: Temperature measured by the tag sensor pointing outward from the animal (air temperature). This typically corresponds to the main external temperature sensor. Units: degrees Celsius. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000104/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000104/</a></span>\n - `temperature_internal`: Temperature measured by the tag sensor located between the tag and the animal (body temperature). Units: degrees Celsius. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000256/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000256/</a></span>\n - `acceleration_x`: Raw acceleration values provided by the tag for the X axis. Units: m/s^2. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000006/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000006/</a></span>\n - `acceleration_y`: Raw acceleration values provided by the tag for the Y axis. Units: m/s^2. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000007/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000007/</a></span>\n - `acceleration_z`: Raw acceleration values provided by the tag for the Z axis. Units: m/s^2. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000008/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000008/</a></span>\n - `magnetic_x`: Magnetic field strength measured by the magnetometer for the X axis. Units: microtesla. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000258/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000258/</a></span>\n - `magnetic_y`: Magnetic field strength measured by the magnetometer for the Y axis. Units: microtesla. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000259/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000259/</a></span>\n - `magnetic_z`: Magnetic field strength measured by the magnetometer for the Z axis. Units: microtesla. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000260/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000260/</a></span>\n - `wet_count`: Wet count during a measurement interval from the wet-dry sensor. Units are usually device-specific. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000213/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000213/</a></span>\n - `conductivity`: Conductivity measured by the wet-dry sensor. Unit varies by model. <br/><span class='small text-muted'>Same as <a href='https://vocab.nerc.ac.uk/collection/MVB/current/MVB000071/'>https://vocab.nerc.ac.uk/collection/MVB/current/MVB000071/</a></span>",
19+
"type": "string",
20+
"constraints": {
21+
"required": true,
22+
"enum": [
23+
"light",
24+
"pressure",
25+
"activity",
26+
"mean_acceleration_z",
27+
"temperature_internal",
28+
"temperature_external",
29+
"acceleration_x",
30+
"acceleration_y",
31+
"acceleration_z",
32+
"magnetic_x",
33+
"magnetic_y",
34+
"magnetic_z",
35+
"wet_count",
36+
"conductivity"
37+
]
38+
},
39+
"skos:relatedMatch": "https://vocab.nerc.ac.uk/collection/MVB/current/MVB000170/",
40+
"example": "pressure"
41+
},
42+
{
43+
"name": "datetime",
44+
"description": "Date and time of the measurement. Accepts any valid [ISO 8601](https://wikipedia.org/wiki/ISO_8601) datetime string, including datetime in local time (`YYYY-MM-DDThh:mm`), in UTC (`YYYY-MM-DDThh:mmZ`) or any specific timezone (`YYYY-MM-DDThh:mm+hh:mm`).",
45+
"type": "datetime",
46+
"constraints": {
47+
"required": true
48+
},
49+
"example": "2020-04-01T22:00:00Z",
50+
"skos:closeMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000200"
51+
},
52+
{
53+
"name": "value",
54+
"description": "Value of the measurement taken by the sensor.",
55+
"type": "number",
56+
"constraints": {
57+
"required": true
58+
},
59+
"example": "12.3"
60+
},
61+
{
62+
"name": "label",
63+
"description": "Labeling of pressure and acceleration data according to the [labeling chapter of the GeoPressureManual](https://raphaelnussbaumer.com/GeoPressureManual/labelling-tracks.html).",
64+
"type": "string",
65+
"constraints": {
66+
"required": false,
67+
"pattern": "^(flight|discard|elev_\\d+|)$"
68+
},
69+
"example": "elev_23",
70+
"skos:relatedMatch": [
71+
"https://vocab.nerc.ac.uk/collection/MVB/current/MVB000156",
72+
"https://vocab.nerc.ac.uk/collection/MVB/current/MVB000157"
73+
]
74+
}
75+
],
76+
"missingValues": ["", "NA"],
77+
"foreignKeys": [
78+
{
79+
"fields": "tag_id",
80+
"reference": {
81+
"resource": "tags",
82+
"fields": "tag_id"
83+
}
84+
}
85+
],
86+
"fieldsMatch": ["superset"]
87+
}

_data/navigation.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
- text: Home
44
href: /
5-
- text: Datapackage
6-
href: /datapackage/
5+
- text: Overview
6+
href: /schema-overview/
77
- text: Core
88
menu:
99
- text: Tags
@@ -24,5 +24,5 @@
2424
href: /geopressurer/edges/
2525
- text: Pressurepaths
2626
href: /geopressurer/pressurepaths/
27-
- text: "GitHub"
28-
href: "https://github.com/rafnuss/geolocator-dp"
27+
- text: Curation
28+
href: /curation/

_includes/footer.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<footer class="d-print-none">
2+
<div class="container">
3+
<div class="small mt-2 text-center">
4+
{% if site.author %}
5+
<p>© {{ site.author }}</p>
6+
{% endif %}
7+
<p><a href="https://github.com/rafnuss/geolocator-dp">GitHub Repository</a></p>
8+
{% if site.data.footer.license %}
9+
<p>{{ site.data.footer.license | markdownify | remove: '<p>' | remove: '</p>' }}</p>
10+
{% endif %}
11+
<p>Inspired by <a href="https://camtrap-dp.tdwg.org/">Camtrap DP</a> and built with <a href="https://peterdesmet.com/petridish/">Petridish</a>.</p>
12+
</div>
13+
</div>
14+
</footer>

0 commit comments

Comments
 (0)