Model overview

CoCoNet is a reef- and site-resolved simulation with an annual time step. The Python port follows the legacy NetLogo setup → annual loop structure and reproduces important ordering and RNG-related behaviour via NetLogoRng and explicit loop orders in coconet/model.py.

You execute the same engine from the CLI or the PyPI library (coconet-python); see Getting started.

Ensembles and spin-up

Parallel ensembles

When use_parallel_ensemble_run is true (ensemble_runs > 1 and effective worker count > 1):

ensemble_threads: 0 picks min(CPU count, simulation ensemble count), 1 forces serial simulation ensembles on the main process, N > 1 caps workers.

Coral functional groups

Reef-level cover means use keys such as sa, ta, mo, po, fa, tt (staghorn acropora, tabular acropora, etc.—see code and README). Larval dispersal and spawn routines preserve a fixed kernel iteration order (CORAL_SPAWN_KERNEL_ORDER) so RNG draws stay aligned with NetLogo.

CoTS and fisheries

CoTS dynamics use site- and reef-level state (S_* ages, S_manta, control dives). CoTS control runs only from start_CoTS_control onward, with separate passes for GBR-wide, regional, and sector-based vessel counts where configured.

Fisheries interventions modify catch caps, size limits, and outbreak-based closures as described in the repository README parameter tables.

Drivers

Interventions

Spatial interventions (seeding, shading, rubble consolidation, coral slicks, pH protection, emperor release, regional shading, etc.) gate on per-intervention start years and budgets (reefs per year, hectares, thresholds). Most respect the configured intervention bounding box except where regional CoTS control uses region codes instead.

Exact equations live on CoconetModel methods in coconet/model.py.

Further reading