diff --git a/src/solver.cpp b/src/solver.cpp index 870b5ed..d5da4d1 100644 --- a/src/solver.cpp +++ b/src/solver.cpp @@ -186,6 +186,19 @@ bool Solver::updateHeader(QString &error) modify.updateKeyword("CTYPE2", "DEC--TAN", QByteArray("first parameter DEC, projection TANgential")); modify.updateKeyword("RADESYS", "ICRS", QByteArray("International Celestial Reference System")); modify.updateKeyword("EQUINOX", 2000, QByteArray("Equinox of coordinates")); + + LibXISF::F64Matrix matrix(2, 2); + matrix(0, 0) = std::cos(rotationRad) * cdeltx; + matrix(0, 1) =-std::sin(rotationRad) * cdelty; + matrix(1, 0) = std::sin(rotationRad) * cdeltx; + matrix(1, 1) = std::cos(rotationRad) * cdelty; + + modify.updateProperty("PCL:AstrometricSolution:ReferenceCelestialCoordinates", LibXISF::F64Vector({solution.ra, solution.dec})); + modify.updateProperty("PCL:AstrometricSolution:ReferenceImageCoordinates", LibXISF::F64Vector({_stats.width / 2.0, _stats.height / 2.0})); + modify.updateProperty("PCL:AstrometricSolution:LinearTransformationMatrix", LibXISF::F64Matrix(matrix)); + modify.updateProperty("PCL:AstrometricSolution:ProjectionSystem", LibXISF::String("Gnomonic")); + modify.updateProperty("PCL:AstrometricSolution:ReferenceNativeCoordinates", LibXISF::F64Vector({0, 90})); + bool ret = file.modifyFITSRecords(&modify); if(!ret)error = tr("Failed to update file header"); else emit headerUpdated(_path);