
Hello, I would like to think that it would be possible to create a library for common astronomical calculations, and I think boost might be the proper place to create one for the C++ community. First a definition: by common calculations I mean those most relevant to every dat life. For normal people this would pretty much exclude most astronomical calculations except those concerning the sun and the moon. Some examples on what calculations I think would be common are: o sunrise, sunset, noon o sun elevation, azimuth, declination o length of the day o phase of the moon, and whether the visible fraction is increasing or not However, there are some complications: o There are several ways to define twilight times, for example civil, nautical and astronomical. o The sun may set/rise more than once during a day in polar regions, or it may do neither. o What is the definition for the length of the day if sunrise/sunset occurs more than once during a day? o Are separate methods needed for testing whether the given date is of type "polar day" or "polar night" or "midnight sun"? The definitions for the three seem to be a bit ambiguous. For example, it is perfectly possible for the sun to be up at midnight but still to set during the day, in which case you would have "midnight sun" but not necessarily a "polar day", when the sun shines 24h. o Most calculations are intimately tied to the local time, so the API should rely on Boost.Date_time. Many places refer to Meeus's work for the most accurate calculations. The formulas have been ported to C++ in the form of the AA++ (astronomical algorithms) library. However, the library seems to be aimed for experts and there are no easy recipies for solving the common problems mentioned above. The questions I would like to pose are then: o Would a boost::astronomy namespace as implied above be a good addition to boost? o Are there any experts out there who understand the subject matter well enough to provide a robust implementation or atleast guidance on the matter? For example, NOAA provides web based solar position and sunrise calculators. According to the documentation the calculators are based on the work of Meeus. However, there are some clear design issues on how things should be handled in C++ versus the JavaScript embedded into the NOAA pages. Any thoughts on the matter? Regards, --> Mika Heiskanen