Advanced multi-objective planning tools for designing cable-road corridors that balance productivity, ergonomics, and ecological impact in steep-terrain forestry. It provides a tool for simulating, optimizing, and indivudally adjusting cable corridor layouts.
This repository accompanies the dissertation LiDAR-based Multi-Objective Optimization for Cable Yarding in Steep Terrain. It combines high-resolution terrain data, geometric reasoning, and evolutionary optimization to automatically generate feasible cable-road networks. The toolkit supports researchers and practitioners who need to explore trade-offs between harvesting efficiency and environmental stewardship. See the figure below of an overview of how the components of the dissertation fit together:
- Generates feasible cable-road candidates through detailed geometric and mechanical checks.
- Optimizes corridor selections with single- and multi-objective approaches (AUGMECON, NSGA-II, manual weighting).
- Computes cost, ergonomic, and ecological indicators for each layout to quantify trade-offs.
- Provides interactive 2D/3D visualizations for inspecting cable corridors, anchor trees, and yarding distances.
src/main– Core Python modules for geometric computation, mechanical analysis, optimization routines, and plotting utilities.01_Notebooks– Guided notebooks for preprocessing, optimization experiments, and interactive dashboards (compute_cable_corridors.ipynb,optimization.ipynb,interface.ipynb).02_Figures– Figures, GIFs, and interactive assets used in publications and presentations.requirements.txt– Python dependencies for both notebooks and scripts.
- Create and activate a virtual environment (Python ≥ 3.10 recommended).
python -m venv .venv source .venv/bin/activate pip install --upgrade pip - Install project dependencies.
pip install -r requirements.txt
- Verify the installation by running unit tests or opening a notebook (see below).
- Prepare data – The high-resolution forest datasets used in the dissertation are not bundled. Reach out if you need access for research use, or substitute your own GeoPackage/GeoJSON files following the structures in
src/main/data_loading.py. - Generate cable-road candidates – Use
src/main/cable_road_computation_main.pyor thecompute_cable_corridors.ipynbnotebook to enumerate geometrically valid corridors and support trees. - Run optimization – Explore AUGMECON and NSGA-II Pareto fronts via
src/main/optimization_execution.pyoroptimization.ipynb, adjusting objectives and constraints as needed. - Inspect results – Launch
interface.ipynbto interactively filter Pareto-optimal corridors and visualize anchor configurations in 3D.
compute_cable_corridors.ipynb– End-to-end generation of cable road candidates with inline visual checks.optimization.ipynb– Multi-objective optimization workflows and Pareto front analysis.interface.ipynb– Plotly-based interactive selection and inspection of feasible corridor sets.debugging_and_visualization.ipynb– Utility plots for diagnosing mechanical checks and spatial filters.
The repository does not ship with proprietary forest maps or LiDAR-derived height models. To reproduce the dissertation results:
- Request access to the original datasets, or adapt your own spatial layers to match the expected schema (see
src/main/classes_cable_road_computation.py). - Update the data paths referenced in notebooks and scripts to point to your local copies.
- Re-run the notebooks to regenerate optimization results and figures.
If you build on this work, please cite the project using the metadata in CITATION.cff.
Questions, collaboration ideas, or data access requests are welcome—feel free to open an issue or reach out directly.

