Add PCL:AstrometricSolution to XISF solved files

This commit is contained in:
2025-08-03 20:58:01 +02:00
parent 69fbad34b6
commit 32f91d7b2f
+13
View File
@@ -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);