Changeset 42075
- Timestamp:
- Feb 28, 2022, 12:05:28 PM (4 years ago)
- Location:
- trunk/Ohana/src/libdvo
- Files:
-
- 5 edited
-
include/dvodb.h (modified) (2 diffs)
-
include/libdvo_astro.h (modified) (1 diff)
-
src/coordops.c (modified) (6 diffs)
-
src/dbExtractMeasures.c (modified) (2 diffs)
-
src/dbFields.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libdvo/include/dvodb.h
r41341 r42075 240 240 MEAS_OBJ_ID, 241 241 MEAS_CAT_ID, 242 MEAS_EXT_ID, 242 243 MEAS_IMAGE_ID, 243 244 MEAS_PSF_QF, … … 248 249 MEAS_CR_NSIGMA, 249 250 MEAS_EXT_NSIGMA, 250 MEAS_ EXTERN_ID,251 MEAS_IMAGE_EXTERN_ID, // return image.externID 251 252 MEAS_EXPNAME_AS_INT, 252 253 MEAS_MCAL_OFFSET_PSF, // make this a dvoMagOption? -
trunk/Ohana/src/libdvo/include/libdvo_astro.h
r40291 r42075 27 27 PROJ_PAR, // pseudocyl 28 28 PROJ_ZPN, // zenithal 29 PROJ_MOL, // pseudocyl 29 30 } OhanaProjection; 30 31 -
trunk/Ohana/src/libdvo/src/coordops.c
r39926 r42075 266 266 switch (proj) { 267 267 case PROJ_AIT: 268 Z2 = (1.0 - SQ(RAD_DEG*0.25*L) - SQ(RAD_DEG*0.5*M)); 269 if (Z2 < 0) return (FALSE); 270 Z = sqrt (Z2); 271 alpha = 2.0 * DEG_RAD * atan2 (RAD_DEG*0.5*Z*L, 2.0*Z2 - 1.0); 272 delta = DEG_RAD * asin (RAD_DEG*M*Z); 273 break; 274 268 Z2 = (1.0 - SQ(RAD_DEG*0.25*L) - SQ(RAD_DEG*0.5*M)); 269 if (Z2 < 0) return (FALSE); 270 Z = sqrt (Z2); 271 alpha = 2.0 * DEG_RAD * atan2 (RAD_DEG*0.5*Z*L, 2.0*Z2 - 1.0); 272 delta = DEG_RAD * asin (RAD_DEG*M*Z); 273 break; 275 274 case PROJ_GLS: 276 275 /* L,M in degrees, alpha,delta in degrees */ … … 283 282 delta = 3 * DEG_RAD * asin (M/180.0); 284 283 break; 284 case PROJ_MOL: 285 Z = sqrt(2.0 - SQ(RAD_DEG*M)); 286 alpha = M_PI*L/(2*Z); 287 double T1 = asin(RAD_DEG*M*M_SQRT1_2)/90.0 + M*Z/180.0; 288 delta = DEG_RAD*asin(T1); 285 289 default: 286 290 return (FALSE); … … 448 452 *M = 180.0 * sin (RAD_DEG*theta/3.0); 449 453 return (TRUE); 454 case PROJ_MOL: 455 phi = ra - coords[0].crval1; 456 theta = dec - coords[0].crval2; 457 // given theta, solve for gamma: 458 double So = sin(theta*RAD_DEG); 459 double Go = theta; 460 if (theta > +80) { Go = theta - 10.0;} 461 if (theta < -80) { Go = theta + 10.0;} 462 for (int iter = 0; iter < 5; iter ++) { 463 double Fo = (Go / 90.0) + sin(Go*M_PI/90.0) / M_PI - So; 464 double dFdG = (1 / 90.0) + cos(Go*M_PI/90.0) / 90.0; 465 Go -= Fo / dFdG; 466 } 467 *L = 2*phi * cos(RAD_DEG*Go) * M_SQRT2 / M_PI; 468 *M = 180.0 * sin(RAD_DEG*Go) * M_SQRT2 / M_PI; 469 return (TRUE); 450 470 default: 451 471 return (FALSE); … … 1059 1079 if (!strncmp(&ctype[4], "-GLS", 4)) return PROJ_GLS; 1060 1080 if (!strncmp(&ctype[4], "-PAR", 4)) return PROJ_PAR; 1081 if (!strncmp(&ctype[4], "-MOL", 4)) return PROJ_MOL; 1061 1082 return PROJ_NONE; 1062 1083 } … … 1079 1100 case PROJ_GLS: strcpy(&ctype[4], "-GLS"); return TRUE; 1080 1101 case PROJ_PAR: strcpy(&ctype[4], "-PAR"); return TRUE; 1102 case PROJ_MOL: strcpy(&ctype[4], "-MOL"); return TRUE; 1081 1103 case PROJ_NONE: return FALSE; 1082 1104 } … … 1103 1125 case PROJ_GLS: 1104 1126 case PROJ_PAR: 1127 case PROJ_MOL: 1105 1128 return PROJ_MODE_PSEUDOCYL; 1106 1129 default: -
trunk/Ohana/src/libdvo/src/dbExtractMeasures.c
r40463 r42075 696 696 value.Int = measure[0].imageID; 697 697 break; 698 case MEAS_EXT_ID: /* OK */ 699 value.Int = measure[0].extID; 700 break; 698 701 case MEAS_PSF_QF: /* OK */ 699 702 value.Flt = measure[0].psfQF; … … 714 717 value.Flt = measure[0].extNsigma; 715 718 break; 716 case MEAS_ EXTERN_ID: /* OK */719 case MEAS_IMAGE_EXTERN_ID: /* OK */ 717 720 if (REMOTE_CLIENT) { 718 721 ImageMetadata *image = MatchImageMetadataDVO (measure[0].imageID); -
trunk/Ohana/src/libdvo/src/dbFields.c
r40463 r42075 603 603 if (!strcasecmp (fieldName, "CATID")) ESCAPE (MEAS_CAT_ID, OPIHI_INT); 604 604 if (!strcasecmp (fieldName, "IMAGEID")) ESCAPE (MEAS_IMAGE_ID, OPIHI_INT); 605 if (!strcasecmp (fieldName, "EXTERNID")) ESCAPE (MEAS_EXTERN_ID, OPIHI_INT); 605 if (!strcasecmp (fieldName, "IMAGE_EXTERN_ID")) ESCAPE (MEAS_IMAGE_EXTERN_ID, OPIHI_INT); 606 if (!strcasecmp (fieldName, "IMAGE_EXT_ID")) ESCAPE (MEAS_IMAGE_EXTERN_ID, OPIHI_INT); 607 if (!strcasecmp (fieldName, "EXTERNID")) ESCAPE (MEAS_EXT_ID, OPIHI_INT); 608 if (!strcasecmp (fieldName, "EXT_ID")) ESCAPE (MEAS_EXT_ID, OPIHI_INT); 609 if (!strcasecmp (fieldName, "EXTID")) ESCAPE (MEAS_EXT_ID, OPIHI_INT); 606 610 if (!strcasecmp (fieldName, "EXPNAME")) ESCAPE (MEAS_EXPNAME_AS_INT, OPIHI_INT); 607 611 if (!strcasecmp (fieldName, "PSF_QF")) ESCAPE (MEAS_PSF_QF, OPIHI_FLT);
Note:
See TracChangeset
for help on using the changeset viewer.
