Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated naming and data product versioning conventions #358

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 23 additions & 21 deletions docs/source/development-guide/style-guide/naming-conventions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@ provided by the SPDF <https://spdf.gsfc.nasa.gov/guidelines/filenaming_recommend

The general filename convention is as follows::

imap_<instrument>_<datalevel>_<descriptor>_<startdate>_<enddate>_<version>.<extension>
imap_<instrument>_<data_level>_<descriptor>_<startdate>(-<repointing>)_<version>.<extension>

* ``<instrument>`` is the IMAP instrument associated with the data product. Acceptable values include: ``codice``,
``glows``, ``hi-45``, ``hi-90``, ``hit``, ``idex``, ``lo``, ``mag``, ``swapi``, ``swe``, ``ultra-45``, and
``ultra-90``
``glows``, ``hi``, ``hit``, ``idex``, ``lo``, ``mag``, ``swapi``, ``swe``, and ``ultra``

* ``<datalevel>`` is the data level for the data product. Acceptable values depend on the instrument:

Expand All @@ -31,46 +30,49 @@ The general filename convention is as follows::
* SWE: ``l0``, ``l1a``, ``l1b``, ``l2``, ``l3``

* ``<descriptor>`` stores information specific to the instrument and can store any information that is relevant. For
example, it will typically contain the data product name, and additionally may contain the pointing number (e.g.
``burst-7`` for 'burst' mode and the 7th repointing). This field can have any text or numbers as long as it doesn't
include underscores. The following is a list of expected descriptors for each instrument:
example, it will typically contain the data product name, the sensor name, the timespan of the data, etc. This field
can have any text or numbers as long as it doesn't include underscores. The following is a list of expected
descriptors for each instrument:

* CoDICE: ``hskp``, ``eng``, ``lo-priority``, ``lo-sw-angular``, ``lo-nsw-angular``, ``lo-pha``, ``hi-pha``,
``lo-sw-species``, ``lo-nsw-species``, ``hi-omni``, ``hi-sectored``
* GLOWS: ``histogram``, ``de``, ``<pointing number>``
* GLOWS: ``histogram``, ``de``
* HIT: TBD
* IDEX: TBD
* IMAP-Hi: TBD
* IMAP-Hi: ``45sensor-counts``, ``90sensor-counts``, ``45sensor-flux-map-3month`` (more TBD)
* IMAP-Lo: TBD
* IMAP-Ultra: ``<pointing number>``
* IMAP-Ultra: ``45sensor-counts``, ``90sensor-counts`` (more TBD)
* MAG: ``normal``, ``burst``
* SWAPI: TBD
* SWE: TBD

* ``<startdate>`` is the date of the 'earliest' data within the data product, in the format of ``YYYYMMDD``.
* ``<enddate>`` is the date of the 'latest' data within the data product if the data product spans more than one day.
If the data does not span multiple days, then the ``<enddate>`` will be the same as the ``<startdate>``. The format
is also ``YYYYMMDD``.
* ``<version>`` stores the version of the data product in the format is ``vXX-YY``. See the versioning conventions
described in the :ref:`data product versioning <Data Product Versioning>` documentation for further details.
* ``<repointing>`` is an optional component that describes the repointing number, in the format of ``repoint<num>``,
where ``<num>`` is a 5 digit integer (e.g. ``repoint00001``).
* ``<version>`` stores the version of the data product in the format is ``v<num>``, where ``<num>`` is a 3 digit
integer (e.g. ``v001``). See the versioning conventions described in the
:ref:`data product versioning <Data Product Versioning>` documentation for further details.
* ``<extension>`` is the data extension. For ``l0`` data products, the extension is ``pkts``. For data levels ``l1`` and
higher, the extension is ``cdf``.

Here are a few examples of acceptable filenames:

* ``imap_idex_l0_20261206_20261206_v01-01.pkts``
* ``imap_idex_l0_20261206_v001.pkts``

An IDEX L0 packet file containing data from the single day of ``2026-12-06``

* ``imap_codice_l1a_lo-pha_20261206_20261207_v01-01.cdf``
* ``imap_codice_l1a_lo-pha_20261206_v001.cdf``

A version ``01-01`` CoDICE-Lo L1a data product called ``pha`` containing data from ``2026-12-06`` to ``2026-12-07``
A version ``001`` CoDICE-Lo L1a data product called ``pha`` containing data from ``2026-12-06``

* ``imap_swe_l2_burst_20261206_20261206_v01-02.cdf``
* ``imap_glows_l1a_counts_20261206-repoint00002_v001.cdf``

A MAG L1c data product for 'burst' mode containing a single day's worth of data on ``2026-12-06``. The version ``01-02``
indicates the software/algorithm version is ``01`` and the data dependency information has been updated once to
make the data version ``02``
A version ``001`` GLOWS L1a data product for ``counts`` containing data from ``2026-12-06`` taken from repointing
position ``00002``

* ``imap_ultra_l2_45sensor-flux-map-3month_20261206_v001.cdf``

A version ``001`` ULTRA L2 flux map for the 45 sensor head for data taken over a 3 month span starting on ``20261206``


Repository Naming Conventions
Expand Down
11 changes: 3 additions & 8 deletions docs/source/development-guide/style-guide/versioning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,9 @@ This convention was discussed and decided on in `this GitHub issue
Data Product Versioning
^^^^^^^^^^^^^^^^^^^^^^^

IMAP data products are versioned with the convention ``vXX.YY``, where:

::

XX = The major version. Increase when any change to the processing algorithm is made.
YY = The minor version. Increase when data are reprocessed with the same algorithm, but with different ancillary
files or calibrations (for example, updated SPICE kernels). The minor version is also reset to 0 whenever the
major version number is updated.
IMAP data products are versioned with the convention ``v<num>``, where ``<num>`` is a 3 digit integer. The data version
is increased when data are reprocessed due to changes in the processing algorithm, or changes in ancillary files or
calibrations (for example, updated SPICE kernels).

Version numbers are specific to an instrument. In other words, each IMAP instrument has their own version number that
is only updated when that instrument's algorithm is changed, or that instrument's data are reprocessed. The version is
Expand Down
Loading