Skip to content
Merged

v1.0 #32

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
795ccc4
Drop support for non-deployed tags
Rafnuss Mar 12, 2026
4f2e644
Remove all metadata expect from `id`
Rafnuss Mar 12, 2026
38e2311
Use versioned DOI for `id` (instead of concept DOI which can be resol…
Rafnuss Mar 12, 2026
faa189e
update github workflow actions version
Rafnuss Mar 12, 2026
73ee1cf
Allow for additional ressources
Rafnuss Mar 13, 2026
acbfbf1
Enforce csv (or zipped csv) for the resources
Rafnuss Mar 13, 2026
1f48ca9
Add pattern to `$schema`
Rafnuss Mar 13, 2026
53c7a52
Update website
Rafnuss Mar 14, 2026
8ef7ad8
Remove `paths.ind`, `paths.interp` and `staps$include`
Rafnuss Mar 17, 2026
fbc794b
Add `param.json resources`
Rafnuss Mar 17, 2026
60adc77
Expand table-schema URL regex for all paths
Rafnuss Mar 17, 2026
418f7c9
remove index of grid in edges
Rafnuss Mar 18, 2026
bba065b
#24
Rafnuss Mar 18, 2026
e229724
Improve description, cleaning up typos etc
Rafnuss Mar 18, 2026
5aaeac4
Expend definition of `tag$stag_comments` https://github.com/Rafnuss/G…
Rafnuss Mar 18, 2026
61b2493
Add information on deployement in readme
Rafnuss Mar 18, 2026
355585f
Review and fix `primaryKey` and `foreignKeys`
Rafnuss Mar 18, 2026
dd77828
Add image bakcgorund cover for geopressurer resources
Rafnuss Mar 19, 2026
c478512
Add icon to alert
Rafnuss Mar 20, 2026
7bde7dc
Remove also ID from basic datapackage.json
Rafnuss Mar 23, 2026
b056fe2
Update website
Rafnuss Mar 23, 2026
f7cf52e
Update test
Rafnuss Mar 23, 2026
e5104b4
Update validate-profile-and-schemas.yml
Rafnuss Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/jekyll.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
Expand All @@ -48,7 +48,7 @@ jobs:
JEKYLL_ENV: production
- name: Upload artifact
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v4

# Deployment job
deploy:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/validate-profile-and-schemas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ jobs:
validate-profile-and-schemas:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up Python 3.9
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: 3.9
- name: Install dependencies
Expand Down
13 changes: 11 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
cff-version: 1.2.0
message: 'To cite "GeoLocator DP" in publications use:'
type: software
license: MIT
title: GeoLocator Data Package
Expand All @@ -9,7 +8,17 @@ authors:
email: rafnuss@gmail.com
affiliation: Swiss Ornithological Institute
orcid: https://orcid.org/0000-0002-8185-1020
- family-names: Capilla-Lasheras
given-names: Pablo
email: pablo.capilla@gvogelwarte.ch
affiliation: Swiss Ornithological Institute
orcid: https://orcid.org/0000-0001-6091-7089
- family-names: Desmet
given-names: Peter
email: peter.desmet@inbo.be
affiliation: Research Institute for Nature and Forest
orcid: https://orcid.org/0000-0002-8442-8025
repository-code: https://github.com/rafnuss/geolocator-dp
url: https://raphaelnussbaumer.com/GeoLocator-DP/
url: https://geopressure.org/GeoLocator-DP/
date-released: "2024-12-02"
doi: 10.5281/zenodo.14258411
112 changes: 32 additions & 80 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,94 +1,46 @@
---
title: GeoLocator DP
background: /assets/home.png
permalink: /
description: Data exchange format for geolocator data
---
# GeoLocator DP

**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.
GeoLocator DP is a Data Package profile for geolocator data (raw measurements, field observations, and optional GeoPressureR trajectory outputs).

## Structure
## Documentation

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).
- Website: https://geopressure.org/GeoLocator-DP/
- GeoLocator Manual: https://raphaelnussbaumer.com/GeoPressureManual/geolocator-intro.html
- GeoLocatoR package: https://raphaelnussbaumer.com/GeoLocatoR/

### 1. Metadata
## Repository Contents

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

| File | Description |
| ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`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 |
## Local Development

### 2. Core Resources
Install Ruby dependencies:

The core GeoLocator DP resources consist of the raw geolocator data. These `resources` can be generated without any analysis of the geolocator data.
```bash
bundle install
```

| File | Description |
| ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
| [`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. |
| [`measurements.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/core/measurements/) | Table with the raw measurements of all sensors (e.g., light, pressure, ...) for all tags. |
| [`observations.csv`](https://raphaelnussbaumer.com/GeoLocator-DP/core/observations/) | Table with the field observations associated with tags such as equipment, retrieval, or other events. |
Run the website locally with live reload:

### 3. GeoPressureR Resources
```bash
bundle exec jekyll serve --livereload --incremental
```

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

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

## Where to find and explore GeoLocator Data Packages
Run validation tests:

<table>
<tr style="border-top-width: 1px;">
<td>
<a href="https://zenodo.org/communities/geolocator-dp/"><img src="assets/logo.png" width="100px" alt="GeoLocator DP logo"/> </a>
</td>
<td>
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>.
</td>
</tr>
<tr>
<td>
<a href="https://raphaelnussbaumer.com/GeoLocatorExplorer/"><img src="assets/logo_geolocatorexplorer.svg" width="100px" alt="GeoLocatorExplorer logo"/> </a>
</td>
<td>
Explore the most likely trajectories of all existing data packages on a 3D map with <a href="https://raphaelnussbaumer.com/GeoLocatorExplorer/">GeoLocatorExplorer</a>.
</td>
</tr>
</table>

## Ecosystem

<table>
<tr style="border-top-width: 1px;">
<td>
<a href="https://raphaelnussbaumer.com/GeoPressureManual/geolocator-intro.html"><img src="assets/cover_geopressuremanual.png" width="100px" alt="GeoPressureManual logo"/></a>
</td>
<td>
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.
</td>
</tr>
<tr>
<td>
<a href="https://raphaelnussbaumer.com/GeoLocatoR/"><img src="assets/logo_geolocator.png" width="100px" alt="GeoLocatoR logo"/></a>
</td>
<td>
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.
</td>
</tr>
<tr>
<td><a href="https://raphaelnussbaumer.com/GeoPressureR/"><img src="assets/logo_geopressurer.png" width="100px" alt="GeoPressureR logo"/></a></td>
<td>
<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.
</td>
</tr>
</table>

## How to Cite

> Nussbaumer, R. (2024). GeoLocator-DP: Data exchange format for multi-sensor geolocator. Zenodo. [10.5281/zenodo.14258411](https://doi.org/10.5281/zenodo.14258411)
```bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r tests/requirements.txt
python tests/validate_profile_and_schemas.py
```
2 changes: 1 addition & 1 deletion _config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SITE SETTINGS
title: GeoLocator DP
author: GeoLocator Development Team
url: https://raphaelnussbaumer.com
url: https://geopressure.org
baseurl: /GeoLocator-DP

# THEME SETTINGS
Expand Down
2 changes: 1 addition & 1 deletion _data/footer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

columns:
- description: > # E.g. funding acknowledgement. Can be Markdown
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.
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.

# Small print license statement to add at the bottom of the footer. Can be Markdown
# Will be prefixed by "© {{ site.author }}" if defined in _config.yml
Expand Down
1 change: 0 additions & 1 deletion _data/measurements-table-schema.json

This file was deleted.

87 changes: 87 additions & 0 deletions _data/measurements-table-schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
"name": "measurements",
"title": "Measurements",
"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!",
"$schema": "https://datapackage.org/profiles/2.0/tableschema.json",
"fields": [
{
"name": "tag_id",
"description": "Unique identifier of the tag. Foreign key to [`tags.tag_id`](/GeoLocator-DP/core/tags#tag_id).",
"type": "string",
"constraints": {
"required": true
},
"example": "18LX"
},
{
"name": "sensor",
"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>",
"type": "string",
"constraints": {
"required": true,
"enum": [
"light",
"pressure",
"activity",
"mean_acceleration_z",
"temperature_internal",
"temperature_external",
"acceleration_x",
"acceleration_y",
"acceleration_z",
"magnetic_x",
"magnetic_y",
"magnetic_z",
"wet_count",
"conductivity"
]
},
"skos:relatedMatch": "https://vocab.nerc.ac.uk/collection/MVB/current/MVB000170/",
"example": "pressure"
},
{
"name": "datetime",
"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`).",
"type": "datetime",
"constraints": {
"required": true
},
"example": "2020-04-01T22:00:00Z",
"skos:closeMatch": "http://vocab.nerc.ac.uk/collection/MVB/current/MVB000200"
},
{
"name": "value",
"description": "Value of the measurement taken by the sensor.",
"type": "number",
"constraints": {
"required": true
},
"example": "12.3"
},
{
"name": "label",
"description": "Labeling of pressure and acceleration data according to the [labeling chapter of the GeoPressureManual](https://raphaelnussbaumer.com/GeoPressureManual/labelling-tracks.html).",
"type": "string",
"constraints": {
"required": false,
"pattern": "^(flight|discard|elev_\\d+|)$"
},
"example": "elev_23",
"skos:relatedMatch": [
"https://vocab.nerc.ac.uk/collection/MVB/current/MVB000156",
"https://vocab.nerc.ac.uk/collection/MVB/current/MVB000157"
]
}
],
"missingValues": ["", "NA"],
"foreignKeys": [
{
"fields": "tag_id",
"reference": {
"resource": "tags",
"fields": "tag_id"
}
}
],
"fieldsMatch": ["superset"]
}
8 changes: 4 additions & 4 deletions _data/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

- text: Home
href: /
- text: Datapackage
href: /datapackage/
- text: Overview
href: /schema-overview/
- text: Core
menu:
- text: Tags
Expand All @@ -24,5 +24,5 @@
href: /geopressurer/edges/
- text: Pressurepaths
href: /geopressurer/pressurepaths/
- text: "GitHub"
href: "https://github.com/rafnuss/geolocator-dp"
- text: Curation
href: /curation/
14 changes: 14 additions & 0 deletions _includes/footer.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<footer class="d-print-none">
<div class="container">
<div class="small mt-2 text-center">
{% if site.author %}
<p>© {{ site.author }}</p>
{% endif %}
<p><a href="https://github.com/rafnuss/geolocator-dp">GitHub Repository</a></p>
{% if site.data.footer.license %}
<p>{{ site.data.footer.license | markdownify | remove: '<p>' | remove: '</p>' }}</p>
{% endif %}
<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>
</div>
</div>
</footer>
Loading