Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions CHANGELOG_SDK.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog SDK

## 2026-09 `v3.1.1`

- Updated `README.md` including new sections
- Updated `MovingPandas Trajectory Collection` input files

## 2026-09 `v3.1.0`

- the template now pins `python=3.14` (was 3.11).
Expand Down
48 changes: 36 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ MoveApps

Github repository: *github.com/yourAccount/Name-of-App* *(provide the link to the repository where the code of the App can be found)*

*(Note: all text in italics are instructions for filling out this template. Please replace or delete them before publishing your App.)*

*(Optional, but very helpful for Users: add here a screenshot or example figure of a typical result of the App, e.g. a plot, a map or a table. Save the image in the repository (e.g. in a folder `documentation/`) and include it with:*
<p align="center">
<img alt="Screenshot of the Apps UI" src="documentation/screenshot_UI.png" width="600">
</p>
*)*

## Description
*Enter here the short description of the App that might also be used when filling out the description during App submission to MoveApps. This text is directly presented to Users that look through the list of Apps when compiling Workflows.*

Expand All @@ -16,12 +24,12 @@ Github repository: *github.com/yourAccount/Name-of-App* *(provide the link to th

*Examples:*

This App was developed for any taxonomic group.

This App was developed using data of birds.

This App was developed using data of red deer.

This App was developed for any taxonomic group.

This App was developed to identify kill sites, but can probably be used to identify any kind of location clusters like nests, dens or drinking holes.

#### Required data properties
Expand All @@ -38,22 +46,22 @@ The App should work for any kind of (location) data.
### Input type
*Indicate which type of input data the App requires.*

*Example*: `MovingPandas.TrajectoryCollection`
*Example:* `movingpandas.TrajectoryCollection`

### Output type
*Indicate which type of output data the App produces to be passed on to subsequent Apps.*

*Example:* `MovingPandas.TrajectoryCollection`
*Example:* `movingpandas.TrajectoryCollection`

### Artefacts
*If the App creates artefacts (e.g. csv, pdf, jpeg, shapefiles, etc), please list them here and describe each.*

*Example:* `rest_overview.csv`: csv-file with Table of all rest site properties

### Settings
*Please list and define all settings/parameters that the App requires to be set by the App user, if necessary including their unit. Please first state the Setting name the user encounters in the Settings menu defined in the appspecs.json, and between brackets the argument used in the Python code to be able to identify it quickly in the code if needed.*
*Please list and define all settings/parameters that the App requires to be set by the App user, if necessary including their unit. Please first state the Setting name the user encounters in the Settings menu defined in the `appspec.json`, and between brackets the argument name used in the code of the Python function, to be able to identify it quickly in the code if needed. Please also state the default value, if there is one.*

*Example:* `Radius of resting site` (radius): Defined radius the animal has to stay in for a given duration of time for it to be considered resting site. Unit: `metres`.
*Example:* `Radius of resting site` (radius): Defined radius the animal has to stay in for a given duration of time for it to be considered resting site. Unit: `metres`. Default: `1000`.

### Changes in output data
*Specify here how and if the App modifies the input data. Describe clearly what e.g. each additional column means.*
Expand All @@ -62,16 +70,32 @@ The App should work for any kind of (location) data.

The App adds to the input data the columns `Max_dist` and `Avg_dist`. They contain the maximum distance to the provided focal location and the average distance to it over all locations.

The App filterers the input data as selected by the user.
The App filters the input data as selected by the user.

The output data is the outcome of the model applied to the input data.

The input data remains unchanged.

### Most common errors
*Please describe shortly what most common errors of the App can be, how they occur and best ways of solving them.*
### Errors and null handling
*Please describe here the most common errors of the App: how they occur and the best ways of solving them. You can also indicate for settings, as well as for the input data, which behaviour the App is supposed to show in case of errors or NULL values/input, including possible errors that can happen if settings/parameters are improperly set. Add here also any other important information that you find the User should be aware of.*

*Examples:*

**Setting `radius`:** If no radius AND no duration are given, the input data set is returned with a warning. If no radius is given (NULL), but a duration is defined then a default radius of 1000m = 1km is set.

**Input data:** If the input data contain fewer than 3 locations per track, the App stops with an error message stating which tracks are affected.

**Common error:** If the App is used on data with a very low fix rate, no resting sites are found and the App returns an empty data set. Adapt the settings `radius` and `duration` to the resolution of your data.

### Technical details
*Optional, but recommended. Summarize here how the App works "under the hood", so that Users and developers can get a quick idea of the methods, dependencies and assumptions without having to read the code. Keep it short (a few sentences or bullet points) and mention only what is not already obvious from the sections above.*

*Suggested points to cover:*

### Null or error handling
*Please indicate for each setting as well as the input data which behaviour the App is supposed to show in case of errors or NULL values/input. Please also add notes of possible errors that can happen if settings/parameters are improperly set and any other important information that you find the user should be aware of.*
- *The main library/package(s) the core calculation relies on, ideally naming the central function(s) (e.g.`movingpandas`, `geopandas`, `scikit-learn`, `statsmodels`).*
- *The method or algorithm applied, and the reference/publication it is based on, if any.*
- *Assumptions made in the code (e.g. the locations are assumed to be independent).*
- *The level at which the data are processed (e.g. per track/individual, per track and year, on the whole data set at once).*
- *Anything relevant for performance (e.g. runtime or memory increases strongly with the number of locations, parallelization).*
- *Known simplifications or limitations of the implementation.*

*Example:* **Setting `radius`:** If no radius AND no duration are given, the input data set is returned with a warning. If no radius is given (NULL), but a duration is defined then a default radius of 1000m = 1km is set.
18 changes: 9 additions & 9 deletions resources/samples/README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Set of input data to test apps.
*Content*
- input1: 1 goat, median fix rate = 30mins, tracking duration 7.5 month, gps, local movement
- input2: 3 storks, median fix rate = 1sec, tracking duration 2 weeks, gps, local movement
- input3: 1 stork, median fix rate = 1h | 1day | 1 week, tracking duration 11.5 years, argos, includes migration
- input3: 1 stork, one track per deployment, median fix rate = 1h | 1day | 1 week, tracking duration 11.5 years, argos, includes migration
- input4: 3 geese, median fix rate = 1h | 4h, tracking duration 1.5 years, gps, includes migration

*I/O types*
Expand All @@ -14,16 +14,16 @@ Set of input data to test apps.
- data are provided in "lat/long" (EPSG:4326) and projected to "Mollweide" (ESRI:54009) in order to test your app accordingly for not projected and projected data. If your app does not allow projected data or only can deal with projected data, document and either build a automatic transformation in the app or make it fail with an informative error message. The app "Change projection" can be refered to for the user to change the projection of the data acordingly previous to your app.

*File names*
input1_LatLon.pickle.gz
input1_Mollweide.pickle.gz
input1_LatLon.pickle
input1_Mollweide.pickle

input2_LatLon.pickle.gz
input2_Mollweide.pickle.gz
input2_LatLon.pickle
input2_Mollweide.pickle

input3_LatLon.pickle.gz
input3_Mollweide.pickle.gz
input3_LatLon.pickle
input3_Mollweide.pickle

input4_LatLon.pickle.gz
input4_Mollweide.pickle.gz
input4_LatLon.pickle
input4_Mollweide.pickle


Binary file added resources/samples/input1_LatLon.pickle
Binary file not shown.
Binary file removed resources/samples/input1_LatLon.pickle.gz
Binary file not shown.
Binary file added resources/samples/input1_Mollweide.pickle
Binary file not shown.
Binary file removed resources/samples/input1_Mollweide.pickle.gz
Binary file not shown.
Binary file added resources/samples/input2_LatLon.pickle
Binary file not shown.
Binary file removed resources/samples/input2_LatLon.pickle.gz
Binary file not shown.
Binary file added resources/samples/input2_Mollweide.pickle
Binary file not shown.
Binary file removed resources/samples/input2_Mollweide.pickle.gz
Binary file not shown.
Binary file added resources/samples/input3_LatLon.pickle
Binary file not shown.
Binary file removed resources/samples/input3_LatLon.pickle.gz
Binary file not shown.
Binary file added resources/samples/input3_Mollweide.pickle
Binary file not shown.
Binary file removed resources/samples/input3_Mollweide.pickle.gz
Binary file not shown.
Binary file added resources/samples/input4_LatLon.pickle
Binary file not shown.
Binary file removed resources/samples/input4_LatLon.pickle.gz
Binary file not shown.
Binary file added resources/samples/input4_Mollweide.pickle
Binary file not shown.
Binary file removed resources/samples/input4_Mollweide.pickle.gz
Binary file not shown.
Loading