## Input/Output Facilities

AST allows you to convert any kind of ObjectObject into a stream of text which contains a full description of that Object. This text may be written out by one program and read back in by another, thus allowing the original Object to be reconstructed.

The filter which converts Objects into text and back again is itself a kind of Object, called a ChannelChannel. A Channel provides a number of options for controlling the information content of the text, such as the addition of comments for human interpretation. It is also possible to intercept the text being processed by a Channel so that it may be redirected to/from any chosen external data store, such as a text file, an astronomical dataset, or a network connection.

The text format used by the basic Channel class is peculiar to the AST library - no other software will understand it. However, more specialised forms of Channel are provided which use text formats more widely understood.

To further facilitate the storage of coordinate system information in astronomical datasets, a more specialised form of Channel called a FitsChanFitsChan is provided. Instead of using free-format text, a FitsChan converts AST Objects to and from FITS header cards. It also allows the information to be encoded in the FITS cards in a number of ways (called encodings), so that WCS information from a variety of sources can be handled.

Another sub-class of Channel, called XmlChanXmlChan, is a specialised form of Channel that stores the text in the form of XML markup. Currently, two markup formats are provided by the XmlChan class, one is closely related to the text format produced by the basic Channel class (currently, no schema or DTD is available describing this format). The other is a subset of an early draft of the IVOA Space-Time-Coordinates XML (STC-X) schema (V1.20) described at `http://www.ivoa.net/Documents/WD/STC/STC-20050225.html` . The version of STC-X that has been adopted by the IVOA differs in several significant respects from V1.20, and therefore this XmlChan format is of historical interest only.

The YamlChanYamlChan class provides facilities for reading and writing WCS information stored in YAML format using a subset of the the ASDF model developed at StSci (see `http://asdf-standard.readthedocs.io`).

Finally, the StcsChanStcsChan class provides facilities for reading and writing IVOA STC-S region descriptions. STC-S (see `http://www.ivoa.net/Documents/latest/STC-S.html`) is a linear string syntax that allows simple specification of STC metadata. AST supports a subset of the STC-S specification, allowing an STC-S description of a region within an AST-supported astronomical coordinate system to be converted into an equivalent AST RegionRegion object, and vice-versa.

Further reading: For a more complete description of Channels see §15 and for FitsChans see §16 and §17. Also see the Channel and FitsChan entries in Appendix D and the EncodingEncoding entry in Appendix C.