Example #1
0
def hipeqgal():
    """Print summary of EQ-GAL comparison with SLALIB eqgal (HIP)."""
    hip_tab = get_hipdata()
    sla_tab = get_sla("slalib_hip_eqgal.txt")

    dummy = np.zeros((len(hip_tab['px']), ))
    v6l = convert.cat2v6(hip_tab['raj2'], hip_tab['decj2'], dummy, dummy,
                         dummy, dummy, tpm.CJ)

    v6o = convert.convertv6(v6l, s1=6, s2=4)
    # The galactic coordinates are at epoch J2000. But SLALIB
    # results are for B1950. So apply proper motion here.
    v6o = convert.proper_motion(v6o, tpm.B1950, tpm.J2000)
    cat = convert.v62cat(v6o, tpm.CJ)

    cat = cat2array(cat)

    ra_diff = np.degrees(cat['alpha']) - sla_tab[:, 0]
    ra_diff = np.abs(ra_diff * 3600.0)
    dec_diff = np.degrees(cat['delta']) - sla_tab[:, 1]
    dec_diff = np.abs(dec_diff * 3600.0)

    print("Comparison with SLALIB eqgal using HIPPARCOS data.")
    fs = "{0} {1}\n" + \
        "Min:  {2:.4f} Max: {3:.4f} \nMean: {4:.4f} Std: {5:.4f}\n"
    x = stats.describe(ra_diff)
    print(fs.format("ra_diff", "arcsec", x[1][0], x[1][1], x[2], x[3]**0.5))
    x = stats.describe(dec_diff)
    print(fs.format("dec_diff", "arcsec", x[1][0], x[1][1], x[2], x[3]**0.5))
Example #2
0
def hipgaleq():
    """Print summary of GAL-EQ comparison with SLALIB galeq (HIP)."""
    hip_tab = get_hipdata()
    sla_tab = get_sla("slalib_hip_galeq.txt")

    dummy = np.zeros((len(hip_tab['px']), ))
    v6l = convert.cat2v6(hip_tab['glon'], hip_tab['glat'], dummy, dummy, dummy,
                         dummy, tpm.CJ)

    # The actual epoch of galactic data is J2000. But in SLALIB
    # the input is taken to be B1950.0. So use tpm.B1950 as epoch
    # in the conversion.
    v6o = convert.convertv6(v6l, s1=4, s2=6, epoch=tpm.B1950)
    cat = convert.v62cat(v6o, tpm.CJ)

    cat = cat2array(cat)

    ra_diff = np.degrees(cat['alpha']) - sla_tab[:, 0]
    ra_diff = np.abs(ra_diff * 3600.0)
    dec_diff = np.degrees(cat['delta']) - sla_tab[:, 1]
    dec_diff = np.abs(dec_diff * 3600.0)

    print("Comparison with SLALIB galeq using HIPPARCOS data.")
    fs = "{0} {1}\n" + \
        "Min:  {2:.4f} Max: {3:.4f} \nMean: {4:.4f} Std: {5:.4f}\n"
    x = stats.describe(ra_diff)
    print(fs.format("ra_diff", "arcsec", x[1][0], x[1][1], x[2], x[3]**0.5))
    x = stats.describe(dec_diff)
    print(fs.format("dec_diff", "arcsec", x[1][0], x[1][1], x[2], x[3]**0.5))
Example #3
0
def hipecleq():
    """Print summary of ECL-EQ comparison with SLALIB ecleq (HIP)."""
    hip_tab = get_hipdata()
    sla_tab = get_sla("slalib_hip_ecleq.txt")

    dummy = np.zeros((len(hip_tab['px']), ))
    v6l = convert.cat2v6(hip_tab['elon2'], hip_tab['elat2'], dummy, dummy,
                         dummy, dummy, tpm.CJ)

    v6o = convert.convertv6(v6l, s1=3, s2=6)
    cat = convert.v62cat(v6o, tpm.CJ)

    cat = cat2array(cat)

    ra_diff = np.degrees(cat['alpha']) - sla_tab[:, 0]
    ra_diff = np.abs(ra_diff * 3600.0)
    dec_diff = np.degrees(cat['delta']) - sla_tab[:, 1]
    dec_diff = np.abs(dec_diff * 3600.0)

    print("Comparison with SLALIB ecleq using HIPPARCOS data.")
    fs = "{0} {1}\n" + \
        "Min:  {2:.4f} Max: {3:.4f} \nMean: {4:.4f} Std: {5:.4f}\n"
    x = stats.describe(ra_diff)
    print(fs.format("ra_diff", "arcsec", x[1][0], x[1][1], x[2], x[3]**0.5))
    x = stats.describe(dec_diff)
    print(fs.format("dec_diff", "arcsec", x[1][0], x[1][1], x[2], x[3]**0.5))
Example #4
0
def hipfk524():
    """Print summary of FK5-FK4 comparison with SLALIB fk524 (HIP)."""
    hip_tab = get_hipdata()
    sla_tab = get_sla("slalib_hip_fk524.txt")
    rv = np.zeros((len(hip_tab['px'],)))

    v6l = convert.cat2v6(hip_tab['raj2'], hip_tab['decj2'], hip_tab['pma'],
                    hip_tab['pmd'], hip_tab['px'], rv, tpm.CJ)

    v6o = convert.convertv6(v6l, s1=6, s2=5, epoch=tpm.J2000)
    v6o = convert.proper_motion(v6o, tpm.B1950, tpm.J2000)
    cat = (tpm.v62cat(v, tpm.CB) for v in v6o)
    d = cat2array(cat)

    ra_diff = np.degrees(d['alpha']) - sla_tab[:, 0]
    ra_diff *= 3600.0
    dec_diff = np.degrees(d['delta']) - sla_tab[:, 1]
    dec_diff *= 3600.0
    px_diff = d['px'] * 1000.0 - sla_tab[:, 2]
    pma_diff = d['pma'] * 1000.0 / 100.0 - sla_tab[:, 3]
    pmd_diff = d['pmd'] * 1000.0 / 100.0 - sla_tab[:, 4]
    rv_diff = d['rv'] - sla_tab[:, 5]

    fs = "{0} {1}\n" + \
        "Min:  {2:.4f} Max: {3:.4f} \nMean: {4:.4f} Std: {5:.4f}\n"
    x = [stats.describe(np.abs(i)) for i in
         [ra_diff, dec_diff, px_diff, pma_diff, pmd_diff, rv_diff]]
    print("Comparison with SLALIB fk524 using HIPPARCOS data.")
    for name, unit, s in zip(
        ["ra_diff", "dec_diff", "px_diff", "pma_diff", "pmd_diff",
         "rv_diff"],
        ["arsec", "arcsec", "milliarcsec", "milli-arsec/trop. yr",
         "milli-arcsec/trop. yr", "km/s"],
        x):
        print(fs.format(name, unit, s[1][0], s[1][1], s[2], s[3] ** 0.5))
Example #5
0
def hipgaleq():
    """Print summary of GAL-EQ comparison with SLALIB galeq (HIP)."""
    hip_tab = get_hipdata()
    sla_tab = get_sla("slalib_hip_galeq.txt")

    dummy = np.zeros((len(hip_tab['px']),))
    v6l = convert.cat2v6(hip_tab['glon'], hip_tab['glat'], dummy, dummy,
                         dummy, dummy, tpm.CJ)

    # The actual epoch of galactic data is J2000. But in SLALIB
    # the input is taken to be B1950.0. So use tpm.B1950 as epoch
    # in the conversion.
    v6o = convert.convertv6(v6l, s1=4, s2=6, epoch=tpm.B1950)
    cat = convert.v62cat(v6o, tpm.CJ)

    cat = cat2array(cat)

    ra_diff = np.degrees(cat['alpha']) - sla_tab[:, 0]
    ra_diff = np.abs(ra_diff * 3600.0)
    dec_diff = np.degrees(cat['delta']) - sla_tab[:, 1]
    dec_diff = np.abs(dec_diff * 3600.0)

    print("Comparison with SLALIB galeq using HIPPARCOS data.")
    fs = "{0} {1}\n" + \
        "Min:  {2:.4f} Max: {3:.4f} \nMean: {4:.4f} Std: {5:.4f}\n"
    x = stats.describe(ra_diff)
    print(fs.format("ra_diff", "arcsec", x[1][0], x[1][1], x[2],
                    x[3] ** 0.5))
    x = stats.describe(dec_diff)
    print(fs.format("dec_diff", "arcsec", x[1][0], x[1][1], x[2],
                    x[3] ** 0.5))
Example #6
0
def hipeqgal():
    """Print summary of EQ-GAL comparison with SLALIB eqgal (HIP)."""
    hip_tab = get_hipdata()
    sla_tab = get_sla("slalib_hip_eqgal.txt")

    dummy = np.zeros((len(hip_tab['px']),))
    v6l = convert.cat2v6(hip_tab['raj2'], hip_tab['decj2'], dummy, dummy,
                         dummy, dummy, tpm.CJ)

    v6o = convert.convertv6(v6l, s1=6, s2=4)
    # The galactic coordinates are at epoch J2000. But SLALIB
    # results are for B1950. So apply proper motion here.
    v6o = convert.proper_motion(v6o, tpm.B1950, tpm.J2000)
    cat = convert.v62cat(v6o, tpm.CJ)

    cat = cat2array(cat)

    ra_diff = np.degrees(cat['alpha']) - sla_tab[:, 0]
    ra_diff = np.abs(ra_diff * 3600.0)
    dec_diff = np.degrees(cat['delta']) - sla_tab[:, 1]
    dec_diff = np.abs(dec_diff * 3600.0)

    print("Comparison with SLALIB eqgal using HIPPARCOS data.")
    fs = "{0} {1}\n" + \
        "Min:  {2:.4f} Max: {3:.4f} \nMean: {4:.4f} Std: {5:.4f}\n"
    x = stats.describe(ra_diff)
    print(fs.format("ra_diff", "arcsec", x[1][0], x[1][1], x[2],
                    x[3] ** 0.5))
    x = stats.describe(dec_diff)
    print(fs.format("dec_diff", "arcsec", x[1][0], x[1][1], x[2],
                    x[3] ** 0.5))
Example #7
0
def hipecleq():
    """Print summary of ECL-EQ comparison with SLALIB ecleq (HIP)."""
    hip_tab = get_hipdata()
    sla_tab = get_sla("slalib_hip_ecleq.txt")

    dummy = np.zeros((len(hip_tab['px']),))
    v6l = convert.cat2v6(hip_tab['elon2'], hip_tab['elat2'], dummy, dummy,
                         dummy, dummy, tpm.CJ)

    v6o = convert.convertv6(v6l, s1=3, s2=6)
    cat = convert.v62cat(v6o, tpm.CJ)

    cat = cat2array(cat)

    ra_diff = np.degrees(cat['alpha']) - sla_tab[:, 0]
    ra_diff = np.abs(ra_diff * 3600.0)
    dec_diff = np.degrees(cat['delta']) - sla_tab[:, 1]
    dec_diff = np.abs(dec_diff * 3600.0)

    print("Comparison with SLALIB ecleq using HIPPARCOS data.")
    fs = "{0} {1}\n" + \
        "Min:  {2:.4f} Max: {3:.4f} \nMean: {4:.4f} Std: {5:.4f}\n"
    x = stats.describe(ra_diff)
    print(fs.format("ra_diff", "arcsec", x[1][0], x[1][1], x[2],
                    x[3] ** 0.5))
    x = stats.describe(dec_diff)
    print(fs.format("dec_diff", "arcsec", x[1][0], x[1][1], x[2],
                    x[3] ** 0.5))
Example #8
0
def hipfk524():
    """Print summary of FK5-FK4 comparison with SLALIB fk524 (HIP)."""
    hip_tab = get_hipdata()
    sla_tab = get_sla("slalib_hip_fk524.txt")
    rv = np.zeros((len(hip_tab['px'], )))

    v6l = convert.cat2v6(hip_tab['raj2'], hip_tab['decj2'], hip_tab['pma'],
                         hip_tab['pmd'], hip_tab['px'], rv, tpm.CJ)

    v6o = convert.convertv6(v6l, s1=6, s2=5, epoch=tpm.J2000)
    v6o = convert.proper_motion(v6o, tpm.B1950, tpm.J2000)
    cat = (tpm.v62cat(v, tpm.CB) for v in v6o)
    d = cat2array(cat)

    ra_diff = np.degrees(d['alpha']) - sla_tab[:, 0]
    ra_diff *= 3600.0
    dec_diff = np.degrees(d['delta']) - sla_tab[:, 1]
    dec_diff *= 3600.0
    px_diff = d['px'] * 1000.0 - sla_tab[:, 2]
    pma_diff = d['pma'] * 1000.0 / 100.0 - sla_tab[:, 3]
    pmd_diff = d['pmd'] * 1000.0 / 100.0 - sla_tab[:, 4]
    rv_diff = d['rv'] - sla_tab[:, 5]

    fs = "{0} {1}\n" + \
        "Min:  {2:.4f} Max: {3:.4f} \nMean: {4:.4f} Std: {5:.4f}\n"
    x = [
        stats.describe(np.abs(i))
        for i in [ra_diff, dec_diff, px_diff, pma_diff, pmd_diff, rv_diff]
    ]
    print("Comparison with SLALIB fk524 using HIPPARCOS data.")
    for name, unit, s in zip(
        ["ra_diff", "dec_diff", "px_diff", "pma_diff", "pmd_diff", "rv_diff"],
        [
            "arsec", "arcsec", "milliarcsec", "milli-arsec/trop. yr",
            "milli-arcsec/trop. yr", "km/s"
        ], x):
        print(fs.format(name, unit, s[1][0], s[1][1], s[2], s[3]**0.5))
Example #9
0
# Convert HIPPARCOS data using SLALIB. The output files can then be
# used to compare with PyTPM.
import math
from pyslalib import slalib
import read_data
from read_data import get_hipdata
import numpy as np

tab = get_hipdata()

# sla_fk524.
# Convert HIP FK5 J2000 coordinates as given by Vizier to B1950
# coordinates using SLALIB function fk524, which takes proper motion
# as well. This is NOT a transformation to HIPPARCOS frame. I just use
# the coordinates given by Vizier to compare proper motion conversions
# using PyTPM and SLALIB.
#raj = [math.radians(i) for i in tab['raj2']]
#decj = [math.radians(i) for i in tab["decj2"]]
## Milli-arcsec/Jul. year *cos(dec) into rad/Jul year.
#pmaj = [math.radians(i / 1000.0 / math.cos(j) / 3600.0)
#        for i, j in zip(tab['pma'], decj)]
#pmdj = [math.radians(i / 1000.0 / 3600.0)
#        for i in tab['pmd']]
#pxj = [i / 1000.0 for i in tab['px']]  # milli-arcsec to arc-sec.
#rvj = list(0.0 for i in range(len(pxj)))
#
#rab = []
#decb = []
#pmab = []
#pmdb = []
#pxb = []
Example #10
0
from __future__ import print_function
from __future__ import absolute_import
import sys
from scipy import stats
import numpy as np
import os
from read_data import testdatadir
from read_data import get_hipdata
from read_data import cat2array

# I want to run these without having to install PyTPM.
sys.path.append("..")
from pytpm import tpm, convert

# Load HIPPAROCS data and output from running SLALIB map.
hip_tab = get_hipdata()
tab = np.loadtxt(os.path.join(testdatadir, "slalib_hip_map.txt"))
rv = np.zeros_like(hip_tab['px'])

# Create V6C array from catalog data.
v6l = convert.cat2v6(hip_tab['raj2'], hip_tab['decj2'], hip_tab['pma'],
                     hip_tab['pmd'], hip_tab['px'], rv, tpm.CJ)

# UTC and TDB for mid-night of 2010/1/1.
utc = tpm.gcal2j(2010, 1, 1) - 0.5  # midnight
tt = tpm.utc2tdb(utc)

# Apply proper motion from J2000 to date.
v6o = convert.proper_motion(v6l, tt, tpm.J2000)

# Convert from mean equinox J2000 to true equinox and epoch of date.