Software · Archived

Omdena — Urban Tree Observatory

GIS web app seeding 1M+ records from CSV to PostGIS, built with a distributed volunteer team.

a tree surrounded by metrics and data

The Urban Tree Observatory is a civic GIS project mapping the urban tree canopy of Ibagué, Colombia. The data challenge was bulk-loading over one million tree records — each with species, coordinates, and condition attributes — from flat CSV files into a PostGIS database efficiently and repeatably.

I wrote the Django management command that reads the source CSVs, validates and transforms each row, and bulk-inserts records using `bulk_create` in configurable batch sizes. On a standard dev machine the full 1M-row load completes in minutes rather than hours.

The backend is Django + GeoDjango + DRF, exposing a spatial API that powers the map visualisation. The project was built with a distributed volunteer engineering team through Omdena's collaborative AI programme. I was recognised as Lead ML Engineer for my contributions.

Management command seeding 1M+ biodiversity records from flat CSV files into PostGIS in a single run. Django/GeoDjango/DRF API serving spatial queries to a map frontend. Recognised as Lead ML Engineer by Omdena for contributions to the project.