Horizon
Horizon is an uncertainty analysis tool for Navigate, the open-source maritime transition model. It samples uncertain input parameters (Monte Carlo or Latin Hypercube), generates one Navigate simulation per sample across scenario combinations, queues the runs, and aggregates the results — turning a single Navigate scenario into an uncertainty study.
Horizon is a companion to Navigate, not a standalone tool: it prepares, schedules, and post-processes Navigate simulations, and a working Navigate installation is required for any actual simulation run.
Disclaimer
Horizon is an open-source analytical tool intended for research and scenario analysis of maritime decarbonisation pathways. Its outputs depend on the model, assumptions, and parameter ranges selected by the user and are provided for illustrative and analytical purposes only. They should not be interpreted as forecasts, benchmarks, recommendations or commercially optimal outcomes, nor as legal, financial or investment advice. Users are responsible for selecting appropriate assumptions and for exercising their own independent judgement when interpreting any outputs.
Requirements
- Python >= 3.12
- Navigate installed
in the same environment (Horizon invokes the
navigatecommand) - pueue for queuing simulation runs —
the daemon must be running (
pueued -d)
Installation
Install Horizon into the same environment as Navigate:
conda activate nav # or whatever environment Navigate lives in
pip install .
For development with lint and test tools:
pip install -e ".[dev]"
Quick start
The bundled example runs without Navigate or pueue — it stops after
sampling (SampleOnly = TRUE) and writes sampled values plus sampling
diagnostics:
cd examples/uncertainty
horizon fuel_cost_study.hor
See examples/uncertainty/README.md for a
walkthrough, and docs/configuration.md for the
full configuration reference.
Workflow
A full uncertainty study runs in three steps:
# 1. Sample parameters, generate .nav files, queue Navigate runs via pueue
horizon my_study.hor
# 2. Watch progress (pueue) or check for failures
pueue status
horizon --status path/to/output_dir
# 3. Collect the Excel reports of completed runs into one file
horizon -c path/to/output_dir results.xlsx
The .hor file defines the study: which parameters vary, over what ranges
and distributions, across which scenario combinations. The .unc file it
points at is an ordinary Navigate simulation file with %TOKEN%
placeholders where sampled values are substituted.
Sensitivity analysis
After a study completes, Horizon can compute PRCC (partial rank correlation coefficient) sensitivities linking sampled parameters to output metrics:
horizon --sensitivity-analysis my_study.sen
Command-line options
See horizon --help for the full list. The most used flags:
| Flag | Description |
|---|---|
-c, --collect |
Collect reports from completed runs into a single Excel file. |
--report-name PATTERN |
Only collect reports matching a filename pattern (supports *). |
--priority {low,normal,high} |
Pueue scheduling priority for queued runs. |
--solver {auto,gurobi,highs} |
Solver backend passed through to Navigate. |
--navigate-flags "..." |
Extra flags appended to each navigate command (e.g. "-d ./assumptions -s"). |
--output-dir DIR |
Directory for generated scenario folders (default: next to the .unc file). |
--dry-run |
Validate the configuration and preview what would be generated. |
--status DIR |
Check pueue task status and report failures for an output directory. |
--replot DIR ... |
Queue Navigate replot jobs for directories containing plot_data.pkl. |
--sensitivity-analysis [FILE] |
Run PRCC sensitivity analysis, optionally from a .sen config. |
--calibration-plot |
Generate a calibration comparison dashboard from completed results. |
Editor support
The syntax/ folder contains Notepad++ user-defined-language
files with syntax highlighting for .hor, .sen, and Navigate files.
Documentation
docs/configuration.md—.horand.senformat referencedocs/ARCHITECTURE.md— how the code is structured, for contributors- Navigate documentation
— the simulation model itself, including the
.navfile format
Testing
pip install -e ".[dev]"
pytest
See CONTRIBUTING.md for contribution guidelines and
CODESTYLE.md for coding conventions.
License
Copyright 2026 Fonden Mærsk Mc-Kinney Møller Center for Zero Carbon Shipping.
Horizon is licensed under two licenses, depending on the type of content:
- The software — the
horizonpackage, tests, and all build, tooling, and editor-support files — is licensed under the Apache License 2.0 (see also the root LICENSE file). - The documentation, examples, and figures are licensed under Creative Commons Attribution 4.0 International (CC-BY-4.0).
Every file declares its license through an SPDX-License-Identifier header
or through the metadata in REUSE.toml, following the
REUSE specification. The full license texts are
in the LICENSES directory.
Metadata
Release files for horizon-zcs 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| horizon_zcs-1.0.0.tar.gz | 93.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| horizon_zcs-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 192.6 kB
Release files / horizon_zcs-1.0.0.tar.gz
| Download URL | horizon_zcs-1.0.0.tar.gz |
|---|---|
| Size | 93.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
81701eab468d66cf38dec2bb6f81d8882d4eb392441637067eb19f4a8123ac39
|
|
BLAKE2b-256 checksum How to use checksums |
367af799d317c6b9635ebdc2e86727c879dc6f8616abcce3c096556191245abb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / horizon_zcs-1.0.0-py3-none-any.whl
| Download URL | horizon_zcs-1.0.0-py3-none-any.whl |
|---|---|
| Size | 98.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5fdba4a93a4879efe631f1b1d4a74c5bc134047ccf42dafbea1a81bab878e040
|
|
BLAKE2b-256 checksum How to use checksums |
2a990fca2b8d69e55fc75c0a028233e32bfdefc1a5ef3d7f1154f8799ab4ed5d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency log