Miscellaneous: HDF5, YAML, pickle (astropy.io.misc
)¶
The astropy.io.misc
module contains miscellaneous input/output routines that
do not fit elsewhere, and are often used by other Astropy sub-packages. For
example, astropy.io.misc.hdf5
contains functions to read/write
Table
objects from/to HDF5 files, but these
should not be imported directly by users. Instead, users can access this
functionality via the Table
class itself (see
Unified file read/write interface). Routines that are intended to be used directly by users are
listed in the astropy.io.misc
section.
astropy.io.misc Package¶
This package contains miscellaneous utility functions for data input/output with astropy.
Functions¶
fnpickle (object, fileorname[, usecPickle, ...]) |
Pickle an object to a specified file. |
fnunpickle (fileorname[, number, usecPickle]) |
Unpickle pickled objects from a specified file and return the contents. |
astropy.io.misc.hdf5 Module¶
This package contains functions for reading and writing HDF5 tables that are
not meant to be used directly, but instead are available as readers/writers in
astropy.table
. See Unified file read/write interface for more details.
Functions¶
read_table_hdf5 (input[, path]) |
Read a Table object from an HDF5 file |
write_table_hdf5 (table, output[, path, ...]) |
Write a Table object to an HDF5 file |
astropy.io.misc.yaml Module¶
This module contains functions for serializing core astropy objects via the YAML protocol.
It provides functions dump
,
load
, and load_all
which
call the corresponding functions in PyYaml but use the
AstropyDumper
and AstropyLoader
classes to define custom YAML tags for the following astropy classes:
astropy.units.Unit
astropy.units.Quantity
astropy.time.Time
astropy.time.TimeDelta
astropy.coordinates.SkyCoord
astropy.coordinates.Angle
astropy.coordinates.Latitude
astropy.coordinates.Longitude
Note
This module requires PyYaml version 3.12 or later, which in turn requires Python 2.7 or Python 3.4 or later.
Example¶
>>> from astropy.io.misc import yaml
>>> import astropy.units as u
>>> from astropy.time import Time
>>> from astropy.coordinates import EarthLocation
>>> t = Time(2457389.0, format='mjd',
... location=EarthLocation(1000, 2000, 3000, unit=u.km))
>>> td = yaml.dump(t)
>>> print(td)
!astropy.time.Time
format: mjd
in_subfmt: '*'
jd1: 4857389.5
jd2: 0.0
location: !astropy.coordinates.earth.EarthLocation
ellipsoid: WGS84
x: !astropy.units.Quantity
unit: &id001 !astropy.units.Unit {unit: km}
value: 1000.0
y: !astropy.units.Quantity
unit: *id001
value: 2000.0
z: !astropy.units.Quantity
unit: *id001
value: 3000.0
out_subfmt: '*'
precision: 3
scale: utc
>>> ty = yaml.load(td)
>>> ty
<Time object: scale='utc' format='mjd' value=2457389.0>
>>> ty.location
<EarthLocation ( 1000., 2000., 3000.) km>
Functions¶
load (stream) |
Parse the first YAML document in a stream using the AstropyLoader and produce the corresponding Python object. |
load_all (stream) |
Parse the all YAML documents in a stream using the AstropyLoader class and produce the corresponding Python object. |
dump (data[, stream]) |
Serialize a Python object into a YAML stream using the AstropyDumper class. |
Classes¶
AstropyLoader (stream) |
Custom SafeLoader that constructs astropy core objects as well as Python tuple and unicode objects. |
AstropyDumper (stream[, default_style, ...]) |
Custom SafeDumper that represents astropy core objects as well as Python tuple and unicode objects. |
Class Inheritance Diagram¶