}

Contents

Introduction

coordConv provides conversion of astronomical coordinates with sufficient accuracy to control large research telescopes. Supported coordinate conversions include ICRS, FK5, FK4, Galactic, Apparent Geocentric, Apparent Topocentric and Observed (apparent topocentric with atmospheric refraction), and more may be added. The design accuracy is 0.01 arcsecond.

CoordConv is written in C++ and Python, using SWIG as the C++ wrapper.

Conventions

  • Spherical positions are in degrees (even right ascension). The first axis is the equatorial angle (e.g. right ascension or azimuth); the second axis is the polar angle (e.g. declination or altitude).
  • Cartesian positions are in astronomical units.
  • Proper motion is arcsec/century; the equatorial component is dEquatAng/dt, so it may be large near the pole.
  • Radial velocity is km/sec, positive receding.
  • All coordinate systems are right-handed, so azimuth os 0 south (which is unusual), 90 east.
  • TAI is MJD, seconds (rather than days, which is more common).

Example of Use

In Python the following will convert an FK5 J2000 position to apparent topocentric coordinates at a specified TAI date:

        import coordConv
        taiDate = 4916391905 # TAI date in MJD, seconds
        site = coordConv.Site(-105.822616, 32.780988, 2788) # Apache Point Observatory 3.5m telescope
        # For better accuracy you may also specify UT1-TAI and pole wander in site;
        # these may be obtained from IERS Bulletin B
        fk5Sys = coordConv.FK5CoordSys(2000)
        fk5Coords = coordConv.Coord(35.12, 75.3)
        appTopoSys = coordConv.AppTopoCoordSys() # the default is "now": use the TAI date provided to convertFrom
        appTopoCoords = appTopoSys.convertFrom(fk5Sys, fk5Coords, site, taiDate)
        print appTopoCoords
        

This should print: Coord(197.389757, 32.422602, 0.00000)

To convert to observed coordinates, refraction coefficients must be set in site; you may use slalib's slaRefco to compute these. Site information is ignored when converting between mean coordinate systems.

Installation

Requirements

The following packages are required, and all but slalib are available in the LSST software stack:

  • slalib
  • Eigen: C++ vector library
  • ndarray: adds python support to Eigen. I use the LSST version, which also requires:
  • boost
  • daf_base: an LSST package
  • sconsUtils: an LSST package that makes it easier to build packages using scons

The simplest way to build this package is:

  • Install slalib.
  • Install the minimal LSST software stack, which includes all dependencies other than slalib. As of 2014-08-29 coordConv is known to run with the Summer 2013 LSST software.
  • Type the following commands:
    • cd package_root
    • setup -r .# setup the package in eups
    • scons# build the software and run unit tests
    • scons install version=version declare# copy the software into the LSST stack, where version should match the current version of the software in python/coordConv/version.py
    • In addition, if you wish to tag the software "current" or "test": eups declare coordConv version -t tag