Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Machine readable FITS specifications for DKIST data.

codecov

This repository contains machine readable versions of DKIST specifications for FITS files.

This repository is used alongside the dkist-header-validator to validate that SPEC122, SPEC214, extra, or trend data is compliant with these DKIST specifications. To use the validator, please click here and follow the installation instructions.

Usage

This repository contains machine readable versions of DKIST specifications 122 (level 0 FITS files), 214 l0 (Data Center ingested files) and 214 (level 1 FITS files), as well as the specs for dataset extras and trend data. There are four submodules spec122, spec214, dataset_extras, and trend; they respectively provide load_spec122, load_level0_spec214, load_spec214, load_sparse_dataset_extra, and load_sparse_trend_extra functions which return the “simple” schema for each specification. The spec214, dataset_extras, and trend modules also provide load_full_spec214, load_full_dataset_extra, and load_full_trend functions, which provides extra metadata on the schema designed for generation of documentation. Finally, all found modules provide load_processed_* functions, which adjusts the schemas based on an L0/L1 header given as input. load_processed_* are the highest-level “gimme-the-actual-spec” functions for each spec.

Releases

Version Numbers

The version number of this repository follows the following form:

vX.Y.Z

The version number of this repository does not follow semantic versioning for the Python code in the package, it versions the specifications using the following interpretation of the three components:

  • X: This number will be incremented for any change which results in a backwards incompatible change to the FITS headers. This could include things such as removal of a key or changing the interpretation of a key in any way, such as a change in units. Any change which could potentially mean that a script written to process one of our headers would yield a different result needs a change to this number.

  • Y: This number will be incremented for any backwards compatible change to the header. This means any change which leads to any character in the header changing (other than values obviously) so this could include changes to comments describing values or the addition of new keys to the header. Changing the ordering of the keys in the header does, or fields in COMMENT or HISTORY cards do not require changes to this number, but a change in a value comment would (as these may be parsed to extract units etc).

  • Z: This number will be incremented for any change to the repository which does not lead to a change in the FITS headers. This means any change to the Python API, infrastructure or anything else. The Python API should not be considered stable between increments of this number.

Changelog

When you make any change to this repository it MUST be accompanied by a changelog file. The changelog for this repository uses the towncrier package. Entries in the changelog for the next release are added as individual files (one per change) to the changelog/ directory.

Writing a Changelog Entry

A changelog entry accompanying a change should be added to the changelog/ directory. The name of a file in this directory follows a specific template:

<PULL REQUEST NUMBER>.<TYPE>[.<COUNTER>].rst

The fields have the following meanings:

  • <PULL REQUEST NUMBER>: This is the number of the pull request, so people can jump from the changelog entry to the diff on BitBucket.

  • <TYPE>: This is the type of the change and must be one of the values described below.

  • <COUNTER>: This is an optional field, if you make more than one change of the same type you can append a counter to the subsequent changes, i.e. 100.bugfix.rst and 100.bugfix.1.rst for two bugfix changes in the same PR.

The list of possible types is defined the the towncrier section of pyproject.toml, the types are:

  • spec_breaking: This is a change which is a backwards incompatible change to the FITS headers. If a release has a change of this type in it the first number in the version number must be incremented.

  • spec_change: This is a change which is a backwards compatible change to the FITS headers. If a release has a change of this type in it the second number in the version number must be incremented.

  • code_breaking: This is a change which breaks the Python API. The Python API changes only increment the last version number, so it is important to clearly document in the changelog when a release changes the API in a breaking manner.

  • code_feature: This change is a backwards compatible change to the Python API, such as a new feature.

  • bugfix: This is a change which fixes a bug in the Python API (but has no resultant change in the headers).

  • doc: A documentation change.

  • deprecation: A change which introduces a warning that a feature in the Python API will be changed in the future.

  • trivial: Any small change which doesn’t fit anywhere else, such as a change to the package infrastructure.

Rendering the Changelog at Release Time

When you are about to tag a release first you must run towncrier to render the changelog. The steps for this are as follows:

  • Install towncrier with pip install towncrier

  • Run towncrier build –version vx.y.z using the version number you want to tag.

  • Agree to have towncrier remove the fragments.

  • Add and commit your changes.

  • Tag the release.

Documentation

Note that this repo makes use of sphinx-automodapi rather than autoapi like a lot of the other DKIST DC repos to have a little more control over rendering the limited Python API.

License

This project is Copyright (c) AURA/NSO and licensed under the terms of the BSD 3-Clause license. This package is based upon the Openastronomy packaging guide which is licensed under the BSD 3-clause licence. See the licenses folder for more information.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dkist_fits_specifications-4.29.0rc3.tar.gz (95.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dkist_fits_specifications-4.29.0rc3-py3-none-any.whl (105.5 kB view details)

Uploaded Python 3

File details

Details for the file dkist_fits_specifications-4.29.0rc3.tar.gz.

File metadata

File hashes

Hashes for dkist_fits_specifications-4.29.0rc3.tar.gz
Algorithm Hash digest
SHA256 5fdc9e5a336c1b5efc2db30896a7f6bc5e19c98b95a187faef30df53aa5bc896
MD5 9075db4f362434ecf70910d6fe69945a
BLAKE2b-256 2b0ecb8666395a131d28e8711a501b86ff87068e834dfe9774f63c6623c5a18d

See more details on using hashes here.

File details

Details for the file dkist_fits_specifications-4.29.0rc3-py3-none-any.whl.

File metadata

File hashes

Hashes for dkist_fits_specifications-4.29.0rc3-py3-none-any.whl
Algorithm Hash digest
SHA256 49ad9794120fa952c7433ecc3e5939d9ec9d9b3b5cd28ba7f54b9a2425e61298
MD5 f9f87af279d20d3d65d118fae5f36699
BLAKE2b-256 775f3c771ecd177f40c6d66fb0ebc1013fc1e39ae9a6578d1e00c567704716de

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

4.29.0rc3 This release

2 files

4.28.1

2 files

4.28.0

2 files

4.27.0

2 files

4.26.0

2 files

4.25.0

2 files

4.24.1

2 files

4.24.0

2 files

4.23.0

2 files

4.22.0

2 files

4.21.0

2 files

4.20.0

2 files

4.19.0

2 files

4.18.0

2 files

4.17.0

2 files

4.16.0

2 files

4.15.0

2 files

4.14.0

2 files

4.13.0

2 files

4.12.0

2 files

4.11.0

2 files

4.10.0

2 files

4.9.0

2 files

4.8.0

2 files

4.7.0

2 files

4.6.0

2 files

4.5.0

2 files

4.4.2

2 files

4.4.1

2 files

4.3.0

2 files

4.2.0

2 files

4.1.1

2 files

4.1.0

2 files

4.0.0

2 files

3.9.0

2 files

3.8.1

2 files

3.8.0

2 files

3.7.1

2 files

3.7.0

2 files

3.6.0

2 files

3.5.0

2 files

3.4.0

2 files

3.3.0

2 files

3.2.1

2 files

3.2.0

2 files

3.1.0

2 files

3.0.0

2 files

2.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.8.0

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.9

2 files

1.4.8

2 files

1.4.7

2 files

1.4.6

2 files

1.4.5

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4

2 files

1.3.8

2 files

1.3.7

2 files

1.3.6

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3

2 files

1.2

2 files

1.1

2 files

1.0

2 files

0.9.1

2 files

0.9

2 files

0.8

2 files

0.7

2 files

0.5

2 files

0.4

2 files

0.3

2 files

0.2

2 files

0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page