Data model attributes

The purpose of the data model is to abstract away the peculiarities of the underlying file format. The same data model may be used for data created from scratch in memory, loaded from FITS or ASDF files, or from some other future format.

Calling sequences of models

List of current models

The current models are as follows:

‘ABVegaOffsetModel’, ‘AmiLgModel’, ‘FgsImgApcorrModel’, ‘MirImgApcorrModel’, ‘NrcImgApcorrModel’, ‘NisImgApcorrModel’, ‘MirLrsApcorrModel’, ‘MirMrsApcorrModel’, ‘NrcWfssApcorrModel’, ‘NisWfssApcorrModel’, ‘NrsMosApcorrModel’, ‘NrsFsApcorrModel’, ‘NrsIfuApcorrModel’, ‘AsnModel’, ‘BarshadowModel’, ‘CameraModel’, ‘CollimatorModel’, ‘CombinedSpecModel’, ‘ContrastModel’, ‘CubeModel’, ‘DarkModel’, ‘DarkMIRIModel’, ‘DisperserModel’, ‘DistortionModel’, ‘DistortionMRSModel’, ‘DrizParsModel’, ‘Extract1dImageModel’, ‘Extract1dIFUModel’, ‘FilteroffsetModel’, ‘FlatModel’, ‘NirspecFlatModel’, ‘NirspecQuadFlatModel’, ‘FOREModel’, ‘FPAModel’, ‘FringeModel’, ‘GainModel’, ‘GLS_RampFitModel’, ‘GuiderRawModel’, ‘GuiderCalModel’, ‘IFUCubeModel’, ‘NirspecIFUCubeParsModel’, ‘MiriIFUCubeParsModel’, ‘IFUFOREModel’, ‘IFUImageModel’, ‘IFUPostModel’, ‘IFUSlicerModel’, ‘ImageModel’, ‘IPCModel’, ‘IRS2Model’, ‘LastFrameModel’, ‘Level1bModel’, ‘LinearityModel’, ‘MaskModel’, ‘ModelContainer’, ‘MSAModel’, ‘MultiCombinedSpecModel’, ‘MultiExposureModel’, ‘MultiExtract1dImageModel’, ‘MultiSlitModel’, ‘MultiSpecModel’, ‘NIRCAMGrismModel’, ‘NIRISSGrismModel’, ‘OTEModel’, ‘OutlierParsModel’, ‘PathlossModel’, ‘PersistenceSatModel’, ‘PixelAreaModel’, ‘NirspecSlitAreaModel’, ‘NirspecMosAreaModel’, ‘NirspecIfuAreaModel’, ‘FgsImgPhotomModel’, ‘MirImgPhotomModel’, ‘MirLrsPhotomModel’, ‘MirMrsPhotomModel’, ‘NrcImgPhotomModel’, ‘NrcWfssPhotomModel’, ‘NisImgPhotomModel’, ‘NisSossPhotomModel’, ‘NisWfssPhotomModel’, ‘NrsFsPhotomModel’, ‘NrsMosPhotomModel’, ‘PsfMaskModel’, ‘QuadModel’, ‘RampModel’, ‘RampFitOutputModel’, ‘ReadnoiseModel’, ‘ReferenceFileModel’, ‘ReferenceCubeModel’, ‘ReferenceImageModel’, ‘ReferenceQuadModel’, ‘RegionsModel’, ‘ResetModel’, ‘ResolutionModel’, ‘MiriResolutionModel’, ‘RSCDModel’, ‘SaturationModel’, ‘SlitDataModel’, ‘SlitModel’, ‘SpecModel’, ‘SegmentationMapModel’, ‘SourceModelContainer’, ‘SpecKernelModel’, ‘SpecProfileModel’, ‘SpecProfileSingleModel’, ‘SpecTraceModel’, ‘SpecTraceSingleModel’, ‘SpecwcsModel’, ‘StrayLightModel’, ‘SuperBiasModel’, ‘ThroughputModel’, ‘TrapDensityModel’, ‘TrapParsModel’, ‘TrapsFilledModel’, ‘TsoPhotModel’, ‘WavelengthrangeModel’, ‘WaveCorrModel’, ‘WaveMapModel’, ‘WaveMapSingleModel’, ‘WfssBkgModel’

Commonly used attributes

Here are a few model attributes that are used by some of the pipeline steps.

For uncalibrated data _uncal.fits. Getting the number of integrations and the number of groups from the first and second axes assumes that the input data array is 4-D data. Pixel coordinates in the data extensions are 1-indexed as in FORTRAN and FITS headers, not 0-indexed as in Python.

  • input_model.data.shape[0]: number of integrations

  • input_model.data.shape[1]: number of groups

  • input_model.meta.exposure.nframes: number of frames per group

  • input_model.meta.exposure.groupgap: number of frames dropped

    between groups

  • input_model.meta.subarray.xstart: starting pixel in X (1-based)

  • input_model.meta.subarray.ystart: starting pixel in Y (1-based)

  • input_model.meta.subarray.xsize: number of columns

  • input_model.meta.subarray.ysize: number of rows

The data, err, dq, etc., attributes of most models are assumed to be numpy.ndarray arrays, or at least objects that have some of the attributes of these arrays. numpy is used explicitly to create these arrays in some cases (e.g. when a default value is needed). The data and err arrays are a floating point type, and the data quality arrays are an integer type.

Some of the step code makes assumptions about image array sizes. For example, full-frame MIRI data have 1032 columns and 1024 rows, and all other detectors have 2048 columns and rows; anything smaller must be a subarray. Also, full-frame MIRI data are assumed to have four columns of reference pixels on the left and right sides (the reference output array is stored in a separate image extension). Full-frame data for all other instruments have four columns or rows of reference pixels on each edge of the image.

JwstDataModel Base Class

class jwst.datamodels.JwstDataModel(init=None, schema=None, memmap=False, pass_invalid_values=None, strict_validation=None, validate_on_assignment=None, validate_arrays=False, ignore_missing_extensions=True, **kwargs)
Parameters:
initstr, tuple, ~astropy.io.fits.HDUList, ndarray, dict, None
  • None : Create a default data model with no shape.

  • tuple : Shape of the data array. Initialize with empty data array with shape specified by the.

  • file path: Initialize from the given file (FITS or ASDF)

  • readable file object: Initialize from the given file object

  • ~astropy.io.fits.HDUList : Initialize from the given ~astropy.io.fits.HDUList.

  • A numpy array: Used to initialize the data array

  • dict: The object model tree for the data model

schemadict, str (optional)

Tree of objects representing a JSON schema, or string naming a schema. The schema to use to understand the elements on the model. If not provided, the schema associated with this class will be used.

memmapbool

Turn memmap of FITS/ASDF file on or off. (default: False).

pass_invalid_valuesbool or None

If True, values that do not validate the schema will be added to the metadata. If False, they will be set to None. If None, value will be taken from the environmental PASS_INVALID_VALUES. Otherwise the default value is False.

strict_validationbool or None

If True, schema validation errors will generate an exception. If False, they will generate a warning. If None, value will be taken from the environmental STRICT_VALIDATION. Otherwise, the default value is False.

validate_on_assignmentbool or None

Defaults to ‘None’. If None, value will be taken from the environmental VALIDATE_ON_ASSIGNMENT, defaulting to ‘True’ if no environment variable is set. If ‘True’, attribute assignments are validated at the time of assignment. Validation errors generate warnings and values will be set to None. If ‘False’, schema validation occurs only once at the time of write. Validation errors generate warnings.

validate_arraysbool

If True, arrays will be validated against ndim, max_ndim, and datatype validators in the schemas.

ignore_missing_extensionsbool

When False, raise warnings when a file is read that contains metadata about extensions that are not available. Defaults to True.

kwargsdict

Additional keyword arguments passed to lower level functions. These arguments are generally file format-specific. Arguments of note are:

  • FITS

    skip_fits_update - bool or None

    DEPRECATED True to skip updating the ASDF tree from the FITS headers, if possible. If None, value will be taken from the environmental SKIP_FITS_UPDATE. Otherwise, the default value is True.

property crds_observatory

Get CRDS observatory code for this model.

Returns:
str
get_crds_parameters()

Get parameters used by CRDS to select references for this model.

Returns:
dict
on_init(init)

Hook invoked by the base class before returning a newly created model instance.

on_save(init)

Hook invoked by the base class before writing a model to a file (FITS or ASDF).

schema_url = 'http://stsci.edu/schemas/jwst_datamodel/core.schema'

The schema URI to validate the model against. If None, only basic validation of required metadata properties (filename, model_type) will occur.