def try_MENSRB(): tre = None if tres is None else tres['MENSRB'] if tre is None: return mensrb = tre.DATA arp_llh = numpy.array( [lat_lon_parser(mensrb.ACFT_LOC[:12]), lat_lon_parser(mensrb.ACFT_LOC[12:25]), foot*float(mensrb.ACFT_ALT)], dtype='float64') scp_llh = numpy.array( [lat_lon_parser(mensrb.RP_LOC[:12]), lat_lon_parser(mensrb.RP_LOC[12:25]), foot*float(mensrb.RP_ELV)], dtype='float64') # TODO: handle the conversion from msl to hae arp_ecf = geodetic_to_ecf(arp_llh) scp_ecf = geodetic_to_ecf(scp_llh) set_arp_position(arp_ecf, override=True) set_scp(scp_ecf, (int(mensrb.RP_COL)-1, int(mensrb.RP_ROW)-1), override=False) row_unit_ned = numpy.array( [float(mensrb.C_R_NC), float(mensrb.C_R_EC), float(mensrb.C_R_DC)], dtype='float64') col_unit_ned = numpy.array( [float(mensrb.C_AZ_NC), float(mensrb.C_AZ_EC), float(mensrb.C_AZ_DC)], dtype='float64') set_uvects(ned_to_ecf(row_unit_ned, scp_ecf, absolute_coords=False), ned_to_ecf(col_unit_ned, scp_ecf, absolute_coords=False))
def try_MENSRA(): tre = None if tres is None else tres['MENSRA'] if tre is None: return mensra = tre.DATA arp_llh = numpy.array( [lat_lon_parser(mensra.ACFT_LOC[:10]), lat_lon_parser(mensra.ACFT_LOC[10:21]), foot*float(mensra.ACFT_ALT)], dtype='float64') scp_llh = numpy.array( [lat_lon_parser(mensra.CP_LOC[:10]), lat_lon_parser(mensra.CP_LOC[10:21]), foot*float(mensra.CP_ALT)], dtype='float64') # TODO: handle the conversion from msl to hae arp_ecf = geodetic_to_ecf(arp_llh) scp_ecf = geodetic_to_ecf(scp_llh) set_arp_position(arp_ecf, override=True) # TODO: is this already zero based? set_scp(geodetic_to_ecf(scp_llh), (int(mensra.CCRP_COL), int(mensra.CCRP_ROW)), override=False) row_unit_ned = numpy.array( [float(mensra.C_R_NC), float(mensra.C_R_EC), float(mensra.C_R_DC)], dtype='float64') col_unit_ned = numpy.array( [float(mensra.C_AZ_NC), float(mensra.C_AZ_EC), float(mensra.C_AZ_DC)], dtype='float64') set_uvects(ned_to_ecf(row_unit_ned, scp_ecf, absolute_coords=False), ned_to_ecf(col_unit_ned, scp_ecf, absolute_coords=False))
def try_BLOCKA(): tre = None if tres is None else tres['BLOCKA'] if tre is None: return blocka = tre.DATA icps = [] for fld_name in ['FRFC_LOC', 'FRLC_LOC', 'LRLC_LOC', 'LRFC_LOC']: value = getattr(blocka, fld_name) # noinspection PyBroadException try: lat_val = float(value[:10]) lon_val = float(value[10:21]) except: lat_val = lat_lon_parser(value[:10]) lon_val = lat_lon_parser(value[10:21]) icps.append([lat_val, lon_val]) set_image_corners(icps, override=False)