Stellarium 0.15.2
|
contains general purpose utility functions. More...
Functions | |
QString | getApplicationName () |
Return the full name of stellarium, i.e. "stellarium 0.9.0". More... | |
QString | getApplicationVersion () |
Return the version of stellarium, i.e. "0.9.0". More... | |
QString | getOperatingSystemInfo () |
Return the name and the version of operating system, i.e. "Mac OS X 10.7". More... | |
QString | getUserAgentString () |
Return the user agent name, i.e. "Stellarium/0.15.0 (Linux)". More... | |
double | hmsToRad (const unsigned int h, const unsigned int m, const double s) |
Convert an angle in hms format to radian. More... | |
double | dmsToRad (const int d, const unsigned int m, const double s) |
Convert an angle in +-dms format to radian. More... | |
void | radToHms (double rad, unsigned int &h, unsigned int &m, double &s) |
Convert an angle in radian to hms format. More... | |
void | radToDms (double rad, bool &sign, unsigned int &d, unsigned int &m, double &s) |
Convert an angle in radian to +-dms format. More... | |
void | radToDecDeg (double rad, bool &sign, double °) |
Convert an angle in radian to decimal degree. More... | |
QString | radToDecDegStr (const double angle, const int precision=4, const bool useD=false, const bool useC=false) |
Convert an angle in radian to a decimal degree string. More... | |
QString | radToHmsStrAdapt (const double angle) |
Convert an angle in radian to a hms formatted string. More... | |
QString | radToHmsStr (const double angle, const bool decimal=false) |
Convert an angle in radian to a hms formatted string. More... | |
QString | radToDmsStrAdapt (const double angle, const bool useD=false) |
Convert an angle in radian to a dms formatted string. More... | |
QString | radToDmsStr (const double angle, const bool decimal=false, const bool useD=false) |
Convert an angle in radian to a dms formatted string. More... | |
void | decDegToDms (double angle, bool &sign, unsigned int &d, unsigned int &m, double &s) |
Convert an angle in decimal degree to +-dms format. More... | |
QString | decDegToDmsStr (const double angle) |
Convert an angle in decimal degrees to a dms formatted string. More... | |
double | dmsStrToRad (const QString &s) |
Convert a dms formatted string to an angle in radian. More... | |
Vec3f | strToVec3f (const QStringList &s) |
Obtains a Vec3f from a string. More... | |
Vec3f | strToVec3f (const QString &s) |
Reads a Vec3f from a string, separated by commas. Example: 1.0,2.0,3.0. More... | |
Vec4d | strToVec4d (const QStringList &s) |
Like StelUtils::strToVec3f, but with 4 components and with double precision. More... | |
Vec4d | strToVec4d (const QString &s) |
Like StelUtils::strToVec3f, but with 4 components and with double precision. More... | |
QString | vec3fToStr (const Vec3f &v) |
Converts a Vec3f to a string in the same format that can be read by strToVec3f. More... | |
QString | vec4dToStr (const Vec4d &v) |
Converts a Vec4d to a string in the same format that can be read by strToVec4d. More... | |
QString | vec3fToHtmlColor (const Vec3f &v) |
Converts a Vec3f to HTML color notation. More... | |
Vec3f | htmlColorToVec3f (const QString &c) |
Converts a color in HTML notation to a Vec3f. More... | |
void | spheToRect (const double lng, const double lat, Vec3d &v) |
Convert from spherical coordinates to Rectangular direction. More... | |
void | spheToRect (const float lng, const float lat, Vec3f &v) |
Convert from spherical coordinates to Rectangular direction. More... | |
void | rectToSphe (double *lng, double *lat, const Vec3d &v) |
Convert from spherical coordinates to Rectangular direction. More... | |
void | rectToSphe (float *lng, float *lat, const Vec3d &v) |
Convert from spherical coordinates to Rectangular direction. More... | |
void | rectToSphe (float *lng, float *lat, const Vec3f &v) |
Convert from spherical coordinates to Rectangular direction. More... | |
void | equToEcl (const double raRad, const double decRad, const double eclRad, double *lambdaRad, double *betaRad) |
Coordinate Transformation from equatorial to ecliptical. More... | |
void | eclToEqu (const double lambdaRad, const double betaRad, const double eclRad, double *raRad, double *decRad) |
Coordinate Transformation from ecliptical to equatorial. More... | |
double | getDecAngle (const QString &str) |
Convert a string longitude, latitude, RA or Declination angle to radians. More... | |
bool | isPowerOfTwo (const int value) |
Check if a number is a power of 2. More... | |
int | getBiggerPowerOfTwo (int value) |
Return the first power of two bigger than the given value. More... | |
double | asinh (const double z) |
Return the inverse sinus hyperbolic of z. More... | |
int | imod (const int a, const int b) |
Integer modulo where the result is always positive. More... | |
void | getDateFromJulianDay (const double julianDay, int *year, int *month, int *day) |
Make from julianDay a year, month, day for the Julian Date julianDay represents. More... | |
void | getTimeFromJulianDay (const double julianDay, int *hour, int *minute, int *second, int *millis=NULL) |
Make from julianDay an hour, minute, second. More... | |
bool | getDateTimeFromISO8601String (const QString &iso8601Date, int *y, int *m, int *d, int *h, int *min, float *s) |
Parse an ISO8601 date string. More... | |
QString | julianDayToISO8601String (const double jd, bool addMS=false) |
Format the given Julian Day in (UTC) ISO8601 date string. More... | |
double | getJulianDayFromISO8601String (const QString &iso8601Date, bool *ok) |
Return the Julian Date matching the ISO8601 date string. More... | |
QString | localeDateString (const int year, const int month, const int day, const int dayOfWeek, const QString &fmt) |
Format the date and day-of-week per the format in fmt (see QDateTime::toString()). More... | |
QString | localeDateString (const int year, const int month, const int day, const int dayOfWeek) |
Format the date and day-of-week per the system locale's QLocale::ShortFormat. More... | |
double | getJDFromSystem () |
Get the current Julian Date from system time. More... | |
double | qTimeToJDFraction (const QTime &time) |
Convert a time of day to the fraction of a Julian Day. More... | |
QTime | jdFractionToQTime (const double jd) |
Convert a fraction of a Julian Day to a QTime. More... | |
double | qDateTimeToJd (const QDateTime &dateTime) |
Convert a QT QDateTime class to julian day. More... | |
QDateTime | jdToQDateTime (const double &jd) |
Convert a julian day to a QDateTime. More... | |
bool | getJDFromDate (double *newjd, const int y, const int m, const int d, const int h, const int min, const int s) |
Compute Julian day number from calendar date. More... | |
int | numberOfDaysInMonthInYear (const int month, const int year) |
bool | isLeapYear (const int year) |
int | dayInYear (const int year, const int month, const int day) |
Find day number for date in year. More... | |
double | yearFraction (const int year, const int month, const double day) |
Return a fractional year like YYYY.ddddd. For negative years, the year number is decreased. E.g. -500.5 occurs in -501. More... | |
bool | changeDateTimeForRollover (int oy, int om, int od, int oh, int omin, int os, int *ry, int *rm, int *rd, int *rh, int *rmin, int *rs) |
void | debugQVariantMap (const QVariant &m, const QString &indent="", const QString &key="") |
Output a QVariantMap to qDebug(). Formats like a tree where there are nested objects. More... | |
float | fastAcos (const float x) |
Compute acos(x) The taylor serie is not accurate around x=1 and x=-1. More... | |
float | fastExp (const float x) |
Compute exp(x) for small exponents x. More... | |
Vec3f | getNightColor (const Vec3f &dayColor) |
Get a night mode version of a color. More... | |
double | calculateSiderealPeriod (const double SemiMajorAxis) |
Calculate and return sidereal period in days from semi-major axis (in AU) More... | |
QString | hoursToHmsStr (const double hours) |
Convert decimal hours to hours, minutes, seconds. More... | |
long double | secondsSinceStart () |
Get the number of seconds since program start. More... | |
double | getDeltaTwithoutCorrection (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByEspenakMeeus (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTBySchoch (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByClemence (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByIAU (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByAstronomicalEphemeris (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByTuckermanGoldstine (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByMullerStephenson (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByStephenson1978 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByStephenson1997 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTBySchmadelZech1979 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByMorrisonStephenson1982 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByStephensonMorrison1984 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByStephensonMorrison1995 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByStephensonHoulden (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByEspenak (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByBorkowski (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTBySchmadelZech1988 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByChaprontTouze (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByJPLHorizons (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByMorrisonStephenson2004 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByReijs (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByChaprontMeeus (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByMeeusSimons (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByMontenbruckPfleger (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByReingoldDershowitz (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByBanjevic (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByIslamSadiqQureshi (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByKhalidSultanaZaidi (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getDeltaTByStephensonMorrisonHohenkerk2016 (const double jDay) |
Get Delta-T estimation for a given date. More... | |
double | getMoonSecularAcceleration (const double jDay, const double ndot, const bool useDE43x) |
Get Secular Acceleration estimation for a given year. More... | |
double | getDeltaTStandardError (const double jDay) |
Get the standard error (sigma) for the value of DeltaT. More... | |
double | getMoonFluctuation (const double jDay) |
Get value of the Moon fluctuation Source: The Rotation of the Earth, and the Secular Accelerations of the Sun, Moon and Planets Spencer Jones, H. More... | |
template<typename T > | |
int | sign (T val) |
Sign function from http://stackoverflow.com/questions/1903954/is-there-a-standard-sign-function-signum-sgn-in-c-c. More... | |
float * | ComputeCosSinTheta (const int slices) |
Compute cosines and sines around a circle which is split in "segments" parts. More... | |
float * | ComputeCosSinRho (const int segments) |
Compute cosines and sines around a half-circle which is split in "segments" parts. More... | |
float * | ComputeCosSinRhoZone (const float dRho, const int segments, const float minAngle) |
Compute cosines and sines around part of a circle (from top to bottom) which is split in "segments" parts. More... | |
double | getDecYear (const int year, const int month, const int day) |
Compute date in decimal year format. More... | |
int | compareVersions (const QString v1, const QString v2) |
Comparison two string versions and return a result in range -1,0,1. More... | |
QByteArray | uncompress (const QByteArray &data) |
Uncompress gzip or zlib compressed data. More... | |
QByteArray | uncompress (QIODevice &device, qint64 maxBytes=-1) |
Uncompress (gzip/zlib) data from this QIODevice, which must be open and readable. More... | |
double | trunc (double x) |
contains general purpose utility functions.
double StelUtils::asinh | ( | const double | z | ) |
Return the inverse sinus hyperbolic of z.
double StelUtils::calculateSiderealPeriod | ( | const double | SemiMajorAxis | ) |
Calculate and return sidereal period in days from semi-major axis (in AU)
int StelUtils::compareVersions | ( | const QString | v1, |
const QString | v2 | ||
) |
Comparison two string versions and return a result in range -1,0,1.
v1 | string for version 1 |
v2 | string for version 2 |
float* StelUtils::ComputeCosSinRho | ( | const int | segments | ) |
Compute cosines and sines around a half-circle which is split in "segments" parts.
Values are stored in the global static array cos_sin_rho. Used for the sin/cos values along a meridian for a spherical mesh.
segments | number of partitions (elsewhere called "stacks") for the half-circle |
float* StelUtils::ComputeCosSinRhoZone | ( | const float | dRho, |
const int | segments, | ||
const float | minAngle | ||
) |
Compute cosines and sines around part of a circle (from top to bottom) which is split in "segments" parts.
Values are stored in the global static array cos_sin_rho. Used for the sin/cos values along a meridian. This allows leaving away pole caps. The array now contains values for the region minAngle+segments*phi
dRho | a difference angle between the stops |
segments | number of segments |
minAngle | start angle inside the half-circle. maxAngle=minAngle+segments*phi |
float* StelUtils::ComputeCosSinTheta | ( | const int | slices | ) |
Compute cosines and sines around a circle which is split in "segments" parts.
Values are stored in the global static array cos_sin_theta. Used for the sin/cos values along a latitude circle, equator, etc. for a spherical mesh.
slices | number of partitions (elsewhere called "segments") for the circle |
int StelUtils::dayInYear | ( | const int | year, |
const int | month, | ||
const int | day | ||
) |
Find day number for date in year.
Meeus, Astronomical Algorithms 2nd ed., 1998, ch.7, p.65
void StelUtils::debugQVariantMap | ( | const QVariant & | m, |
const QString & | indent = "" , |
||
const QString & | key = "" |
||
) |
Output a QVariantMap to qDebug(). Formats like a tree where there are nested objects.
void StelUtils::decDegToDms | ( | double | angle, |
bool & | sign, | ||
unsigned int & | d, | ||
unsigned int & | m, | ||
double & | s | ||
) |
Convert an angle in decimal degree to +-dms format.
angle | input angle in decimal degree |
sign | true if positive, false otherwise |
d | degree component |
m | minute component |
s | second component |
QString StelUtils::decDegToDmsStr | ( | const double | angle | ) |
Convert an angle in decimal degrees to a dms formatted string.
angle | input angle in decimal degrees |
double StelUtils::dmsStrToRad | ( | const QString & | s | ) |
Convert a dms formatted string to an angle in radian.
s | The input string |
double StelUtils::dmsToRad | ( | const int | d, |
const unsigned int | m, | ||
const double | s | ||
) |
Convert an angle in +-dms format to radian.
d | degree component |
m | arcmin component |
s | arcsec component |
void StelUtils::eclToEqu | ( | const double | lambdaRad, |
const double | betaRad, | ||
const double | eclRad, | ||
double * | raRad, | ||
double * | decRad | ||
) |
Coordinate Transformation from ecliptical to equatorial.
void StelUtils::equToEcl | ( | const double | raRad, |
const double | decRad, | ||
const double | eclRad, | ||
double * | lambdaRad, | ||
double * | betaRad | ||
) |
Coordinate Transformation from equatorial to ecliptical.
|
inline |
Compute acos(x) The taylor serie is not accurate around x=1 and x=-1.
Definition at line 315 of file StelUtils.hpp.
|
inline |
Compute exp(x) for small exponents x.
Definition at line 321 of file StelUtils.hpp.
QString StelUtils::getApplicationName | ( | ) |
Return the full name of stellarium, i.e. "stellarium 0.9.0".
QString StelUtils::getApplicationVersion | ( | ) |
Return the version of stellarium, i.e. "0.9.0".
int StelUtils::getBiggerPowerOfTwo | ( | int | value | ) |
Return the first power of two bigger than the given value.
void StelUtils::getDateFromJulianDay | ( | const double | julianDay, |
int * | year, | ||
int * | month, | ||
int * | day | ||
) |
Make from julianDay a year, month, day for the Julian Date julianDay represents.
bool StelUtils::getDateTimeFromISO8601String | ( | const QString & | iso8601Date, |
int * | y, | ||
int * | m, | ||
int * | d, | ||
int * | h, | ||
int * | min, | ||
float * | s | ||
) |
Parse an ISO8601 date string.
Also handles negative and distant years.
double StelUtils::getDecAngle | ( | const QString & | str | ) |
Convert a string longitude, latitude, RA or Declination angle to radians.
str | the angle in format something like these:
|
double StelUtils::getDecYear | ( | const int | year, |
const int | month, | ||
const int | day | ||
) |
Compute date in decimal year format.
year | |
month | |
day |
double StelUtils::getDeltaTByAstronomicalEphemeris | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Astronomical Ephemeris (1960) for DeltaT computation. Sources: Spencer Jones, H., "The Rotation of the Earth, and the Secular Accelerations of the Sun, Moon and Planets", Monthly Notices of the Royal Astronomical Society, 99 (1939), 541-558 http://adsabs.harvard.edu/abs/1939MNRAS..99..541S or Explanatory Supplement to the Astr. Ephemeris, 1961, p.87. Also used by Mucke&Meeus, Canon of Solar Eclipses, Vienna 1983.
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByBanjevic | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Banjevic (2006) for DeltaT computation. Source: Ancient eclipses and dating the fall of Babylon Banjevic, B. Publications of the Astronomical Observatory of Belgrade, Vol. 80, p. 251-257 (2006) 2006POBeo..80..251B [http://adsabs.harvard.edu/abs/2006POBeo..80..251B]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByBorkowski | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Borkowski (1988) for DeltaT computation. Source: ELP 2000-85 and the dynamic time-universal time relation Borkowski, K. M. Astronomy and Astrophysics (ISSN 0004-6361), vol. 205, no. 1-2, Oct. 1988, p. L8-L10. 1988A&A...205L...8B [http://adsabs.harvard.edu/abs/1988A&A...205L...8B]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByChaprontMeeus | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Chapront, Chapront-Touze & Francou (1997) & Meeus (1998) for DeltaT computation
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByChaprontTouze | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Chapront-Touzé & Chapront (1991) for DeltaT computation
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByClemence | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Clemence (1948) for DeltaT computation, outdated but may be useful for science-historical purposes. Source: On the system of astronomical constants. Clemence, G. M. Astronomical Journal, Vol. 53, p. 169 1948AJ.....53..169C [http://adsabs.harvard.edu/abs/1948AJ.....53..169C]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByEspenak | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Espenak (1987, 1989) for DeltaT computation. This relation should not be used before around 1950 or after around 2100 (Espenak, pers. comm.).
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByEspenakMeeus | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Note that this method is recommended for the year range: -1999 to +3000. It gives details for -500...+2150. Implementation of algorithm by Espenak & Meeus (2006) for DeltaT computation
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByIAU | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by IAU (1952) for DeltaT computation, outdated but may be useful for science-historical purposes. Source: Spencer Jones, H., "The Rotation of the Earth, and the Secular Accelerations of the Sun, Moon and Planets", Monthly Notices of the Royal Astronomical Society, 99 (1939), 541-558 http://adsabs.harvard.edu/abs/1939MNRAS..99..541S
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByIslamSadiqQureshi | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Islam, Sadiq & Qureshi (2008 + revisited 2013) for DeltaT computation. Source: Error Minimization of Polynomial Approximation of DeltaT Islam, S. & Sadiq, M. & Qureshi, M. S. Journal of Astrophysics & Astronomy, Vol. 29, p. 363–366 (2008) http://www.ias.ac.in/jaa/dec2008/JAA610.pdf Note: These polynomials are based on the uncorrected deltaT table from the Astronomical Almanac, thus ndot = -26.0 arcsec/cy^2. Meeus & Simons (2000) corrected the deltaT table for years before 1955.5 using ndot = -25.7376 arcsec/cy^2. Therefore the accuracies stated by Meeus & Simons are correct and cannot be compared with accuracies from Islam & Sadiq & Qureshi.
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByJPLHorizons | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of the "historical" part of the algorithm by JPL Horizons for DeltaT computation.
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByKhalidSultanaZaidi | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of polinomial approximation of time period 1620-2013 for DeltaT by M. Khalid, Mariam Sultana and Faheem Zaidi (2014). Source: Delta T: Polynomial Approximation of Time Period 1620-2013 Journal of Astrophysics, Vol. 2014, Article ID 480964 https://doi.org/10.1155/2014/480964
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByMeeusSimons | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Meeus & Simons (2000) for DeltaT computation. Source: Polynomial approximations to Delta T, 1620-2000 AD Meeus, J.; Simons, L. Journal of the British Astronomical Association, vol.110, no.6, 323 2000JBAA..110..323M [http://adsabs.harvard.edu/abs/2000JBAA..110..323M]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByMontenbruckPfleger | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Montenbruck & Pfleger (2000) for DeltaT computation, a data fit through the table of values found in Meeus, Astronomical algorithms (1991). Book "Astronomy on the Personal Computer" by O. Montenbruck & T. Pfleger (4th ed., 2000)
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByMorrisonStephenson1982 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Morrison & Stephenson (1982) for DeltaT computation
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByMorrisonStephenson2004 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Morrison & Stephenson (2004, 2005) for DeltaT computation. Sources: Historical values of the Earth's clock error ΔT and the calculation of eclipses Morrison, L. V.; Stephenson, F. R. Journal for the History of Astronomy (ISSN 0021-8286), Vol. 35, Part 3, No. 120, p. 327 - 336 (2004) 2004JHA....35..327M [http://adsabs.harvard.edu/abs/2004JHA....35..327M] Addendum: Historical values of the Earth's clock error Morrison, L. V.; Stephenson, F. R. Journal for the History of Astronomy (ISSN 0021-8286), Vol. 36, Part 3, No. 124, p. 339 (2005) 2005JHA....36..339M [http://adsabs.harvard.edu/abs/2005JHA....36..339M]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByMullerStephenson | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Muller & Stephenson (1975) for DeltaT computation. Source: The accelerations of the earth and moon from early astronomical observations Muller, P. M.; Stephenson, F. R. Growth rhythms and the history of the earth's rotation; Proceedings of the Interdisciplinary Winter Conference on Biological Clocks and Changes in the Earth's Rotation: Geophysical and Astronomical Consequences, Newcastle-upon-Tyne, England, January 8-10, 1974. (A76-18126 06-46) London, Wiley-Interscience, 1975, p. 459-533; Discussion, p. 534. 1975grhe.conf..459M [http://adsabs.harvard.edu/abs/1975grhe.conf..459M]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByReijs | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Reijs (2006) for DeltaT computation Details: http://www.iol.ie/~geniet/eng/DeltaTeval.htm
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByReingoldDershowitz | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Reingold & Dershowitz (1997, 2001, 2002, 2007) for DeltaT computation. This is again mostly a data fit based on the table in Meeus, Astronomical Algorithms (1991). This is the version given in the 3rd edition (2007) which added the fit for 1700..1799 omitted from previous editions.
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTBySchmadelZech1979 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Schmadel & Zech (1979) for DeltaT computation. Outdated, but may be useful for science-historical purposes. Source: Polynomial approximations for the correction delta T E.T.-U.T. in the period 1800-1975 Schmadel, L. D.; Zech, G. Acta Astronomica, vol. 29, no. 1, 1979, p. 101-104. 1979AcA....29..101S [http://adsabs.harvard.edu/abs/1979AcA....29..101S]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTBySchmadelZech1988 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Schmadel & Zech (1988) for DeltaT computation. Source: Empirical Transformations from U.T. to E.T. for the Period 1800-1988 Schmadel, L. D.; Zech, G. Astronomische Nachrichten 309, 219-221 1988AN....309..219S [http://adsabs.harvard.edu/abs/1988AN....309..219S]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTBySchoch | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Schoch (1931) for DeltaT computation, outdated but may be useful for science-historical purposes. Source: Schoch, C. (1931). Die sekulare Accelaration des Mondes und der Sonne. Astronomische Abhandlungen, Ergnzungshefte zu den Astronomischen Nachrichten, Band 8, B2. Kiel.
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByStephenson1978 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Stephenson (1978) for DeltaT computation. Source: Pre-Telescopic Astronomical Observations Stephenson, F. R. Tidal Friction and the Earth's Rotation, Proceedings of a Workshop, held in Bielefeld, September 26-30, 1977, Edited by P. Brosche, and J. Sundermann. Berlin: Springer-Verlag, 1978, p.5 1978tfer.conf....5S [http://adsabs.harvard.edu/abs/1978tfer.conf....5S]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByStephenson1997 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Stephenson (1997) for DeltaT computation. Source: Book "Historical Eclipses and Earth's Rotation" by F. R. Stephenson (1997) http://ebooks.cambridge.org/ebook.jsf?bid=CBO9780511525186
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByStephensonHoulden | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Stephenson & Houlden (1986) for DeltaT computation
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByStephensonMorrison1984 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Stephenson & Morrison (1984) for DeltaT computation Source: Long-term changes in the rotation of the earth - 700 B.C. to A.D. 1980. Stephenson, F. R.; Morrison, L. V. Philosophical Transactions, Series A (ISSN 0080-4614), vol. 313, no. 1524, Nov. 27, 1984, p. 47-70. 1984RSPTA.313...47S [http://adsabs.harvard.edu/abs/1984RSPTA.313...47S]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByStephensonMorrison1995 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Stephenson & Morrison (1995) for DeltaT computation Source: Long-Term Fluctuations in the Earth's Rotation: 700 BC to AD 1990. Stephenson, F. R.; Morrison, L. V. Philosophical Transactions: Physical Sciences and Engineering, Volume 351, Issue 1695, pp. 165-202 1995RSPTA.351..165S [http://adsabs.harvard.edu/abs/1995RSPTA.351..165S]
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByStephensonMorrisonHohenkerk2016 | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of a spline approximation for time period -720-2016.0 for DeltaT by Stephenson, Morrison and Hohenkerk (2016). Source: Measurement of the Earth’s rotation: 720 BC to AD 2015 Proc. R. Soc. A 472: 20160404. https://doi.org/10.1098/rspa.2016.0404
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTByTuckermanGoldstine | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
Implementation of algorithm by Tuckerman (1962, 1964) & Goldstine (1973) for DeltaT computation
jDay | the date and time expressed as a Julian day |
double StelUtils::getDeltaTStandardError | ( | const double | jDay | ) |
Get the standard error (sigma) for the value of DeltaT.
jDay | the JD |
double StelUtils::getDeltaTwithoutCorrection | ( | const double | jDay | ) |
Get Delta-T estimation for a given date.
This is just an "empty" correction functino, returning 0.
bool StelUtils::getJDFromDate | ( | double * | newjd, |
const int | y, | ||
const int | m, | ||
const int | d, | ||
const int | h, | ||
const int | min, | ||
const int | s | ||
) |
Compute Julian day number from calendar date.
Uses QDate functionality if possible, but also works for negative JD. Dates before 1582-10-15 are in the Julian Calendar.
newjd | pointer to JD |
y | Calendar year. |
m | month, 1=January ... 12=December |
d | day |
h | hour |
min | minute |
s | second |
double StelUtils::getJDFromSystem | ( | ) |
Get the current Julian Date from system time.
double StelUtils::getJulianDayFromISO8601String | ( | const QString & | iso8601Date, |
bool * | ok | ||
) |
Return the Julian Date matching the ISO8601 date string.
Also handles negative and distant years.
double StelUtils::getMoonFluctuation | ( | const double | jDay | ) |
Get value of the Moon fluctuation Source: The Rotation of the Earth, and the Secular Accelerations of the Sun, Moon and Planets Spencer Jones, H.
Monthly Notices of the Royal Astronomical Society, 99 (1939), 541-558 1939MNRAS..99..541S [http://adsabs.harvard.edu/abs/1939MNRAS..99..541S]
jDay | the JD |
double StelUtils::getMoonSecularAcceleration | ( | const double | jDay, |
const double | ndot, | ||
const bool | useDE43x | ||
) |
Get Secular Acceleration estimation for a given year.
Method described is here: http://eclipse.gsfc.nasa.gov/SEcat5/secular.html For adapting from -26 to -25.858, use -0.91072 * (-25.858 + 26.0) = -0.12932224 For adapting from -26 to -23.895, use -0.91072 * (-23.895 + 26.0) = -1.9170656
jDay | the JD |
ndot | value of n-dot (secular acceleration of the Moon) which should be used in the lunar ephemeris instead of the default values. |
useDE43x | true if function should adapt calculation of the secular acceleration of the Moon to the DE43x ephemeris |
Get a night mode version of a color.
That is find the brightness of a color and set that in the red channel only
Definition at line 330 of file StelUtils.hpp.
QString StelUtils::getOperatingSystemInfo | ( | ) |
Return the name and the version of operating system, i.e. "Mac OS X 10.7".
void StelUtils::getTimeFromJulianDay | ( | const double | julianDay, |
int * | hour, | ||
int * | minute, | ||
int * | second, | ||
int * | millis = NULL |
||
) |
Make from julianDay an hour, minute, second.
QString StelUtils::getUserAgentString | ( | ) |
Return the user agent name, i.e. "Stellarium/0.15.0 (Linux)".
double StelUtils::hmsToRad | ( | const unsigned int | h, |
const unsigned int | m, | ||
const double | s | ||
) |
Convert an angle in hms format to radian.
h | hour component |
m | minute component |
s | second component |
QString StelUtils::hoursToHmsStr | ( | const double | hours | ) |
Convert decimal hours to hours, minutes, seconds.
Vec3f StelUtils::htmlColorToVec3f | ( | const QString & | c | ) |
Converts a color in HTML notation to a Vec3f.
c | The HTML spec color string |
int StelUtils::imod | ( | const int | a, |
const int | b | ||
) |
Integer modulo where the result is always positive.
bool StelUtils::isLeapYear | ( | const int | year | ) |
bool StelUtils::isPowerOfTwo | ( | const int | value | ) |
Check if a number is a power of 2.
QTime StelUtils::jdFractionToQTime | ( | const double | jd | ) |
Convert a fraction of a Julian Day to a QTime.
QDateTime StelUtils::jdToQDateTime | ( | const double & | jd | ) |
Convert a julian day to a QDateTime.
jd | to convert |
QString StelUtils::julianDayToISO8601String | ( | const double | jd, |
bool | addMS = false |
||
) |
Format the given Julian Day in (UTC) ISO8601 date string.
Also handles negative and distant years.
QString StelUtils::localeDateString | ( | const int | year, |
const int | month, | ||
const int | day, | ||
const int | dayOfWeek, | ||
const QString & | fmt | ||
) |
Format the date and day-of-week per the format in fmt (see QDateTime::toString()).
Uses the system locale, not the one set in Stellarium.
QString StelUtils::localeDateString | ( | const int | year, |
const int | month, | ||
const int | day, | ||
const int | dayOfWeek | ||
) |
Format the date and day-of-week per the system locale's QLocale::ShortFormat.
double StelUtils::qDateTimeToJd | ( | const QDateTime & | dateTime | ) |
Convert a QT QDateTime class to julian day.
dateTime | the UTC QDateTime to convert |
double StelUtils::qTimeToJDFraction | ( | const QTime & | time | ) |
Convert a time of day to the fraction of a Julian Day.
Note that a Julian Day starts at 12:00, not 0:00, and so 12:00 == 0.0 and 0:00 == 0.5
void StelUtils::radToDecDeg | ( | double | rad, |
bool & | sign, | ||
double & | deg | ||
) |
Convert an angle in radian to decimal degree.
rad | input angle in radian |
sign | true if positive, false otherwise |
deg | decimal degree |
QString StelUtils::radToDecDegStr | ( | const double | angle, |
const int | precision = 4 , |
||
const bool | useD = false , |
||
const bool | useC = false |
||
) |
Convert an angle in radian to a decimal degree string.
angle | input angle in radian |
precision | |
useD | Define if letter "d" must be used instead of deg sign |
useC | Define if function should use 0-360 degrees |
void StelUtils::radToDms | ( | double | rad, |
bool & | sign, | ||
unsigned int & | d, | ||
unsigned int & | m, | ||
double & | s | ||
) |
Convert an angle in radian to +-dms format.
rad | input angle in radian |
sign | true if positive, false otherwise |
d | degree component |
m | minute component |
s | second component |
QString StelUtils::radToDmsStr | ( | const double | angle, |
const bool | decimal = false , |
||
const bool | useD = false |
||
) |
Convert an angle in radian to a dms formatted string.
angle | input angle in radian |
useD | Define if letter "d" must be used instead of deg sign |
decimal | output decimal second value |
QString StelUtils::radToDmsStrAdapt | ( | const double | angle, |
const bool | useD = false |
||
) |
Convert an angle in radian to a dms formatted string.
If the second, minute part is == 0, it is not output
angle | input angle in radian |
useD | Define if letter "d" must be used instead of deg sign |
void StelUtils::radToHms | ( | double | rad, |
unsigned int & | h, | ||
unsigned int & | m, | ||
double & | s | ||
) |
Convert an angle in radian to hms format.
rad | input angle in radian |
h | hour component |
m | minute component |
s | second component |
QString StelUtils::radToHmsStr | ( | const double | angle, |
const bool | decimal = false |
||
) |
Convert an angle in radian to a hms formatted string.
angle | input angle in radian |
decimal | output decimal second value |
QString StelUtils::radToHmsStrAdapt | ( | const double | angle | ) |
Convert an angle in radian to a hms formatted string.
If the second, minute part is == 0, it is not output
angle | input angle in radian |
void StelUtils::rectToSphe | ( | double * | lng, |
double * | lat, | ||
const Vec3d & | v | ||
) |
Convert from spherical coordinates to Rectangular direction.
lng | double* to store longitude in radian |
lat | double* to store latitude in radian |
v | the input 3D vector |
void StelUtils::rectToSphe | ( | float * | lng, |
float * | lat, | ||
const Vec3d & | v | ||
) |
Convert from spherical coordinates to Rectangular direction.
lng | float* to store longitude in radian |
lat | float* to store latitude in radian |
v | the input 3D vector |
void StelUtils::rectToSphe | ( | float * | lng, |
float * | lat, | ||
const Vec3f & | v | ||
) |
Convert from spherical coordinates to Rectangular direction.
lng | float* to store longitude in radian |
lat | float* to store latitude in radian |
v | the input 3D vector |
long double StelUtils::secondsSinceStart | ( | ) |
Get the number of seconds since program start.
int StelUtils::sign | ( | T | val | ) |
Sign function from http://stackoverflow.com/questions/1903954/is-there-a-standard-sign-function-signum-sgn-in-c-c.
Definition at line 652 of file StelUtils.hpp.
void StelUtils::spheToRect | ( | const double | lng, |
const double | lat, | ||
Vec3d & | v | ||
) |
Convert from spherical coordinates to Rectangular direction.
lng | longitude in radian |
lat | latitude in radian |
v | the resulting 3D unit vector |
void StelUtils::spheToRect | ( | const float | lng, |
const float | lat, | ||
Vec3f & | v | ||
) |
Convert from spherical coordinates to Rectangular direction.
lng | longitude in radian |
lat | latitude in radian |
v | the resulting 3D unit vector |
Vec3f StelUtils::strToVec3f | ( | const QStringList & | s | ) |
Obtains a Vec3f from a string.
s | the string describing the Vector with the form "x,y,z" |
Vec3f StelUtils::strToVec3f | ( | const QString & | s | ) |
Reads a Vec3f from a string, separated by commas. Example: 1.0,2.0,3.0.
Vec4d StelUtils::strToVec4d | ( | const QStringList & | s | ) |
Like StelUtils::strToVec3f, but with 4 components and with double precision.
Vec4d StelUtils::strToVec4d | ( | const QString & | s | ) |
Like StelUtils::strToVec3f, but with 4 components and with double precision.
QByteArray StelUtils::uncompress | ( | const QByteArray & | data | ) |
Uncompress gzip or zlib compressed data.
QByteArray StelUtils::uncompress | ( | QIODevice & | device, |
qint64 | maxBytes = -1 |
||
) |
Uncompress (gzip/zlib) data from this QIODevice, which must be open and readable.
device | The device to read from, must already be opened with an OpenMode supporting reading |
maxBytes | The max. amount of bytes to read from the device, or -1 to read until EOF. Note that it always stops when inflate() returns Z_STREAM_END. Positive values can be used for interleaving compressed data with other data. |
QString StelUtils::vec3fToHtmlColor | ( | const Vec3f & | v | ) |
Converts a Vec3f to HTML color notation.
v | The vector |
QString StelUtils::vec3fToStr | ( | const Vec3f & | v | ) |
Converts a Vec3f to a string in the same format that can be read by strToVec3f.
QString StelUtils::vec4dToStr | ( | const Vec4d & | v | ) |
Converts a Vec4d to a string in the same format that can be read by strToVec4d.
double StelUtils::yearFraction | ( | const int | year, |
const int | month, | ||
const double | day | ||
) |
Return a fractional year like YYYY.ddddd. For negative years, the year number is decreased. E.g. -500.5 occurs in -501.