DEV Community

Kapil Singhal
Kapil Singhal

Posted on Originally published at aranyix.tech

Designing a data model for geo-tagged tree plantation records

Canonical / originally published at: https://aranyix.tech/resources/geo-tagged-tree-plantation-csr-india

Tree plantation looks like a field problem, but most of the trouble I see shows up later as a data problem. A company plants 10,000 saplings for a CSR project or a green belt condition, and a year later someone asks a simple question: how many are alive, and where? If the records were never designed to answer that, nobody can.

This post walks through the data model we use for plantation records at Aranyix. It isn't the only way to do it, but it holds up when auditors and reviewers start asking questions.

Start with the unit you will resurvey

The first decision is the unit of record. There are three common choices:

Unit Good for Trade-off
Individual tree Avenue planting, high-value species, small sites More capture effort per sapling
Plot (fixed polygon or point + radius) Dense block planting, green belts Survival is a sample estimate
Site boundary only Early-stage reporting Cannot support survival claims

Choose the unit you will come back to. If resurveys will be done by plot, the plot is your primary key, not the site.

The core entities

A minimal schema has five tables:

  1. site: id, owner organisation, programme (CSR, EC condition, CAMPA, etc.), boundary geometry (WGS84 polygon), start date.
  2. unit: id, site_id, geometry (point or polygon), species, planted_count, planted_at, captured_by.
  3. observation: id, unit_id, observed_at, status (alive/dead/replaced/missing), alive_count, photo_ref, device location, accuracy_m.
  4. activity: id, unit_id or site_id, type (watering, fencing, weeding, gap-filling), done_at, notes.
  5. evidence: id, linked entity, file hash, captured_at, location.

The important part is that observation never overwrites unit. Planting-day counts are immutable. Every resurvey is a new row. Survival at any date is then a query, not a number someone typed into a report.

Capture rules that save you later

  • Location and time come from the device at capture. Don't accept gallery uploads with typed coordinates for the planting-day record. Store the reported GPS accuracy too. A point at ±40 m is not the same evidence as one at ±5 m.
  • Hash the photo on capture. Storing a content hash with the timestamp makes it easy to show later that the image hasn't been swapped.
  • Use stable IDs printed or tagged in the field for tree-level programmes, so the resurvey team can match records without guessing.
  • Keep geometry in WGS84 (EPSG:4326) for storage and exchange. Reproject only for area calculations.

Survival as a query

With the model above, survival for a unit at date D is:

latest observation at or before D: alive_count / planted_count × 100
Enter fullscreen mode Exit fullscreen mode

At site level you aggregate across units, and you report the share of units that actually have an observation in the window. A 92% survival figure from 20% of plots is a different claim from 92% across all of them, and your output should make that visible.

Gap-filling is an activity plus a new planted batch, not an edit to the original count. Otherwise replanting quietly inflates survival.

Between field visits

Field resurveys are expensive, so most programmes do them two or three times a year. Satellite and trend monitoring fills the gaps. It won't count saplings, but a sharp drop in a vegetation index over a plot is a good trigger for an unscheduled visit. Store these signals as observations of a different type (source = satellite) so they never get mixed up with ground counts.

Exports reviewers can use

The output that matters is usually a table plus a map: per unit, planted count, latest alive count, observation date, and an evidence link. Add the site boundary as KML or GeoJSON. We call this audit-prep evidence. It's what a reviewer needs to check the claim, not a verdict on it.

What I'd do differently next time

Agree the resurvey calendar and the unit of record before planting day, in writing, with whoever does the fieldwork. Almost every messy dataset I've inherited started with a planting drive that was organised as an event, not as the first observation in a multi-year record.

The field-side version of this, including the minimum GPS, photo and time record for planting day, is in our guide to geo tagging in tree plantation.


Kapil Singhal, Director, Axentis Technologies

aranyix.tech | axentis.tech

Aranyix on LinkedIn | Axentis Technologies on LinkedIn

Top comments (0)