From 714a002b478e990a86ad8a29381f960b2dae86c5 Mon Sep 17 00:00:00 2001 From: Andreas Specovius Date: Fri, 20 Nov 2020 11:51:39 +0100 Subject: [PATCH] Changed algo of computing map extension: now computed from dist/PA relative to rect centre and their cartesian representation (previous implementation used difference in RA/DEC) --- src/sky/GSkyRegionMap.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/sky/GSkyRegionMap.cpp b/src/sky/GSkyRegionMap.cpp index 7522f68..09ec571 100644 --- a/src/sky/GSkyRegionMap.cpp +++ b/src/sky/GSkyRegionMap.cpp @@ -657,14 +657,19 @@ void GSkyRegionMap::set_region_rect(const GSkyRegionRect* rect) // Get skydir of current corner GSkyDir corner = rect->get_corner(icorner); - // Get extension along declination - double dy = std::abs(corner.dec() - rect->centre().dec()); + // Compute polar props in global coords relative to rectangle centre + double dist = rect->centre().dist(corner); + double pa = rect->centre().posang(corner); + + // Compute required map extension along RA/Dec for this corner + double dx = dist * std::sin(pa); + double dy = dist * std::cos(pa); + + // Select the largest extension if (dy > dymax) { dymax = dy; } - // Get extension along right ascension, correct for spherical coordsys - double dx = std::abs(corner.ra() - rect->centre().ra()) * std::cos(corner.dec()); if (dx > dxmax) { dxmax = dx; } -- libgit2 0.21.4