{% extends "base.html" %} {% import "_macros.html" as m %} {% set masthead_bg = "var(--role-collection)" %} {% block title %}Station index — {{ cruise }}{% endblock %} {% block masthead_type %}Station index{% endblock %} {% block head_extra %} {% endblock %} {% block masthead_meta %}
Cruise
{{ cruise }}
{% if ship %}
Ship
{{ ship }}
{% endif %} {% if date_start %}
Departure
{{ date_start }}
{% endif %} {% if date_end %}
Arrival
{{ date_end }}
{% endif %} {% if duration_days %}
Duration
{{ duration_days }} d
{% endif %}
CTD casts
{{ stations|length }}
{% if max_depth_str %}
Max depth
{{ max_depth_str }}
{% endif %}
{% endblock %} {% block content %} {% if cruise_map_b64 %}

{{ m.heading_text(1, "Map") }}

All cast positions {{- m.dbg(cruise_map_b64, "slot-half") }}
{% endif %}

{{ m.heading_text(2, "Casts") }}

{% if no_station_pages %}

No per-cast files were found, so per-cast station pages are not available (they are not built from the gridded profiles). The casts below are listed from the compiled profiles; section and time-series links still work.

{% endif %} {% if ladcp_configured %}{% endif %} {% for s in stations %} {% if ladcp_configured %} {% endif %} {% endfor %}
Cast File Start (UTC) Latitude Longitude Depth QC flaggedLADCPLinks
{% if no_station_pages %}{{ s.cast_num }}{% else %}{{ s.cast_num }}{% endif %} {{ s.filename }} {{ s.time_start_str }} {{ s.lat_str }} {{ s.lon_str }} {{ s.max_depth_str }} dbar {% if s.qc_pct is not none %}{{ s.qc_pct }}%{% else %}–{% endif %}{% if s.ladcp_has %}{% else %}{% endif %} {% if not no_station_pages %}Profile{% endif %} {% for sec in s.sections %} {{ sec.name }} {% endfor %} {% for ts in s.timeseries %} {{ ts.name }} {% endfor %}
{% if clock %}

{{ m.heading_text(3, "Acquisition clock") }}

{% if clock.caption.start_line %}

Time coordinate built from{% if clock.caption.source_variable %} {{ clock.caption.source_variable }};{% endif %} the header start line reads {{ clock.caption.start_line }}.

{% endif %}

{{ clock.coordinate_line }}

Verdict: {{ clock.kind }} — {{ clock.note }}

{% if clock.caveat %}

Caveat: {{ clock.caveat }}

{% endif %} {% if clock.kind in ["step", "constant", "drift"] %} {% if clock.figure_b64 %}
Clock offset (NMEA − System) per cast {{- m.dbg(clock.figure_b64, "slot-full") }}
{% endif %} {% if clock.suggested_yaml %}
Suggested — paste into your config.yaml, then re-run ctdcast process config.yaml --stage 2 --force
{{ clock.suggested_yaml }}
{% elif clock.kind in ["step", "constant"] and clock.correction_status == "on_gps" %}

No correction suggested — the coordinate is already on GPS (NMEA); the measured offset is a comparison artefact, not applied.

{% elif clock.kind in ["step", "constant"] and clock.correction_status == "undetermined" %}

No correction suggested — the time-coordinate source could not be determined from the headers (no start_time bracket), so whether a correction applies is unknown.

{% endif %}

Segments

{% for s in clock.segments %} {% endfor %}
CastsFirst cast (UTC)Offset (s)sd (s)n
{{ s.cast_range }}{{ s.first_utc }}{{ s.offset }}{{ s.sd }}{{ s.n }}
Per-cast clocks ({{ clock.casts|length }}) — both raw times, so the sign is checkable {% for c in clock.casts %} {% endfor %}
CastStart (UTC)SystemNMEAOffset (s)
{{ c.cast_id }}{{ c.start }}{{ c.system }}{{ c.nmea }}{{ c.offset }}
{% endif %} {% endif %} {{ js_top_links | safe }} {% endblock %}