{% extends "base.html" %} {% import "_macros.html" as m %} {% block title %}{{ page_title }} — netCDF inventory{% endblock %} {% block masthead_title %}{{ meta.filename }}{% endblock %} {% block masthead_type %}netCDF inventory{% 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 }}
{% else %} {% macro var_table(rows, with_length=false, show_type=true, show_units=true, show_minmax=true, show_valid=true) %}| Variable | Dimensions | {% if with_length %}Length | {% endif %}{% if show_type %}Type | {% endif %}{% if show_units %}Units | {% endif %}Standard / long name | {% if show_minmax %}Min | Max | {% endif %}{% if show_valid %}Valid | {% endif %}Attributes | ||
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ v.name }} | {{ v.dims }} | {% if with_length %}{{ v.n }} | {% endif %} {% if show_type %}{{ v.dtype }} | {% endif %} {% if show_units %}{{ v.units }} | {% endif %}{% if v.standard_name %}{{ v.standard_name }}{% endif %}{% if v.standard_name and v.long_name %}: {% endif %}{% if v.long_name %}{{ v.long_name }}{% endif %} | {% if show_minmax %}{{ v.v_min }} | {{ v.v_max }} | {% endif %} {% if show_valid %}{{ v.n_valid }}{% if v.n_valid < v.n %} / {{ v.n }}{% endif %} | {% endif %}
{% if v.attrs %}
{{ v.attrs|length }} attr{{ "s" if v.attrs|length != 1 }}
|
Samples flagged QARTOD suspect (3) or fail (4) are dropped before pressure binning. The denominator is the count of finite input samples before binning, so the percentage is not distorted by binning's own reduction in point count.
A variable's exclusions are not all its own: the whole-cast soak / on-deck trim flags the same pre-descent and post-recovery scans on every variable, so a variable can be excluded here without its own gross-range or spike test having raised anything.
| Variable | Excluded | Input samples | % excluded |
|---|---|---|---|
| {{ r.name }} | {{ r.n_excluded }} | {{ r.n_input }} | {{ "%.2f"|format(r.pct) }}% |
Source → canonical name, from each variable's cnv_original_name attribute (written at read time) so the rename is reconstructable from the output alone.
| Source name | Canonical name | |
|---|---|---|
| {{ src }} | → | {{ canon }} |
Each row's Attributes cell expands to the full per-variable attribute set.
{{ var_table(meta.data_vars) }} {% if meta.sensor_catalog %}One dimensionless variable per distinct physical sensor; all provenance lives in its Attributes (model, serial, calibration date, vocabularies). No data, so no type, units, or value range.
{{ var_table(meta.sensor_catalog, show_type=false, show_units=false, show_minmax=false, show_valid=false) }} {% endif %} {% if meta.sensor_linkage %}Per profile, the catalog variable naming the sensor in each role. String-valued, so no units or numeric range.
{{ var_table(meta.sensor_linkage, show_units=false, show_minmax=false) }} {% endif %} {% if meta.sensor_channel %}Per profile, the raw CNV acquisition channel of each role's sensor (integer; -1 where unused).
{{ var_table(meta.sensor_channel, show_type=false, show_units=false) }} {% endif %} {% if meta.global_attr_groups %}Shown in the file's own write order, split into the canonical groups.
{% for grp in meta.global_attr_groups %}| {{ k }} | {{ val }} |