Commit Graph

1232 Commits

Author SHA1 Message Date
Don Cross
f8001db8d0 More work on custom translation of doxygen xml to markdown. 2019-05-27 09:25:58 -04:00
Don Cross
63474a29d0 Work in progress: hydrogen 2019-05-26 21:22:23 -04:00
Don Cross
2dc6124f79 Explicitly specify astronomy.c and astronomy.h for doxygen.
I don't want doxygen processing any other files to generate
C documentation. I see that it can pull in .md files, which
could cause problems later.
2019-05-26 20:47:54 -04:00
Don Cross
118a224921 Removing moxygen. I'm going to create my own custom doxygen-to-markdown. 2019-05-26 20:32:57 -04:00
Don Cross
cbdef29197 Starting to experiment with moxygen custom templates.
I don't know if this is going to do what I want, but I'm
hoping I can customize the Markdown output generated by moxygen
to be useful for a simple C library like this. It appears to be
customized for a class-oriented C++ program.
2019-05-26 17:43:23 -04:00
Don Cross
83b1504552 Fixed C build error in doxygen refactoring. 2019-05-26 15:56:28 -04:00
Don Cross
5a19727dfe Hiding C code internals from Doxygen.
Certain macros and typedefs were ending up in Doxygen output
that have no reason to be documented for outside users.
Mostly I used Doxygen conditionals to hide them.
In a couple of cases I had some internal functions that needed
to be declared static so Doxygen hides them.

Added DoxygenLayout.xml, but not using it yet.
Still trying to figure out how to make Markdown output
that doesn't look terrible. Not sure I can get Moxygen
to do what I want. I may have to create my own simple(?) tool.
2019-05-26 15:49:37 -04:00
Don Cross
59dcc75625 Adding more C documentation. 2019-05-26 14:52:08 -04:00
Don Cross
7591cd26ef Starting to add more C documentation. Still working on doxygen/moxygen. 2019-05-26 12:05:55 -04:00
Don Cross
f4c3a867da Starting to generate C documentation in Markdown format. 2019-05-26 11:36:38 -04:00
Don Cross
c5ee9b6830 Starting to get doxygen to work. 2019-05-26 10:09:09 -04:00
Don Cross
6a96c520dd Original generated Doxyfile. 2019-05-26 09:21:18 -04:00
Don Cross
9ed995e462 Added C function Astronomy_CurrentTime(). Added C moon phase demo. 2019-05-25 21:18:24 -04:00
Don Cross
96b3b8a9f0 Added C functions UtcFromTime, TimeFromUtc.
These functions allow generating a Gregorian calendar date and time
in UTC from an astro_time_t, and vice versa.
This filled in a gap where we needed a way to transform an astronomy
time value into something a user would recognize.

I may have to revisit this later for compatibility with the <time.h>
standard library, etc.
2019-05-25 15:31:45 -04:00
Don Cross
821e89e10b Validated C functions SearchLunarApsis, NextLunarApsis. 2019-05-24 19:29:31 -04:00
Don Cross
ba7814df4d Added protection from infinite loops in JS, C versions of SearchLunarApsis.
I made sure it is not possible to get stuck in an infinite
loop inside SearchLunarApsis, both the C and JavaScript versions.
If we loop over more time than 2 synodic months (more than enough time),
bail out with an exception (JS) or an internal error (C).
2019-05-24 17:21:04 -04:00
Don Cross
74dd133391 Implemented C function SearchLunarApsis, but not yet tested. 2019-05-24 16:58:03 -04:00
Don Cross
8cca72c959 Validated C function SearchPeakMagnitude. 2019-05-24 15:41:51 -04:00
Don Cross
6d6e161b53 Implemented C test for Saturn magnitude. Fixed bug in Astronomy_Ecliptic.
Astronomy_Ecliptic was using midnight on 2000-01-01 as the epoch,
but it should have been using noon. Fixed it. Discovered because
there was a tiny but larger than expected error in calculating
the tilt of Saturn's rings.
2019-05-23 21:47:15 -04:00
Don Cross
3c5c47d704 Implemented C function SearchMaxMagnitude, but not yet tested. 2019-05-23 19:44:32 -04:00
Don Cross
ab74212146 Validated C function Illumination. 2019-05-23 18:15:00 -04:00
Don Cross
9ed27be0f8 Work in progress: Adding C magnitude tests. 2019-05-23 12:05:18 -04:00
Don Cross
84d428d583 Implemented C function Illumination, but not tested yet. 2019-05-23 11:42:19 -04:00
Don Cross
4982da4307 Added unit tests for C functions SearchRiseSet, SearchHourAngle. 2019-05-22 13:44:46 -04:00
Don Cross
83d909751e Implemented C function SearchRiseSet, but not yet implemented. 2019-05-21 21:09:59 -04:00
Don Cross
9dfc3dee69 Implemented C function SearchHourAngle, but not yet tested. 2019-05-21 20:17:59 -04:00
Don Cross
dbd8c60e15 Added more unit tests for C function SearchRelativeLongitude. 2019-05-21 17:16:44 -04:00
Don Cross
86dad96ef0 Validated C functions: EclipticLongitude, SearchMaxElongation, SearchRelativeLongitude, Elongation, AngleFromSun.
Also realized I was only verifying JS max elongation angles to be within 1 degree.
Tightened that to 4 arcmin.
2019-05-21 16:22:51 -04:00
Don Cross
09fc1a5d4d Updated comments. 2019-05-21 15:21:18 -04:00
Don Cross
daf2dddcce Validated C function SearchRelativeLongitude. 2019-05-21 15:20:18 -04:00
Don Cross
3557d3b8af Implemented C functions EclipticLongitude, SearchMaxElongation, SearchRelativeLongitude.
Work in progress. Not yet tested.
2019-05-21 14:21:44 -04:00
Don Cross
76527b5453 Implemented C function Elongation, but not yet tested. 2019-05-21 12:37:20 -04:00
Don Cross
27058b85ee Added time error verification for C unit tests of SearchMoonQuarter, NextMoonQuarter. 2019-05-21 12:17:34 -04:00
Don Cross
665be9c516 Fixed bug calculating moon phases in new C code. 2019-05-21 12:00:55 -04:00
Don Cross
80e4fb8b00 Work in progress: C functions SearchMoonQuarter, NextMoonQuarter. 2019-05-21 11:42:55 -04:00
Don Cross
020e12d8ce C function SearchMoonPhase in progress. Refactored Search so functions can return errors. 2019-05-21 11:22:51 -04:00
Don Cross
4513036af0 Added C function MoonPhase, but not tested yet. 2019-05-21 08:36:58 -04:00
Don Cross
4ac847676a Implemented C function LongitudeFromSun, but not tested yet. 2019-05-20 17:07:08 -04:00
Don Cross
10aa2d7317 Implemented C function Ecliptic, but not tested yet. 2019-05-20 16:51:53 -04:00
Don Cross
aacc680b0e Implemented C function AngleFromSun, but not tested yet. 2019-05-20 16:41:54 -04:00
Don Cross
9e9b9420f3 Implemented unit test for C function Seasons.
This also validates the Search function and Sun longitude calculation.
2019-05-20 16:00:21 -04:00
Don Cross
87e65b43d7 Implemented C function Seasons, but not yet tested. 2019-05-20 15:23:15 -04:00
Don Cross
468319b71d Implemented C function SearchSunLongitude, but not tested yet. 2019-05-20 15:08:17 -04:00
Don Cross
999583a989 Implemented C function Search. Not yet tested. 2019-05-20 14:53:51 -04:00
Don Cross
528dad54cf Implemented C function SunPosition. Not yet tested. 2019-05-20 14:02:29 -04:00
Don Cross
7d4047429a Fixed #38 - Run C unit tests on Windows. 2019-05-19 21:29:31 -04:00
Don Cross
2e9f2918bd JS: Replaced SkyPos with Equator function.
This is a refactoring to follow suit with what I did in the C
version of the code. It improves accuracy by using different
geocentric vector calculations for j2000 and ofdate equatorial
coordinates. Allow optional aberration corrections.
2019-05-19 18:12:01 -04:00
Don Cross
5f5d67d8da C: Eliminated SkyPos and added Equator function to do its work.
SkyPos was doing 2 different calculations and mashing them together.
Created a more general Equator function that does both jobs one at a time.
Equator can enable/disable rotation to of-date coordinates (precession+nutation)
and enable/disable aberration correction.

Equatorial coordinate type astro_equatorial_t now has a status field
just like astro_vector_t, so we can report errors.
2019-05-19 17:15:19 -04:00
Don Cross
d48759bd35 Fixing SkyPos to have lower error compared with NOVAS.
I have figured out how to make a simple correction for aberration
when calculating geocentric vectors.
To include aberration, not only do I back-date the heliocentric
position of the observed body, but I also backdate the
heliocentric position of the Earth by the same amount of time.
This works because for time periods of a few hours or less,
it is a very good approximation for the aberration angle asin(v/c).

To match NOVAS, astrometric coordinates used for J2000 return value
must exclude the aberration correction, while of-date coordinates
must include aberration.

This requires changing the parameters passed in to SkyPos.
I will have to circle back and make the same changes in the
JavaScript code.

This significantly reduces horizontal angular errors for the planets.
2019-05-19 15:54:14 -04:00
Don Cross
f8bb7f1faf C version: implemented heliocentric calculation of Moon's position. 2019-05-19 09:18:13 -04:00