Inputs and outputs

Paths such as reefs_file, coastline_file, and output_file are set on CoconetConfig—via YAML, environment variables, the CLI flags --reefs-file, --coastline-file, --output-file, or load_coconet_config / direct assignment when using the library. See Getting started.

Reef CSV (reefs_file)

Default: legacy/reefs2024.csv.

The loader in coconet/model.py (_load_reefs) reads a wide CSV with fixed column positions (0-based indices) for core attributes—for example reef identifier, latitude, longitude, region, shelf position, sector, rezone flag, priority, and site counts. Treat the legacy file as the reference layout; changing column order without updating the loader will break the model.

Coastline CSV (coastline_file)

Default: legacy/coastline.csv.

Two numeric columns interpreted as longitude and latitude for a simplified coastline polyline used in distance-related logic.

Main output: output_file

Default: output.csv.

Metadata block

The file begins with a legacy-aligned metadata section: lines echo scenario parameters (climate scenario, ensemble count, schedule years, CoTS, fishing, interventions, etc.), mirroring the style of NetLogo output templates. See _set_up_output_files in coconet/model.py for the exact order and labels.

Data header and rows

After the metadata block, a single header row defines comma-separated columns, followed by one row per reef per reporting timestep (ensemble × year).

Header (as written by the model):

Ensemble, Year, Reef_ID, Region, Shelf_position, Rezone_year, Priority, Longitude, Latitude, km_offshore, Reef_sites,

Then coral reef means by functional group: C_sa, C_ta, C_mo, C_po, C_fa, C_tt, C_out_degree, DHW,

Bleaching mortality (bleach_*), Maximum_cyclone_category, cyclone mortality (cyclone_*), predation mortality (predate_*),

CoTS age structure at reef resolution: S_1S_6, S_manta, Control_dives, Benthic_invert, Triggerfish,

Emperor and coral-trout age classes E_1E_5, E_catch_kg, G_1G_5, G_catch_kg.

write_output() appends rows for every reef for the current ensemble and year.

Search mode

When search_mode == 1 and the calendar year is at or beyond search_year, the model may write benefit / priority-related data (e.g. priority_reef_benefit.csv or worker shards merged by the main process). Inspect _maybe_write_priority_benefit and related helpers in coconet/model.py for filenames and merge behaviour.

Spin-up checkpoints

SpinupCheckpoint holds an in-memory NumPy snapshot after ensemble 0 spin-up. It is used to seed parallel worker processes; it is not a user-facing on-disk checkpoint format.

Downstream tooling

See Related tools.