Source code for threeML.utils.fermi_relative_mission_time

import re
import collections
import requests

from threeML.io.network import internet_connection_is_active


[docs] def compute_fermi_relative_mission_times(trigger_time): """ If the user has the requests library, this function looks online to the HEASARC xtime utility and computes other mission times relative to the input MET :param trigger_time: a fermi MET :return: mission time in a python dictionary """ mission_dict = collections.OrderedDict() if trigger_time == 0: return None # Complements to Volodymyr Savchenko xtime_url = "https://heasarc.gsfc.nasa.gov/cgi-bin/Tools/xTime/xTime.pl" pattern = """<tr>.*?<th scope=row><label for="(.*?)">(.*?)</label></th>.*?<td align=center>.*?</td>.*?<td>(.*?)</td>.*?</tr>""" args = dict( time_in_sf=trigger_time, timesys_in="u", timesys_out="u", apply_clock_offset="yes", ) if internet_connection_is_active(): content = requests.get(xtime_url, params=args).content mission_info = re.findall(pattern, content, re.S) mission_dict["UTC"] = mission_info[0][-1] mission_dict[mission_info[7][1]] = mission_info[7][2] # LIGO mission_dict[mission_info[8][1]] = mission_info[8][2] # NUSTAR mission_dict[mission_info[12][1]] = mission_info[12][2] # RXTE mission_dict[mission_info[16][1]] = mission_info[16][2] # SUZAKU mission_dict[mission_info[20][1]] = mission_info[20][2] # SWIFT mission_dict[mission_info[24][1]] = mission_info[24][2] # CHANDRA return mission_dict else: return None