USRA-STI / gdt-fermi

Gamma-ray Data Tools - Fermi mission components
Apache License 2.0
2 stars 4 forks source link

Returning energy_range attribute after converting from PHAII to PHA #46

Open rachel-hamburg opened 3 weeks ago

rachel-hamburg commented 3 weeks ago

When converting a PHAII file to a PHA file, if you set the energy range and then print the energy_range attribute of the PHA file, it does not match the given energy range. The full energy range of the file is printed regardless of the input energy range. The channel mask is correctly updated though. Code to reproduce the issue below:

from gdt.missions.fermi.gbm.tte import GbmTte
from gdt.core.binning.unbinned import bin_by_time

# Open TTE file
tte = GbmTte.open('data/150506630/glg_tte_n6_bn150506630_v00.fit')

# Bin the data by time
phaii = tte.to_phaii(bin_by_time, 1.024, time_ref=0.0)

# Convert to PHA file (do not set energy range)
pha1 = phaii.to_pha(time_ranges=(0., 0.512))
print (pha1.energy_range)      # full energy range is printed
print (pha1.channel_mask)      # all channels are True 

# Convert to PHA file (set energy range)
pha2 = phaii.to_pha(time_ranges=(0., 0.512), energy_range=(8.,900.))
print (pha2.energy_range)      # energy range has not changed
print (pha2.channel_mask)      # channels outside given energy range are set to False

Output:

(5.307523250579834, 2000.0)

[ True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True]

(5.307523250579834, 2000.0)

[False False  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True False False False]
AdamGoldstein-USRA commented 3 weeks ago

Looks like we should be applying the channel mask to the ebounds and then returning the energy range based on that.