Planting Optimisation Tool
A data-driven recommendation system designed to support sustainable reforestation and agroforestry planning in Timor-Leste.
https://github.com/chameleon-company/planting-optimisation-tool
Category: Biosphere
Sub Category: Deforestation and Reforestation
Last synced: about 3 hours ago
JSON representation
Repository metadata
Developer Repository for Planting Optimisation Tool Project.
- Host: GitHub
- URL: https://github.com/chameleon-company/planting-optimisation-tool
- Owner: Chameleon-company
- License: mit
- Created: 2025-11-04T07:09:05.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2026-09-20T16:44:26.000Z (about 1 month ago)
- Last Synced: 2026-11-01T11:32:25.631Z (about 3 hours ago)
- Language: Jupyter Notebook
- Size: 106 MB
- Stars: 4
- Watchers: 0
- Forks: 29
- Open Issues: 73
- Releases: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
README.md
Planting Optimisation Tool
A data-driven recommendation system designed to support sustainable reforestation and agroforestry planning in Timor-Leste. The tool identifies the most suitable tree species for a given farm by analysing environmental conditions, species requirements, and geospatial datasets.
This project is developed in collaboration with the xPand Foundation under the Rai Matak Program.
For contribution guidelines and to get started working on the project, see CONTRIBUTING.md
Purpose
Smallholder farmers in Timor-Leste face low tree-survival rates due to poor environmental matching and limited access to ecological data. The Planting Optimisation Tool addresses this challenge by:
- Analysing farm-level conditions (rainfall, soil pH, elevation, temperature, slope, area);
- Matching farms with optimal, cautionary, and unsuitable tree species;
- Explaining limiting factors that may affect survival;
- Generating simple, accessible reports for field officers and supervisors.
Core Features
Species Recommendation
- Suitability scoring based on rainfall, pH, temperature, elevation, soil class, and other variables.
- Expert-driven weighting using AHP.
- Data-driven and hybrid weight calculation.
- Species-specific exclusion rules.
- Exclusion rule and dependency management.
- Biological dependency enforcement.
- Ecological function integration.
- Species management through the API and user interface.
Environmental Profiling
- Extraction of environmental variables from geospatial datasets and hybrid GIS/GEE data sources (e.g., rainfall, elevation, slope, and soil).
- Integration with national datasets such as Seeds of Life.
- Farm-level environmental profiles for decision support.
- DEM data integration and result storage.
- GEE baseline analysis.
- Farm spatial visualisation.
- Riparian zone identification.
- Environmental data imputation and data flagging.
Sapling Estimation
- Calculates recommended sapling count based on farm area, terrain, planting profile (e.g. 3m × 3m spacing).
- Calculates recommended sapling counts using configurable planting spacing, terrain slope limits, and farm geometry.
- Interactive single-farm sapling estimator.
- Sapling estimation algorithm performance optimisation.
- Riparian calculation improvements.
User-Facing Web Interface
- Input forms for farm conditions and environmental parameters.
- Species recommendation and environmental profile pages.
- Interactive frontend built with React and Vite.
- Visualization of environmental profile and sapling estimation outputs.
- Farm record management UI.
- Farm spatial visualisation.
- Species management UI.
- Compatibility matrix editor UI.
- Exclusion rules and dependencies UI.
- Admin dashboard foundation and core settings.
- Confirmation dialog before deleting a farm.
Technology Stack
Backend
- FastAPI, Python
- PostgreSQL / PostGIS
- Docker
Frontend
- React (Vite)
Data Science / ML
- NumPy, Pandas, scikit-learn
GIS / Remote Sensing
- Rasterio, GeoPandas
Key Features
User-Facing Web Interface
- Responsive UI, dashboards, forms, PDF report generation
- Farm record management.
- Farm spatial visualisation.
- Species management.
- Compatibility matrix management.
- Exclusion rules and dependency management.
- Admin dashboard and core settings.
Data Science / ML Features
- Suitability scoring models
- Farm archetypes and plant functional types
- Exploratory and predictive modelling
- Expert-driven weight calculation using AHP.
- Data-driven and hybrid weight calculation.
- ML-based environmental data imputation.
- Survivability model data remediation and baseline retraining.
- Survivability model training logic improvements.
- Survivability model feature engineering.
- Growth model development.
GIS / Remote Sensing
- Extraction of rainfall, soil, elevation, slope, and temperature layers from raster and geospatial datasets
- Spatial aggregation for farm-level profile generation
- DEM data integration and results storing.
- GEE baseline analysis.
- Riparian zone identification.
- Farm spatial visualisation.
Owner metadata
- Name: Chameleon
- Login: Chameleon-company
- Email: chameleon@deakin.edu.au
- Kind: organization
- Description:
- Website:
- Location: Australia
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/103407139?v=4
- Repositories: 7
- Last ynced at: 2026-10-31T11:16:15.219Z
- Profile URL: https://github.com/Chameleon-company
GitHub Events
Total
- Create event: 6
- Delete event: 11
- Fork event: 4
- Issue comment event: 101
- Issues event: 160
- Member event: 3
- Pull request event: 137
- Pull request review comment event: 143
- Pull request review event: 146
- Push event: 122
- Watch event: 3
Last Year
- Create event: 6
- Delete event: 11
- Fork event: 4
- Issue comment event: 101
- Issues event: 160
- Member event: 3
- Pull request event: 137
- Pull request review comment event: 143
- Pull request review event: 146
- Push event: 122
- Watch event: 3
Committers metadata
Last synced: 1 day ago
Total Commits: 326
Total Committers: 20
Avg Commits per committer: 16.3
Development Distribution Score (DDS): 0.534
Commits in past year: 326
Committers in past year: 20
Avg Commits per committer in past year: 16.3
Development Distribution Score (DDS) in past year: 0.534
| Name | Commits | |
|---|---|---|
| Lee Copland | l****e@l****m | 152 |
| Darrin Stephens | d****5@g****m | 49 |
| Naresh Barua | 6****a | 27 |
| Chinthika Rathnayake | c****i@g****m | 16 |
| CAHAT0002 | C****2@g****m | 11 |
| Felix Hendrawan | f****5@g****m | 11 |
| Josh Dang | 6****g | 11 |
| dependabot[bot] | 4****] | 11 |
| Thai Duy Vo | v****3@g****m | 9 |
| Tamil5102000 | t****i@g****m | 5 |
| Rachith2005 | r****t@g****m | 4 |
| Vasmai1610 | v****0@g****m | 4 |
| cbasadeakin | 1****n | 3 |
| swasti-ajmera | s****6@g****m | 3 |
| JohnMS-IT | s****2@d****u | 2 |
| Mi Vo | v****k@g****m | 2 |
| Nyanashi4849 | b****6@g****m | 2 |
| chenmuy7 | 1****7 | 2 |
| Manshi | m****4@g****m | 1 |
| hav717 | 1****7 | 1 |
Committer domains:
- deakin.edu.au: 1
- leecopland.com: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 122
Total pull requests: 79
Average time to close issues: 2 months
Average time to close pull requests: 4 days
Total issue authors: 6
Total pull request authors: 14
Average comments per issue: 0.13
Average comments per pull request: 2.46
Merged pull request: 53
Bot issues: 0
Bot pull requests: 0
Past year issues: 122
Past year pull requests: 79
Past year average time to close issues: 2 months
Past year average time to close pull requests: 4 days
Past year issue authors: 6
Past year pull request authors: 14
Past year average comments per issue: 0.13
Past year average comments per pull request: 2.46
Past year merged pull request: 53
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- dwstephens (83)
- CAHAT0002 (15)
- leecopland (11)
- Chinthika (7)
- Vasmai1610 (4)
- JohnMS-IT (2)
Top Pull Request Authors
- Naresh-Barua (15)
- leecopland (15)
- dwstephens (10)
- Chinthika (10)
- CAHAT0002 (6)
- JoshPDang (4)
- Nyanashi4849 (3)
- Tamil5102000 (3)
- Vasmai1610 (3)
- Rachith2005 (3)
- Lightsm (2)
- JohnMS-IT (2)
- FelixHendrawan (2)
- hav717 (1)
Top Issue Labels
- backend (13)
- frontend (8)
- bug (6)
- datascience (1)
- documentation (1)
Top Pull Request Labels
- frontend (2)
Dependencies
- actions/download-artifact v4 composite
- actions/github-script v7 composite
- marocchino/sticky-pull-request-comment v3 composite
- postgis/postgis 15-3.4-alpine
- redis 7-alpine
- alembic >=1.17.2
- asyncpg >=0.31.0
- bcrypt ==4.0.1
- datascience *
- diff-cover >=9.2.0
- earthengine-api >=1.7.4, !=1.7.9
- fastapi [standard]>=0.122.0
- fpdf2 >=2.7.0
- geoalchemy2 >=0.18.1
- gis *
- google-auth >=2.47.0
- httpx >=0.28.1
- locust >=2.32.0
- mermaid-cli >=0.1.2
- numpy >=1.26.0
- paracelsus >=0.14.0
- psutil >=7.1.3
- psycopg >=3.3.2
- psycopg-binary >=3.3.2
- pydantic-settings >=2.12.0
- pyjwt >=2.10.1
- pytest >=9.0.1
- pytest-asyncio >=1.3.0
- pytest-cov >=7.0.0
- pytest-mock >=3.15.1
- python-docx >=1.1.0
- python-dotenv >=1.2.1
- rasterio >=1.3.0
- redis >=5.0.0
- ruff >=0.14.5
- slowapi >=0.1.9
- sqlalchemy >=2.0.44
- sqlalchemy-schemadisplay >=2.0
- sqlalchemy-utils >=0.42.1
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- astral-sh/setup-uv v6 composite
- postgis/postgis 15-3.4-alpine docker
- redis 7-alpine docker
- actions/download-artifact v4 composite
- actions/github-script v7 composite
- marocchino/sticky-pull-request-comment v3 composite
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- astral-sh/setup-uv v6 composite
- actions/checkout v4 composite
- actions/setup-node v3 composite
- actions/upload-artifact v4 composite
- actions/github-script v7 composite
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- astral-sh/setup-uv v6 composite
- actions/github-script v7 composite
- 209 dependencies
- actions/download-artifact v4 composite
- actions/github-script v7 composite
- marocchino/sticky-pull-request-comment v3 composite
- python 3.12-slim build
- adjusttext >=1.3.0
- diff-cover >=9.2.0
- geopandas >=1.1.3
- ipykernel >=7.1.0
- joblib >=1.5.2
- matplotlib >=3.10.7
- mermaid-cli >=0.1.2
- mpltern >=1.0.4
- nbconvert >=7.17.0
- numpy >=2.3.5
- openpyxl >=3.1.5
- pandas >=2.3.3
- pygam >=0.12.0
- pytest >=9.0.1
- pytest-cov >=7.0.0
- pytest-mock >=3.15.1
- pyyaml >=6.0.3
- rasterio >=1.5.0
- rasterstats >=0.20.0
- reportlab >=4.4.10
- ruff >=0.14.5
- scikit-learn >=1.7.2
- scipy <1.17
- seaborn >=0.13.2
- shapely >=2.1.2
- statsmodels >=0.14.5
- xgboost >=3.1.1
- actions/download-artifact v4 composite
- actions/github-script v7 composite
- marocchino/sticky-pull-request-comment v3 composite
- 688 dependencies
- 110 dependencies
- @testing-library/dom ^10.4.1 development
- @testing-library/jest-dom ^6.9.1 development
- @testing-library/react ^16.3.2 development
- @testing-library/user-event ^14.6.1 development
- @types/jsdom ^21.1.7 development
- @types/leaflet ^1.9.21 development
- @types/node ^24.0.10 development
- @types/react ^19.2.14 development
- @types/react-dom ^19.2.3 development
- @vitejs/plugin-react ^4.7.0 development
- @vitest/coverage-v8 ^3.2.4 development
- copyfiles ^2.4.1 development
- eslint ^9.30.1 development
- eslint-config-prettier ^10.1.5 development
- eslint-plugin-prettier ^5.5.1 development
- eslint-plugin-react ^7.37.5 development
- eslint-plugin-react-hooks ^7.1.1 development
- husky ^9.1.7 development
- jiti ^2.4.2 development
- jsdom ^27.4.0 development
- lint-staged ^16.1.2 development
- postcss ^8.5.6 development
- postcss-scss ^4.0.9 development
- prettier ^3.6.2 development
- rimraf ^6.0.1 development
- stylelint ^16.21.1 development
- stylelint-config-recommended ^16.0.0 development
- stylelint-config-sass-guidelines ^12.1.0 development
- stylelint-order ^7.0.0 development
- stylelint-prettier ^5.0.3 development
- ts-node ^10.9.2 development
- typescript ^5.8.3 development
- typescript-eslint ^8.36.0 development
- vite ^7.3.1 development
- vitest ^3.2.4 development
- contentful ^11.10.2
- leaflet ^1.9.4
- lucide-react ^1.14.0
- react ^19.2.4
- react-dom ^19.2.4
- react-error-boundary ^6.1.1
- react-helmet-async ^3.0.0
- react-leaflet ^5.0.0
- react-router-dom ^7.13.1
Score: 7.3395376954076745