Code Monkey home page Code Monkey logo

astro's Introduction

astro

What is it?

astro is a C++ astronomical library. Functionality includes:

  • Calculating the following for all the majory planetary bodies at any given UTC date:
    • Right ascension;
    • Declination;
    • Distance from the earth;
    • Heliocentric coordinates in the orbital plane;
    • Heliocentric coordinates in the J2000 ecliptic plane;
    • Geocentric ecliptic coordinates;
    • Geocentric equatorial coordinates; and
    • Zodiac coordinates of the form 15GE23.
  • Solving Kepler's equation;
  • Converting degrees to hour/minute/second and degree/minute/second formats;
  • Finding the Julian date for any given UTC date; and
  • Converting rectangular to spherical coordinates.

Who maintains it?

astro is written and maintained by Paul Griffiths.

The latest version

Details of the latest version can be found on the GitHub project page at https://github.com/paulgriffiths/astro.

Documentation

Up-to-date documentation can be found at https://github.com/paulgriffiths/astro/wiki.

Installation

astro is written in C++. It requires the utctime library, which can be found at https://github.com/paulgriffiths/utctime.

Download the source code and edit the file Makefile to modify the following variables:

  • LIB_INSTALL_PATH
  • INC_INSTALL_PATH

with the directories to which to install the library and the header files, and the variables:

  • UTC_INC_PATH
  • UTC_LIB_PATH

with the directories in which the UTCTime library and headers are installed.

From the command line, run make and then make install to deploy the library and header files. Run make sample to build an example program with the installed library. #include <paulgrif/astro.h> to use the library.

a sample program. Include the files in your project to access the functionality. Licensing

Please see the file called LICENSE.

Contacts

astro's People

Contributors

paulgriffiths avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

astro's Issues

Refactor moon and other planets to overall common base class.

Put the coords() functions, and right_ascension() etc into the abstract base class. right_ascension() etc can be defined within the abstract base. geo_equ_coords() probably can, too, and possibly some others, although m_oes may need to be made protected rather than private and defined in the base. Maybe add an OrbElem argument to the base class constructor, and pass it from the immediate subclasses via their calc_orbital_elements() functions.

Pull OrbElems into class definitions?

I.e. instead of having an ID from the planets enum and reading it from an array? Each set of epoch and periodic elements is unique to each planet, after all, may be easier to just bake it into the construction, e.g. have two more members, m_epoch_oes and m_century_oes or similar. Or have them as static members or the class? Probably better?

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.