From e829293f8e00aaf4119b8f5b6d8cdf40cc58aeb8 Mon Sep 17 00:00:00 2001 From: William Joye Date: Thu, 30 Aug 2018 14:10:13 -0400 Subject: handle non equatorial wcs correctly --- tksao/frame/fitsimage.C | 7 ++++--- tksao/frame/wcsast.C | 19 +++---------------- tksao/frame/wcsast.h | 2 +- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/tksao/frame/fitsimage.C b/tksao/frame/fitsimage.C index 4fefa20..48a369e 100644 --- a/tksao/frame/fitsimage.C +++ b/tksao/frame/fitsimage.C @@ -3154,9 +3154,10 @@ void FitsImage::setWCSSysSkyFrame(Coord::CoordSystem sys, Coord::SkyFrame sky) wcsState_->wcsSystem_ = sys; if (wcsState_->wcsSkyFrame_ != sky) - if (hasWCSEqu(sys)) - if (wcsSkyFrame(ast_,sky)) - wcsState_->wcsSkyFrame_ = sky; + if (hasWCSEqu(sys)) { + wcsSkyFrame(ast_,sky); + wcsState_->wcsSkyFrame_ = sky; + } } void FitsImage::setWCSFormat(Coord::CoordSystem sys, Coord::SkyFrame sky, diff --git a/tksao/frame/wcsast.C b/tksao/frame/wcsast.C index e0ef678..d3801f1 100644 --- a/tksao/frame/wcsast.C +++ b/tksao/frame/wcsast.C @@ -25,21 +25,10 @@ int wcsSystem(AstFrameSet* ast, Coord::CoordSystem sys) return 0; } -int wcsSkyFrame(AstFrameSet* ast, Coord::SkyFrame sky) +void wcsSkyFrame(AstFrameSet* ast, Coord::SkyFrame sky) { - // is a skyFrame? - AstFrameSet* fs = - (AstFrameSet*)astFindFrame(ast, astSkyFrame(" MaxAxes=4")," "); - if (!fs) - return 0; - // equatorial? (aka have a System) - const char* str =astGetC(fs, "System"); - if (!str || !*str) - return 0; - // could be general spherical (aka HPX) - if (!strncmp(str,"Unknown",7)) - return 0; - + // Asssume the current frame is an Equatoral SkyFrame + // must be checked else where switch (sky) { case Coord::FK4: astSet(ast, "System=FK4, Equinox=B1950"); @@ -59,8 +48,6 @@ int wcsSkyFrame(AstFrameSet* ast, Coord::SkyFrame sky) astSetD(ast, "EQUINOX", astGetD(ast, "EPOCH")); break; } - - return 1; } void wcsFormat(AstFrameSet* ast, int id, const char* format) diff --git a/tksao/frame/wcsast.h b/tksao/frame/wcsast.h index 3417109..6aa42c0 100644 --- a/tksao/frame/wcsast.h +++ b/tksao/frame/wcsast.h @@ -11,7 +11,7 @@ extern "C" { } int wcsSystem(AstFrameSet*, Coord::CoordSystem); -int wcsSkyFrame(AstFrameSet*, Coord::SkyFrame); +void wcsSkyFrame(AstFrameSet*, Coord::SkyFrame); void wcsFormat(AstFrameSet*, int id, const char* format); Vector wcsTran(AstFrameSet*, const Vector&, int); -- cgit v0.12