Skip to content

Commit

Permalink
Merge pull request IMAP-Science-Operations-Center#358 from bourque/up…
Browse files Browse the repository at this point in the history
…date-naming-and-version-conventions

Updated naming and data product versioning conventions
  • Loading branch information
bourque authored Mar 8, 2024
2 parents b1da3fa + 0e3341c commit c06c8d6
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 29 deletions.
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

0 comments on commit c06c8d6

Please sign in to comment.