Commit 4cc03484f5012544ce914eef20a2f3dc00b47718
1 parent
cf749332
improvements
Showing
2 changed files
with
75 additions
and
61 deletions
src/sky/GWcs.cpp
| @@ -57,6 +57,54 @@ GWcs::GWcs(void) | @@ -57,6 +57,54 @@ GWcs::GWcs(void) | ||
| 57 | 57 | ||
| 58 | 58 | ||
| 59 | /***********************************************************************//** | 59 | /***********************************************************************//** |
| 60 | + * @brief Standard 2D sky map constructor | ||
| 61 | + * | ||
| 62 | + * @param[in] coords Coordinate system. | ||
| 63 | + * @param[in] crval1 X value of reference pixel. | ||
| 64 | + * @param[in] crval1 Y value of reference pixel. | ||
| 65 | + * @param[in] crpix1 X index of reference pixel. | ||
| 66 | + * @param[in] crpix2 Y index of reference pixel. | ||
| 67 | + * @param[in] cdelt1 Increment in x direction at reference pixel (deg). | ||
| 68 | + * @param[in] cdelt2 Increment in y direction at reference pixel (deg). | ||
| 69 | + * | ||
| 70 | + * Construct standard 2D sky map from standard definition parameters. This | ||
| 71 | + * method | ||
| 72 | + ***************************************************************************/ | ||
| 73 | +GWcs::GWcs(const std::string& coords, | ||
| 74 | + const double& crval1, const double& crval2, | ||
| 75 | + const double& crpix1, const double& crpix2, | ||
| 76 | + const double& cdelt1, const double& cdelt2) | ||
| 77 | + | ||
| 78 | +{ | ||
| 79 | + // Initialise class members | ||
| 80 | + init_members(); | ||
| 81 | + | ||
| 82 | + //TODO: Check parameters | ||
| 83 | + | ||
| 84 | + // Set coordinate system | ||
| 85 | + coordsys(coords); | ||
| 86 | + | ||
| 87 | + // Set parameters | ||
| 88 | + m_crval[0] = crval1; | ||
| 89 | + m_crval[1] = crval2; | ||
| 90 | + m_crpix[0] = crpix1; | ||
| 91 | + m_crpix[1] = crpix2; | ||
| 92 | + m_cdelt[0] = cdelt1; | ||
| 93 | + m_cdelt[1] = cdelt2; | ||
| 94 | + | ||
| 95 | + // Set standard CD without rotation is a unit matrix | ||
| 96 | + m_cd(0,0) = m_cd(1,1) = 1.0; | ||
| 97 | + m_cd(0,1) = m_cd(1,0) = 0.0; | ||
| 98 | + | ||
| 99 | + // Compute inverse CD matrix | ||
| 100 | + m_invcd = invert(m_cd); //NOTE: invert method not yet implemented | ||
| 101 | + | ||
| 102 | + // Return | ||
| 103 | + return; | ||
| 104 | +} | ||
| 105 | + | ||
| 106 | + | ||
| 107 | +/***********************************************************************//** | ||
| 60 | * @brief Copy constructor | 108 | * @brief Copy constructor |
| 61 | * | 109 | * |
| 62 | * @param wcs GWcs instance which should be used for construction | 110 | * @param wcs GWcs instance which should be used for construction |
| @@ -135,9 +183,9 @@ void GWcs::read(const GFitsHDU* hdu) | @@ -135,9 +183,9 @@ void GWcs::read(const GFitsHDU* hdu) | ||
| 135 | // Free memory and initialise members | 183 | // Free memory and initialise members |
| 136 | free_members(); | 184 | free_members(); |
| 137 | init_members(); | 185 | init_members(); |
| 138 | - | 186 | + |
| 139 | //TODO: Implement WCS definition reading | 187 | //TODO: Implement WCS definition reading |
| 140 | - | 188 | + |
| 141 | // Return | 189 | // Return |
| 142 | return; | 190 | return; |
| 143 | } | 191 | } |
| @@ -189,7 +237,8 @@ std::string GWcs::coordsys(void) const | @@ -189,7 +237,8 @@ std::string GWcs::coordsys(void) const | ||
| 189 | * | 237 | * |
| 190 | * @param[in] coordsys Coordinate system (EQU/CEL/E/C or GAL/G) | 238 | * @param[in] coordsys Coordinate system (EQU/CEL/E/C or GAL/G) |
| 191 | * | 239 | * |
| 192 | - * @exception GException::wcs_bad_coords Invalid coordsys parameter. | 240 | + * @exception GException::wcs_bad_coords |
| 241 | + * Invalid coordsys parameter. | ||
| 193 | ***************************************************************************/ | 242 | ***************************************************************************/ |
| 194 | void GWcs::coordsys(const std::string& coordsys) | 243 | void GWcs::coordsys(const std::string& coordsys) |
| 195 | { | 244 | { |
| @@ -222,8 +271,7 @@ void GWcs::coordsys(const std::string& coordsys) | @@ -222,8 +271,7 @@ void GWcs::coordsys(const std::string& coordsys) | ||
| 222 | void GWcs::init_members(void) | 271 | void GWcs::init_members(void) |
| 223 | { | 272 | { |
| 224 | // Initialise members | 273 | // Initialise members |
| 225 | -// m_ctype[0].clear(); | ||
| 226 | -// m_ctype[1].clear(); | 274 | + m_coordsys = 0; |
| 227 | m_cdelt[0] = 0.0; | 275 | m_cdelt[0] = 0.0; |
| 228 | m_cdelt[1] = 0.0; | 276 | m_cdelt[1] = 0.0; |
| 229 | m_crpix[0] = 0.0; | 277 | m_crpix[0] = 0.0; |
| @@ -232,9 +280,9 @@ void GWcs::init_members(void) | @@ -232,9 +280,9 @@ void GWcs::init_members(void) | ||
| 232 | m_crval[1] = 0.0; | 280 | m_crval[1] = 0.0; |
| 233 | m_longpole = 180.0; | 281 | m_longpole = 180.0; |
| 234 | m_latpole = 0.0; | 282 | m_latpole = 0.0; |
| 235 | - m_pv2[0] = 0.0; | ||
| 236 | - m_pv2[1] = 0.0; | ||
| 237 | - m_coordsys = 0; | 283 | + m_cd = GMatrix(2,2); |
| 284 | + m_invcd = GMatrix(2,2); | ||
| 285 | + m_pv2 = GVector(21); | ||
| 238 | 286 | ||
| 239 | // Return | 287 | // Return |
| 240 | return; | 288 | return; |
| @@ -249,8 +297,7 @@ void GWcs::init_members(void) | @@ -249,8 +297,7 @@ void GWcs::init_members(void) | ||
| 249 | void GWcs::copy_members(const GWcs& wcs) | 297 | void GWcs::copy_members(const GWcs& wcs) |
| 250 | { | 298 | { |
| 251 | // Copy attributes | 299 | // Copy attributes |
| 252 | -// m_ctype[0] = wcs.m_ctype[0]; | ||
| 253 | -// m_ctype[1] = wcs.m_ctype[1]; | 300 | + m_coordsys = wcs.m_coordsys; |
| 254 | m_cdelt[0] = wcs.m_cdelt[0]; | 301 | m_cdelt[0] = wcs.m_cdelt[0]; |
| 255 | m_cdelt[1] = wcs.m_cdelt[1]; | 302 | m_cdelt[1] = wcs.m_cdelt[1]; |
| 256 | m_crpix[0] = wcs.m_crpix[0]; | 303 | m_crpix[0] = wcs.m_crpix[0]; |
| @@ -259,9 +306,9 @@ void GWcs::copy_members(const GWcs& wcs) | @@ -259,9 +306,9 @@ void GWcs::copy_members(const GWcs& wcs) | ||
| 259 | m_crval[1] = wcs.m_crval[1]; | 306 | m_crval[1] = wcs.m_crval[1]; |
| 260 | m_longpole = wcs.m_longpole; | 307 | m_longpole = wcs.m_longpole; |
| 261 | m_latpole = wcs.m_latpole; | 308 | m_latpole = wcs.m_latpole; |
| 262 | - m_pv2[0] = wcs.m_pv2[0]; | ||
| 263 | - m_pv2[1] = wcs.m_pv2[1]; | ||
| 264 | - m_coordsys = wcs.m_coordsys; | 309 | + m_cd = wcs.m_cd; |
| 310 | + m_invcd = wcs.m_invcd; | ||
| 311 | + m_pv2 = wcs.m_pv2; | ||
| 265 | 312 | ||
| 266 | // Return | 313 | // Return |
| 267 | return; | 314 | return; |
| @@ -278,46 +325,6 @@ void GWcs::free_members(void) | @@ -278,46 +325,6 @@ void GWcs::free_members(void) | ||
| 278 | } | 325 | } |
| 279 | 326 | ||
| 280 | 327 | ||
| 281 | -/***********************************************************************//** | ||
| 282 | - * @brief Constructor | ||
| 283 | - * | ||
| 284 | - * @param[in] crval Coordinates of reference pixel. | ||
| 285 | - * @param[in] crpix1 X coordinate of reference pixel. | ||
| 286 | - * @param[in] crpix2 Y coordinate of reference pixel. | ||
| 287 | - * @param[in] cdelt1 X increment at reference point in degrees/pixel. | ||
| 288 | - * @param[in] cdelt2 Y increment at reference point in degrees/pixel. | ||
| 289 | - * @param[in] coords Coordinate system ('EQU' or 'GAL'). | ||
| 290 | - ***************************************************************************/ | ||
| 291 | -void GWcs::set_wcs(const double& crval1, const double& crval2, | ||
| 292 | - const double& crpix1, const double& crpix2, | ||
| 293 | - const double& cdelt1, const double& cdelt2, | ||
| 294 | - const std::string& coords, | ||
| 295 | - const double* cd, const double* pv) | ||
| 296 | -{ | ||
| 297 | - // Initialise class members | ||
| 298 | - init_members(); | ||
| 299 | - | ||
| 300 | - // Set members | ||
| 301 | - m_crval[0] = crval1; | ||
| 302 | - m_crval[1] = crval2; | ||
| 303 | - m_crpix[0] = crpix1; | ||
| 304 | - m_crpix[1] = crpix2; | ||
| 305 | - m_cdelt[0] = cdelt1; | ||
| 306 | - m_cdelt[1] = cdelt2; | ||
| 307 | - | ||
| 308 | - // Set coordinate system | ||
| 309 | - coordsys(coords); | ||
| 310 | - | ||
| 311 | - // TODO: Set CD | ||
| 312 | - | ||
| 313 | - // TODO: Compute inverted CD | ||
| 314 | - //cdinv=invert(ds) | ||
| 315 | - | ||
| 316 | - // Return | ||
| 317 | - return; | ||
| 318 | -} | ||
| 319 | - | ||
| 320 | - | ||
| 321 | /*========================================================================== | 328 | /*========================================================================== |
| 322 | = = | 329 | = = |
| 323 | = GWcs friends = | 330 | = GWcs friends = |
src/sky/GWcsCAR.cpp
| @@ -60,16 +60,23 @@ GWcsCAR::GWcsCAR(void) : GWcs() | @@ -60,16 +60,23 @@ GWcsCAR::GWcsCAR(void) : GWcs() | ||
| 60 | /***********************************************************************//** | 60 | /***********************************************************************//** |
| 61 | * @brief Constructor | 61 | * @brief Constructor |
| 62 | * | 62 | * |
| 63 | - * @param[in] crval Coordinates of reference pixel. | ||
| 64 | - * @param[in] crpix1 X coordinate of reference pixel. | ||
| 65 | - * @param[in] crpix2 Y coordinate of reference pixel. | ||
| 66 | - * @param[in] cdelt1 X increment at reference point in degrees/pixel. | ||
| 67 | - * @param[in] cdelt2 Y increment at reference point in degrees/pixel. | ||
| 68 | - * @param[in] coords Coordinate system ('EQU' or 'GAL'). | 63 | + * @param[in] coords Coordinate system. |
| 64 | + * @param[in] crval1 X value of reference pixel. | ||
| 65 | + * @param[in] crval1 Y value of reference pixel. | ||
| 66 | + * @param[in] crpix1 X index of reference pixel. | ||
| 67 | + * @param[in] crpix2 Y index of reference pixel. | ||
| 68 | + * @param[in] cdelt1 Increment in x direction at reference pixel (deg). | ||
| 69 | + * @param[in] cdelt2 Increment in y direction at reference pixel (deg). | ||
| 70 | + * @param[in] cd Astrometry parameters (2x2 matrix, deg/pixel). | ||
| 71 | + * @param[in] pv2 Projection parameters (length WCS type dependent). | ||
| 69 | ***************************************************************************/ | 72 | ***************************************************************************/ |
| 70 | -GWcsCAR::GWcsCAR(GSkyDir& crval, const double& crpix1, const double& crpix2, | 73 | +GWcsCAR::GWcsCAR(const std::string& coords, |
| 74 | + const double& crval1, const double& crval2, | ||
| 75 | + const double& crpix1, const double& crpix2, | ||
| 71 | const double& cdelt1, const double& cdelt2, | 76 | const double& cdelt1, const double& cdelt2, |
| 72 | - const std::string& coords) : GWcs() | 77 | + const GMatrix& cd, const GVector& pv2) : |
| 78 | + GWcs(coords, crval1, crval2, crpix1, crpix2, cdelt1, cdelt2) | ||
| 79 | + | ||
| 73 | { | 80 | { |
| 74 | // Initialise class members | 81 | // Initialise class members |
| 75 | init_members(); | 82 | init_members(); |