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
astropy.coordinates.EarthLocation
astropy.table.SerializedColumn
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. |