예제 #1
0
def test_init_strradec():
    # Simple properties
    gensys = GenericAbsSystem(('01:32:21', '+22:15:53.3'),
                              1.244, [-500, 500] * u.km / u.s,
                              NHI=16.)
    # Test
    assert gensys.abs_type == 'Generic'
    np.testing.assert_allclose(gensys.coord.ra.value, 23.087499999999995)
    #
    gensys = GenericAbsSystem('013221+221553.3',
                              1.244, [-500, 500] * u.km / u.s,
                              NHI=16.)
    np.testing.assert_allclose(gensys.coord.ra.value, 23.087499999999995)
예제 #2
0
def test_init():
    # Simple properties
    radec = SkyCoord(ra=123.1143 * u.deg, dec=-12.4321 * u.deg)
    gensys = GenericAbsSystem(radec, 1.244, [-500, 500] * u.km / u.s, NHI=16.)
    # Test
    assert gensys.abs_type == 'Generic'
    np.testing.assert_allclose(gensys.zabs, 1.244)
예제 #3
0
def test_init():
    # Simple properties
    gensys = GenericAbsSystem(radec, 1.244, [-500, 500] * u.km / u.s, NHI=16.)
    # Test
    assert gensys.abs_type == 'Generic'
    assert gensys.flag_NHI == 1
    np.testing.assert_allclose(gensys.zabs, 1.244)
    np.testing.assert_allclose(gensys.vlim.value, [-500, 500])
예제 #4
0
파일: fitlls.py 프로젝트: yzhenggit/pyigm
 def add_forest(self, inp, z):
     '''Add a Lya/Lyb forest line
     '''
     from linetools.isgm.abssystem import GenericAbsSystem
     forest = GenericAbsSystem((0. * u.deg, 0. * u.deg), z,
                               [-300., 300.] * u.km / u.s)
     # NHI
     NHI_dict = {'6': 12., '7': 13., '8': 14., '9': 15.}
     forest.NHI = NHI_dict[inp]
     # Lines
     for name in ['HI 1215', 'HI 1025', 'HI 972']:
         aline = AbsLine(name, linelist=self.llist[self.llist['List']])
         # Attributes
         aline.attrib['N'] = 10**forest.NHI * u.cm**-2
         aline.attrib['b'] = 20. * u.km / u.s
         aline.setz(forest.zabs)
         # Append
         forest.lines.append(aline)
     # Append to forest lines
     self.all_forest.append(forest)
예제 #5
0
def test_xabsgui():
    # Init
    spec_fil = data_path('UM184_nF.fits')
    abs_sys = GenericAbsSystem((0., 0.), 3., [-500, 500] * u.km / u.s)
    xabsgui = xabssysgui.XAbsSysGui(spec_fil, abs_sys)
예제 #6
0
    def __init__(self,
                 ispec,
                 z=None,
                 parent=None,
                 llist=None,
                 norm=True,
                 vmnx=[-300., 300.] * u.km / u.s,
                 abs_sys=None):
        '''
        spec = Spectrum1D
        Norm: Bool (False)
          Normalized spectrum?
        abs_sys: AbsSystem
          Absorption system class
        '''
        super(VelPlotWidget, self).__init__(parent)

        # Initialize
        spec, spec_fil = ltgu.read_spec(ispec)

        self.spec = spec
        self.spec_fil = spec_fil
        self.z = z
        self.vmnx = vmnx
        self.norm = norm

        # Abs_System
        self.abs_sys = abs_sys
        if self.abs_sys is None:
            self.abs_sys = GenericAbsSystem((0. * u.deg, 0. * u.deg), self.z,
                                            self.vmnx)
            self.abs_lines = []
        else:
            self.z = self.abs_sys.zabs
            # Line list
            if llist is None:
                self.abs_lines = self.abs_sys.list_of_abslines()
                if len(self.abs_lines) > 0:
                    lwrest = [iline.wrest for iline in self.abs_lines]
                else:
                    lwrest = None
                if lwrest is not None:
                    llist = ltgu.set_llist(
                        lwrest)  # Not sure this is working..

        #QtCore.pyqtRemoveInputHook()
        #xdb.set_trace()
        #QtCore.pyqtRestoreInputHook()

        self.psdict = {}  # Dict for spectra plotting
        self.psdict[
            'xmnx'] = self.vmnx.value  # Too much pain to use units with this
        self.psdict['ymnx'] = [-0.1, 1.1]
        self.psdict['nav'] = ltgu.navigate(0, 0, init=True)

        # Status Bar?
        #if not status is None:
        #    self.statusBar = status

        # Line List
        if llist is None:
            self.llist = ltgu.set_llist('Strong')
        else:
            self.llist = llist
        self.llist['z'] = self.z

        # Indexing for line plotting
        self.idx_line = 0

        self.init_lines()

        # Create the mpl Figure and FigCanvas objects.
        #
        self.dpi = 150
        self.fig = Figure((8.0, 4.0), dpi=self.dpi)
        self.canvas = FigureCanvas(self.fig)
        self.canvas.setParent(self)

        self.canvas.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.canvas.setFocus()
        self.canvas.mpl_connect('key_press_event', self.on_key)
        self.canvas.mpl_connect('button_press_event', self.on_click)

        # Sub_plots
        self.sub_xy = [3, 4]

        self.fig.subplots_adjust(hspace=0.0, wspace=0.1)

        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(self.canvas)

        self.setLayout(vbox)

        # Draw on init
        self.on_draw()