TERN ecoplots data access library
Project description
EcoPlots Python Library
High-level Python clients for discovering, filtering, previewing, and retrieving
ecological field data from the TERN EcoPlots Portal.
Supports two operational modes — observations and samples — and returns
tidy structures ready for analysis (geojson, pandas.DataFrame, geopandas.GeoDataFrame).
Features
- 🔬 Two modes: observations (ecological plots) and samples (physical specimens)
- 🔎 Validated, human-friendly filters with fuzzy name resolution
- ⚡ Preview result pages before committing to full downloads
- 🗺️ Interactive spatial selection widget (draw a polygon on a map)
- 🧭 Two clients: synchronous
EcoPlotsand asynchronousAsyncEcoPlots - 💾 Save / load projects via
.ecoprojfiles for reproducible workflows
Documentation: https://terndata-ecoplots.readthedocs.io
Installation
pip install terndata.ecoplots
Supported Python: 3.10+
Modes
Observations (default)
Retrieve ecological observation data — site visits, feature types, and measured properties — across Australia's TERN monitoring network.
from terndata.ecoplots import EcoPlots
ec = EcoPlots() # mode="observations" by default
ec.select(dataset="TERN Surveillance",
site_id="TCFTNS0002")
ec.preview() # quick look (first page)
gdf = ec.get_data() # full pull as GeoDataFrame
Samples
Retrieve physical specimens — soil pit samples, plant voucher specimens, plant tissue samples, and more — with access to IGSN identifiers and sample images.
from terndata.ecoplots import EcoPlots
ec = EcoPlots(mode="samples")
ec.select(material_sample_type="Plant Voucher Specimen",
has_images=True)
df = ec.get_data(dformat="pd")
Note: In samples mode the TERN Ecosystem Surveillance dataset is applied automatically and cannot be removed.
Interactive Widgets
Both modes provide notebook widgets for interactive data exploration:
| Widget | Mode | Method |
|---|---|---|
| Spatial selector | Both | ec.select_spatial() |
| IGSN viewer | Samples | ec.view_sample_igsn() |
| Sample image viewer | Samples | ec.view_sample_images() |
Async client
from terndata.ecoplots import AsyncEcoPlots
ec = AsyncEcoPlots()
ec.select(site_id="TCFTNS0002")
gdf = await ec.get_data() # non-blocking fetch
Demo Notebooks
| Mode | Notebook |
|---|---|
| Observations | examples/demo.ipynb |
| Samples | examples/demo_samples.ipynb |
Links
- 📚 Docs: https://terndata-ecoplots.readthedocs.io/en/latest/
- 🧭 EcoPlots Portal: https://ecoplots.tern.org.au
- 🧑💻 Source: https://github.com/ternaustralia/terndata.ecoplots
- 📦 PyPI: https://pypi.org/project/terndata.ecoplots/
Contributing
Issues and pull requests are welcome — please open an issue to discuss substantial changes.
Build docs locally:
pip install -r docs/requirements.txt
make -C docs html
Run tests:
make test
Build wheels locally:
make build
Support
For questions or issues, email esupport@tern.org.au.
Citation
Terrestrial Ecosystem Research Network (2026). terndata.ecoplots: A Python package for accessing TERN EcoPlots data. https://pypi.org/project/terndata.ecoplots/
License
Licensed under the terms in LICENSE.
Copyright © 2026 TDSA (TERN Data Services and Analytics).
Author: Avinash Chandra.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file terndata_ecoplots-0.0.7b0.tar.gz.
File metadata
- Download URL: terndata_ecoplots-0.0.7b0.tar.gz
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
716b071291e4029c4a2e1653da6668f70dce867d29a3ec43cdebc75c7bc3df1f
|
|
| MD5 |
b85d9f6837d3f9b9fb927b019ea9e74d
|
|
| BLAKE2b-256 |
54b61b5719e762d20091befe7f54b83e8c4178902d1c78d336e928e5ac204aa7
|
Provenance
The following attestation bundles were made for terndata_ecoplots-0.0.7b0.tar.gz:
Publisher:
publish.yml on ternaustralia/terndata.ecoplots
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
terndata_ecoplots-0.0.7b0.tar.gz -
Subject digest:
716b071291e4029c4a2e1653da6668f70dce867d29a3ec43cdebc75c7bc3df1f - Sigstore transparency entry: 1270083760
- Sigstore integration time:
-
Permalink:
ternaustralia/terndata.ecoplots@f6ffd4cb0e1076c5835346d05e4e202c7f8a05db -
Branch / Tag:
refs/tags/0.0.7-beta - Owner: https://github.com/ternaustralia
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f6ffd4cb0e1076c5835346d05e4e202c7f8a05db -
Trigger Event:
release
-
Statement type:
File details
Details for the file terndata_ecoplots-0.0.7b0-py3-none-any.whl.
File metadata
- Download URL: terndata_ecoplots-0.0.7b0-py3-none-any.whl
- Upload date:
- Size: 129.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a2891ab88a47eaea3b9da0cda830d26f7384cccb354e33a106bdad595d82a9e
|
|
| MD5 |
77fecfa640264e90268fcd222484bb34
|
|
| BLAKE2b-256 |
bed8f8eaf4bcb216bf5f82c08c1440c44881a72a83df19a5b734879b5a73c086
|
Provenance
The following attestation bundles were made for terndata_ecoplots-0.0.7b0-py3-none-any.whl:
Publisher:
publish.yml on ternaustralia/terndata.ecoplots
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
terndata_ecoplots-0.0.7b0-py3-none-any.whl -
Subject digest:
6a2891ab88a47eaea3b9da0cda830d26f7384cccb354e33a106bdad595d82a9e - Sigstore transparency entry: 1270083853
- Sigstore integration time:
-
Permalink:
ternaustralia/terndata.ecoplots@f6ffd4cb0e1076c5835346d05e4e202c7f8a05db -
Branch / Tag:
refs/tags/0.0.7-beta - Owner: https://github.com/ternaustralia
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f6ffd4cb0e1076c5835346d05e4e202c7f8a05db -
Trigger Event:
release
-
Statement type: