Giter VIP home page Giter VIP logo

star_cats's Introduction

star_cats

C code to access star catalogue data. Thus far, this means UCACs 2, 3, and 4; URAT1; Dave Tholen's Gaia32 (compressed, re-sorted Gaia DR1 and, later, DR2 with just the bits needed for asteroid astrometry); and for CMC-14 and CMC-15.

Code for other catalogues will be added as I get around to it (I have code for UCAC1, Ax.0, Bx.0, GSC-1.x, and more... just not posted yet; I've focussed on catalogues people are most likely to use.)

Some general notes on how the star catalogue extraction works :

Almost all of the catalogs come to us divided into zones by dec, with the stars within each zone sorted by RA. The number of such dec zones vary; A1.0 used 24 zones each 7.5 degrees high, the compressed Gaia-DR1 and DR2 use 180 zones of one degree each, and URAT1 uses 900 zones of .2 degrees each. (Gaia originally comes to us in HEALPix form, a decent choice for some imaging purposes and a terrible one for a star catalog; I'm glad Dave Tholen reprocessed it into declination zones.)

All of the star catalog extraction code at the above site uses the following method (sometimes with little flourishes, as I'll describe below) :

Figure out which declination zones cover the region you want.
For each zone,  do the following :
   Do a binary search to find the "starting point" in RA within
      the zone file.
   Keep reading stars from the zone file until you find one
      that's out of bounds in RA.
   Each star you read in will then be in the proper bounds in
      RA; if it's also in the correct bounds in dec,  you have
      one more star to add to your output.

There is also a little bit of logic needed to handle situations where the desired region spans RA=0. For that, the above procedure is done twice, once at the "low" RA end, and again at the "high" RA end.

For some catalogs, an index is available that may shrink the size of the binary search you have to do. If the index gives you, say, the starting point for data within each zone file at two-degree intervals, and your desired rectangle in RA spans from 314.1592 to 320.9321 degrees, you would use the index to find out where RA=314 degrees and RA=316 degrees are in the zone, and binary-search between those values (instead of searching the entire zone file).

In a few cases, I've gone a step beyond that. In the above case, if the stars are uniformly distributed over that section, RA=314.1592 will be much closer to the RA=314 point than the RA=316 point, and we can benefit (very slightly) by interpolating linearly. Similarly, if you don't have an index, you can start out by assuming RA=314.1592 is going to be closer to the end of the zone file than it is to the beginning. But I am not really convinced I have ever gotten much benefit over the simple "binary search the entire zone file" procedure. See gaia32.c and the "notes on indexing" comments for further explanation.

star_cats's People

Contributors

bill-gray avatar ygabrielsy avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.