This is the primary Common Archive Observation Model (CAOM) documentation. This documentation is generated from the VO-DML description of the data model.

This version: CAOM-2.4

Previous versions:

CAOM uses several vocabularies to list accepted/common string values for fields. These vocabularies can be updated between minor model versions (the constants shown in the UML below are for information only -- the values in the vocabulary links below are definitive).

There are a number of fields in the data model that store numeric values that must be qualified with a unit of measure and, in the case of astronomical coordinates, coordinate system information. This set of qualifiers is not part of the data model; in principle one could define multiple "profiles" for use by different communities or for different purposes.



Common Archive Observation Model

Table of Contents

    Abstract
    Status
    Acknowledgements
1.     model: caom2
2.     Packages and Types
2.1     [root package]
2.1.1     primitiveType:uuid
2.2     package: caom2
2.2.1     objectType: Algorithm
2.2.2     objectType: Artifact
2.2.3     enumeration: CalibrationLevel
2.2.4     objectType: CaomEntity
2.2.5     objectType: Chunk
2.2.6     objectType: CustomAxis
2.2.7     dataType: DataProductType
2.2.8     objectType: DataQuality
2.2.9     objectType: DerivedObservation
2.2.10     objectType: Energy
2.2.11     enumeration: EnergyBand
2.2.12     objectType: Environment
2.2.13     objectType: Instrument
2.2.14     objectType: Metrics
2.2.15     objectType: Observable
2.2.16     objectType: Observation
2.2.17     enumeration: ObservationIntentType
2.2.18     primitiveType: ObservationURI
2.2.19     objectType: Part
2.2.20     objectType: Plane
2.2.21     primitiveType: PlaneURI
2.2.22     objectType: Polarization
2.2.23     enumeration: PolarizationState
2.2.24     objectType: Position
2.2.25     dataType: ProductType
2.2.26     objectType: Proposal
2.2.27     objectType: Provenance
2.2.28     dataType: Quality
2.2.29     enumeration: ReleaseType
2.2.30     objectType: Requirements
2.2.31     enumeration: SegmentType
2.2.32     objectType: SimpleObservation
2.2.33     dataType: Status
2.2.34     objectType: Target
2.2.35     objectType: TargetPosition
2.2.36     dataType: TargetType
2.2.37     objectType: Telescope
2.2.38     objectType: Time
2.2.39     dataType: VocabularyTerm
2.3     package: types
2.3.1     dataType: Circle
2.3.2     dataType: Interval
2.3.3     dataType: MultiPolygon
2.3.4     dataType: Point
2.3.5     dataType: Polygon
2.3.6     dataType: SampledInterval
2.3.7     dataType: Shape
2.3.8     dataType: Vertex
2.4     package: wcs
2.4.1     dataType: Axis
2.4.2     dataType: Coord2D
2.4.3     dataType: CoordAxis1D
2.4.4     dataType: CoordAxis2D
2.4.5     dataType: CoordBounds1D
2.4.6     dataType: CoordBounds2D
2.4.7     dataType: CoordError
2.4.8     dataType: CoordFunction1D
2.4.9     dataType: CoordFunction2D
2.4.10     dataType: CoordRange1D
2.4.11     dataType: CoordRange2D
2.4.12     objectType: CustomWCS
2.4.13     dataType: Dimension2D
2.4.14     dataType: EnergyTransition
2.4.15     objectType: ObservableAxis
2.4.16     objectType: PolarizationWCS
2.4.17     dataType: RefCoord
2.4.18     dataType: Slice
2.4.19     objectType: SpatialWCS
2.4.20     objectType: SpectralWCS
2.4.21     objectType: TemporalWCS
3.     vodml-id-s
4.     Imported Models
4.1     ivoa

Abstract

The Common Archive Observation Model (CAOM) is was originally developed by CADC to support unified data discovery and access to a wide range to data collections.

Data Discovery

Data discovery is supported by the Observation and Plane classes. Together, instances of these classes describe data products in terms of how data was acquired (telescope, instrument, etc) and what data was acquired (position, energy, time, and polarization).

The data discovery parts of the model are designed to work with IVOA data discovery protocols (e.g. TAP, SIA, and SSA) that are applicable to observational data and to support providing support for IVOA data models (e.g. ObsCore) with minimal extra effort.

Data Access

Data access is supported by the Artifact class and, for more specialised cases, the Part and Chunk classes. Artifacts are stored data objects (usually files). The structure of an artifact is described by it part(s) and the data content of the a part is described by one or more chunk(s). The current model allows for a linear sequence of named parts within an artifact; this works for some aggregations (e.g. flat tar or zip files) and linear data file formats (e.g. FITS) but is not well-suited to hierarchical structures (e.g. directory structures, HDF). A chunk is able to describe astronomical data arrays (e.g. spectra, images, cubes), but cannot describe arbitrary data structures like lists of data objects or tabular data.

The data access parts of the model can be queried via discovery protocols (TAP specifically), but the normal use would be to use specialised services that make use of this metadata to orchestrate the data access. Specifically, Artifact-Part-Chunk metadata is designed to support the implementation of IVOA DataLink and SODA services. The Plane-Artifact relation maps directly to the one or more download links provided by the standard DataLink output; you invoke DataLink with a plane identifier and get back URLs for all the artifacts. Addtional metadata in the parts and chunks can be used to implement SODA cutout by using the WCS metadata in the chunks to compute the sky-to-pixel transformations necessary to extract a subset of the pixels from a larger data array.

The WCS metadata in the chunks can also be used to compute most of the Plane metadata (position, energy, time, and polarization) in a consistent/uniform way. This strategy supports the option to shift some responsibility from the data provider to the metadata service provider.



Status

The CAOM-2.4 model is the stable model used by CADC and various partners.

The red outlines around attributes or classes in the UML diagrams below indicate changes relative to the previous version.



1. Model: Common Archive Observation Model (caom2)

Authors : Patrick Dowler, Canadian Astronomy Data Centre
Date : 2019-07-12T12:00:00
Version : 2.4
Description : a general purpose data model for use as the core data model of an astronomical data centre

2.Model contents: Packages and Types

The following sub-sections present all packages in the model with their types. The packages are listed here in alphabetical order. Each sub-section contains a description of the package and a table containing its various features.

2.1 [root package]

Model caom2
child package(s) caom2
Primitive types uuid

2.1.1 primitiveType: uuid

vodml-id uuid
description represents a 128-bit binary ID in the canonical ascii UUID format

2.2 package: caom2

vodml-id caom2
description this package contains the CAOM object types and enumerations
parent caom2
Object types Algorithm Artifact CaomEntity Chunk CustomAxis DataQuality DerivedObservation Energy Environment Instrument Metrics Observable Observation Part Plane Polarization Position Proposal Provenance Requirements SimpleObservation Target TargetPosition Telescope Time
Data types DataProductType ProductType Quality Status TargetType VocabularyTerm
Enumerations CalibrationLevel EnergyBand ObservationIntentType PolarizationState ReleaseType SegmentType
Primitive types ObservationURI PlaneURI
child package(s) types wcs

2.2.1 objectType: Algorithm

vodml-id Algorithm
description the algorithm that was responsible for creating the observation; for a DerivedObservation this is the algorithm that defines the intended set of members to include
package caom2
attributes
name feature value
name type ivoa:string
vodml-id Algorithm.name
multiplicity 1
description common name of the algorithm; the value 'exposure' is reserved for use in SimpleObservation; TBD: publish a list of acceptable values as a machine-readable vocabulary?

2.2.2 objectType: Artifact

vodml-id Artifact
description a physical product (typically a file)
package caom2
extends CaomEntity [caom2:CaomEntity]
attributes
name feature value
uri type ivoa:anyURI
vodml-id Artifact.uri
multiplicity 1
description an identifier that resolves to the storage location of the artifact
productType type ProductType [caom2:ProductType]
vodml-id Artifact.productType
multiplicity 1
description the primary product type of the artifact; for multi-part artifacts where the parts have different types, this is the primary type; for example, if an artifact has a science part and an auxiliary part, the artifact should have type science
releaseType type ReleaseType [caom2:ReleaseType]
vodml-id Artifact.releaseType
multiplicity 1
description field indicating how access permissions for this artifact are determined
contentType type ivoa:string
vodml-id Artifact.contentType
multiplicity 0..1
description label specifying the format of the resolved artifact; typically a MIME-type
contentLength type ivoa:integer
vodml-id Artifact.contentLength
multiplicity 0..1
description the size of the resolved artifact; typically file size in bytes
contentChecksum type ivoa:anyURI
vodml-id Artifact.contentChecksum
multiplicity 0..1
description the checksum of the artifact data; the URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56 (NEW in CAOM-2.3)
contentRelease type ivoa:datetime
vodml-id Artifact.contentRelease
multiplicity 0..1
description timestamp after which content for the plane is public (new in CAOM-2.4); if set, this value overrides the permission implied by the releaseType and Plane release dates
contentReadGroups type ivoa:anyURI
vodml-id Artifact.contentReadGroups
multiplicity 0..*
description list of groups (of users) that are allowed to access the content of this artifact; this is applicable when the effective release date is null or in the future (new in CAOM-2.4)
compositions
name feature value
parts type Part [caom2:Part]
vodml-id Artifact.parts
multiplicity 0..*
isOrdered false
description the component parts of this artifact

2.2.3 enumeration: CalibrationLevel

vodml-id CalibrationLevel
description the degree to which data has been calibrated to remove instrumental effects; issue: there is no way to convey the integer serialised values here so it is in the description of each value
package caom2
literals
name feature value
PLANNED vodml-id CalibrationLevel.PLANNED
description (-1) planned data product that does not yet exist
RAW_INSTRUMENTAL vodml-id CalibrationLevel.RAW_INSTRUMENTAL
description (0) raw data in some opaque instrument-specific format
RAW_STANDARD vodml-id CalibrationLevel.RAW_STANDARD
description (1) raw data in a common format
CALIBRATED vodml-id CalibrationLevel.CALIBRATED
description (2) standard calibration steps have been applied
PRODUCT vodml-id CalibrationLevel.PRODUCT
description (3) additional non-standard calibration steps have been applied
ANALYSIS_PRODUCT vodml-id CalibrationLevel.ANALYSIS_PRODUCT
description (4) : data product from scientific analysis

2.2.4 objectType: CaomEntity

vodml-id CaomEntity
description base entity class to support persistence; entity attributes are generally set or updated by persistence implementations
package caom2
abstract True
Subclasses in this model Artifact Chunk Observation Part Plane
attributes
name feature value
id type uuid [caom2:uuid]
vodml-id CaomEntity.id
multiplicity 1
description globally unique identifier (primary key)
lastModified type ivoa:datetime
vodml-id CaomEntity.lastModified
multiplicity 0..1
description timestamp of last modification of this entity; the timestamp is intended to be applied or updated when the entity is stored (e.g. in a database)
maxLastModified type ivoa:datetime
vodml-id CaomEntity.maxLastModified
multiplicity 0..1
description maximum timestamp of last modification of this entity and all child entities; the timestamp is intended to be applied or updated when the entity is stored (e.g. in a database)
metaChecksum type ivoa:anyURI
vodml-id CaomEntity.metaChecksum
multiplicity 0..1
description checksum of this entity; (NEW in CAOM-2.3) The URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56. The checksum of an entity is computed by accumulating byte representation of individual metadata values in the following order: (1) CaomEntity.id for entities, (2) CaomEntity.metaProducer, (3) state fields in alphabetic order (foo.a comes before foo.b) and using depth-first recursion (foo.abc.x comes before foo.def). Null values are ignored so that the addition of new fields in future versions will not change/invalidate existing checksums until values are assigned. Non-null values are converted to bytes as follows. string: UTF-8 encoded bytes URI: UTF-8 encoded bytes of string representation float: IEEE754 single (4 bytes) double: IEEE754 double (8 bytes) boolean: convert to single byte, false=0, true=1 (1 bytes) byte: as-is (1 byte) short: (2 bytes, network byte order == big endian)) integer: (4 bytes, network byte order == big endian) long: (8 bytes, network byte order == big endian) date: truncate time to whole number of seconds and treat as a long (seconds since 1970-01-01 00:00:00 UTC)
accMetaChecksum type ivoa:anyURI
vodml-id CaomEntity.accMetaChecksum
multiplicity 0..1
description accumulated checksum of the metadata of this entity and all child entities; (NEW in CAOM-2.3) The URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56. The accumulated checksum of an entity is computed by accumulating the byte representation of entity checksums in the following order: (1) the metaChecksum of the current entity, (2) the accMetaChecksum of all child entities accumulated in order of the child's CaomEntity.id. For an entity with no children, the accMetaChecksum is derived only from the metaChecksum but it is not equal to it because it is a checksum of that checksum and not a checksum of the same metadata directly.
metaProducer type ivoa:anyURI
vodml-id CaomEntity.metaProducer
multiplicity 0..1
description identifier for the producer of this entity and child entities with null metaProducer; (NEW in CAOM-2.4) The URI should conform to the pattern {organisation}:{software name-version} (for example: cadc:cfht2caom2-1.1) and identifies the tools used to produce the metadata. This information is intended for use by operators to help diagnose metadata issues.

2.2.5 objectType: Chunk

vodml-id Chunk
description a quantitatively defined subsection of a data array; the part contains the whole array
package caom2
extends CaomEntity [caom2:CaomEntity]
attributes
name feature value
productType type ProductType [caom2:ProductType]
vodml-id Chunk.productType
multiplicity 0..1
description the type of content in this chunk, sometimes relative to the type of the artifact
naxis type ivoa:integer
vodml-id Chunk.naxis
multiplicity 0..1
description number of axes in the data array; value must be in [1,7] since CAOM supports a maximum of seven axes; furthermore, if naxis has a value, the axis index values 1 to {naxis} must be assigned (to positionAxis1, positionAxis2, energyAxis, timeAxis, polarizationAxis, customAxis, and/or observableAxis) and each axis index value assigned to those fields must be unique; axis index values above {naxis} may be assigned in order to preserve the ordering of metadata-only WCS (see FITS-WCS WCSAXES defintion for an example of how this could originate and be used)
positionAxis1 type ivoa:integer
vodml-id Chunk.positionAxis1
multiplicity 0..1
description index of the first position axis; if set: positionAxis2 and position must also have values
positionAxis2 type ivoa:integer
vodml-id Chunk.positionAxis2
multiplicity 0..1
description index of the second position axis; if set: positionAxis1 and position must also have values
energyAxis type ivoa:integer
vodml-id Chunk.energyAxis
multiplicity 0..1
description index of the energy axis; if set: energy must have a value
timeAxis type ivoa:integer
vodml-id Chunk.timeAxis
multiplicity 0..1
description index of the time axis; if set: time must have a value
polarizationAxis type ivoa:integer
vodml-id Chunk.polarizationAxis
multiplicity 0..1
description index of the polarization axis; if set: polarization must have a value
customAxis type ivoa:integer
vodml-id Chunk.customAxis
multiplicity 0..1
description index of the custom axis; if set: custom must have a value
observableAxis type ivoa:integer
vodml-id Chunk.observableAxis
multiplicity 0..1
description index of the observable axis; if set: observable must have a value
compositions
name feature value
custom type CustomWCS [caom2:CustomWCS]
vodml-id Chunk.custom
multiplicity 0..1
isOrdered false
description custom WCS description of the data array or subsection thereof; if customAxis index is null or has a value above {naxis}, then the custom WCS is metadata only (usually the degenerate case of one custom pixel)
energy type SpectralWCS [caom2:SpectralWCS]
vodml-id Chunk.energy
multiplicity 0..1
isOrdered false
description spectral WCS description of the data array or subsection thereof; if energyAxis index is null or has a value above {naxis}, then the spectral WCS is metadata only (usually the degenerate case of one spectral pixel)
observable type ObservableAxis [caom2:ObservableAxis]
vodml-id Chunk.observable
multiplicity 0..1
isOrdered false
description observable description of the data array or subsection thereof; if observableAxis index is null or has a value above {naxis}, then the observable axis is metadata only (usually the degenerate case of one observable for the whole data array)
polarization type PolarizationWCS [caom2:PolarizationWCS]
vodml-id Chunk.polarization
multiplicity 0..1
isOrdered false
description polarization WCS description of the data array or subsection thereof; if polarizationAxis index is null or has a value above {naxis}, then the polarization WCS is metadata only (usually the degenerate case of one polarization pixel)
position type SpatialWCS [caom2:SpatialWCS]
vodml-id Chunk.position
multiplicity 0..1
isOrdered false
description spatial WCS description of the data array or subsection thereof; if positionAxis1 and positionAxis2 indices are null or have values above {naxis}, then the spatial WCS is metadata only (usually the degenerate case of one spatial pixel)
time type TemporalWCS [caom2:TemporalWCS]
vodml-id Chunk.time
multiplicity 0..1
isOrdered false
description temporal WCS description of the data array or subsection thereof; if timeAxis index is null or has a value above {naxis}, then the time WCS is metadata only (usually the degenerate case of one time pixel for the whole data array)

2.2.6 objectType: CustomAxis

vodml-id CustomAxis
description description of a custom coordinate axis (new in CAOM-2.4)
package caom2
attributes
name feature value
ctype type ivoa:string
vodml-id CustomAxis.ctype
multiplicity 1
description coordinate type code
bounds type SampledInterval [caom2:SampledInterval]
vodml-id CustomAxis.bounds
multiplicity 0..1
description custom coordinate bounds
dimension type ivoa:integer
vodml-id CustomAxis.dimension
multiplicity 0..1
description number of samples along custom axis

2.2.7 dataType: DataProductType

vodml-id DataProductType
description vocabulary term used in CAOM; this class defines constants for the CAOM DataProductType vocabulary which includes all the terms from the IVOA ObsCore data model plus additional terms used in CAOM and not in ObsCore (CHANGED in CAOM-2.3)
package caom2
extends VocabularyTerm [caom2:VocabularyTerm]

2.2.8 objectType: DataQuality

vodml-id DataQuality
description description of the data quality
package caom2
attributes
name feature value
flag type Quality [caom2:Quality]
vodml-id DataQuality.flag
multiplicity 1
description flag indicating the data quality

2.2.9 objectType: DerivedObservation

vodml-id DerivedObservation
description an observation derived from one or more observations (name and intent changed in CAOM-2.4)
package caom2
extends Observation [caom2:Observation]
attributes
name feature value
members type ObservationURI [caom2:ObservationURI]
vodml-id DerivedObservation.members
multiplicity 0..*
description members are the observations grouped together by the algorithm that defines the derivation; these are the intended components of the composite product -- actual inputs are described by the provenance; members may be simple or derived observations (arbitrary heirarchy); a derived observation made by combining multiple observations is equivalent to a composite observation (CAOM-2.3 and older); derived observations with one or more members may be defined such that they only include a subset of each member (they are extracted from the progenitor)

2.2.10 objectType: Energy

vodml-id Energy
description description of the energy coverage and sampling of the data
package caom2
attributes
name feature value
bounds type SampledInterval [caom2:SampledInterval]
vodml-id Energy.bounds
multiplicity 0..1
description energy bounds that include the data (barycentric vacuum wavelength)
energyBands type EnergyBand [caom2:EnergyBand]
vodml-id Energy.energyBands
multiplicity 0..*
description standard name of the energy regime(s) included in the data (attribute name and cardinality changed in CAOM-2.4)
dimension type ivoa:integer
vodml-id Energy.dimension
multiplicity 0..1
description number of measurements (pixels) on the energy axis
resolvingPower type ivoa:real
vodml-id Energy.resolvingPower
multiplicity 0..1
description median spectral resolving power per pixel
resolvingPowerBounds type Interval [caom2:Interval]
vodml-id Energy.resolvingPowerBounds
multiplicity 0..1
description range of resolving power within the bounds
sampleSize type ivoa:real
vodml-id Energy.sampleSize
multiplicity 0..1
description median pixel size
bandpassName type ivoa:string
vodml-id Energy.bandpassName
multiplicity 0..1
description telescope- and instrument-specific name for the energy band included
transition type EnergyTransition [caom2:EnergyTransition]
vodml-id Energy.transition
multiplicity 0..1
description target energy transition for this data
restwav type ivoa:real
vodml-id Energy.restwav
multiplicity 0..1
description rest wavelength of the target energy transition

2.2.11 enumeration: EnergyBand

vodml-id EnergyBand
description a general set of energy regions that span the electromagnetic spectrum; work-around: using the name of the literal to convey the serialised value
package caom2
literals
name feature value
Radio vodml-id EnergyBand.RADIO
description wavelength greater than ~10mm
Millimeter vodml-id EnergyBand.MILLIMETER
description wavelength from 0.1 to 10mm
Infrared vodml-id EnergyBand.INFRARED
description wavelength from 1um to 0.1mm
Optical vodml-id EnergyBand.OPTICAL
description wavelength from 300nm to 1um
UV vodml-id EnergyBand.UV
description wavelength from 100 to 300nm
EUV vodml-id EnergyBand.EUV
description wavelength from 10 to 100nm
Xray vodml-id EnergyBand.XRAY
description energy from 0.12 to 120keV
Gammaray vodml-id EnergyBand.GAMMARAY
description energy greater than ~120keV

2.2.12 objectType: Environment

vodml-id Environment
description collection of measured quantities that characterise the environment at the time of observation
package caom2
attributes
name feature value
name type ivoa:real
vodml-id Environment.seeing
multiplicity 0..1
description typical atmospheric distortion (full-width-half-max of a point source)
humidity type ivoa:real
vodml-id Environment.humidity
multiplicity 0..1
description fractional relative humidity [0,1]
elevation type ivoa:real
vodml-id Environment.elevation
multiplicity 0..1
description angular elevation above horizon [0,90]
tau type ivoa:real
vodml-id Environment.tau
multiplicity 0..1
description the opacity of the atmosphere [0,1]
wavelengthTau type ivoa:real
vodml-id Environment.wavelengthTau
multiplicity 0..1
description wavelength at which opacity was measured
ambientTemp type ivoa:real
vodml-id Environment.ambientTemp
multiplicity 0..1
description ambient temperature at the telescope
photometric type ivoa:boolean
vodml-id Environment.photometric
multiplicity 0..1
description indicator that flux and/or color calibration is stable

2.2.13 objectType: Instrument

vodml-id Instrument
description the instrument used to acquire or create the observation; this could be used for both physical instruments that acquire data or software that generates it (e.g. simulated data)
package caom2
attributes
name feature value
name type ivoa:string
vodml-id Instrument.name
multiplicity 1
description common name for the instrument
keywords type ivoa:string
vodml-id Instrument.keywords
multiplicity 0..*
description additional keywords that describe the instrument or instrument configuration at the time of observation; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)

2.2.14 objectType: Metrics

vodml-id Metrics
description collection of measured quantities that describe the content of the data
package caom2
attributes
name feature value
sourceNumberDensity type ivoa:real
vodml-id Metrics.sourceNumberDensity
multiplicity 0..1
description number of sources detected per unit area
background type ivoa:real
vodml-id Metrics.background
multiplicity 0..1
description background level
backgroundStddev type ivoa:real
vodml-id Metrics.backgroundStddev
multiplicity 0..1
description standard deviation in the background level
fluxDensityLimit type ivoa:real
vodml-id Metrics.fluxDensityLimit
multiplicity 0..1
description flux density with a signal:noise ratio of 10
magLimit type ivoa:real
vodml-id Metrics.magLimit
multiplicity 0..1
description magnitude with a signal:noise ratio of 10
sampleSNR type ivoa:real
vodml-id Metrics.sampleSNR
multiplicity 0..1
description signal:noise ratio for a representative subset of samples (new in CAOM-2.4)

2.2.15 objectType: Observable

vodml-id Observable
description description of the sample (pixel) values
package caom2
attributes
name feature value
flag type ivoa:string
vodml-id Observable.ucd
multiplicity 1
description Unified Content Descriptor (UCD) that says what kind of quantity is stored

2.2.16 objectType: Observation

vodml-id Observation
description an observation is a single top-level entry in an astronomy data centre
package caom2
extends CaomEntity [caom2:CaomEntity]
abstract True
Subclasses in this model DerivedObservation SimpleObservation
attributes
name feature value
collection type ivoa:string
vodml-id Observation.collection
multiplicity 1
description the name of the data collection this observation belongs to
observationID type ivoa:string
vodml-id Observation.observationID
multiplicity 1
description the collection-specific identifier for this observation
metaRelease type ivoa:datetime
vodml-id Observation.metaRelease
multiplicity 0..1
description timestamp after which metadata for the observation instance is public
sequenceNumber type ivoa:integer
vodml-id Observation.sequenceNumber
multiplicity 0..1
description a collection-specific sequence number for observations; re-use or reset is collection specific
type type ivoa:string
vodml-id Observation.type
multiplicity 0..1
description the type of observation (FITS OBSTYPE keyword); usually OBJECT for intent = science
intent type ObservationIntentType [caom2:ObservationIntentType]
vodml-id Observation.intent
multiplicity 1
description the intent of the original observer in acquiring this data
metaReadGroups type ivoa:anyURI
vodml-id Observation.metaReadGroups
multiplicity 0..*
description set of groups with read permission on observation metadata (new in 2.4)
compositions
name feature value
algorithm type Algorithm [caom2:Algorithm]
vodml-id Observation.algorithm
multiplicity 1
isOrdered false
description the algorithm or process that created this observation
environment type Environment [caom2:Environment]
vodml-id Observation.environment
multiplicity 0..1
isOrdered false
description the environmental conditions at the time of observation
instrument type Instrument [caom2:Instrument]
vodml-id Observation.instrument
multiplicity 0..1
isOrdered false
description the instrument or detector used to acquire the data
planes type Plane [caom2:Plane]
vodml-id Observation.planes
multiplicity 0..*
isOrdered false
description the component planes belonging to this observation
proposal type Proposal [caom2:Proposal]
vodml-id Observation.Proposal
multiplicity 0..1
isOrdered false
description the science proposal underwhich this observation was created
requirements type Requirements [caom2:Requirements]
vodml-id Observation.requirements
multiplicity 0..1
isOrdered false
description the observational requirements specified by the observer or proposal
target type Target [caom2:Target]
vodml-id Observation.target
multiplicity 0..1
isOrdered false
description the intended target of the observation
targetPosition type TargetPosition [caom2:TargetPosition]
vodml-id Observation.targetPosition
multiplicity 0..1
isOrdered false
description the intended target position for this observation
telescope type Telescope [caom2:Telescope]
vodml-id Observation.telescope
multiplicity 0..1
isOrdered false
description the telescope or facility where this observation was created

2.2.17 enumeration: ObservationIntentType

vodml-id ObservationIntentType
description the intent of the original observer in acquiring this observation; work-around: using the name of the literal to convey the serialised value
package caom2
literals
name feature value
science vodml-id ObservationIntentType.SCIENCE
description the intent of this observation was to create science data
calibration vodml-id ObservationIntentType.CALIBRATION
description the intent of this observation was to create calibration data

2.2.18 primitiveType: ObservationURI

vodml-id ObservationURI
description Observation identifier of the form caom:{Observation.collection}/{Observation.observationID}
package caom2

2.2.19 objectType: Part

vodml-id Part
description format-specific name of this part; this is typically something like a FITS extension or a file within a container
package caom2
extends CaomEntity [caom2:CaomEntity]
attributes
name feature value
name type ivoa:string
vodml-id Part.name
multiplicity 1
description the name of this part of the artifact; this is typically something like a FITS extension name or number or a filename
productType type ProductType [caom2:ProductType]
vodml-id Part.productType
multiplicity 0..1
description the type of content in this part, sometimes relative to the type of the artifact
compositions
name feature value
chunks type Chunk [caom2:Chunk]
vodml-id Part.chunks
multiplicity 0..*
isOrdered false
description component chunks that belong to this part

2.2.20 objectType: Plane

vodml-id Plane
description a component of an observation that describes one product of the observation
package caom2
extends CaomEntity [caom2:CaomEntity]
attributes
name feature value
creatorID type ivoa:anyURI
vodml-id Plane.creatorID
multiplicity 0..1
description identifier for this product assigned by the creator; typically made up of the Observation.collection, Observation.observationID, and Plane.productID and in the form of an IVOA dataset identifier (NEW in CAOM-2.3)
productID type ivoa:string
vodml-id Plane.productID
multiplicity 1
description collection- and observationID-specific identifier for this product
metaRelease type ivoa:datetime
vodml-id Plane.metaRelease
multiplicity 0..1
description timestamp after which metadata for the plane is public; this metaRelease timestamp applies to all children of the plane and to artifacts with releaseType=meta
metaReadGroups type ivoa:anyURI
vodml-id Plane.metaReadGroups
multiplicity 0..*
description list of groups (of users) that are allowed to view the metadata of the plane; this is applicable when metaRelease is null or in the future (new in CAOM-2.4)
dataRelease type ivoa:datetime
vodml-id Plane.dataRelease
multiplicity 0..1
description timestamp after which data for the plane is public; this dataRelease timestamp applies to all children of the plane and to artifacts with releaseType=data
dataReadGroups type ivoa:anyURI
vodml-id Plane.dataReadGroups
multiplicity 0..*
description list of groups (of users) that are allowed to access the data of the plane; this is applicable when dataRelease is null or in the future (new in CAOM-2.4)
calibrationLevel type CalibrationLevel [caom2:CalibrationLevel]
vodml-id Plane.calibrationLevel
multiplicity 0..1
description standard classification of the degree to which the data is calibrated
dataProductType type DataProductType [caom2:DataProductType]
vodml-id Plane.dataProductType
multiplicity 0..1
description standard classification of the type of data product; describes the logical data type for the main artifacts
compositions
name feature value
artifacts type Artifact [caom2:Artifact]
vodml-id Plane.artifacts
multiplicity 0..*
isOrdered false
description the component artifacts belonging to this plane
custom type CustomAxis [caom2:CustomAxis]
vodml-id Plane.custom
multiplicity 0..1
isOrdered false
description description of a custom coordinate axis in the data (new in CAOM-2.4); Since different custom coordinate types can be used with different planes, instances of CustomAxis can only be compared sensibly if they have the same coordinate type.
energy type Energy [caom2:Energy]
vodml-id Plane.energy
multiplicity 0..1
isOrdered false
description descritpion of the energy(ies) included in the data
metrics type Metrics [caom2:Metrics]
vodml-id Plane.metrics
multiplicity 0..1
isOrdered false
description collection of measured quantities that describe the content of the data
observable type Observable [caom2:Observable]
vodml-id Plane.observable
multiplicity 0..1
isOrdered false
description description of the sample (pixel) values; (new in CAOM-2.4) In previous versions the observable was assumed to be flux or intensity of EM radiation.
polarization type Polarization [caom2:Polarization]
vodml-id Plane.polarization
multiplicity 0..1
isOrdered false
description description of the polarization(s) included in the data
position type Position [caom2:Position]
vodml-id Plane.position
multiplicity 0..1
isOrdered false
description description of the position(s) included in the data
provenance type Provenance [caom2:Provenance]
vodml-id Plane.provenance
multiplicity 0..1
isOrdered false
description description of the provenance of the data
quality type DataQuality [caom2:DataQuality]
vodml-id Plane.quality
multiplicity 0..1
isOrdered false
description flag indicating the quality of the data
time type Time [caom2:Time]
vodml-id Plane.time
multiplicity 0..1
isOrdered false
description description of the time(s) included in the data

2.2.21 primitiveType: PlaneURI

vodml-id PlaneURI
description Plane identifier of the form caom:{Observation.collection}/{Observation.observationID}/{Plane.productID} aka {observationURI}/{Plane.productID}
package caom2

2.2.22 objectType: Polarization

vodml-id Polarization
description description of polarization measurements included in the data
package caom2
attributes
name feature value
states type PolarizationState [caom2:PolarizationState]
vodml-id Polarization.states
multiplicity 0..*
description standard polarization states included
dimension type ivoa:integer
vodml-id Polarization.dimension
multiplicity 0..1
description number of polarization states included

2.2.23 enumeration: PolarizationState

vodml-id PolarizationState
description a classification of polarization (Stokes states plus other related quantities); work-around: using the name of the literal to convey the serialised value
package caom2
literals
name feature value
I vodml-id PolarizationState.I
description unpolarized
Q vodml-id PolarizationState.Q
description Stokes linear Q
U vodml-id PolarizationState.U
description Stokes linear U
V vodml-id PolarizationState.V
description Stokes circular V
RR vodml-id PolarizationState.RR
description right-right circular
LL vodml-id PolarizationState.LL
description left-left circular
RL vodml-id PolarizationState.RL
description right-left cross-circular
LR vodml-id PolarizationState.LR
description left-right cross-circular
XX vodml-id PolarizationState.XX
description X parallel linear
YY vodml-id PolarizationState.YY
description Y parallel linear
XY vodml-id PolarizationState.XY
description XY cross-linear
YX vodml-id PolarizationState.YX
description YX cross-linear
POLI vodml-id PolarizationState.POLI
description linear polarized intensity: sqrt(Q^2 + U^2)
FPOLI vodml-id PolarizationState.FPOLI
description fractional linear polarization: POLI/I
POLA vodml-id PolarizationState.POLA
description linear polarization angle: 1/2 arctan(U,Q)
EPOLI vodml-id PolarizationState.EPOLI
description elliptical polarization intensity: sqrt(Q^2 + U^2 + V^2)
CPOLI vodml-id PolarizationState.CPOLI
description circular polarization intensity: |V|
NPOLI vodml-id PolarizationState.NPOLI
description unpolarized intensity: I - EPOLI

2.2.24 objectType: Position

vodml-id Position
description description of the position coverage and sampling of the data
package caom2
attributes
name feature value
bounds type Shape [caom2:Shape]
vodml-id Position.bounds
multiplicity 0..1
description spatial boundary that includes the data
dimension type Dimension2D [caom2:Dimension2D]
vodml-id Position.dimension
multiplicity 0..1
description number of separate measurements (pixels) along each axis
resolution type ivoa:real
vodml-id Position.resolution
multiplicity 0..1
description median spatial resolution (full-width-half-max) per pixel
resolutionBounds type Interval [caom2:Interval]
vodml-id Position.resolutionBounds
multiplicity 0..1
description range of resolution within the bounds
sampleSize type ivoa:real
vodml-id Position.sampleSize
multiplicity 0..1
description median pixel size
timeDependent type ivoa:boolean
vodml-id Position.timeDependent
multiplicity 0..1
description indicates that the observation was taken with non-siderial tracking so the resulting position is time-dependent; this usually explains why no bounds is available

2.2.25 dataType: ProductType

vodml-id ProductType
description this class defines constants for the CAOM ProductType vocabulary (CHANGED in CAOM-2.3)
package caom2
extends VocabularyTerm [caom2:VocabularyTerm]

2.2.26 objectType: Proposal

vodml-id Proposal
description description of the science proposal or programme that initiated the observation
package caom2
attributes
name feature value
proposalID type ivoa:string
vodml-id Proposal.proposalID
multiplicity 1
description collection-specific identifier for the proposal
pi type ivoa:string
vodml-id Proposal.pi
multiplicity 0..1
description proper name of the principal investigator
project type ivoa:string
vodml-id Proposal.project
multiplicity 0..1
description common name of the project this proposal belongs to; typically used for larger or long-running projects that include mutliple proposals
title type ivoa:string
vodml-id Proposal.title
multiplicity 0..1
description title of the proposal
keywords type ivoa:string
vodml-id Proposal.keywords
multiplicity 0..*
description additional keywords that describe the science goals of the proposal; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)

2.2.27 objectType: Provenance

vodml-id Provenance
description description of how this data was produced
package caom2
attributes
name feature value
name type ivoa:string
vodml-id Provenance.name
multiplicity 1
description collection-specific common name of the process
reference type ivoa:anyURI
vodml-id Provenance.reference
multiplicity 0..1
description collection-specific common name of the process
version type ivoa:string
vodml-id Provenance.version
multiplicity 0..1
description version of the software or process that produced the data
project type ivoa:string
vodml-id Provenance.project
multiplicity 0..1
description name of the project that produced the data; data produced in a uniform way are typically labelled with the same project name
producer type ivoa:string
vodml-id Provenance.producer
multiplicity 0..1
description common name of the entity (person, institute, etc) responsible for producing the data
runID type ivoa:string
vodml-id Provenance.runID
multiplicity 0..1
description collection-specific identifier for the processing instance that produced the data; this identifier can typcially be traced in log files or logging systems
lastExecuted type ivoa:string
vodml-id Provenance.lastExecuted
multiplicity 0..1
description timestamp describing when this process last ran and produced data
keywords type ivoa:string
vodml-id Provenance.keywords
multiplicity 0..*
description additional keywords that describe the processing; this may include both general descriptive words and those specific to this particular execution of the processing; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)
inputs type PlaneURI [caom2:PlaneURI]
vodml-id Provenance.inputs
multiplicity 0..*
description local identifier for input planes; these are the actual inputs that went into the product

2.2.28 dataType: Quality

vodml-id Quality
description vocabulary term used in CAOM; this class defines constants for the CAOM Quality vocabulary (CHANGED from enumeration in CAOM-2.4)
package caom2
extends VocabularyTerm [caom2:VocabularyTerm]

2.2.29 enumeration: ReleaseType

vodml-id ReleaseType
description a flag indicating how an artifact is classified to determine access permissions; work-around: using the name of the literal to convey the serialised value
package caom2
literals
name feature value
data vodml-id ReleaseType.DATA
description access permission checks assume the protected item is data
meta vodml-id ReleaseType.META
description access permission checks assume the protected item is metadata

2.2.30 objectType: Requirements

vodml-id Requirements
description the observational requirements specified by the proposal
package caom2
attributes
name feature value
flag type Status [caom2:Status]
vodml-id Requirements.flag
multiplicity 1
description flag indicating degree to which requirements were satisfied by the observation

2.2.31 enumeration: SegmentType

vodml-id SegmentType
description code used in CAG description of polygons
package caom2
literals
name feature value
LINE vodml-id SegmentType.LINE
description (0) line from previous to this vertex
MOVE vodml-id SegmentType.MOVE
description (1) move from previous to this vertex
CLOSE vodml-id SegmentType.CLOSE
description (2) line from previous vertex to last vertex with type MOVE

2.2.32 objectType: SimpleObservation

vodml-id SimpleObservation
description an observation created directly by operating an instrument or process
package caom2
extends Observation [caom2:Observation]

2.2.33 dataType: Status

vodml-id Status
description vocabulary term used in CAOM; this class defines constants for the CAOM Status vocabulary (CHANGED from enumeration in CAOM-2.4)
package caom2
extends VocabularyTerm [caom2:VocabularyTerm]

2.2.34 objectType: Target

vodml-id Target
description the target of an observation
package caom2
attributes
name feature value
name type ivoa:string
vodml-id Target.name
multiplicity 1
description proper name of the target
targetID type ivoa:anyURI
vodml-id Target.targetID
multiplicity 0..1
description resolvable target identifier (new in CAOM-2.4); the targetID URI should be of the form {scheme}:{id} so it can be resolved (for example: naif:170100)
type type TargetType [caom2:TargetType]
vodml-id Target.type
multiplicity 0..1
description type of target; typically used to figure out what the target name means and where to look for additional information about it
redshift type ivoa:real
vodml-id Target.redshift
multiplicity 0..1
description cosmological redshift of the target
standard type ivoa:boolean
vodml-id Target.standard
multiplicity 0..1
description indicates that the target is typically used as a standard (astrometric, photometric, etc)
moving type ivoa:boolean
vodml-id Target.moving
multiplicity 0..1
description indicates that the target is a moving object; used for solar system objects but not high proper motion stars
keywords type ivoa:string
vodml-id Target.keywords
multiplicity 0..*
description additional keywords that describe the target; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)

2.2.35 objectType: TargetPosition

vodml-id TargetPosition
description the intended position of the observation (not the position of the intended or actual target)
package caom2
attributes
name feature value
coordsys type ivoa:string
vodml-id TargetPosition.coordsys
multiplicity 1
description the coordinate system of the coordinates
equinox type ivoa:real
vodml-id TargetPosition.equinox
multiplicity 0..1
description the equinox of the coordinates
coordinates type Point [caom2:Point]
vodml-id TargetPosition.coordinates
multiplicity 1
description the coordinates

2.2.36 dataType: TargetType

vodml-id TargetType
description vocabulary term used in CAOM; this class defines constants for the CAOM TargetType vocabulary (CHANGED from enumeration in CAOM-2.4)
package caom2
extends VocabularyTerm [caom2:VocabularyTerm]

2.2.37 objectType: Telescope

vodml-id Telescope
description the telescope used to acquire the data for an observation
package caom2
attributes
name feature value
name type ivoa:string
vodml-id Telescope.name
multiplicity 1
description common name of the telescope; TBD: reference to a standard list of names?
geoLocationX type ivoa:real
vodml-id Telescope.geoLocationX
multiplicity 0..1
description x-coordinate of the geocentric location of the telescope at the time of observation (see FITS WCS Paper III)
geoLocationY type ivoa:real
vodml-id Telescope.geoLocationY
multiplicity 0..1
description y-coordinate of the geocentric location of the telescope at the time of observation (see FITS WCS Paper III)
geoLocationZ type ivoa:real
vodml-id Telescope.geoLocationZ
multiplicity 0..1
description z-coordinate of the geocentric location of the telescope at the time of observation (see FITS WCS Paper III)
keywords type ivoa:string
vodml-id Telescope.keywords
multiplicity 0..*
description additional keywords that describe the telescope or telscope configuration at the time of observation; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)

2.2.38 objectType: Time

vodml-id Time
description description of the time coverage and sampling of the data
package caom2
attributes
name feature value
bounds type SampledInterval [caom2:SampledInterval]
vodml-id Time.bounds
multiplicity 0..1
description time bounds that include the data
dimension type ivoa:integer
vodml-id Time.dimension
multiplicity 0..1
description number of measurements (pixels) on the time axis
resolution type ivoa:real
vodml-id Time.resolution
multiplicity 0..1
description median temporal resolution per pixel
resolutionBounds type Interval [caom2:Interval]
vodml-id Time.resolutionBounds
multiplicity 0..1
description range of resolution within the bounds
sampleSize type ivoa:real
vodml-id Time.sampleSize
multiplicity 0..1
description median pixel size
exposure type ivoa:real
vodml-id Time.exposure
multiplicity 0..1
description median exposure time per pixel

2.2.39 dataType: VocabularyTerm

vodml-id VocabularyTerm
description base class of a single term (word) in a vocabulary (NEW in CAOM-2.3)
package caom2
abstract True
Subclasses in this model DataProductType ProductType Quality Status TargetType
attributes
name feature value
namespace type ivoa:anyURI
vodml-id VocabularyTerm.namespace
multiplicity 1
description globally unique namespace for the vocabulary
term type ivoa:string
vodml-id VocabularyTerm.term
multiplicity 1
description the word from the vocabulary
term type ivoa:boolean
vodml-id VocabularyTerm.base
multiplicity 1
description flag indicating of the vocabulary namespace is a base vocabulary

2.3 package: types

vodml-id types
description data types
parent caom2
Data types Circle Interval MultiPolygon Point Polygon SampledInterval Shape Vertex
Parent package caom2

2.3.1 dataType: Circle

vodml-id Circle
description a circular region on the sky
package types
extends Shape [caom2:Shape]
attributes
name feature value
center type Point [caom2:Point]
vodml-id Shape.center
multiplicity 1
description TBD
radius type ivoa:real
vodml-id Circle.radius
multiplicity 1
description TBD

2.3.2 dataType: Interval

vodml-id Interval
description a set of numeric values defined by a lower and upper bound (bounds included: [a,b])
package types
attributes
name feature value
lower type ivoa:real
vodml-id Interval.lower
multiplicity 1
description TBD
upper type ivoa:real
vodml-id Interval.upper
multiplicity 1
description TBD

2.3.3 dataType: MultiPolygon

vodml-id MultiPolygon
description a region on the sky defined a sequence of points connected by great-circle segments; each simple polygon is is terminated by a special type of vertex and multiple simple polygons are permitted to describe disconnected regions as a single value
package types
attributes
name feature value
vertices type Vertex [caom2:Vertex]
vodml-id MultiPolygon.vertices
multiplicity 3..*
description TBD

2.3.4 dataType: Point

vodml-id Point
description [TODO add description!]
package types
Subclasses in this model Vertex
attributes
name feature value
cval1 type ivoa:real
vodml-id Point.cval1
multiplicity 1
description TBD
cval1 type ivoa:real
vodml-id Point.cval2
multiplicity 1
description TBD

2.3.5 dataType: Polygon

vodml-id Polygon
description a simple polygon region on the sky defined a sequence of points connected by great-circle segments
package types
extends Shape [caom2:Shape]
attributes
name feature value
points type Point [caom2:Point]
vodml-id Polygon.points
multiplicity 3..*
description TBD
samples type MultiPolygon [caom2:MultiPolygon]
vodml-id Polygon.samples
multiplicity 1
description TBD

2.3.6 dataType: SampledInterval

vodml-id SampledInterval
description an interval with (possibly sparse) sub-sampling
package types
attributes
name feature value
lower type ivoa:real
vodml-id SampledInterval.lower
multiplicity 1
description TBD
upper type ivoa:real
vodml-id SampledInterval.upper
multiplicity 1
description TBD
samples type Interval [caom2:Interval]
vodml-id SampledInterval.samples
multiplicity 1..*
description the samples within an interval describe possible holes in the interval; in the simple case there is one sample that is identical to the outer interval; samples within an interval are not allowed to overlap (TBD: the bounds of adjacent samples may be equal?)

2.3.7 dataType: Shape

vodml-id Shape
description [TODO add description!]
package types
abstract True
Subclasses in this model Circle Polygon

2.3.8 dataType: Vertex

vodml-id Vertex
description [TODO add description!]
package types
extends Point [caom2:Point]
attributes
name feature value
type type SegmentType [caom2:SegmentType]
vodml-id Vertex.type
multiplicity 1
description TBD

2.4 package: wcs

vodml-id wcs
description World Coordinate System (WCS) data types
parent caom2
Object types CustomWCS ObservableAxis PolarizationWCS SpatialWCS SpectralWCS TemporalWCS
Data types Axis Coord2D CoordAxis1D CoordAxis2D CoordBounds1D CoordBounds2D CoordError CoordFunction1D CoordFunction2D CoordRange1D CoordRange2D Dimension2D EnergyTransition RefCoord Slice
Parent package caom2

2.4.1 dataType: Axis

vodml-id Axis
description one-dimensional coordinate axis description
package wcs
attributes
name feature value
ctype type ivoa:string
vodml-id Axis.ctype
multiplicity 1
description TBD
ctype type ivoa:string
vodml-id Axis.cunit
multiplicity 0..1
description TBD

2.4.2 dataType: Coord2D

vodml-id Coord2D
description a two-dimensional (pair) of reference coordinates
package wcs
attributes
name feature value
coord1 type RefCoord [caom2:RefCoord]
vodml-id Coord2D.coord1
multiplicity 1
description TBD
coord2 type RefCoord [caom2:RefCoord]
vodml-id Coord2D.coord2
multiplicity 1
description TBD

2.4.3 dataType: CoordAxis1D

vodml-id CoordAxis1D
description a one-dimensional coordinate axis: quantity, values, errors; it is usually only necessary to specify one of the range, bounds, or function as they describe the world and pixel coordinate coverage at different levels of detail and the less detailed description is redundant (exception: when the range or bounds and function are both specified, the range/bounds is a subset of the pixels described by the function and denotes the valid pixels
package wcs
attributes
name feature value
axis type Axis [caom2:Axis]
vodml-id CoordAxis1D.axis
multiplicity 1
description description of the quantity
error type CoordError [caom2:CoordError]
vodml-id CoordAxis1D.error
multiplicity 0..1
description errors
range type CoordRange1D [caom2:CoordRange1D]
vodml-id CoordAxis1D.range
multiplicity 0..1
description pixel and world coordinate values covered by this axis (min,max)
bounds type CoordBounds1D [caom2:CoordBounds1D]
vodml-id CoordAxis1D.bounds
multiplicity 0..1
description pixel and world coordinate values covered by this axis (min,max of tiles)
function type CoordFunction1D [caom2:CoordFunction1D]
vodml-id CoordAxis1D.function
multiplicity 0..1
description pixel and world coordinate values covered by this axis (coordinates of every pixel)

2.4.4 dataType: CoordAxis2D

vodml-id CoordAxis2D
description a two-dimensional coordinate axis pair: quantity, values, errors; it is usually only necessary to specify one of the range, bounds, or function as they describe the world and pixel coordinate coverage at different levels of detail and the less detailed description is redundant (exception: when the range or bounds and function are both specified, the range/bounds is a subset of the pixels described by the function and denotes the valid pixels
package wcs
attributes
name feature value
axis1 type Axis [caom2:Axis]
vodml-id CoordAxis2D.axis1
multiplicity 1
description first axis of the spatial coordinate system; usually longitude
axis2 type Axis [caom2:Axis]
vodml-id CoordAxis2D.axis2
multiplicity 1
description second axis of the spatial coordinate system; usually latitude
error1 type CoordError [caom2:CoordError]
vodml-id CoordAxis2D.error1
multiplicity 0..1
description position errors on the first axis
error2 type CoordError [caom2:CoordError]
vodml-id CoordAxis2D.error2
multiplicity 0..1
description position errors on the second axis
range type CoordRange2D [caom2:CoordRange2D]
vodml-id CoordAxis2D.range
multiplicity 0..1
description pixel and world coordinate values covered by this axis (min,max)
bounds type CoordBounds2D [caom2:CoordBounds2D]
vodml-id CoordAxis2D.bounds
multiplicity 0..1
description pixel and world coordinate values covered by this axis (boundary)
function type CoordFunction2D [caom2:CoordFunction2D]
vodml-id CoordAxis2D.function
multiplicity 0..1
description pixel and world coordinate values covered by this axis (coordinates of every pixel

2.4.5 dataType: CoordBounds1D

vodml-id CoordBounds1D
description a one-dimensional sequence of reference coordinate ranges
package wcs
attributes
name feature value
vertices type CoordRange1D [caom2:CoordRange1D]
vodml-id CoordBounds1D.samples
multiplicity 1..*
description TBD

2.4.6 dataType: CoordBounds2D

vodml-id CoordBounds2D
description a two-dimensional region in pixel and world coordinates; this can be used to specify a simple polygon boundary in pixel and world coordinates
package wcs
attributes
name feature value
vertices type Coord2D [caom2:Coord2D]
vodml-id CoordBounds2D.vertices
multiplicity 1..*
description the vertices of the polygon with implicit segment from the last vertex back to the first

2.4.7 dataType: CoordError

vodml-id CoordError
description coordinate error from FITS WCS
package wcs
attributes
name feature value
crder type ivoa:real
vodml-id CoordError.rnder
multiplicity 0..1
description TBD
csyer type ivoa:real
vodml-id CoordError.syser
multiplicity 0..1
description TBD

2.4.8 dataType: CoordFunction1D

vodml-id CoordFunction1D
description a one-dimensional (linear) WCS coordinate transformation function
package wcs
attributes
name feature value
dimension type ivoa:integer
vodml-id CoordFunction1D.dimension
multiplicity 1
description number of pixels along the axis
refCoord type RefCoord [caom2:RefCoord]
vodml-id CoordFunction1D.refCoord
multiplicity 1
description the reference pixel and world coordinate values
delta type ivoa:real
vodml-id CoordFunction1D.delta
multiplicity 1
description delta in world coordinate value (size of one pixel)

2.4.9 dataType: CoordFunction2D

vodml-id CoordFunction2D
description a two-dimensional (linear) WCS coordinate transformation function; this can be used to compute the world coordinates of every pixel
package wcs
attributes
name feature value
dimension type Dimension2D [caom2:Dimension2D]
vodml-id CoordFunction2D.dimension
multiplicity 1
description number of pixels along each axis of the two-dimensional space (FITS: NAXISi)
refCoord type Coord2D [caom2:Coord2D]
vodml-id CoordFunction2D.refCoord
multiplicity 1
description two-dimensional reference pixel and world coordinate values (FITS: CRPIXi, CRVALi)
cd11 type ivoa:real
vodml-id CoordFunction2D.cd11
multiplicity 1
description two-dimensional scale and rotation (CD) matrix (FITS: CD1_1)
cd12 type ivoa:real
vodml-id CoordFunction2D.cd12
multiplicity 1
description two-dimensional scale and rotation (CD) matrix (FITS: CD1_2)
cd21 type ivoa:real
vodml-id CoordFunction2D.cd21
multiplicity 1
description two-dimensional scale and rotation (CD) matrix (FITS: CD2_1)
cd22 type ivoa:real
vodml-id CoordFunction2D.cd22
multiplicity 1
description two-dimensional scale and rotation (CD) matrix (FITS: CD2_2)

2.4.10 dataType: CoordRange1D

vodml-id CoordRange1D
description a one-dimensional range of reference coordinates
package wcs
attributes
name feature value
start type RefCoord [caom2:RefCoord]
vodml-id CoordRange1D.start
multiplicity 1
description TBD
end type RefCoord [caom2:RefCoord]
vodml-id CoordRange1D.end
multiplicity 1
description TBD

2.4.11 dataType: CoordRange2D

vodml-id CoordRange2D
description a two-dimensional range of reference coordinates; this can be used to specify an axis-aligned bounding box in pixel and world coordinates
package wcs
attributes
name feature value
start type Coord2D [caom2:Coord2D]
vodml-id CoordRange2D.start
multiplicity 1
description the two-dimensional reference coordinates with minimum longitude and latitude
end type Coord2D [caom2:Coord2D]
vodml-id CoordRange2D.end
multiplicity 1
description the two-dimensional reference coordinates with maximum longitude and latitude

2.4.12 objectType: CustomWCS

vodml-id CustomWCS
description one-dimensional pixel and world coordinates describing a non-standard (custom) coordinate axis
package wcs
attributes
name feature value
axis type CoordAxis1D [caom2:CoordAxis1D]
vodml-id CustomWCS.axis
multiplicity 1
description description of the custom axis

2.4.13 dataType: Dimension2D

vodml-id Dimension2D
description dimension (number of pixels) for a two-dimensional axis
package wcs
attributes
name feature value
naxis1 type ivoa:integer
vodml-id Dimension2D.naxis1
multiplicity 1
description TBD
naxis2 type ivoa:integer
vodml-id Dimension2D.naxis2
multiplicity 1
description TBD

2.4.14 dataType: EnergyTransition

vodml-id EnergyTransition
description [TODO add description!]
package wcs
attributes
name feature value
species type ivoa:string
vodml-id EnergyTransition.species
multiplicity 1
description TODO
transition type ivoa:string
vodml-id EnergyTransition.transition
multiplicity 1
description TODO

2.4.15 objectType: ObservableAxis

vodml-id ObservableAxis
description an axis in the data (array) that varies by observable rather than coordinate; this axis is used when the data array containts values with different meaning in different subsets of the array (e.g. a row of pixels with wavelength values and a second row with flux values)
package wcs
attributes
name feature value
dependent type Slice [caom2:Slice]
vodml-id ObservableAxis.dependent
multiplicity 1
description the part of the array containing the observable values
independent type Slice [caom2:Slice]
vodml-id ObservableAxis.independent
multiplicity 0..1
description the part of the array containing coordinate values

2.4.16 objectType: PolarizationWCS

vodml-id PolarizationWCS
description one-dimensional pixel and world coordinates describing the polarization states
package wcs
attributes
name feature value
axis type CoordAxis1D [caom2:CoordAxis1D]
vodml-id PolarizationWCS.axis
multiplicity 1
description description of the polarization axis

2.4.17 dataType: RefCoord

vodml-id RefCoord
description a reference coordinate with a pixel and cooresponding world coordinate value
package wcs
attributes
name feature value
pix type ivoa:real
vodml-id RefCoord.pix
multiplicity 1
description TBD
val type ivoa:real
vodml-id RefCoord.val
multiplicity 1
description TBD

2.4.18 dataType: Slice

vodml-id Slice
description a one-dimensional subset of a two-dimensional array
package wcs
attributes
name feature value
axis type Axis [caom2:Axis]
vodml-id Slice.axis
multiplicity 1
description description of the values within a the slice
bin type ivoa:integer
vodml-id Slice.bin
multiplicity 1
description a constant-pixel value in the two-dimensional array that specifies the pixels in the slice

2.4.19 objectType: SpatialWCS

vodml-id SpatialWCS
description World Coordinate System (WCS) metadata for the position axes
package wcs
attributes
name feature value
axis type CoordAxis2D [caom2:CoordAxis2D]
vodml-id SpatialWCS.axis
multiplicity 1
description description of the two-dimensional position axes
coordsys type ivoa:string
vodml-id SpatialWCS.coordsys
multiplicity 0..1
description name of the coordinate system
equinox type ivoa:real
vodml-id SpatialWCS.equinox
multiplicity 0..1
description equinox of the coordinate system
resolution type ivoa:real
vodml-id SpatialWCS.resolution
multiplicity 0..1
description effective resolution of the data (FWHM of a point source); this is usually the value measured at the time of data acquisition

2.4.20 objectType: SpectralWCS

vodml-id SpectralWCS
description [TODO add description!]
package wcs
attributes
name feature value
axis type CoordAxis1D [caom2:CoordAxis1D]
vodml-id SpectralWCS.axis
multiplicity 1
description description of the one-dimensional energy axis
specsys type ivoa:string
vodml-id SpectralWCS.specsys
multiplicity 1
description reference frame for the spectral coordinate
ssysobs type ivoa:string
vodml-id SpectralWCS.ssysobs
multiplicity 0..1
description reference frame that is constant over the range of the non-spectral world coordinates
ssyssrc type ivoa:string
vodml-id SpectralWCS.ssyssrc
multiplicity 0..1
description reference frame for the velocity of the source (zsource)
restfrq type ivoa:real
vodml-id SpectralWCS.restfrq
multiplicity 0..1
description rest frequency of the spectral feature of interest
restwav type ivoa:real
vodml-id SpectralWCS.restwav
multiplicity 0..1
description rest wavelength of the spectral feature of interest
velosys type ivoa:real
vodml-id SpectralWCS.velosys
multiplicity 0..1
description correction for the observatory's motion with respect to the barycenter
zsource type ivoa:real
vodml-id SpectralWCS.zsource
multiplicity 0..1
description redshift of the source (relative to ssyssrc)
velang type ivoa:real
vodml-id SpectralWCS.velang
multiplicity 0..1
description angle of true velocity from tangent to line of sight
bandpassName type ivoa:string
vodml-id SpectralWCS.bandpassName
multiplicity 0..1
description telescope- or instrument-specific name for the energy band covered by the data; this is usually a filter name
transition type EnergyTransition [caom2:EnergyTransition]
vodml-id SpectralWCS.transition
multiplicity 0..1
description description of the energy transition observed
resolvingPower type ivoa:real
vodml-id SpectralWCS.resolvingPower
multiplicity 0..1
description ratio of wavelength to resolution (lambda/delta-lambda)

2.4.21 objectType: TemporalWCS

vodml-id TemporalWCS
description one-dimensional pixel and world coordinates describing the time axis
package wcs
attributes
name feature value
axis type CoordAxis1D [caom2:CoordAxis1D]
vodml-id TemporalWCS.axis
multiplicity 1
description description of the time axis
timesys type ivoa:string
vodml-id TemporalWCS.timesys
multiplicity 0..1
description time scale for the time coordinates
trefpos type ivoa:string
vodml-id TemporalWCS.trefpos
multiplicity 0..1
description reference position for the time coordinates
mjdref type ivoa:real
vodml-id TemporalWCS.mjdref
multiplicity 0..1
description base time offset; time coordinate values are relative to this
exposure type ivoa:real
vodml-id TemporalWCS.exposure
multiplicity 0..1
description duration in time that the instrument was collecting data
resolution type ivoa:real
vodml-id TemporalWCS.resolution
multiplicity 0..1
description smallest separation in time that can be distinguished


3.Element Identifiers/VO-DMLrefs

The following table shows all fully qualified vodml-ids for this data model. It is ordered alphabetically and the identifiers are hyper-linked to the location in the document where the actual element is fully defined.
vodml-id feature type description
vo-dml:model a general purpose data model for use as the core data model of an astronomical data centre
uuid primitiveType represents a 128-bit binary ID in the canonical ascii UUID format
caom2 package this package contains the CAOM object types and enumerations
Algorithm objectType the algorithm that was responsible for creating the observation; for a DerivedObservation this is the algorithm that defines the intended set of members to include
Algorithm.name attribute common name of the algorithm; the value 'exposure' is reserved for use in SimpleObservation; TBD: publish a list of acceptable values as a machine-readable vocabulary?
Artifact objectType a physical product (typically a file)
Artifact.contentChecksum attribute the checksum of the artifact data; the URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56 (NEW in CAOM-2.3)
Artifact.contentLength attribute the size of the resolved artifact; typically file size in bytes
Artifact.contentReadGroups attribute list of groups (of users) that are allowed to access the content of this artifact; this is applicable when the effective release date is null or in the future (new in CAOM-2.4)
Artifact.contentRelease attribute timestamp after which content for the plane is public (new in CAOM-2.4); if set, this value overrides the permission implied by the releaseType and Plane release dates
Artifact.contentType attribute label specifying the format of the resolved artifact; typically a MIME-type
Artifact.parts composition the component parts of this artifact
Artifact.productType attribute the primary product type of the artifact; for multi-part artifacts where the parts have different types, this is the primary type; for example, if an artifact has a science part and an auxiliary part, the artifact should have type science
Artifact.releaseType attribute field indicating how access permissions for this artifact are determined
Artifact.uri attribute an identifier that resolves to the storage location of the artifact
CalibrationLevel enumeration the degree to which data has been calibrated to remove instrumental effects; issue: there is no way to convey the integer serialised values here so it is in the description of each value
CalibrationLevel.ANALYSIS_PRODUCT literal (4) : data product from scientific analysis
CalibrationLevel.CALIBRATED literal (2) standard calibration steps have been applied
CalibrationLevel.PLANNED literal (-1) planned data product that does not yet exist
CalibrationLevel.PRODUCT literal (3) additional non-standard calibration steps have been applied
CalibrationLevel.RAW_INSTRUMENTAL literal (0) raw data in some opaque instrument-specific format
CalibrationLevel.RAW_STANDARD literal (1) raw data in a common format
CaomEntity objectType base entity class to support persistence; entity attributes are generally set or updated by persistence implementations
CaomEntity.accMetaChecksum attribute accumulated checksum of the metadata of this entity and all child entities; (NEW in CAOM-2.3) The URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56. The accumulated checksum of an entity is computed by accumulating the byte representation of entity checksums in the following order: (1) the metaChecksum of the current entity, (2) the accMetaChecksum of all child entities accumulated in order of the child's CaomEntity.id. For an entity with no children, the accMetaChecksum is derived only from the metaChecksum but it is not equal to it because it is a checksum of that checksum and not a checksum of the same metadata directly.
CaomEntity.id attribute globally unique identifier (primary key)
CaomEntity.lastModified attribute timestamp of last modification of this entity; the timestamp is intended to be applied or updated when the entity is stored (e.g. in a database)
CaomEntity.maxLastModified attribute maximum timestamp of last modification of this entity and all child entities; the timestamp is intended to be applied or updated when the entity is stored (e.g. in a database)
CaomEntity.metaChecksum attribute checksum of this entity; (NEW in CAOM-2.3) The URI must conform to the pattern {algorithm}:{value}, for example: md5:4be91751541fd804e7207663a0822f56. The checksum of an entity is computed by accumulating byte representation of individual metadata values in the following order: (1) CaomEntity.id for entities, (2) CaomEntity.metaProducer, (3) state fields in alphabetic order (foo.a comes before foo.b) and using depth-first recursion (foo.abc.x comes before foo.def). Null values are ignored so that the addition of new fields in future versions will not change/invalidate existing checksums until values are assigned. Non-null values are converted to bytes as follows. string: UTF-8 encoded bytes URI: UTF-8 encoded bytes of string representation float: IEEE754 single (4 bytes) double: IEEE754 double (8 bytes) boolean: convert to single byte, false=0, true=1 (1 bytes) byte: as-is (1 byte) short: (2 bytes, network byte order == big endian)) integer: (4 bytes, network byte order == big endian) long: (8 bytes, network byte order == big endian) date: truncate time to whole number of seconds and treat as a long (seconds since 1970-01-01 00:00:00 UTC)
CaomEntity.metaProducer attribute identifier for the producer of this entity and child entities with null metaProducer; (NEW in CAOM-2.4) The URI should conform to the pattern {organisation}:{software name-version} (for example: cadc:cfht2caom2-1.1) and identifies the tools used to produce the metadata. This information is intended for use by operators to help diagnose metadata issues.
Chunk objectType a quantitatively defined subsection of a data array; the part contains the whole array
Chunk.custom composition custom WCS description of the data array or subsection thereof; if customAxis index is null or has a value above {naxis}, then the custom WCS is metadata only (usually the degenerate case of one custom pixel)
Chunk.customAxis attribute index of the custom axis; if set: custom must have a value
Chunk.energy composition spectral WCS description of the data array or subsection thereof; if energyAxis index is null or has a value above {naxis}, then the spectral WCS is metadata only (usually the degenerate case of one spectral pixel)
Chunk.energyAxis attribute index of the energy axis; if set: energy must have a value
Chunk.naxis attribute number of axes in the data array; value must be in [1,7] since CAOM supports a maximum of seven axes; furthermore, if naxis has a value, the axis index values 1 to {naxis} must be assigned (to positionAxis1, positionAxis2, energyAxis, timeAxis, polarizationAxis, customAxis, and/or observableAxis) and each axis index value assigned to those fields must be unique; axis index values above {naxis} may be assigned in order to preserve the ordering of metadata-only WCS (see FITS-WCS WCSAXES defintion for an example of how this could originate and be used)
Chunk.observable composition observable description of the data array or subsection thereof; if observableAxis index is null or has a value above {naxis}, then the observable axis is metadata only (usually the degenerate case of one observable for the whole data array)
Chunk.observableAxis attribute index of the observable axis; if set: observable must have a value
Chunk.polarization composition polarization WCS description of the data array or subsection thereof; if polarizationAxis index is null or has a value above {naxis}, then the polarization WCS is metadata only (usually the degenerate case of one polarization pixel)
Chunk.polarizationAxis attribute index of the polarization axis; if set: polarization must have a value
Chunk.position composition spatial WCS description of the data array or subsection thereof; if positionAxis1 and positionAxis2 indices are null or have values above {naxis}, then the spatial WCS is metadata only (usually the degenerate case of one spatial pixel)
Chunk.positionAxis1 attribute index of the first position axis; if set: positionAxis2 and position must also have values
Chunk.positionAxis2 attribute index of the second position axis; if set: positionAxis1 and position must also have values
Chunk.productType attribute the type of content in this chunk, sometimes relative to the type of the artifact
Chunk.time composition temporal WCS description of the data array or subsection thereof; if timeAxis index is null or has a value above {naxis}, then the time WCS is metadata only (usually the degenerate case of one time pixel for the whole data array)
Chunk.timeAxis attribute index of the time axis; if set: time must have a value
CustomAxis objectType description of a custom coordinate axis (new in CAOM-2.4)
CustomAxis.bounds attribute custom coordinate bounds
CustomAxis.ctype attribute coordinate type code
CustomAxis.dimension attribute number of samples along custom axis
DataProductType dataType vocabulary term used in CAOM; this class defines constants for the CAOM DataProductType vocabulary which includes all the terms from the IVOA ObsCore data model plus additional terms used in CAOM and not in ObsCore (CHANGED in CAOM-2.3)
DataQuality objectType description of the data quality
DataQuality.flag attribute flag indicating the data quality
DerivedObservation objectType an observation derived from one or more observations (name and intent changed in CAOM-2.4)
DerivedObservation.members attribute members are the observations grouped together by the algorithm that defines the derivation; these are the intended components of the composite product -- actual inputs are described by the provenance; members may be simple or derived observations (arbitrary heirarchy); a derived observation made by combining multiple observations is equivalent to a composite observation (CAOM-2.3 and older); derived observations with one or more members may be defined such that they only include a subset of each member (they are extracted from the progenitor)
Energy objectType description of the energy coverage and sampling of the data
Energy.bandpassName attribute telescope- and instrument-specific name for the energy band included
Energy.bounds attribute energy bounds that include the data (barycentric vacuum wavelength)
Energy.dimension attribute number of measurements (pixels) on the energy axis
Energy.energyBands attribute standard name of the energy regime(s) included in the data (attribute name and cardinality changed in CAOM-2.4)
Energy.resolvingPower attribute median spectral resolving power per pixel
Energy.resolvingPowerBounds attribute range of resolving power within the bounds
Energy.restwav attribute rest wavelength of the target energy transition
Energy.sampleSize attribute median pixel size
Energy.transition attribute target energy transition for this data
EnergyBand enumeration a general set of energy regions that span the electromagnetic spectrum; work-around: using the name of the literal to convey the serialised value
EnergyBand.EUV literal wavelength from 10 to 100nm
EnergyBand.GAMMARAY literal energy greater than ~120keV
EnergyBand.INFRARED literal wavelength from 1um to 0.1mm
EnergyBand.MILLIMETER literal wavelength from 0.1 to 10mm
EnergyBand.OPTICAL literal wavelength from 300nm to 1um
EnergyBand.RADIO literal wavelength greater than ~10mm
EnergyBand.UV literal wavelength from 100 to 300nm
EnergyBand.XRAY literal energy from 0.12 to 120keV
Environment objectType collection of measured quantities that characterise the environment at the time of observation
Environment.ambientTemp attribute ambient temperature at the telescope
Environment.elevation attribute angular elevation above horizon [0,90]
Environment.humidity attribute fractional relative humidity [0,1]
Environment.seeing attribute typical atmospheric distortion (full-width-half-max of a point source)
Environment.photometric attribute indicator that flux and/or color calibration is stable
Environment.tau attribute the opacity of the atmosphere [0,1]
Environment.wavelengthTau attribute wavelength at which opacity was measured
Instrument objectType the instrument used to acquire or create the observation; this could be used for both physical instruments that acquire data or software that generates it (e.g. simulated data)
Instrument.keywords attribute additional keywords that describe the instrument or instrument configuration at the time of observation; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)
Instrument.name attribute common name for the instrument
Metrics objectType collection of measured quantities that describe the content of the data
Metrics.background attribute background level
Metrics.backgroundStddev attribute standard deviation in the background level
Metrics.fluxDensityLimit attribute flux density with a signal:noise ratio of 10
Metrics.magLimit attribute magnitude with a signal:noise ratio of 10
Metrics.sampleSNR attribute signal:noise ratio for a representative subset of samples (new in CAOM-2.4)
Metrics.sourceNumberDensity attribute number of sources detected per unit area
Observable objectType description of the sample (pixel) values
Observable.ucd attribute Unified Content Descriptor (UCD) that says what kind of quantity is stored
Observation objectType an observation is a single top-level entry in an astronomy data centre
Observation.algorithm composition the algorithm or process that created this observation
Observation.collection attribute the name of the data collection this observation belongs to
Observation.environment composition the environmental conditions at the time of observation
Observation.instrument composition the instrument or detector used to acquire the data
Observation.intent attribute the intent of the original observer in acquiring this data
Observation.metaReadGroups attribute set of groups with read permission on observation metadata (new in 2.4)
Observation.metaRelease attribute timestamp after which metadata for the observation instance is public
Observation.observationID attribute the collection-specific identifier for this observation
Observation.planes composition the component planes belonging to this observation
Observation.Proposal composition the science proposal underwhich this observation was created
Observation.requirements composition the observational requirements specified by the observer or proposal
Observation.sequenceNumber attribute a collection-specific sequence number for observations; re-use or reset is collection specific
Observation.target composition the intended target of the observation
Observation.targetPosition composition the intended target position for this observation
Observation.telescope composition the telescope or facility where this observation was created
Observation.type attribute the type of observation (FITS OBSTYPE keyword); usually OBJECT for intent = science
ObservationIntentType enumeration the intent of the original observer in acquiring this observation; work-around: using the name of the literal to convey the serialised value
ObservationIntentType.CALIBRATION literal the intent of this observation was to create calibration data
ObservationIntentType.SCIENCE literal the intent of this observation was to create science data
ObservationURI primitiveType Observation identifier of the form caom:{Observation.collection}/{Observation.observationID}
Part objectType format-specific name of this part; this is typically something like a FITS extension or a file within a container
Part.chunks composition component chunks that belong to this part
Part.name attribute the name of this part of the artifact; this is typically something like a FITS extension name or number or a filename
Part.productType attribute the type of content in this part, sometimes relative to the type of the artifact
Plane objectType a component of an observation that describes one product of the observation
Plane.artifacts composition the component artifacts belonging to this plane
Plane.calibrationLevel attribute standard classification of the degree to which the data is calibrated
Plane.creatorID attribute identifier for this product assigned by the creator; typically made up of the Observation.collection, Observation.observationID, and Plane.productID and in the form of an IVOA dataset identifier (NEW in CAOM-2.3)
Plane.custom composition description of a custom coordinate axis in the data (new in CAOM-2.4); Since different custom coordinate types can be used with different planes, instances of CustomAxis can only be compared sensibly if they have the same coordinate type.
Plane.dataProductType attribute standard classification of the type of data product; describes the logical data type for the main artifacts
Plane.dataReadGroups attribute list of groups (of users) that are allowed to access the data of the plane; this is applicable when dataRelease is null or in the future (new in CAOM-2.4)
Plane.dataRelease attribute timestamp after which data for the plane is public; this dataRelease timestamp applies to all children of the plane and to artifacts with releaseType=data
Plane.energy composition descritpion of the energy(ies) included in the data
Plane.metaReadGroups attribute list of groups (of users) that are allowed to view the metadata of the plane; this is applicable when metaRelease is null or in the future (new in CAOM-2.4)
Plane.metaRelease attribute timestamp after which metadata for the plane is public; this metaRelease timestamp applies to all children of the plane and to artifacts with releaseType=meta
Plane.metrics composition collection of measured quantities that describe the content of the data
Plane.observable composition description of the sample (pixel) values; (new in CAOM-2.4) In previous versions the observable was assumed to be flux or intensity of EM radiation.
Plane.polarization composition description of the polarization(s) included in the data
Plane.position composition description of the position(s) included in the data
Plane.productID attribute collection- and observationID-specific identifier for this product
Plane.provenance composition description of the provenance of the data
Plane.quality composition flag indicating the quality of the data
Plane.time composition description of the time(s) included in the data
PlaneURI primitiveType Plane identifier of the form caom:{Observation.collection}/{Observation.observationID}/{Plane.productID} aka {observationURI}/{Plane.productID}
Polarization objectType description of polarization measurements included in the data
Polarization.dimension attribute number of polarization states included
Polarization.states attribute standard polarization states included
PolarizationState enumeration a classification of polarization (Stokes states plus other related quantities); work-around: using the name of the literal to convey the serialised value
PolarizationState.CPOLI literal circular polarization intensity: |V|
PolarizationState.EPOLI literal elliptical polarization intensity: sqrt(Q^2 + U^2 + V^2)
PolarizationState.FPOLI literal fractional linear polarization: POLI/I
PolarizationState.I literal unpolarized
PolarizationState.LL literal left-left circular
PolarizationState.LR literal left-right cross-circular
PolarizationState.NPOLI literal unpolarized intensity: I - EPOLI
PolarizationState.POLA literal linear polarization angle: 1/2 arctan(U,Q)
PolarizationState.POLI literal linear polarized intensity: sqrt(Q^2 + U^2)
PolarizationState.Q literal Stokes linear Q
PolarizationState.RL literal right-left cross-circular
PolarizationState.RR literal right-right circular
PolarizationState.U literal Stokes linear U
PolarizationState.V literal Stokes circular V
PolarizationState.XX literal X parallel linear
PolarizationState.XY literal XY cross-linear
PolarizationState.YX literal YX cross-linear
PolarizationState.YY literal Y parallel linear
Position objectType description of the position coverage and sampling of the data
Position.bounds attribute spatial boundary that includes the data
Position.dimension attribute number of separate measurements (pixels) along each axis
Position.resolution attribute median spatial resolution (full-width-half-max) per pixel
Position.resolutionBounds attribute range of resolution within the bounds
Position.sampleSize attribute median pixel size
Position.timeDependent attribute indicates that the observation was taken with non-siderial tracking so the resulting position is time-dependent; this usually explains why no bounds is available
ProductType dataType this class defines constants for the CAOM ProductType vocabulary (CHANGED in CAOM-2.3)
Proposal objectType description of the science proposal or programme that initiated the observation
Proposal.keywords attribute additional keywords that describe the science goals of the proposal; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)
Proposal.pi attribute proper name of the principal investigator
Proposal.project attribute common name of the project this proposal belongs to; typically used for larger or long-running projects that include mutliple proposals
Proposal.proposalID attribute collection-specific identifier for the proposal
Proposal.title attribute title of the proposal
Provenance objectType description of how this data was produced
Provenance.inputs attribute local identifier for input planes; these are the actual inputs that went into the product
Provenance.keywords attribute additional keywords that describe the processing; this may include both general descriptive words and those specific to this particular execution of the processing; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)
Provenance.lastExecuted attribute timestamp describing when this process last ran and produced data
Provenance.name attribute collection-specific common name of the process
Provenance.producer attribute common name of the entity (person, institute, etc) responsible for producing the data
Provenance.project attribute name of the project that produced the data; data produced in a uniform way are typically labelled with the same project name
Provenance.reference attribute collection-specific common name of the process
Provenance.runID attribute collection-specific identifier for the processing instance that produced the data; this identifier can typcially be traced in log files or logging systems
Provenance.version attribute version of the software or process that produced the data
Quality dataType vocabulary term used in CAOM; this class defines constants for the CAOM Quality vocabulary (CHANGED from enumeration in CAOM-2.4)
ReleaseType enumeration a flag indicating how an artifact is classified to determine access permissions; work-around: using the name of the literal to convey the serialised value
ReleaseType.DATA literal access permission checks assume the protected item is data
ReleaseType.META literal access permission checks assume the protected item is metadata
Requirements objectType the observational requirements specified by the proposal
Requirements.flag attribute flag indicating degree to which requirements were satisfied by the observation
SegmentType enumeration code used in CAG description of polygons
SegmentType.CLOSE literal (2) line from previous vertex to last vertex with type MOVE
SegmentType.LINE literal (0) line from previous to this vertex
SegmentType.MOVE literal (1) move from previous to this vertex
SimpleObservation objectType an observation created directly by operating an instrument or process
Status dataType vocabulary term used in CAOM; this class defines constants for the CAOM Status vocabulary (CHANGED from enumeration in CAOM-2.4)
Target objectType the target of an observation
Target.keywords attribute additional keywords that describe the target; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)
Target.moving attribute indicates that the target is a moving object; used for solar system objects but not high proper motion stars
Target.name attribute proper name of the target
Target.redshift attribute cosmological redshift of the target
Target.standard attribute indicates that the target is typically used as a standard (astrometric, photometric, etc)
Target.targetID attribute resolvable target identifier (new in CAOM-2.4); the targetID URI should be of the form {scheme}:{id} so it can be resolved (for example: naif:170100)
Target.type attribute type of target; typically used to figure out what the target name means and where to look for additional information about it
TargetPosition objectType the intended position of the observation (not the position of the intended or actual target)
TargetPosition.coordinates attribute the coordinates
TargetPosition.coordsys attribute the coordinate system of the coordinates
TargetPosition.equinox attribute the equinox of the coordinates
TargetType dataType vocabulary term used in CAOM; this class defines constants for the CAOM TargetType vocabulary (CHANGED from enumeration in CAOM-2.4)
Telescope objectType the telescope used to acquire the data for an observation
Telescope.geoLocationX attribute x-coordinate of the geocentric location of the telescope at the time of observation (see FITS WCS Paper III)
Telescope.geoLocationY attribute y-coordinate of the geocentric location of the telescope at the time of observation (see FITS WCS Paper III)
Telescope.geoLocationZ attribute z-coordinate of the geocentric location of the telescope at the time of observation (see FITS WCS Paper III)
Telescope.keywords attribute additional keywords that describe the telescope or telscope configuration at the time of observation; keywords cannot contain the pipe (|) character - it is reserved for use in persistence systems (e.g. to store all keywords in a single column in a table)
Telescope.name attribute common name of the telescope; TBD: reference to a standard list of names?
Time objectType description of the time coverage and sampling of the data
Time.bounds attribute time bounds that include the data
Time.dimension attribute number of measurements (pixels) on the time axis
Time.exposure attribute median exposure time per pixel
Time.resolution attribute median temporal resolution per pixel
Time.resolutionBounds attribute range of resolution within the bounds
Time.sampleSize attribute median pixel size
VocabularyTerm dataType base class of a single term (word) in a vocabulary (NEW in CAOM-2.3)
VocabularyTerm.namespace attribute globally unique namespace for the vocabulary
VocabularyTerm.term attribute the word from the vocabulary
VocabularyTerm.base attribute flag indicating of the vocabulary namespace is a base vocabulary
types package data types
Circle dataType a circular region on the sky
Shape.center attribute
Circle.radius attribute
Interval dataType a set of numeric values defined by a lower and upper bound (bounds included: [a,b])
Interval.lower attribute
Interval.upper attribute
MultiPolygon dataType a region on the sky defined a sequence of points connected by great-circle segments; each simple polygon is is terminated by a special type of vertex and multiple simple polygons are permitted to describe disconnected regions as a single value
MultiPolygon.vertices attribute
Point dataType
Point.cval1 attribute
Point.cval2 attribute
Polygon dataType a simple polygon region on the sky defined a sequence of points connected by great-circle segments
Polygon.points attribute
Polygon.samples attribute
SampledInterval dataType an interval with (possibly sparse) sub-sampling
SampledInterval.lower attribute
SampledInterval.samples attribute the samples within an interval describe possible holes in the interval; in the simple case there is one sample that is identical to the outer interval; samples within an interval are not allowed to overlap (TBD: the bounds of adjacent samples may be equal?)
SampledInterval.upper attribute
Shape dataType
Vertex dataType
Vertex.type attribute
wcs package World Coordinate System (WCS) data types
Axis dataType one-dimensional coordinate axis description
Axis.ctype attribute
Axis.cunit attribute
Coord2D dataType a two-dimensional (pair) of reference coordinates
Coord2D.coord1 attribute
Coord2D.coord2 attribute
CoordAxis1D dataType a one-dimensional coordinate axis: quantity, values, errors; it is usually only necessary to specify one of the range, bounds, or function as they describe the world and pixel coordinate coverage at different levels of detail and the less detailed description is redundant (exception: when the range or bounds and function are both specified, the range/bounds is a subset of the pixels described by the function and denotes the valid pixels
CoordAxis1D.axis attribute description of the quantity
CoordAxis1D.bounds attribute pixel and world coordinate values covered by this axis (min,max of tiles)
CoordAxis1D.error attribute errors
CoordAxis1D.function attribute pixel and world coordinate values covered by this axis (coordinates of every pixel)
CoordAxis1D.range attribute pixel and world coordinate values covered by this axis (min,max)
CoordAxis2D dataType a two-dimensional coordinate axis pair: quantity, values, errors; it is usually only necessary to specify one of the range, bounds, or function as they describe the world and pixel coordinate coverage at different levels of detail and the less detailed description is redundant (exception: when the range or bounds and function are both specified, the range/bounds is a subset of the pixels described by the function and denotes the valid pixels
CoordAxis2D.axis1 attribute first axis of the spatial coordinate system; usually longitude
CoordAxis2D.axis2 attribute second axis of the spatial coordinate system; usually latitude
CoordAxis2D.bounds attribute pixel and world coordinate values covered by this axis (boundary)
CoordAxis2D.error1 attribute position errors on the first axis
CoordAxis2D.error2 attribute position errors on the second axis
CoordAxis2D.function attribute pixel and world coordinate values covered by this axis (coordinates of every pixel
CoordAxis2D.range attribute pixel and world coordinate values covered by this axis (min,max)
CoordBounds1D dataType a one-dimensional sequence of reference coordinate ranges
CoordBounds1D.samples attribute
CoordBounds2D dataType a two-dimensional region in pixel and world coordinates; this can be used to specify a simple polygon boundary in pixel and world coordinates
CoordBounds2D.vertices attribute the vertices of the polygon with implicit segment from the last vertex back to the first
CoordError dataType coordinate error from FITS WCS
CoordError.rnder attribute
CoordError.syser attribute
CoordFunction1D dataType a one-dimensional (linear) WCS coordinate transformation function
CoordFunction1D.delta attribute delta in world coordinate value (size of one pixel)
CoordFunction1D.dimension attribute number of pixels along the axis
CoordFunction1D.refCoord attribute the reference pixel and world coordinate values
CoordFunction2D dataType a two-dimensional (linear) WCS coordinate transformation function; this can be used to compute the world coordinates of every pixel
CoordFunction2D.cd11 attribute two-dimensional scale and rotation (CD) matrix (FITS: CD1_1)
CoordFunction2D.cd12 attribute two-dimensional scale and rotation (CD) matrix (FITS: CD1_2)
CoordFunction2D.cd21 attribute two-dimensional scale and rotation (CD) matrix (FITS: CD2_1)
CoordFunction2D.cd22 attribute two-dimensional scale and rotation (CD) matrix (FITS: CD2_2)
CoordFunction2D.dimension attribute number of pixels along each axis of the two-dimensional space (FITS: NAXISi)
CoordFunction2D.refCoord attribute two-dimensional reference pixel and world coordinate values (FITS: CRPIXi, CRVALi)
CoordRange1D dataType a one-dimensional range of reference coordinates
CoordRange1D.end attribute
CoordRange1D.start attribute
CoordRange2D dataType a two-dimensional range of reference coordinates; this can be used to specify an axis-aligned bounding box in pixel and world coordinates
CoordRange2D.end attribute the two-dimensional reference coordinates with maximum longitude and latitude
CoordRange2D.start attribute the two-dimensional reference coordinates with minimum longitude and latitude
CustomWCS objectType one-dimensional pixel and world coordinates describing a non-standard (custom) coordinate axis
CustomWCS.axis attribute description of the custom axis
Dimension2D dataType dimension (number of pixels) for a two-dimensional axis
Dimension2D.naxis1 attribute
Dimension2D.naxis2 attribute
EnergyTransition dataType
EnergyTransition.species attribute TODO
EnergyTransition.transition attribute TODO
ObservableAxis objectType an axis in the data (array) that varies by observable rather than coordinate; this axis is used when the data array containts values with different meaning in different subsets of the array (e.g. a row of pixels with wavelength values and a second row with flux values)
ObservableAxis.dependent attribute the part of the array containing the observable values
ObservableAxis.independent attribute the part of the array containing coordinate values
PolarizationWCS objectType one-dimensional pixel and world coordinates describing the polarization states
PolarizationWCS.axis attribute description of the polarization axis
RefCoord dataType a reference coordinate with a pixel and cooresponding world coordinate value
RefCoord.pix attribute
RefCoord.val attribute
Slice dataType a one-dimensional subset of a two-dimensional array
Slice.axis attribute description of the values within a the slice
Slice.bin attribute a constant-pixel value in the two-dimensional array that specifies the pixels in the slice
SpatialWCS objectType World Coordinate System (WCS) metadata for the position axes
SpatialWCS.axis attribute description of the two-dimensional position axes
SpatialWCS.coordsys attribute name of the coordinate system
SpatialWCS.equinox attribute equinox of the coordinate system
SpatialWCS.resolution attribute effective resolution of the data (FWHM of a point source); this is usually the value measured at the time of data acquisition
SpectralWCS objectType
SpectralWCS.axis attribute description of the one-dimensional energy axis
SpectralWCS.bandpassName attribute telescope- or instrument-specific name for the energy band covered by the data; this is usually a filter name
SpectralWCS.resolvingPower attribute ratio of wavelength to resolution (lambda/delta-lambda)
SpectralWCS.restfrq attribute rest frequency of the spectral feature of interest
SpectralWCS.restwav attribute rest wavelength of the spectral feature of interest
SpectralWCS.specsys attribute reference frame for the spectral coordinate
SpectralWCS.ssysobs attribute reference frame that is constant over the range of the non-spectral world coordinates
SpectralWCS.ssyssrc attribute reference frame for the velocity of the source (zsource)
SpectralWCS.transition attribute description of the energy transition observed
SpectralWCS.velang attribute angle of true velocity from tangent to line of sight
SpectralWCS.velosys attribute correction for the observatory's motion with respect to the barycenter
SpectralWCS.zsource attribute redshift of the source (relative to ssyssrc)
TemporalWCS objectType one-dimensional pixel and world coordinates describing the time axis
TemporalWCS.axis attribute description of the time axis
TemporalWCS.exposure attribute duration in time that the instrument was collecting data
TemporalWCS.mjdref attribute base time offset; time coordinate values are relative to this
TemporalWCS.resolution attribute smallest separation in time that can be distinguished
TemporalWCS.timesys attribute time scale for the time coordinates
TemporalWCS.trefpos attribute reference position for the time coordinates

4.Imported Models

This section lists the external models imported by the current data model. For each imported model we list URLs to the VO-DML and HTML representations and the prefix used for vodml-ids from inside the model.

4.1 ivoa

Model vodml-id ivoa
url http://www.ivoa.net/xml/VODML/IVOA-v1.vo-dml.xml
documentation url https://volute.g-vo.org/svn/trunk/projects/dm/vo-dml/models/ivoa/vo-dml/IVOA-v1.0.html