Exemplo n.º 1
0
    def SFR(self, maps, distance):
        #calculate log10(SFR) from the Halpha flux, following Kennicutt et al. (1998).
        # Assumes a Salpeter IMF.

        snr = 3.

        hb = get_masked(maps, 'hb_4862', snr=get_snr(snr, 'hb'))
        ha = get_masked(maps, 'ha_6564', snr=get_snr(snr, 'ha'))

        # Av derivation from A_Ha following Jorge from CALIFA paper (Catalán-Torrecilla et al. (2015)
        K_Ha = 2.53
        K_Hb = 3.61

        balmerdec = np.log10((ha / hb) / 2.86)
        A_Ha = balmerdec * K_Ha / (-0.4 * (K_Ha - K_Hb))
        Ha_cor = ha * (10.**(0.4 * A_Ha))

        Lha = Ha_cor * 1e-17 * 4. * math.pi * ((3.0857e18 * 1E6 * distance)**2)
        K98 = 7.9 * 1e-42
        SFR = np.log10(K98 * Lha)

        return SFR
Exemplo n.º 2
0
 def get_bpt(self, snr_min=3):
     self.get_cube(maps=True)
     if self.cube != 'no_data':
         # Gets the necessary emission line maps
         oiii = bpt.get_masked(self.maps, 'oiii_5008', snr=bpt.get_snr(snr_min, 'oiii'))
         nii = bpt.get_masked(self.maps, 'nii_6585', snr=bpt.get_snr(snr_min, 'nii'))
         ha = bpt.get_masked(self.maps, 'ha_6564', snr=bpt.get_snr(snr_min, 'ha'))
         hb = bpt.get_masked(self.maps, 'hb_4862', snr=bpt.get_snr(snr_min, 'hb'))
         sii = bpt.get_masked(self.maps, 'sii_6718', snr=bpt.get_snr(snr_min, 'sii'))
         oi = bpt.get_masked(self.maps, 'oi_6302', snr=bpt.get_snr(snr_min, 'oi'))
         self.log_oiii_hb = np.ma.log10(oiii / hb)
         self.log_nii_ha = np.ma.log10(nii / ha)
         self.log_sii_ha = np.ma.log10(sii / ha)
         self.log_oi_ha = np.ma.log10(oi / ha)
Exemplo n.º 3
0
 def get_bpt(self, snr_min=3, oi_sf=False):
     self.get_cube(maps=True)
     if self.cube != 'no_data':
         # Gets the necessary emission line maps
         oiii = bpt.get_masked(self.maps,
                               'oiii_5008',
                               snr=bpt.get_snr(snr_min, 'oiii'))
         nii = bpt.get_masked(self.maps,
                              'nii_6585',
                              snr=bpt.get_snr(snr_min, 'nii'))
         ha = bpt.get_masked(self.maps,
                             'ha_6564',
                             snr=bpt.get_snr(snr_min, 'ha'))
         hb = bpt.get_masked(self.maps,
                             'hb_4862',
                             snr=bpt.get_snr(snr_min, 'hb'))
         sii = bpt.get_masked(self.maps,
                              'sii_6718',
                              snr=bpt.get_snr(snr_min, 'sii'))
         oi = bpt.get_masked(self.maps,
                             'oi_6302',
                             snr=bpt.get_snr(snr_min, 'oi'))
         self.log_oiii_hb = np.ma.log10(oiii / hb)
         self.log_nii_ha = np.ma.log10(nii / ha)
         self.log_sii_ha = np.ma.log10(sii / ha)
         self.log_oi_ha = np.ma.log10(oi / ha)
         sf_mask_nii = (
             (self.log_oiii_hb < bpt.kewley_sf_nii(self.log_nii_ha)) &
             (self.log_nii_ha < 0.05)).filled(False)
         sf_mask_sii = (
             (self.log_oiii_hb < bpt.kewley_sf_sii(self.log_sii_ha)) &
             (self.log_sii_ha < 0.32)).filled(False)
         sf_mask_oi = ((self.log_oiii_hb < bpt.kewley_sf_oi(self.log_oi_ha))
                       & (self.log_oi_ha < -0.59)).filled(False)
         if oi_sf:
             self.sf_mask = sf_mask_nii & sf_mask_sii & sf_mask_oi
         else:
             self.sf_mask = sf_mask_nii & sf_mask_sii
Exemplo n.º 4
0
    def test_get_snr_default(self):

        default = inspect.getargspec(get_snr).defaults[0]

        assert get_snr({'ha': 5, 'hb': 4}, 'xx') == default
Exemplo n.º 5
0
    def test_get_snr_in_dict(self):

        assert get_snr({'ha': 5, 'hb': 4}, 'ha') == 5