class BuildOBfromQuery(KPFTranslatorFunction):
'''
'''
@classmethod
def pre_condition(cls, args, logger, cfg):
check_input(args, 'GaiaID')
@classmethod
def perform(cls, args, logger, cfg):
gaiaid = args.get('GaiaID')
observation = {'ExpMeterMode': "monitor",
'AutoExpMeter': "False",
'TakeSimulCal': "True"}
OB = ScienceOB({'GaiaID': f"DR3 {gaiaid}",
'SEQ_Observations': [observation]})
names = get_names_from_gaiaid(gaiaid)
if names is None:
log.warning(f"Query for {gaiaid} failed to return names")
return
OB.set('TargetName', f"{names['TargetName']}")
OB.set('2MASSID', f"{names['2MASSID']}")
twomass_params = get_Jmag(names['2MASSID'])
OB.set('Jmag', f"{twomass_params['Jmag']}")
gaia_params = get_gaia_parameters(gaiaid)
OB.set('Parallax', f"{gaia_params['Parallax']}")
OB.set('RadialVelocity', f"{gaia_params['RadialVelocity']}")
OB.set('Gmag', f"{gaia_params['Gmag']}")
OB.set('Teff', f"{gaia_params['Teff']}")
OB.set('GuideMode', "auto")
OB.set('TriggerCaHK', "True")
OB.set('TriggerGreen', "True")
OB.set('TriggerRed', "True")
OB.star_list_line = form_starlist_line(names['TargetName'],
gaia_params['RA_ICRS'],
gaia_params['DE_ICRS'],
vmag=gaia_params['Gmag'])
print(OB)
@classmethod
def post_condition(cls, args, logger, cfg):
pass
@classmethod
def add_cmdline_args(cls, parser, cfg=None):
parser.add_argument('GaiaID', type=str,
help='Gaia DR3 ID to query for (e.g. "35227046884571776")')
return super().add_cmdline_args(parser, cfg)