Source code for tuna.io.convenience
"""
This module's scope covers tools that make data access more convenient.
"""
import logging
from .can import can
from .fits import fits
[docs]def read ( file_name ):
"""
This function's goal is to create a tuna can, and attempt to read the specified file_name using the can.read ( ) method.
Parameters:
* file_name : string
Specifies an existing file, containing data in a format Tuna understands.
Returns:
* tuna_can : tuna.io.can
Containing the data read from the input file.
Example::
import tuna
tuna.io.read ( "data_file.fits" )
"""
__version__ = "0.1.0"
changelog = {
"0.1.0" : "Tuna 0.13.0 : Added example to docstring."
}
log = logging.getLogger ( __name__ )
log.setLevel ( logging.INFO )
log.debug ( "Creating a tuna can for file name %s." % file_name )
if file_name:
tuna_can = can ( file_name = file_name )
tuna_can.read ( )
return tuna_can
[docs]def write ( array = None,
file_format = None,
file_name = None,
metadata = None,
photons = None ):
"""
This method's goal is to write a file using the specified input.
Parameters:
* array : numpy.ndarray
The data to be saved in the file.
* file_format: string
Specifies one of Tuna's known write formats (only "fits" is implemented so far).
* file_name: string
Must contain a valid file path and name.
* metadata: dictionary
A structure containing the metadata to be saved as fits headers.
* photons: dictionary
A structure containing photon descriptions, in the same format as specified in tuna.io.can.convert_ndarray_into_table ( ).
Example::
import tuna
import numpy
zeros_array = numpy.zeros ( shape = ( 2, 3, 3 ) )
tuna.io.write ( array = zeros_array, file_name = "zeros.fits", file_format = "fits" )
"""
__version__ = '0.1.3'
changelog = {
"0.1.3" : "Tuna 0.13.0 : Added example to docstring.",
'0.1.2' : "Added docstring.",
'0.1.1' : "Added error message when file format is unknown."
}
log = logging.getLogger ( __name__ )
log.setLevel ( logging.INFO )
if ( file_format == 'fits' or
file_format == 'FITS' ):
fits_io_object = fits ( file_name = file_name,
array = array,
metadata = metadata,
photons = photons )
fits_io_object.write ( )
fits_io_object.write_metadata_table ( )
fits_io_object.write_photons_table ( )
log.info ( "FITS file written at %s." % str ( file_name ) )
return
log.error ( "No file_format '{}' known.".format ( file_format ) )