Source code for ixpeobssim.utils.fmtaxis

#!/usr/bin/env python
#
# Copyright (C) 2015, the ixpeobssim team.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

from __future__ import print_function, division


[docs] def axis_label(name, units=None): """ """ if units is None: return name return '%s [%s]' % (name, units)
[docs] class units: """Dumb container class for units. """ flux = 'cm$^{-2}$ s$^{-1}$ keV$^{-1}$' norm_cnts = 's$^{-1}$ keV$^{-1}$'
[docs] class label: """Dumb containter class for axis labels """ energy = axis_label('Energy', 'keV') flux = axis_label('Flux', units.flux) norm_cnts = axis_label('Normalized counts', units.norm_cnts) norm_cnts_I = axis_label('I Normalized counts', units.norm_cnts) norm_cnts_U = axis_label('U Normalized counts', units.norm_cnts) norm_cnts_Q = axis_label('Q Normalized counts', units.norm_cnts) mdp = axis_label('MDP 99\\%') phase = axis_label('Pulse phase') pl_index = axis_label('Power-law index') pl_norm = axis_label('Power-law normalization', units.flux) pol_deg = axis_label('Polarization degree') pol_ang_deg = axis_label('Polarization angle', 'deg') pol_ang_rad = axis_label('Polarization angle', 'rad') rate = axis_label('Rate', 'Hz') res_sigma = axis_label('Residuals', '$\\sigma$') pulls_sigma = axis_label('Pulls', '$\\sigma$')
[docs] class fmtaxis: """Dumb containter class for axis formats. """ spec = dict(xlabel=label.energy, ylabel=label.flux) ene_pol_deg = dict(xlabel=label.energy, ylabel=label.pol_deg) ene_pol_ang_rad = dict(xlabel=label.energy, ylabel=label.pol_ang_rad) ene_pol_ang_deg = dict(xlabel=label.energy, ylabel=label.pol_ang_deg) ene_pol_ang = ene_pol_ang_deg norm_cnt_spec = dict(xlabel=label.energy, ylabel=label.norm_cnts) norm_cnt_spec_I = dict(xlabel=label.energy, ylabel=label.norm_cnts_I) norm_cnt_spec_U = dict(xlabel=label.energy, ylabel=label.norm_cnts_U) norm_cnt_spec_Q = dict(xlabel=label.energy, ylabel=label.norm_cnts_Q) ene_res_sigma = dict(xlabel=label.energy, ylabel=label.res_sigma) ene_pulls_sigma = dict(xlabel=label.energy, ylabel=label.pulls_sigma) pp_flux = dict(xlabel=label.phase, ylabel=label.flux) pp_pl_index = dict(xlabel=label.phase, ylabel=label.pl_index) pp_pl_norm = dict(xlabel=label.phase, ylabel=label.pl_norm) pp_pol_deg = dict(xlabel=label.phase, ylabel=label.pol_deg) pp_pol_ang_rad = dict(xlabel=label.phase, ylabel=label.pol_ang_rad) pp_pol_ang_deg = dict(xlabel=label.phase, ylabel=label.pol_ang_deg) pp_pol_ang = pp_pol_ang_deg