Import locations & deployments¶
At a glance
Import Locations and Deployments via CSV, and get timezone/DST handling right so timestamps process correctly.
- Time: ~10 minutes
- Who: anyone setting up a new project's spatial/temporal scaffolding
Importing Locations¶
Two ways to add Locations: manually via the map view, or in bulk via CSV/GPX.
CSV columns:
| Column | Meaning |
|---|---|
locationID |
The ID/name of the location |
longitude |
WGS84 decimal degrees, e.g. 19.58536776 |
latitude |
WGS84 decimal degrees, e.g. 63.55417296 |
Import via Geomap → Locations, then the Import locations from CSV/GPX action in the list header, selecting the right timezone and target Research Project.
Importing Deployments¶
Manually adding Deployments is error-prone — generate the table from the media files instead:
trapper-tools helpers template --data-path /path/to/data
Import the resulting CSV via Geomap → Deployments, then the Import deployments from CSV action in the list header. If the table includes longitude/latitude, Location rows are created automatically and you can skip the Locations import entirely.
See the full supported metadata field list at the Camtrap DP deployments spec — the generated template only fills the minimum required set.
Timezone behaviour¶
The default timezone for the TRAPPER app is Europe/Warsaw. Set your own working timezone in your User Profile settings (click your username in the top-right corner). Your working timezone affects how system notifications are displayed and is used as the default in forms — it does not change how recorded data timestamps are interpreted.
Daylight Saving Time¶
If a camera trap at a given Location does not observe DST (doesn't shift its clock in spring/autumn), mark that Location's ignore_DST flag True. With that set, all timestamps in recorded metadata from that Location (Deployment.start_date, Deployment.end_date, Resource.date_recorded) are processed ignoring DST.
Note
Two Locations have "the same timezone specification" only when both timezone and ignore_DST match — both values together describe how TRAPPER processes timestamps for that Location.
Setting timezone for a Location¶
Specify timezone and ignore_DST whichever way you add Locations:
- The map-view single-location form.
- Bulk CSV/GPX import.
- Automatic Location creation during a Deployments bulk import.
Getting this right matters — it's used to process timestamps for every Deployment and Resource tied to that Location.
Timezone rules during CSV import¶
| Import type | Rule |
|---|---|
| Locations | All locations in one file get the timezone/DST values from the form — you can only import one timezone/DST combination per CSV |
| Deployments | Can reference different Locations, but all must share the same timezone specification. If creating new Locations, they get the form's timezone/DST values |
Collections via trapper-tools |
Resources must link to Locations sharing one timezone specification; the YAML describing the Collection carries the timezone, validated against the database on upload |
Data that doesn't meet the "same timezone specification" requirement has to be split across separate import files.