N-CONST

PyPI Python Test License

Necst Constants and ObservatioN Specification Translator.

Features

This library provides:

  • constants of the telescope system as useful python objects

  • parsers for parameter files unique to NECST

Installation

pip install n-const

Usage

Be careful of the package name! Use underscore instead of hyphen.

Constants

Solid constants such as location of the telescope are declared in constants module. To use the constants:

>>> import n_const
>>> n_const.LOC_NANTEN2
EarthLocation(2230866.39573496, -5440247.68222275, -2475554.41874542) m
>>> n_const.XFFTS.ch_num
32768

Constants objects support both keys and dot notations to access its components. So you can write:

>>> n_const.XFFTS['ch_num']
32768

You now can get all the parameters packed in the Constants using dict method:

>>> n_const.XFFTS.keys()
dict_keys(['ch_num', 'bandwidth'])
>>> n_const.REST_FREQ.values()
dict_values([<Quantity 115.27 GHz>, <Quantity 110.20 GHz>, ..., <Quantity 219.56 GHz>])
>>> n_const.XFFTS.items()
dict_items([('ch_num', 32768), ('bandwidth', <Quantity 2. GHz>)])

Parameters

Pointing error parameter (parameters to correct pointing error) and observation parameters are extracted via pointing and obsparam modules respectively.

To get the pointing error parameters:

>>> from n_const.pointing import PointingError
>>> params = PointingError.from_file("path/to/param_file")
>>> params.dAz
Quantity 5314.24667547 arcsec

# This module also supports keys to access the components:

>>> params['dAz']
Quantity 5314.24667547 arcsec

To get the observation parameters:

>>> from n_const import obsparams
>>> params = obsparams.OTFParams.from_file("path/to/obs_file")
>>> params.Beta_on
<Angle 15.51638889 deg>
>>> params['Beta_on']
<Angle 15.51638889 deg>

For conventional style obsfiles, this module provides a parser. This is a conventional one, so it provides very limited functionality;

  • Dot notation is not supported, keys only.

  • Return values are not combined with units.

>>> params = obsparams.obsfile_parser("path/to/obs_file")
>>> params['offset_Az']
0

This library is using Semantic Versioning.