![]() |
Stellarium
25.1
|
contains general purpose utility functions. More...
Data Structures | |
struct | binary_function |
Functions | |
QString | getApplicationName () |
Return the full name of stellarium, i.e. "Stellarium 23.1". | |
QString | getApplicationVersion () |
Return the version of stellarium, i.e. "23.1.0". | |
QString | getApplicationPublicVersion () |
Return the public version of stellarium, i.e. "23.1". | |
QString | getApplicationSeries () |
Return the series of stellarium, i.e. "23.0". | |
QString | getOperatingSystemInfo () |
Return the name and the version of operating system, i.e. "macOS 12.5". | |
QString | getUserAgentString () |
Return the user agent name, i.e. "Stellarium/0.15.0 (Linux)". | |
qint64 | getLongLong (const class QJsonValue &v) |
Get a long integer from a JSON value. More... | |
const QString | getEndLineChar () |
double | hmsToHours (const unsigned int h, const unsigned int m, const double s) |
Convert hours, minutes, seconds to decimal hours. | |
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 positive=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... | |
QString | radToDmsPStr (const double angle, const int precision=0, 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... | |
QString | decDegToLatitudeStr (const double latitude, bool dms=true) |
Convert latitude in decimal degrees to a dms formatted string or use decimal values. More... | |
QString | decDegToLongitudeStr (const double longitude, bool eastPositive=true, bool semiSphere=true, bool dms=true) |
Convert longitude 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... | |
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 | spheToRect (const double lng, const double lat, Vec3f &v) |
Convert from spherical coordinates to Rectangular direction. More... | |
void | spheToRect (const float lng, const float lat, Vec3d &v) |
Convert from spherical coordinates to Rectangular direction. More... | |
void | rectToSphe (double *lng, double *lat, const Vec3d &v) |
Convert from Rectangular direction to spherical coordinate components. More... | |
void | rectToSphe (float *lng, float *lat, const Vec3d &v) |
Convert from Rectangular direction to spherical coordinate components. More... | |
void | rectToSphe (float *lng, float *lat, const Vec3f &v) |
Convert from Rectangular direction to spherical coordinate components. More... | |
void | rectToSphe (double *lng, double *lat, const Vec3f &v) |
Convert from Rectangular direction to spherical coordinate components. More... | |
void | spheToRect (const double lng, const double lat, const double r, Vec3d &v) |
Convert from spherical coordinates (including distance) to Rectangular direction. More... | |
void | rectToSphe (double *lng, double *lat, double *r, const Vec3d &v) |
Convert from Rectangular direction to spherical coordinate components (including distance). More... | |
void | equToEcl (const double raRad, const double decRad, const double eclRad, double *lambdaRad, double *betaRad) |
Coordinate Transformation from equatorial to ecliptical. | |
void | eclToEqu (const double lambdaRad, const double betaRad, const double eclRad, double *raRad, double *decRad) |
Coordinate Transformation from ecliptical to equatorial. | |
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. | |
int | getBiggerPowerOfTwo (int value) |
Return the smallest power of two greater than or equal to the given value. | |
int | getSmallerPowerOfTwo (const int value) |
Return the largest power of two smaller than or equal to the given value. | |
double | asinh (const double z) |
Return the inverse sinus hyperbolic of z. | |
int | imod (const int a, const int b) |
Integer modulo where the result is always nonnegative. [0..b-1]. | |
int | amod (const int a, const int b) |
Integer modulo where the result is always positive. [1..b]. | |
int | amod (const int x, const int a, const int b) |
Integer interval modulo. [a..b) | |
double | fmodpos (const double a, const double b) |
Double modulo where the result is always nonnegative. [0..(b. | |
float | fmodpos (const float a, const float b) |
Float modulo where the result is always nonnegative. [0..(b. | |
int | intFloorDiv (int num, int den) |
Floor integer division provides truncating to the next lower integer, also for negative numerators. More... | |
int | intFloorDivLL (qint64 num, qint64 den) |
version of intFloorDiv() for large integers. | |
void | getDateFromJulianDay (const double julianDay, int *year, int *month, int *day) |
Extract 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=Q_NULLPTR, bool *wrapDay=Q_NULLPTR) |
Extract from julianDay an hour, minute, second. More... | |
void | getDateTimeFromJulianDay (const double julianDay, int *year, int *month, int *day, int *hour, int *minute, int *second, int *millis=Q_NULLPTR) |
Extract from julianDay a year, month, day, hour, minute, second and (optional) millisecond for the Julian Day julianDay represents. More... | |
double | getHoursFromJulianDay (const double julianDay) |
Make hours (decimal format) from julianDay. | |
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... | |
int | getDayOfWeek (int year, int month, int day) |
Return a day number of week for date. More... | |
int | getDayOfWeek (double JD) |
QString | localeDiscoveryDateString (const QString &discovery) |
Format the discovery date. More... | |
double | getJDFromSystem () |
Get the current Julian Date from system time. More... | |
double | getJDFromBesselianEpoch (const double epoch) |
Get the Julian Day Number (JD) from Besselian epoch. More... | |
double | getJDFromJulianEpoch (const double epoch) |
Get the Julian Day Number (JD) from Julian epoch. 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. | |
double | qDateTimeToJd (const QDateTime &dateTime) |
Convert a QT QDateTime class to julian day. More... | |
QDateTime | jdToQDateTime (const double &jd, const Qt::TimeSpec timeSpec) |
Convert a Julian Day number to a QDateTime. More... | |
bool | getJDFromDate (double *newjd, const int y, const int m, const int d, const int h, const int min, const float 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... | |
Vec3i | dateFromDayYear (const int day, const int year) |
Find date from day number within year and the 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. | |
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. | |
float | fastAcos (const float x) |
Compute acos(x) The taylor serie is not accurate around x=1 and x=-1. | |
float | fastExp (const float x) |
Compute exp(x) for small exponents x. | |
QString | hoursToHmsStr (const double hours, const bool minutesOnly=false, const bool colonFormat=false) |
Convert decimal hours to hours, minutes, seconds Format for: More... | |
QString | hoursToHmsStr (const float hours, const bool minutesOnly=false, const bool colonFormat=false) |
QString | getHoursMinutesFromJulianDay (const double julianDay) |
Convert JD to hours and minutes. | |
double | hmsStrToHours (const QString &s) |
Convert a hms formatted string to decimal hours. | |
QString | daysFloatToDHMS (float days) |
Convert days (float) to a time string. | |
QString | wrapText (const QString &s, const int limit=52) |
The method to splitting the text by substrings by some limit of string length. | |
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 | getDeltaTByEspenakMeeusModified (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 useDE4xx) |
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. | |
float * | ComputeCosSinTheta (const unsigned int slices) |
Compute cosines and sines around a circle which is split in "slices" parts. More... | |
float * | ComputeCosSinRho (const unsigned int segments) |
Compute cosines and sines around a half-circle which is split in "segments" parts. More... | |
float * | ComputeCosSinRhoZone (const float dRho, const unsigned 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... | |
int | getFixedFromGregorian (const int year, const int month, const int day) |
Calculate fixed days (R.D.) from Gregorian date (proleptic Gregorian calendar) 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. | |
QByteArray | uncompress (QIODevice &device, qint64 maxBytes=-1) |
Uncompress (gzip/zlib) data from this QIODevice, which must be open and readable. More... | |
int | gcd (int a, int b) |
Greatest Common Divisor (Euclid's algorithm) More... | |
int | lcm (int a, int b) |
Least Common Multiple. More... | |
template<class T > | |
T | interpolate3 (T n, T y1, T y2, T y3) |
Given regularly spaced steps x1, x2, x3 and curve values y1, y2, y3, calculate an intermediate value of the 3 arguments for the given interpolation point n. More... | |
template<class T > | |
T | interpolate5 (T n, T y1, T y2, T y3, T y4, T y5) |
Given regularly spaced steps x1, x2, x3, x4, x5 and curve values y1, y2, y3, y4, y5, calculate an intermediate value of the 5 arguments for the given interpolation point n. More... | |
template<typename T > | |
bool | isWithin (const T &value, const T &low, const T &high) |
Interval test. This checks whether value is within [low , high ]. | |
double | trunc (double x) |
float | trunc (float x) |
contains general purpose utility functions.
struct StelUtils::binary_function |
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 unsigned 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 unsigned 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 unsigned int | slices | ) |
Compute cosines and sines around a circle which is split in "slices" 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 |
Vec3i StelUtils::dateFromDayYear | ( | const int | day, |
const int | year | ||
) |
Find date from day number within year and the year.
Meeus, AA 2nd, 1998, ch.7 p.66
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::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 |
QString StelUtils::decDegToLatitudeStr | ( | const double | latitude, |
bool | dms = true |
||
) |
Convert latitude in decimal degrees to a dms formatted string or use decimal values.
latitude | in decimal degrees |
dms | set true to use DMS formatted string |
QString StelUtils::decDegToLongitudeStr | ( | const double | longitude, |
bool | eastPositive = true , |
||
bool | semiSphere = true , |
||
bool | dms = true |
||
) |
Convert longitude in decimal degrees to a dms formatted string.
longitude | in decimal degrees |
eastPositive | set true to counting East direction positive |
semiSphere | set true to use -180..180 degrees range (0..360 degrees otherwise) |
dms | set true to use DMS formatted string |
double StelUtils::dmsStrToRad | ( | const QString & | s | ) |
Convert a dms formatted string to an angle in radian.
s | The input string |
|
inline |
Convert an angle in +-dms format to radian.
d | degree component |
m | arcmin component |
s | arcsec component |
int StelUtils::gcd | ( | int | a, |
int | b | ||
) |
Greatest Common Divisor (Euclid's algorithm)
a | first number |
b | second number |
void StelUtils::getDateFromJulianDay | ( | const double | julianDay, |
int * | year, | ||
int * | month, | ||
int * | day | ||
) |
Extract 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.
void StelUtils::getDateTimeFromJulianDay | ( | const double | julianDay, |
int * | year, | ||
int * | month, | ||
int * | day, | ||
int * | hour, | ||
int * | minute, | ||
int * | second, | ||
int * | millis = Q_NULLPTR |
||
) |
Extract from julianDay a year, month, day, hour, minute, second and (optional) millisecond for the Julian Day julianDay represents.
This is the preferred method of complete decoding of a Julian day number.
int StelUtils::getDayOfWeek | ( | int | year, |
int | month, | ||
int | day | ||
) |
Return a day number of week for date.
double StelUtils::getDecAngle | ( | const QString & | str | ) |
Convert a string longitude, latitude, RA or declination angle to radians.
str | the angle in a format according to: angle ::= [sign¹] ( real [degs | mins | secs] | [integer degs] ( [integer mins] real secs | real mins ) ) [cardinal¹] sign ::= + | - digit := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 integer ::= digit [digits] real ::= integer [. integer] degs ::= d | h² | U+00B0 | U+00BA³ mins ::= m | ' secs ::= s | " cardinal ::= N² | S² | E | W ¹) A cardinal point overrides any sign. N and E result in a positive, W and S in a negative angle. ²) The use of the cardinal points N and S together with the hour sign 'H' or 'h' is forbidden. ³) The MASCULINE ORDINAL INDICATOR U+00BA is accepted, considering Spanish QWERTY keyboards. The string is parsed without regarding to case, except that, after a single real, a solitary 's' indicates seconds whereas an 'S' indicates South. It is highly recommended to use lower case for hdms and upper case for NSEW. Latitude: North is positive, South is negative. Longitude: East is positive, West is negative. |
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::getDeltaTByEspenakMeeusModified | ( | 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) with modified formulae 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 polynomial 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), p.181-182
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, 2018) 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 4th edition ("the ultimate edition"; 2018) which added the fit for -500..1699 and 2006..2150 omitted from previous editions. Calendrical Calculations: The Ultimate Edition / Edward M. Reingold, Nachum Dershowitz - 4th Edition, Cambridge University Press, 2018. - 660p. ISBN: 9781107057623, DOI: 10.1017/9781107415058
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 Source: STEPHENSON F.R and HOULDEN M.A. - Atlas of Historical Eclipse Maps - Cambridge Univ.Press. (1986) [https://assets.cambridge.org/97805212/67236/frontmatter/9780521267236_frontmatter.pdf]
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-2019.0 for DeltaT by Stephenson, Morrison and Hohenkerk (2016). Source: Measurement of the Earth's rotation: 720 BC to AD 2015, published in 2016 in the Royal Society's Proceedings A 472, and made freely available via Open Access, by Stephenson, F.R., Morrison, L.V. and Hohenkerk, C.Y.. https://doi.org/10.1098/rspa.2016.0404 Addendum 2020 to "Measurement of the Earth's Rotation: 720 BC to AD 2015", published in 2021 February in the Royal Society's Proceedings A 478, by Morrison, L. V., Stephenson, F.R., Hohenkerk, C.Y. and M. Zawilski, M.. https://doi.org/10.1098/rspa.2020.0776
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 function, returning 0.
int StelUtils::getFixedFromGregorian | ( | const int | year, |
const int | month, | ||
const int | day | ||
) |
Calculate fixed days (R.D.) from Gregorian date (proleptic Gregorian calendar)
year | |
month | |
day |
double StelUtils::getJDFromBesselianEpoch | ( | const double | epoch | ) |
Get the Julian Day Number (JD) from Besselian epoch.
epoch | Besselian epoch, expressed as year with decimal fraction |
bool StelUtils::getJDFromDate | ( | double * | newjd, |
const int | y, | ||
const int | m, | ||
const int | d, | ||
const int | h, | ||
const int | min, | ||
const float | 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::getJDFromJulianEpoch | ( | const double | epoch | ) |
Get the Julian Day Number (JD) from Julian epoch.
epoch | Julian epoch, expressed as year with decimal fraction |
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.
qint64 StelUtils::getLongLong | ( | const class QJsonValue & | v | ) |
Get a long integer from a JSON value.
QJsonValue stores JSON numbers as double-precision floating-point values. This means that numbers greater than 2^53-1 will be rounded, which is unacceptable for e.g. ids like those of the Gaia catalog. This function supports, in addition to normal JSON numbers, also representations of numbers by JSON strings. If the value passed is a JSON string, it will be parsed to a number. If it's a JSON number less than 2^53, it will be returned as is. Otherwise it will return 0, as QJsonValue's getters would in case of a type mismatch.
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 | useDE4xx | ||
) |
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. |
useDE4xx | true if function should adapt calculation of the secular acceleration of the Moon to the DE43x/DE44x ephemerides |
void StelUtils::getTimeFromJulianDay | ( | const double | julianDay, |
int * | hour, | ||
int * | minute, | ||
int * | second, | ||
int * | millis = Q_NULLPTR , |
||
bool * | wrapDay = Q_NULLPTR |
||
) |
Extract from julianDay an hour, minute, second.
|
inline |
Convert an angle in hms format to radian.
h | hour component |
m | minute component |
s | second component |
QString StelUtils::hoursToHmsStr | ( | const double | hours, |
const bool | minutesOnly = false , |
||
const bool | colonFormat = false |
||
) |
Convert decimal hours to hours, minutes, seconds Format for:
colonFormat | false | true |
---|---|---|
minutesOnly=false | "HhMMmSS.Ss" | "HHhMMm" |
minutesOnly=true | "H:MM:SS.S" | "HH:MM" |
T StelUtils::interpolate3 | ( | T | n, |
T | y1, | ||
T | y2, | ||
T | y3 | ||
) |
Given regularly spaced steps x1, x2, x3 and curve values y1, y2, y3, calculate an intermediate value of the 3 arguments for the given interpolation point n.
n | Interpolation factor: steps from x2 |
y1 | Argument 1 |
y2 | Argument 2 |
y3 | Argument 3 |
T StelUtils::interpolate5 | ( | T | n, |
T | y1, | ||
T | y2, | ||
T | y3, | ||
T | y4, | ||
T | y5 | ||
) |
Given regularly spaced steps x1, x2, x3, x4, x5 and curve values y1, y2, y3, y4, y5, calculate an intermediate value of the 5 arguments for the given interpolation point n.
n | Interpolation factor: steps from x3 |
y1 | Argument 1 |
y2 | Argument 2 |
y3 | Argument 3 |
y4 | Argument 4 |
y5 | Argument 5 |
|
inline |
Floor integer division provides truncating to the next lower integer, also for negative numerators.
https://stackoverflow.com/questions/2622441/c-integer-floor-function
bool StelUtils::isLeapYear | ( | const int | year | ) |
QDateTime StelUtils::jdToQDateTime | ( | const double & | jd, |
const Qt::TimeSpec | timeSpec | ||
) |
Convert a Julian Day number to a QDateTime.
jd | Julian Day number (with fractions) to convert |
timeSpec | a Qt::TimeSpec constant. Meaningful in this context seem only Qt::UTC (preferred) and Qt::LocalTime (useful in some GUI contexts). |
timeSpec
set to Qt::LocalTime. If you use Qt::LocalTime, you should add StelCore::getUTCOffset(jd)/24 to the current JD before calling this to have jd
as a "local time zone corrected JD" before conversion. 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.
int StelUtils::lcm | ( | int | a, |
int | b | ||
) |
Least Common Multiple.
a | first number |
b | second number |
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.
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::localeDiscoveryDateString | ( | const QString & | discovery | ) |
Format the discovery date.
|
inline |
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 | positive = 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 |
positive | 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::radToDmsPStr | ( | const double | angle, |
const int | precision = 0 , |
||
const bool | useD = false |
||
) |
Convert an angle in radian to a dms formatted string.
angle | input angle in radian |
precision | |
useD | Define if letter "d" must be used instead of deg sign |
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 |
decimal | output second value with decimal fraction |
useD | Define if letter "d" must be used instead of deg sign |
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 |
|
inline |
Convert from Rectangular direction to spherical coordinate components.
lng | double* to store longitude in radian [-pi, pi] |
lat | double* to store latitude in radian |
v | the input 3D vector |
|
inline |
Convert from Rectangular direction to spherical coordinate components.
lng | double* to store longitude in radian [-pi, pi] |
lat | double* to store latitude in radian |
v | the input 3D vector |
|
inline |
Convert from Rectangular direction to spherical coordinate components (including distance).
lng | double* to store longitude in radian [-pi, pi] |
lat | double* to store latitude in radian |
r | double* length of radius vector (distance) |
v | the input 3D vector |
|
inline |
Convert from Rectangular direction to spherical coordinate components.
lng | float* to store longitude in radian [-pi, pi] |
lat | float* to store latitude in radian |
v | the input 3D vector |
|
inline |
Convert from Rectangular direction to spherical coordinate components.
lng | float* to store longitude in radian [-pi, pi] |
lat | float* to store latitude in radian |
v | the input 3D vector |
|
inline |
Convert from spherical coordinates (including distance) to Rectangular direction.
lng | longitude in radian |
lat | latitude in radian |
r | length of radius vector (distance) |
v | the resulting 3D unit vector |
|
inline |
Convert from spherical coordinates to Rectangular direction.
lng | longitude in radian |
lat | latitude in radian |
v | the resulting 3D unit vector |
|
inline |
Convert from spherical coordinates to Rectangular direction.
lng | longitude in radian |
lat | latitude in radian |
v | the resulting 3D unit vector |
|
inline |
Convert from spherical coordinates to Rectangular direction.
lng | longitude in radian |
lat | latitude in radian |
v | the resulting 3D unit vector |
|
inline |
Convert from spherical coordinates to Rectangular direction.
lng | longitude in radian |
lat | latitude in radian |
v | the resulting 3D unit vector |
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. |