{% extends "base.html" %} {% import "_macros.html" as m %} {% block title %}SBE sensors — {{ cruise }}{% endblock %} {% block masthead_title %}SBE sensors{% endblock %} {% block masthead_type %}sensor inventory & change log{% endblock %} {% block head_extra %} {% endblock %} {% block masthead_meta %}
{% if cruise %}
Cruise
{{ cruise }}
{% endif %}
Source
{{ meta.filename }}
Casts
{{ meta.n_casts }}
Devices
{{ meta.n_devices }}
Configurations
{{ meta.blocks | length }}
{% endblock %} {% block content %} {{ m.inventory_pills(inventory_pills, current_href) }} {% if meta.error %}

Could not read {{ meta.filename }}: {{ meta.error }}

{% elif not meta.has_catalog %}

No sensor catalog in {{ meta.filename }}. Rebuild it with ctdcast process config.yaml --stage profiles --force so the compiled profiles carry the sensor catalog and per-profile linkage.

{% else %}
{{ m.heading_text(1, "Sensor configuration") }} {{ m.heading_text(2, "Sensor inventory") }} {% if meta.has_channel %}{{ m.heading_text(3, "Rewiring") }}{% endif %}

{{ m.heading_text(1, "Sensor configuration") }}

Which sensor (by serial number) served each role, over which casts. Each row is a run of casts that shared the same set of sensors; a new row marks a hardware change. Serials resolve to model and calibration in the inventory below.

{% for r in meta.role_cols %}{% endfor %} {% for b in meta.blocks %} {% for r in meta.role_cols %}{% endfor %} {% endfor %}
Casts{{ r.label }}
{{ b.range }}{{ b.cells[r.key] or "—" }}

{{ m.heading_text(2, "Sensor inventory") }}

Every distinct physical device used during the cruise, identified by serial number. model_source: header = named in the file; assumed = inferred from the SensorID; operator = supplied in the cruise config.

{% for d in meta.catalog %} {% endfor %}
TypeModelSerialCalibrationMakerSourceRole(s)
{{ d.sensor_type }} {{ d.model }} {{ d.serial }} {{ d.calibration_date or "—" }} {{ d.maker }} {{ d.model_source }} {{ d.roles | join(", ") }}
{% if meta.has_channel %}

{{ m.heading_text(3, "Rewiring") }}

Casts where a device stayed the same but moved to a different acquisition channel — a re-cabling, not a hardware change.

{% if meta.rewiring %} {% for r in meta.rewiring %} {% endfor %}
CastRoleSerialMoved
{{ "%03d"|format(r.cast) }} {{ r.role }} {{ r.serial }} ch{{ r.from_ch }} → ch{{ r.to_ch }}
{% else %}

No rewiring — every device stayed on its original channel.

{% endif %} {% endif %} {% endif %} {{ js_top_links | safe }} {% endblock %}