{% 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 %}
{% 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.
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.
| Casts | {% for r in meta.role_cols %}{{ r.label }} | {% endfor %}
|---|---|
| {{ b.range }} | {% for r in meta.role_cols %}{{ b.cells[r.key] or "—" }} | {% endfor %}
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.
| Type | Model | Serial | Calibration | Maker | Source | Role(s) |
|---|---|---|---|---|---|---|
| {{ d.sensor_type }} | {{ d.model }} | {{ d.serial }} | {{ d.calibration_date or "—" }} | {{ d.maker }} | {{ d.model_source }} | {{ d.roles | join(", ") }} |
Casts where a device stayed the same but moved to a different acquisition channel — a re-cabling, not a hardware change.
{% if meta.rewiring %}| Cast | Role | Serial | Moved |
|---|---|---|---|
| {{ "%03d"|format(r.cast) }} | {{ r.role }} | {{ r.serial }} | ch{{ r.from_ch }} → ch{{ r.to_ch }} |
No rewiring — every device stayed on its original channel.
{% endif %} {% endif %} {% endif %} {{ js_top_links | safe }} {% endblock %}