OIFITS (Data Exchange Standard for Optical Interferometry, A&A 597, A8, 2017)
Project description
Brief intro
Purpose
Read and manipulate Optical Interferometry FITS files version 1 and 2.
For a definition of the standards
- version 2: Duvert at al. (2017), A&A 597, A8 (abstract) (pre-print)
- version 1: Pauls et al. (2005), PASP 117, 1255 (abstract) (pre-print)
Installation
It is packaged as pyoifits.
Site-wide installation will be performed with sudo -H pip3 install pyoifits
on unix-like systems. At a user level, within a virtual environment, pip3 install pyoifits
.
Short example
Read and merge to OIFITS datasets and tranform to a standard astropy
table.
import pyoifits as oifits
data1 = oifits.read('file1.fits')
data2 = oifits.read('file2.fits')
data = data1 + data2
tab, C = data.to_table(correlations='numpy')
err = tab['error']
covar = C * np.outer(err, err)
There is also a short demo.
Classes and functions
Classes
Classes are in astropy.io.fits
tree, they derive either from HDUList
(FITS file) or BinTableHDU
(FITS table). The end user shouldn't need to manipulate them explicitly as helper functions are provided.
An OIFITS1
object (OIFITS standard version 1, < _OIFITS
< astropy.io.fits.HDUList
) contains
- one
PrimaryHDU1
object (<astropy.io.fits.PrimaryHDU
) - several
_OITableHDU1
objects (abstract OI table class, <_OITableHDU
<astropy.io.fits.BinTableHDU
) which can be of the derived typesTargetHDU1
(OI_TARGET
extrension)ArrayHDU1
(OI_ARRAY
extension)WavelengthHDU1
(OI_WAVELENGTH
extension, <astropy.io.fits.BinTableHDU
)_DataHDU1
(abstract data class, <astropy.io.fits.BinTableHDU
)VisHDU1
(OI_VIS
extension)Vis2HDU1
(OI_VIS2
extension)T3HDU1
(OI_T3
extension)
- any other FITS extension
An OIFITS2
object (OIFITS standard version 2, < _OIFITS
< astropy.io.fits.HDUList
) contains
- one
PrimaryHDU2
object (<astropy.io.fits.PrimaryHDU
) - several
_OITableHDU2
(abstract OI table class, <_OITableHDU
<astropy.io.fits.BinTableHDU
) which can be of the derived typesTargetHDU2
(OI_TARGET
extension)ArrayHDU2
(OI_ARRAY
extension)WavelengthHDU2
(OI_WAVELENGTH
extension)_DataHDU2
(abstract data class)VisHDU2
(OI_VIS
extension)Vis2HDU2
(OI_VIS2
extension)T3HDU2
(OI_T3
extension)FluxHDU1
(OI_FLUX
extension)
CorrHDU1
(OI_CORR
extension)InspolHDU1
(OI_INSPOL
extension)
- any other FITS extension
Functions
- Reading and manipulating OIFITS
open
(open an OIFITS file)openlist
(open a list of files and merge them)merge
(merge several OIFITS)set_merge_settings
(determine how duplicate targets/stations are merged)
- Creating OI tables from scratch
new_target_hdu
(create anOI_TARGET
extension)new_target_hdu_from_simbad
new_array_hdu
(create anOI_ARRAY
extension)new_wavelength_hdu
(create anOI_WAVELENGTH
extension)new_vis_hdu
(create anOI_VIS
extension)new_vis2_hdu
(create anOI_VIS2
extension)new_t3_hdu
(create anOI_T3
extension)new_flux_hdu
(create anOI_FLUX
extension)
Methods
_OIFITS
(OIFITS1
andOIFITS2
)- manipulation
bin_spectral_channels
(downgrade spectral resolution)trim
(keep only wavelengths, targets, instruments, ... of interest)to_table
(transform to a table with one scalar observable per line)to_version
(transform between versions of the OIFITS standard)
- visualisation
visualize
(quick plot)
- data updating
verify
(check standard compliance and mend if possible)update_primary_header
(update primary header using the info in other tables)update_uv
(compute spatial frequencies using array data)
- contents listing
get_OITableHDUs
get_targetHDU
get_arrayHDUs
&get_arrayHDU
get_wavelengthHDUs
&get_wavelengthHDU
get_dataHDUs
get_visHDUs
get_vis2HDUs
get_t3HDUs
- (
OIFITS2
only)get_corrHDUs
&get_corrHDU
- (
OIFITS2
only)get_fluxHDUs
- (
OIFITS2
only)get_inspolHDUs
&get_inspolHDU
- manipulation
_DataHDU
(all classes containing OI data)- target information
get_target
get_dec
get_ra
get_equinox
get_parallax
get_pmra
get_pmdec
get_rv
get_skycoord
get_spectype
- wavelength and spatial frequency information
get_wave
get_band
get_uv
get_uvw
- array information
get_location
get_sta_name
get_staenu
get_stauvw
get_staxyz
get_sta_config
get_tel_name
get_tel_config
- polarisation information
- (
_DataHDU2
only)get_jones_matrix
- (
- target information
Direct data access
Each column of the OI FITS standard can be directly accessed via its standard
name, for instance, h.UCOORD
or h.VIS2DATA
are synonyms to h.data['UCOORD']
and h.data['VIS2DATA']
, respectively.
Related projects
- oifits reads an OIFITS file into a table, geared towards the Event Horizon Telescope
- oifits reads and write OIFITS v. 1, mostly geared towards VLTI/MATISSE
- pyhdust has a read/write module for OIFITS version 1
Release notes
0.4
New features:
- Method
to_table()
optionally returns a correlation matrix
0.4.1
Bug fixes:
WAVELMIN
&WAVELMAX
FITS keywords have a correct number of significant digitsEQUINOX
FITS keyword now passes verification- No runtime error when a duplicate
INSNAME
has to be renamed - OI data (
OI_VIS
,OI_VIS2
,OI_T3
,OI_FLUX
) tables merge correctly OI_VIS
tables with differentPHITYP
,AMPTYP
,AMPORDER
, orPHIORDER
can no longer be mergedOI_FLUX
tables with differentFOV
orFOVTYPE
can not longer be merged
New features:
OIFITS1
&OIFITS2
classes haveget_visHDUs
,get_vis2HDUs
,get_T3HDUs
methods
0.4.2
New features:
- Method
to_table()
allows the user to restrict to a subset of target names, instrument setup names, arrays, wavelength range, and/or date range - OIFITS classes have new method
visualize()
to plot an interferometric observable as a function of time, baseline length, or spatial frequency.
0.4.3
Bug fixes:
- Successive column renamings no longer lead to
KeyError
- fix
get_uv
- Typos in this doc
New features:
- Method
bin_spectral_channels(R)
allows the user to rebin to a given spectral resolution.
0.4.4
- Documentation
- Fixed numerous bugs in
get_jones_matrix
andInspolHDU1
0.4.5
Bug fixes
- Fixed error in creation of FluxHDU using
from_data
- Fixed error in creation of OI tables with non-standard columns using
from_data
New features
- New function
trim()
to keep only wavelengths, instruments, instrumental setups, arrays, targets of interest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.