PlotData — a field app for recording plant species in survey plots.
PlotData is an Android application for botanists and field surveyors. It captures the species-level observations made within a survey plot — the data that spatial mapping tools such as SMASH Digital Mapper and ArcGIS FieldMaps are not designed to record. The two work side by side: the mapping tool fixes where the plot is; PlotData records what grows there.
Status: Beta (v0.2.19). In active single-developer development. The app is usable in the field but the feature set and data schema are still evolving.
PlotData reads and writes a single .scdb file — a SQLite database. It can be
prepared on the desktop before fieldwork and transferred back afterwards for
merging and export, or created from scratch on the device (new file + imported
species list) and shared per project straight from the app.
Desktop (before) → Field (PlotData) → Desktop (after)
prepare .scdb: open .scdb, record: transfer .scdb back:
· species list · projects & sites · merge with GPAP /
· project + custom fields · species per plot FieldMaps export
· export field package · site coordinates · review & export CSV
Everything PlotData needs is inside that file and inside the installed app, so it works fully offline — no signal required in the field.
- Plot-based species recording — organise work as Projects → Sites → plant records, with a fast entry widget tuned for repetitive field capture.
- Two species-entry modes — a genus→species two-dropdown for navigating large lists, and a single-box substring autocomplete for experienced botanists.
- Species lists, imported on the device — one name per line, or a full spreadsheet (e.g. a Darwin Core CSV) mapped column-by-column, carrying common name, family, origin and weed category.
- Scientific-name recall — when a name escapes you, look it up by common name, by family, or from a threatened-and-weed list, and drop it straight into entry.
- Working names — flag an uncertain plant; its rows turn red and a long-press recalls every past photo of that name to confirm a repeat sighting.
- Editable records — correct a scientific name, set name confidence, mark a specimen collected, add notes and photos after entry.
- Reusable field sets — text, integer, decimal and combo fields, built on the device or imported as JSON, appear inline during entry and travel with each record. Per-field default values pre-fill new records.
- Suspend mandatory fields per site — long-press a site number to grey out the field set and record a bare species list (plants seen between plots) or a photo-only herbarium run; remembered per site.
- Frequency-weighted sorting — species you record most float to the top, per project and across the file.
- Per-project export — share a single project as a ZIP (data + photos), with an optional word-processor species report on final export.
- Photos & reports in accessible storage — photos save to a USB-visible,
Gallery-visible
plotdata/photos/<project>folder, alongside a per-project, phone-readable HTML report that links them in context for copying to a PC. - In-app photo report — a filterable, read-only view of every site's records and photos in context, for confirming identifications on the device.
- Safer file handling — recent files show their storage location and flag same-named copies in other folders (open / remove / delete from a long-press); the database is tidied automatically when the app is backgrounded.
- Site coordinates — captured at site creation, independent of photos.
- Site photos and a high-visibility Site Display screen for reading a site number at arm's length in full daylight.
- Offline in-app documentation — a User Manual and Quick Start Guide bundled into the app, with an auto-generated table of contents.
- Flutter (Dart) targeting Android
- sqflite for the on-device SQLite (
.scdb) store - Riverpod for state, go_router for navigation
The app source lives in plotdata/.
cd plotdata
flutter pub get
flutter run # debug, on a connected device or emulator
flutter build apk # signed release build (requires the signing keystore)Requires the Flutter SDK (Dart ^3.12.1). A release build additionally needs the
upload keystore, which is not included in this repository.
The User Manual and Quick Start Guide ship inside the app (About → User Manual /
Quick Start Guide) so they are available offline in the field. The Markdown
sources are in plotdata/assets/docs/.
Released under the MIT License — © 2026 Andrew Mitchell.
Andrew Mitchell · au.id.andrew.plotdata