#### Description:

The Moc class uses the IVOA MOC (Multi-Order Coverage) recommendation to describe a region on the sky. The region is made up of an arbitrary collection of cells from the HEALPix sky tessellation, and thus may represent any area on the sky, subject to the constraint that the edges of the area correspond to edges of the HEALPix cells. See the MOC recommendation for further information (http://www.ivoa.net/documents/MOC/).

The Moc class describes an arbitrary collection of cells on the sky, whereas other subclasses of Region describe exact geometric shapes in any arbitrary domain. This results in some differences between Mocs and other types of Region, the main one being that Mocs have no associated uncertainty.

The MOC recommendation requires that a MOC always describes a sky area using the ICRS coordinate system. However, the Moc class, like other subclasses of Region, allows its attributes to be changed so that it represents the equivalent area in any celestial coordinate system that can be mapped to ICRS. See attribute Adaptive.

In practice, to use this class an empty Moc object (i.e. a Moc describing a null area of the sky) should first be created using the astMoc constructor. Areas of the sky should then be added into the empty Moc using one or more of the class methods.

If it is required to write a Moc out to a FITS binary table, the data value and headers to put in the table can be obtained using methods astGetMocData and astGetMocHeader The MOC described by an existing FITS binary table can be added into a Moc object using the astAddMocData method.

Note, this class is limited to MOCs for which the number of cells in the normalised MOC can be represented in a four byte signed integer.

#### Constructor Function

astMoc

#### Inheritance

The Moc class inherits from the Region class.

#### Attributes

In addition to those attributes common to all Regions, every Moc also has the following attributes:

- MaxOrder: the highest HEALPix order used in the MOC

- MaxRes: the best resolution of the MOC, in arc-seconds

- MinOrder: the lowest HEALPix order used in the MOC

- MinRes: the worst resolution of the MOC, in arc-seconds

- MocArea: the area of the MOC

- MocLength: the table length used to describe a MOC in FITS

- MocType: the data type used to describe a MOC in FITS

#### Functions

In addition to those functions applicable to all Regions, the following functions may also be applied to all Mocs:

- astAddCell: Adds a single HEALPix cell into an existing Moc

- astAddMocData: Adds a FITS binary table into an existing Moc

- astAddMocString: Adds a JSON or string-encoded MOC into an existing Moc

- astAddPixelMask <X >: Adds a pixel mask to an existing Moc

- astAddRegion: Adds a Region to an existing Moc

- astGetCell: Identify the next cell included in a Moc

- astGetMocData: Get the FITS binary table data describing a Moc

- astGetMocHeader: Get the FITS binary table headers describing a Moc

- astGetMocString: Get the JSON or string-encoded form of a Moc

- astTestCell: Test if a single HEALPix cell is included in a Moc

Copyright (C) 2021 East Asian Observatory