Distance Sample Count — Wildlife Survey Analysis Pipeline
dsc_analysisThis site documents the Distance Sample Count (DSC) Analysis Ecoscope workflow, which ingests wildlife survey patrol data from EarthRanger, calculates distance sampling geometry, labels transects with satellite-derived environmental covariates, and exports analysis-ready datasets for population density modelling.
The workflow supports multiple surveys per run. Each survey is automatically split into its detected activity periods — if a survey site was visited in, say, both February and June, the workflow produces two independent, period-tagged output sets instead of one combined one. For each survey period it produces:
| Output | Format | Description |
|---|---|---|
{survey}_{period}_analysis_metadata |
CSV | Survey event metadata — transect IDs, team members, observer counts, event types, lat/lon |
{survey}_{period}_field_effort |
CSV | Per-team-member daily distance travelled, duration, and man-hours, derived from EarthRanger GPS tracks |
{survey}_{period}_analysis_data |
CSV | Wildlife observations enriched with off-transect distances, orthogonal distances, estimated animal positions, HLS NDVI, and terrain slope |
{survey}_{period}_events |
GeoPackage | Spatial point layer of wildlife observations with key distance sampling geometry columns |
{survey}_{period}_transect_areas |
GeoPackage | Visited transect corridors (buffered) labelled with mean NDVI and slope from Google Earth Engine |
{survey}_{period}_transect_lines |
GeoPackage | Visited transect centrelines (unbuffered), reprojected to EPSG:4326 |
Before running the workflow, ensure you have:
distancecountpatrol_rep — survey metadata (transect ID, team, observer count)distancecountwildlife_rep — wildlife observations (species, count, distance, radial angle)In Ecoscope, go to Workflow Templates and click Add Workflow Template. Paste the GitHub repository URL into the Github Link field and click Add Template.
https://github.com/wildlife-dynamics/dsc_analysis.git
After the template is added it appears in the Workflow Templates list as dsc_analysis. Click the card to open the workflow configuration form.
The configuration form opens with two sections at the top.
| Field | Description |
|---|---|
| Workflow Name | A short name to identify this run (required) |
| Workflow Description | Optional notes, e.g. survey season or region |
This field is required on all Ecoscope workflows. It now directly controls which patrol events are fetched: patrol events on or after Since and up to Until are retrieved from EarthRanger for every survey configured in Step 5. It is also used for timestamp display and UTC conversion.
One shared time range covers every survey in the run — there is no longer a separate time window per survey.
| Field | Description |
|---|---|
| Timezone | Local timezone for display and UTC conversion, e.g. Africa/Nairobi (UTC+03:00) |
| Since | Start of the data fetch window — applied to every survey in this run |
| Until | End of the data fetch window — applied to every survey in this run |
Select your Google Earth Engine service account from the Data Source dropdown. This connection is used to build HLS NDVI composites and terrain slope images for transect labelling.
Scroll down to Configure EarthRanger and Survey Details. Click + Add to add a survey entry — each entry is one independent survey, fetched using the shared Time Range from Step 3.
| Field | Description |
|---|---|
| Data Source | Select the EarthRanger connection for this survey (e.g. Amboseli Trust for Elephants) |
| Patrol Type ID | The numeric or UUID identifier for the DSC patrol type in EarthRanger |
| Transects Group ID | The EarthRanger spatial group ID(s) that contain this survey's transect line features. Click + Add within this field to add more than one group ID if the survey's transects span multiple spatial groups |
Once all parameters are configured, click Submit. For each survey the workflow will:
{survey}_{yyyy}_{mm} label.off_transect_dist).dist_to_centre).ortho_dist).$ECOSCOPE_WORKFLOWS_RESULTS.
All outputs are written to $ECOSCOPE_WORKFLOWS_RESULTS/. Six files are produced for
each survey period — {survey}_{period} is replaced by the name of
the EarthRanger site (subdomain) that survey's connection points to, followed by the detected
activity period (e.g. olaremotorogi_2026_02).
survey_date, id, name, team_size,
distance (km), duration (h), man_hours
dist_to_centre, radialangle, off_transect_dist,
ortho_dist, estimated geometry, NDVI_HSL, slope,
survey_id, and more
serial_number, transect_id,
dist_to_centre, ortho_dist,
intersects_transect, geometry
NDVI_HSL,
slope, and img_date_hsl_ndvi columns
For an implementation-level breakdown of every task in the compiled workflow spec — dependency versions, skip conditions, filename construction, and the full processing pipeline — see the Technical Guide (PDF).