Kstars
polaralign.cpp
90bool PolarAlign::prepareAzAlt(const QSharedPointer<FITSData> &image, const QPointF &pixel, SkyPoint *point) const
139// Note that you can't simply find the best Z rotation, and the go from there to find the best Y.
181 const double pass1Residual = getBestRotation(from, goal, 0, 0, zAngle, yAngle, pass1Range, pass1Resolution);
185 return getBestRotation(from, goal, *zAngle, *yAngle, zAngle, yAngle, pass2Range, pass2Resolution);
188// Computes the new RA axis resulting from when point "before" is rotated to "after". This corresponds to the
190// Before is the telescope's view before the knobs are changed (which is the polar-align's point3)
191// and After is the telescope's view after the mount is rotated (which is the plate solve of some refresh point).
202// Compute the polar-alignment azimuth and altitude error by comparing the new image's coordinates
203// with the coordinates from the 3rd measurement image. Use the difference to infer a rotation angle,
210 // Get the az and alt from this new measurement (coords), and from that derive its x,y,z coordinates.
211 auto c = coords; // apparentCoord modifies its input. Use the temp variable c to keep coords const.
221 // was a user rotation due to changes in the Az/Alt knobs. Instead we must convert point3's az/alt
222 // values to what they would be if that image had been taken now, still pointing at point3's ra/dec.
223 // The key is to rotate the original point around the original RA axis by the rotation given by the time
234 const V3 p3OrigPoint = Rotations::azAlt2xyz(QPointF(points[2].az().Degrees(), points[2].alt().Degrees()));
252 qCInfo(KSTARS_EKOS_ALIGN) << QString("PAA refresh: Estimated current adjustment: Az %1' Alt %2'")
267 QString("PAA refresh: ra0 %1 dec0 %2 Az/Alt: %3 %4 AXIS: %5 %6 --> %7 %8 ADJ: %9' %10' ERR: %11' %12'")
289 // The Y rotation to correct polar alignment is -altitude error, and the Z correction is -azimuth error.
293 const V3 point3 = Rotations::azAlt2xyz(QPointF(points[2].az().Degrees(), points[2].alt().Degrees()));
368bool PolarAlign::findAzAlt(const QSharedPointer<FITSData> &image, double azimuth, double altitude, QPointF *pixel) const
381 .arg(QString::number(azimuth), QString::number(altitude), j2000Coord.ra0().toHMSString(), j2000Coord.dec0().toDMSString());
419// point (pixel2) and we want to feed back to the user what the "current" polar-alignment error is.
423// from the original call to findCorrectedPixel. This calls findCorrectedPixel several hundred times
424// but is not too costly (about .1s on a RPi4). One could write a method that more directly estimates
426// we are constrained to move along paths detemined by a user adjusting an altitude knob and then
427// an azimuth adjustment. These corrections are likely not the most direct path to solve the axis error.
428bool PolarAlign::pixelError(const QSharedPointer<FITSData> &image, const QPointF &pixel, const QPointF &pixel2,
454void PolarAlign::pixelError(const QSharedPointer<FITSData> &image, const QPointF &pixel, const QPointF &pixel2,
483// where, if the star in pixel is moved to that star in the user's image (by adjusting alt and az controls)
485bool PolarAlign::findCorrectedPixel(const QSharedPointer<FITSData> &image, const QPointF &pixel, QPointF *corrected,
496// where, if the star in pixel is moved to that star in the user's image (by adjusting alt and az controls)
497// the polar alignment error would be 0. We use the fact that we can only move by adjusting and altitude
499bool PolarAlign::findCorrectedPixel(const QSharedPointer<FITSData> &image, const QPointF &pixel, QPointF *corrected,
516 QPointF rotated = Rotations::rotateRaAxis(QPointF(pixelAz, pixelAlt), QPointF(azOffset, altRotation));
Contains all relevant information for specifying a location on Earth: City Name, State/Province name,...
Definition geolocation.h:28
There are several time-dependent values used in position calculations, that are not specific to an ob...
Definition ksnumbers.h:43
Extension of QDateTime for KStars KStarsDateTime can represent the date/time as a Julian Day,...
Definition kstarsdatetime.h:36
void apparentCoord(long double jd0, long double jdf)
Computes the apparent coordinates for this SkyPoint for any epoch, accounting for the effects of prec...
Definition skypoint.cpp:700
static SkyPoint timeTransformed(const SkyPoint *p, const KStarsDateTime &dt, const GeoLocation *geo, const double hour=0)
returns a time-transformed SkyPoint.
Definition skypoint.cpp:1121
void HorizontalToEquatorial(const dms *LST, const dms *lat)
Determine the (RA, Dec) coordinates of the SkyPoint from its (Altitude, Azimuth) coordinates,...
Definition skypoint.cpp:143
SkyPoint catalogueCoord(long double jdf)
Computes the J2000.0 catalogue coordinates for this SkyPoint using the epoch removing aberration,...
Definition skypoint.cpp:710
SkyPoint deprecess(const KSNumbers *num, long double epoch=J2000)
Obtain a Skypoint with RA0 and Dec0 set from the RA, Dec of this skypoint.
Definition skypoint.cpp:257
const QString toDMSString(const bool forceSign=false, const bool machineReadable=false, const bool highPrecision=false) const
Definition dms.cpp:287
const QString toHMSString(const bool machineReadable=false, const bool highPrecision=false) const
Definition dms.cpp:378
GeoCoordinates geo(const QVariant &location)
qreal x() const const
qreal y() const const
QString arg(Args &&... args) const const
QString number(double n, char format, int precision)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Dec 27 2024 11:51:45 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Dec 27 2024 11:51:45 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.