Loading man/sex.1 +1 −1 Original line number Original line Diff line number Diff line .TH SEXTRACTOR "1" "June 2009" "SWarp 2.8.8" "User Commands" .TH SEXTRACTOR "1" "July 2009" "SWarp 2.8.8" "User Commands" .SH NAME .SH NAME sex \- extract a source catalog from an astronomical FITS image sex \- extract a source catalog from an astronomical FITS image .SH SYNOPSIS .SH SYNOPSIS Loading src/analyse.c +68 −5 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * * Contents: analyse(), endobject()...: measurements on detections. * Contents: analyse(), endobject()...: measurements on detections. * * * Last modify: 18/11/2008 * Last modify: 20/07/2009 * * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ */ Loading Loading @@ -385,9 +385,11 @@ Final processing of object data, just before saving it to the catalog. void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, picstruct *dwfield, int n, objliststruct *objlist) picstruct *dwfield, int n, objliststruct *objlist) { { objstruct *obj; checkstruct *check; checkstruct *check; double rawpos[NAXIS], pixscale2; int i,j, ix,iy,selecflag, newnumber,nsub; int i,j, ix,iy,selecflag, newnumber,nsub; objstruct *obj; obj = &objlist->obj[n]; obj = &objlist->obj[n]; Loading Loading @@ -468,6 +470,43 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, obj2->polar = (obj->a*obj->a - obj->b*obj->b) obj2->polar = (obj->a*obj->a - obj->b*obj->b) / (obj->a*obj->a + obj->b*obj->b); / (obj->a*obj->a + obj->b*obj->b); /*-- Express positions in FOCAL or WORLD coordinates */ if (FLAG(obj2.mxf) || FLAG(obj2.mxw)) astrom_pos(field, obj); if (FLAG(obj2.mx2w) || FLAG(obj2.win_mx2w) || FLAG(obj2.poserr_mx2w) || FLAG(obj2.winposerr_mx2w) || FLAG(obj2.poserrmx2w_prof) || FLAG(obj2.prof_flagw) || ((!prefs.pixel_scale) && (FLAG(obj2.npixw) || FLAG(obj2.fdnpixw) || FLAG(obj2.fwhmw)))) { rawpos[0] = obj2->posx; rawpos[1] = obj2->posy; pixscale2 = wcs_jacobian(field->wcs, rawpos, obj2->jacob); } /*-- Express shape parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.mx2w)) astrom_shapeparam(field, obj); /*-- Express position error parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_errparam(field, obj); if (FLAG(obj2.npixw)) obj2->npixw = obj->npix * (prefs.pixel_scale? field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fdnpixw)) obj2->fdnpixw = obj->fdnpix * (prefs.pixel_scale? field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fwhmw)) obj2->fwhmw = obj->fwhm * (prefs.pixel_scale? field->pixscale/3600.0 : sqrt(pixscale2)); /*------------------------------- Photometry -------------------------------*/ /*------------------------------- Photometry -------------------------------*/ /*-- Convert the father of photom. error estimates from variance to RMS */ /*-- Convert the father of photom. error estimates from variance to RMS */ Loading @@ -493,11 +532,25 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, /*--------------------------- Windowed barycenter --------------------------*/ /*--------------------------- Windowed barycenter --------------------------*/ if (FLAG(obj2.winpos_x)) if (FLAG(obj2.winpos_x)) { compute_winpos(field, wfield, obj); compute_winpos(field, wfield, obj); /*---- Express positions in FOCAL or WORLD coordinates */ /*-- What about the peak of the profile? */ if (FLAG(obj2.winpos_xf) || FLAG(obj2.winpos_xw)) astrom_winpos(field, obj); /*---- Express shape parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.mx2w)) astrom_winshapeparam(field, obj); /*---- Express position error parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_winerrparam(field, obj); } /*---------------------------- Peak information ----------------------------*/ if (obj->peak+obj->bkg >= field->satur_level) if (obj->peak+obj->bkg >= field->satur_level) obj->flag |= OBJ_SATUR; obj->flag |= OBJ_SATUR; /*-- Express positions in FOCAL or WORLD coordinates */ if (FLAG(obj2.peakxf) || FLAG(obj2.peakxw)) astrom_peakpos(field, obj); /*-- Check-image CHECK_APERTURES option */ /*-- Check-image CHECK_APERTURES option */ Loading Loading @@ -639,14 +692,24 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, /*----------------------------- Profile fitting -----------------------------*/ /*----------------------------- Profile fitting -----------------------------*/ nsub = 1; nsub = 1; if (prefs.prof_flag) if (prefs.prof_flag) { profit_fit(theprofit, field, wfield, obj, obj2); profit_fit(theprofit, field, wfield, obj, obj2); /*---- Express positions in FOCAL or WORLD coordinates */ if (FLAG(obj2.winpos_xf) || FLAG(obj2.winpos_xw)) astrom_profpos(field, obj); /*---- Express shape parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.mx2w)) astrom_profshapeparam(field, obj); /*---- Express position error parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_proferrparam(field, obj); } /*--- Express everything in magnitude units */ /*--- Express everything in magnitude units */ computemags(field, obj); computemags(field, obj); /*-------------------------------- Astrometry ------------------------------*/ /*-------------------------------- Astrometry ------------------------------*/ if (prefs.world_flag) computeastrom(field, obj); /*-- Edit min and max coordinates to follow the FITS conventions */ /*-- Edit min and max coordinates to follow the FITS conventions */ obj->xmin += 1; obj->xmin += 1; obj->ymin += 1; obj->ymin += 1; Loading src/astrom.c +120 −60 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * * Contents: Astrometrical computations. * Contents: Astrometrical computations. * * * Last modify: 19/05/2008 * Last modify: 20/07/2009 * * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ */ Loading Loading @@ -79,11 +79,11 @@ void initastrom(picstruct *field) } } /**************************** computeastrom *********************************/ /***************************** astrom_pos **********************************/ /* /* Compute real WORLD coordinates and dimensions according to FITS info. Compute real FOCAL and WORLD coordinates according to FITS info. */ */ void computeastrom(picstruct *field, objstruct *obj) void astrom_pos(picstruct *field, objstruct *obj) { { wcsstruct *wcs; wcsstruct *wcs; Loading @@ -94,7 +94,16 @@ void computeastrom(picstruct *field, objstruct *obj) wcs = field->wcs; wcs = field->wcs; lng = wcs->lng; lng = wcs->lng; lat = wcs->lat; lat = wcs->lat; pixscale2 = 0.0; /* To avoid gcc -Wall warnings */ /* If working with WCS, compute FOCAL coordinates and local matrix */ if (FLAG(obj2.mxf)) { rawpos[0] = obj2->posx; rawpos[1] = obj2->posy; raw_to_red(wcs, rawpos, wcspos); obj2->mxf = wcspos[0]; obj2->myf = wcspos[1]; } /* If working with WCS, compute WORLD coordinates and local matrix */ /* If working with WCS, compute WORLD coordinates and local matrix */ if (FLAG(obj2.mxw)) if (FLAG(obj2.mxw)) Loading Loading @@ -145,7 +154,58 @@ void computeastrom(picstruct *field, objstruct *obj) } } } } /* Idem for peak-flux positions */ /* Custom coordinate system for the MAMA machine */ if (FLAG(obj2.mamaposx)) { rawpos[0] = obj2->posx - 0.5; rawpos[1] = obj2->posy - 0.5; raw_to_wcs(wcs, rawpos, wcspos); obj2->mamaposx = wcspos[1]*(MAMA_CORFLEX+1.0); obj2->mamaposy = wcspos[0]*(MAMA_CORFLEX+1.0); } if (FLAG(obj2.mx2w) || FLAG(obj2.win_mx2w) || FLAG(obj2.poserr_mx2w) || FLAG(obj2.winposerr_mx2w) || FLAG(obj2.poserrmx2w_prof) || FLAG(obj2.prof_flagw) || ((!prefs.pixel_scale) && (FLAG(obj2.npixw) || FLAG(obj2.fdnpixw) || FLAG(obj2.fwhmw)))) { rawpos[0] = obj2->posx; rawpos[1] = obj2->posy; pixscale2 = wcs_jacobian(wcs, rawpos, obj2->jacob); } return; } /***************************** astrom_peakpos *******************************/ /* Compute real FOCAL and WORLD peak coordinates according to FITS info. */ void astrom_peakpos(picstruct *field, objstruct *obj) { wcsstruct *wcs; double rawpos[NAXIS], wcspos[NAXIS]; int lng,lat; wcs = field->wcs; lng = wcs->lng; lat = wcs->lat; if (FLAG(obj2.peakxf)) { rawpos[0] = obj->peakx; rawpos[1] = obj->peaky; raw_to_red(wcs, rawpos, wcspos); obj2->peakxf = wcspos[0]; obj2->peakyf = wcspos[1]; } if (FLAG(obj2.peakxw)) if (FLAG(obj2.peakxw)) { { rawpos[0] = obj->peakx; rawpos[0] = obj->peakx; Loading Loading @@ -174,7 +234,33 @@ void computeastrom(picstruct *field, objstruct *obj) } } } } /* Idem for Windowed positions */ return; } /****************************** astrom_winpos *******************************/ /* Compute real FOCAL and WORLD windowed coordinates according to FITS info. */ void astrom_winpos(picstruct *field, objstruct *obj) { wcsstruct *wcs; double rawpos[NAXIS], wcspos[NAXIS]; int lng,lat; wcs = field->wcs; lng = wcs->lng; lat = wcs->lat; if (FLAG(obj2.winpos_xf)) { rawpos[0] = obj2->winpos_x; rawpos[1] = obj2->winpos_y; raw_to_red(wcs, rawpos, wcspos); obj2->winpos_xf = wcspos[0]; obj2->winpos_yf = wcspos[1]; } if (FLAG(obj2.winpos_xw)) if (FLAG(obj2.winpos_xw)) { { rawpos[0] = obj2->winpos_x; rawpos[0] = obj2->winpos_x; Loading Loading @@ -203,7 +289,33 @@ void computeastrom(picstruct *field, objstruct *obj) } } } } /* Idem for Model-fitted positions */ return; } /****************************** astrom_profpos *******************************/ /* Compute real FOCAL and WORLD profit coordinates according to FITS info. */ void astrom_profpos(picstruct *field, objstruct *obj) { wcsstruct *wcs; double rawpos[NAXIS], wcspos[NAXIS]; int lng,lat; wcs = field->wcs; lng = wcs->lng; lat = wcs->lat; if (FLAG(obj2.xf_prof)) { rawpos[0] = obj2->x_prof; rawpos[1] = obj2->y_prof; raw_to_red(wcs, rawpos, wcspos); obj2->xf_prof = wcspos[0]; obj2->yf_prof = wcspos[1]; } if (FLAG(obj2.xw_prof)) if (FLAG(obj2.xw_prof)) { { rawpos[0] = obj2->x_prof; rawpos[0] = obj2->x_prof; Loading Loading @@ -232,58 +344,6 @@ void computeastrom(picstruct *field, objstruct *obj) } } } } /* Custom coordinate system for the MAMA machine */ if (FLAG(obj2.mamaposx)) { rawpos[0] = obj2->posx - 0.5; rawpos[1] = obj2->posy - 0.5; raw_to_wcs(wcs, rawpos, wcspos); obj2->mamaposx = wcspos[1]*(MAMA_CORFLEX+1.0); obj2->mamaposy = wcspos[0]*(MAMA_CORFLEX+1.0); } if (FLAG(obj2.mx2w) || FLAG(obj2.win_mx2w) || FLAG(obj2.poserr_mx2w) || FLAG(obj2.winposerr_mx2w) || FLAG(obj2.poserrmx2w_prof) || FLAG(obj2.prof_flagw) || ((!prefs.pixel_scale) && (FLAG(obj2.npixw) || FLAG(obj2.fdnpixw) || FLAG(obj2.fwhmw)))) { rawpos[0] = obj2->posx; rawpos[1] = obj2->posy; pixscale2 = wcs_jacobian(wcs, rawpos, obj2->jacob); } /* Express shape parameters in WORLD frame */ if (FLAG(obj2.mx2w)) astrom_shapeparam(field, obj); if (FLAG(obj2.win_mx2w)) astrom_winshapeparam(field, obj); if (FLAG(obj2.prof_flagw)) astrom_profshapeparam(field, obj); /* Express position error parameters in WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_errparam(field, obj); if (FLAG(obj2.winposerr_mx2w)) astrom_winerrparam(field, obj); if (FLAG(obj2.poserrmx2w_prof)) astrom_proferrparam(field, obj); if (FLAG(obj2.npixw)) obj2->npixw = obj->npix * (prefs.pixel_scale? field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fdnpixw)) obj2->fdnpixw = obj->fdnpix * (prefs.pixel_scale? field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fwhmw)) obj2->fwhmw = obj->fwhm * (prefs.pixel_scale? field->pixscale/3600.0 : sqrt(pixscale2)); return; return; } } Loading src/astrom.h +5 −2 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * * Contents: Astrometrical stuff. * Contents: Astrometrical stuff. * * * Last modify: 18/05/2008 * Last modify: 20/07/2009 * * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ */ Loading @@ -30,12 +30,15 @@ /*------------------------------- structures --------------------------------*/ /*------------------------------- structures --------------------------------*/ /*------------------------------- functions ---------------------------------*/ /*------------------------------- functions ---------------------------------*/ extern void astrom_errparam(picstruct *, objstruct *), extern void astrom_errparam(picstruct *, objstruct *), astrom_peakpos(picstruct *, objstruct *), astrom_pos(picstruct *, objstruct *), astrom_proferrparam(picstruct *, objstruct *), astrom_proferrparam(picstruct *, objstruct *), astrom_profpos(picstruct *, objstruct *), astrom_profshapeparam(picstruct *, objstruct *), astrom_profshapeparam(picstruct *, objstruct *), astrom_shapeparam(picstruct *, objstruct *), astrom_shapeparam(picstruct *, objstruct *), astrom_winerrparam(picstruct *, objstruct *), astrom_winerrparam(picstruct *, objstruct *), astrom_winpos(picstruct *, objstruct *), astrom_winshapeparam(picstruct *, objstruct *), astrom_winshapeparam(picstruct *, objstruct *), computeastrom(picstruct *, objstruct *), initastrom(picstruct *), initastrom(picstruct *), j2b(double, double, double, double *, double *), j2b(double, double, double, double *, double *), precess(double,double,double,double,double *,double *); precess(double,double,double,double,double *,double *); Loading src/catout.c +11 −4 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * * Contents: functions for output of catalog data. * Contents: functions for output of catalog data. * * * Last modify: 29/05/2009 * Last modify: 20/07/2009 * * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ */ Loading Loading @@ -201,13 +201,15 @@ void updateparamflags() | FLAG(obj2.alpha2000_prof); | FLAG(obj2.alpha2000_prof); FLAG(obj2.xw_prof) |= FLAG(obj2.yw_prof) FLAG(obj2.xw_prof) |= FLAG(obj2.yw_prof) | FLAG(obj2.alphas_prof); | FLAG(obj2.alphas_prof); FLAG(obj2.xf_prof) |= FLAG(obj2.yf_prof); FLAG(obj2.x_prof) |= FLAG(obj2.y_prof) FLAG(obj2.x_prof) |= FLAG(obj2.y_prof) | FLAG(obj2.xw_prof) | FLAG(obj2.xw_prof) | FLAG(obj2.xf_prof) | FLAG(obj2.poserra_prof) | FLAG(obj2.poserra_prof) | FLAG(obj2.poserrcxx_prof) | FLAG(obj2.poserrcxx_prof) | FLAG(obj2.prof_concentration) | FLAG(obj2.prof_concentration) | FLAG(obj2.prof_class_star); | FLAG(obj2.prof_class_star); FLAG(obj2.mag_prof) |= FLAG(obj2.magerr_prof); FLAG(obj2.mag_prof) |= FLAG(obj2.magerr_prof); FLAG(obj2.magerr_prof) |= FLAG(obj2.fluxerr_prof); FLAG(obj2.magerr_prof) |= FLAG(obj2.fluxerr_prof); FLAG(obj2.flux_prof) |= FLAG(obj2.mag_prof) | FLAG(obj2.fluxerr_prof); FLAG(obj2.flux_prof) |= FLAG(obj2.mag_prof) | FLAG(obj2.fluxerr_prof); Loading Loading @@ -392,6 +394,7 @@ void updateparamflags() | FLAG(obj2.winposerr_theta2000); | FLAG(obj2.winposerr_theta2000); FLAG(obj2.winpos_alphas) |= FLAG(obj2.winpos_deltas) FLAG(obj2.winpos_alphas) |= FLAG(obj2.winpos_deltas) | FLAG(obj2.winpos_alpha2000); | FLAG(obj2.winpos_alpha2000); FLAG(obj2.winpos_xf) |= FLAG(obj2.winpos_yf); FLAG(obj2.winpos_xw) |= FLAG(obj2.winpos_yw) FLAG(obj2.winpos_xw) |= FLAG(obj2.winpos_yw) | FLAG(obj2.winpos_alphas); | FLAG(obj2.winpos_alphas); Loading Loading @@ -432,8 +435,11 @@ void updateparamflags() | FLAG(obj2.npixw) | FLAG(obj2.fdnpixw) | FLAG(obj2.npixw) | FLAG(obj2.fdnpixw) | FLAG(obj2.fwhmw); | FLAG(obj2.fwhmw); FLAG(obj2.peakxw) |= FLAG(obj2.peakyf); FLAG(obj2.peakxw) |= FLAG(obj2.peakyw) | FLAG(obj2.peakalphas); FLAG(obj2.peakxw) |= FLAG(obj2.peakyw) | FLAG(obj2.peakalphas); FLAG(obj.peakx) |= FLAG(obj.peaky) | FLAG(obj2.peakxw); FLAG(obj.peakx) |= FLAG(obj.peaky) | FLAG(obj2.peakxw) | FLAG(obj2.peakxf); FLAG(obj2.mxf) |= FLAG(obj2.myf); FLAG(obj2.mxw) |= FLAG(obj2.myw) | FLAG(obj2.mx2w) | FLAG(obj2.alphas) FLAG(obj2.mxw) |= FLAG(obj2.myw) | FLAG(obj2.mx2w) | FLAG(obj2.alphas) | FLAG(obj2.poserr_mx2w); | FLAG(obj2.poserr_mx2w); Loading @@ -442,7 +448,8 @@ void updateparamflags() | FLAG(obj2.flux_win) | FLAG(obj2.fluxerr_win); | FLAG(obj2.flux_win) | FLAG(obj2.fluxerr_win); FLAG(obj2.winpos_x) |= FLAG(obj2.winpos_y) FLAG(obj2.winpos_x) |= FLAG(obj2.winpos_y) | FLAG(obj2.winposerr_mx2) | FLAG(obj2.win_mx2) | FLAG(obj2.winposerr_mx2) | FLAG(obj2.win_mx2) | FLAG(obj2.winpos_xw) | FLAG(obj2.win_flag) | FLAG(obj2.winpos_xw) | FLAG(obj2.winpos_xf) | FLAG(obj2.win_flag) | FLAG(obj2.flux_win) |FLAG(obj2.winpos_niter); | FLAG(obj2.flux_win) |FLAG(obj2.winpos_niter); /*------------------------------ Photometry ---------------------------------*/ /*------------------------------ Photometry ---------------------------------*/ Loading Loading
man/sex.1 +1 −1 Original line number Original line Diff line number Diff line .TH SEXTRACTOR "1" "June 2009" "SWarp 2.8.8" "User Commands" .TH SEXTRACTOR "1" "July 2009" "SWarp 2.8.8" "User Commands" .SH NAME .SH NAME sex \- extract a source catalog from an astronomical FITS image sex \- extract a source catalog from an astronomical FITS image .SH SYNOPSIS .SH SYNOPSIS Loading
src/analyse.c +68 −5 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * * Contents: analyse(), endobject()...: measurements on detections. * Contents: analyse(), endobject()...: measurements on detections. * * * Last modify: 18/11/2008 * Last modify: 20/07/2009 * * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ */ Loading Loading @@ -385,9 +385,11 @@ Final processing of object data, just before saving it to the catalog. void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, picstruct *dwfield, int n, objliststruct *objlist) picstruct *dwfield, int n, objliststruct *objlist) { { objstruct *obj; checkstruct *check; checkstruct *check; double rawpos[NAXIS], pixscale2; int i,j, ix,iy,selecflag, newnumber,nsub; int i,j, ix,iy,selecflag, newnumber,nsub; objstruct *obj; obj = &objlist->obj[n]; obj = &objlist->obj[n]; Loading Loading @@ -468,6 +470,43 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, obj2->polar = (obj->a*obj->a - obj->b*obj->b) obj2->polar = (obj->a*obj->a - obj->b*obj->b) / (obj->a*obj->a + obj->b*obj->b); / (obj->a*obj->a + obj->b*obj->b); /*-- Express positions in FOCAL or WORLD coordinates */ if (FLAG(obj2.mxf) || FLAG(obj2.mxw)) astrom_pos(field, obj); if (FLAG(obj2.mx2w) || FLAG(obj2.win_mx2w) || FLAG(obj2.poserr_mx2w) || FLAG(obj2.winposerr_mx2w) || FLAG(obj2.poserrmx2w_prof) || FLAG(obj2.prof_flagw) || ((!prefs.pixel_scale) && (FLAG(obj2.npixw) || FLAG(obj2.fdnpixw) || FLAG(obj2.fwhmw)))) { rawpos[0] = obj2->posx; rawpos[1] = obj2->posy; pixscale2 = wcs_jacobian(field->wcs, rawpos, obj2->jacob); } /*-- Express shape parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.mx2w)) astrom_shapeparam(field, obj); /*-- Express position error parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_errparam(field, obj); if (FLAG(obj2.npixw)) obj2->npixw = obj->npix * (prefs.pixel_scale? field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fdnpixw)) obj2->fdnpixw = obj->fdnpix * (prefs.pixel_scale? field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fwhmw)) obj2->fwhmw = obj->fwhm * (prefs.pixel_scale? field->pixscale/3600.0 : sqrt(pixscale2)); /*------------------------------- Photometry -------------------------------*/ /*------------------------------- Photometry -------------------------------*/ /*-- Convert the father of photom. error estimates from variance to RMS */ /*-- Convert the father of photom. error estimates from variance to RMS */ Loading @@ -493,11 +532,25 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, /*--------------------------- Windowed barycenter --------------------------*/ /*--------------------------- Windowed barycenter --------------------------*/ if (FLAG(obj2.winpos_x)) if (FLAG(obj2.winpos_x)) { compute_winpos(field, wfield, obj); compute_winpos(field, wfield, obj); /*---- Express positions in FOCAL or WORLD coordinates */ /*-- What about the peak of the profile? */ if (FLAG(obj2.winpos_xf) || FLAG(obj2.winpos_xw)) astrom_winpos(field, obj); /*---- Express shape parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.mx2w)) astrom_winshapeparam(field, obj); /*---- Express position error parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_winerrparam(field, obj); } /*---------------------------- Peak information ----------------------------*/ if (obj->peak+obj->bkg >= field->satur_level) if (obj->peak+obj->bkg >= field->satur_level) obj->flag |= OBJ_SATUR; obj->flag |= OBJ_SATUR; /*-- Express positions in FOCAL or WORLD coordinates */ if (FLAG(obj2.peakxf) || FLAG(obj2.peakxw)) astrom_peakpos(field, obj); /*-- Check-image CHECK_APERTURES option */ /*-- Check-image CHECK_APERTURES option */ Loading Loading @@ -639,14 +692,24 @@ void endobject(picstruct *field, picstruct *dfield, picstruct *wfield, /*----------------------------- Profile fitting -----------------------------*/ /*----------------------------- Profile fitting -----------------------------*/ nsub = 1; nsub = 1; if (prefs.prof_flag) if (prefs.prof_flag) { profit_fit(theprofit, field, wfield, obj, obj2); profit_fit(theprofit, field, wfield, obj, obj2); /*---- Express positions in FOCAL or WORLD coordinates */ if (FLAG(obj2.winpos_xf) || FLAG(obj2.winpos_xw)) astrom_profpos(field, obj); /*---- Express shape parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.mx2w)) astrom_profshapeparam(field, obj); /*---- Express position error parameters in the FOCAL or WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_proferrparam(field, obj); } /*--- Express everything in magnitude units */ /*--- Express everything in magnitude units */ computemags(field, obj); computemags(field, obj); /*-------------------------------- Astrometry ------------------------------*/ /*-------------------------------- Astrometry ------------------------------*/ if (prefs.world_flag) computeastrom(field, obj); /*-- Edit min and max coordinates to follow the FITS conventions */ /*-- Edit min and max coordinates to follow the FITS conventions */ obj->xmin += 1; obj->xmin += 1; obj->ymin += 1; obj->ymin += 1; Loading
src/astrom.c +120 −60 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * * Contents: Astrometrical computations. * Contents: Astrometrical computations. * * * Last modify: 19/05/2008 * Last modify: 20/07/2009 * * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ */ Loading Loading @@ -79,11 +79,11 @@ void initastrom(picstruct *field) } } /**************************** computeastrom *********************************/ /***************************** astrom_pos **********************************/ /* /* Compute real WORLD coordinates and dimensions according to FITS info. Compute real FOCAL and WORLD coordinates according to FITS info. */ */ void computeastrom(picstruct *field, objstruct *obj) void astrom_pos(picstruct *field, objstruct *obj) { { wcsstruct *wcs; wcsstruct *wcs; Loading @@ -94,7 +94,16 @@ void computeastrom(picstruct *field, objstruct *obj) wcs = field->wcs; wcs = field->wcs; lng = wcs->lng; lng = wcs->lng; lat = wcs->lat; lat = wcs->lat; pixscale2 = 0.0; /* To avoid gcc -Wall warnings */ /* If working with WCS, compute FOCAL coordinates and local matrix */ if (FLAG(obj2.mxf)) { rawpos[0] = obj2->posx; rawpos[1] = obj2->posy; raw_to_red(wcs, rawpos, wcspos); obj2->mxf = wcspos[0]; obj2->myf = wcspos[1]; } /* If working with WCS, compute WORLD coordinates and local matrix */ /* If working with WCS, compute WORLD coordinates and local matrix */ if (FLAG(obj2.mxw)) if (FLAG(obj2.mxw)) Loading Loading @@ -145,7 +154,58 @@ void computeastrom(picstruct *field, objstruct *obj) } } } } /* Idem for peak-flux positions */ /* Custom coordinate system for the MAMA machine */ if (FLAG(obj2.mamaposx)) { rawpos[0] = obj2->posx - 0.5; rawpos[1] = obj2->posy - 0.5; raw_to_wcs(wcs, rawpos, wcspos); obj2->mamaposx = wcspos[1]*(MAMA_CORFLEX+1.0); obj2->mamaposy = wcspos[0]*(MAMA_CORFLEX+1.0); } if (FLAG(obj2.mx2w) || FLAG(obj2.win_mx2w) || FLAG(obj2.poserr_mx2w) || FLAG(obj2.winposerr_mx2w) || FLAG(obj2.poserrmx2w_prof) || FLAG(obj2.prof_flagw) || ((!prefs.pixel_scale) && (FLAG(obj2.npixw) || FLAG(obj2.fdnpixw) || FLAG(obj2.fwhmw)))) { rawpos[0] = obj2->posx; rawpos[1] = obj2->posy; pixscale2 = wcs_jacobian(wcs, rawpos, obj2->jacob); } return; } /***************************** astrom_peakpos *******************************/ /* Compute real FOCAL and WORLD peak coordinates according to FITS info. */ void astrom_peakpos(picstruct *field, objstruct *obj) { wcsstruct *wcs; double rawpos[NAXIS], wcspos[NAXIS]; int lng,lat; wcs = field->wcs; lng = wcs->lng; lat = wcs->lat; if (FLAG(obj2.peakxf)) { rawpos[0] = obj->peakx; rawpos[1] = obj->peaky; raw_to_red(wcs, rawpos, wcspos); obj2->peakxf = wcspos[0]; obj2->peakyf = wcspos[1]; } if (FLAG(obj2.peakxw)) if (FLAG(obj2.peakxw)) { { rawpos[0] = obj->peakx; rawpos[0] = obj->peakx; Loading Loading @@ -174,7 +234,33 @@ void computeastrom(picstruct *field, objstruct *obj) } } } } /* Idem for Windowed positions */ return; } /****************************** astrom_winpos *******************************/ /* Compute real FOCAL and WORLD windowed coordinates according to FITS info. */ void astrom_winpos(picstruct *field, objstruct *obj) { wcsstruct *wcs; double rawpos[NAXIS], wcspos[NAXIS]; int lng,lat; wcs = field->wcs; lng = wcs->lng; lat = wcs->lat; if (FLAG(obj2.winpos_xf)) { rawpos[0] = obj2->winpos_x; rawpos[1] = obj2->winpos_y; raw_to_red(wcs, rawpos, wcspos); obj2->winpos_xf = wcspos[0]; obj2->winpos_yf = wcspos[1]; } if (FLAG(obj2.winpos_xw)) if (FLAG(obj2.winpos_xw)) { { rawpos[0] = obj2->winpos_x; rawpos[0] = obj2->winpos_x; Loading Loading @@ -203,7 +289,33 @@ void computeastrom(picstruct *field, objstruct *obj) } } } } /* Idem for Model-fitted positions */ return; } /****************************** astrom_profpos *******************************/ /* Compute real FOCAL and WORLD profit coordinates according to FITS info. */ void astrom_profpos(picstruct *field, objstruct *obj) { wcsstruct *wcs; double rawpos[NAXIS], wcspos[NAXIS]; int lng,lat; wcs = field->wcs; lng = wcs->lng; lat = wcs->lat; if (FLAG(obj2.xf_prof)) { rawpos[0] = obj2->x_prof; rawpos[1] = obj2->y_prof; raw_to_red(wcs, rawpos, wcspos); obj2->xf_prof = wcspos[0]; obj2->yf_prof = wcspos[1]; } if (FLAG(obj2.xw_prof)) if (FLAG(obj2.xw_prof)) { { rawpos[0] = obj2->x_prof; rawpos[0] = obj2->x_prof; Loading Loading @@ -232,58 +344,6 @@ void computeastrom(picstruct *field, objstruct *obj) } } } } /* Custom coordinate system for the MAMA machine */ if (FLAG(obj2.mamaposx)) { rawpos[0] = obj2->posx - 0.5; rawpos[1] = obj2->posy - 0.5; raw_to_wcs(wcs, rawpos, wcspos); obj2->mamaposx = wcspos[1]*(MAMA_CORFLEX+1.0); obj2->mamaposy = wcspos[0]*(MAMA_CORFLEX+1.0); } if (FLAG(obj2.mx2w) || FLAG(obj2.win_mx2w) || FLAG(obj2.poserr_mx2w) || FLAG(obj2.winposerr_mx2w) || FLAG(obj2.poserrmx2w_prof) || FLAG(obj2.prof_flagw) || ((!prefs.pixel_scale) && (FLAG(obj2.npixw) || FLAG(obj2.fdnpixw) || FLAG(obj2.fwhmw)))) { rawpos[0] = obj2->posx; rawpos[1] = obj2->posy; pixscale2 = wcs_jacobian(wcs, rawpos, obj2->jacob); } /* Express shape parameters in WORLD frame */ if (FLAG(obj2.mx2w)) astrom_shapeparam(field, obj); if (FLAG(obj2.win_mx2w)) astrom_winshapeparam(field, obj); if (FLAG(obj2.prof_flagw)) astrom_profshapeparam(field, obj); /* Express position error parameters in WORLD frame */ if (FLAG(obj2.poserr_mx2w)) astrom_errparam(field, obj); if (FLAG(obj2.winposerr_mx2w)) astrom_winerrparam(field, obj); if (FLAG(obj2.poserrmx2w_prof)) astrom_proferrparam(field, obj); if (FLAG(obj2.npixw)) obj2->npixw = obj->npix * (prefs.pixel_scale? field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fdnpixw)) obj2->fdnpixw = obj->fdnpix * (prefs.pixel_scale? field->pixscale/3600.0*field->pixscale/3600.0 : pixscale2); if (FLAG(obj2.fwhmw)) obj2->fwhmw = obj->fwhm * (prefs.pixel_scale? field->pixscale/3600.0 : sqrt(pixscale2)); return; return; } } Loading
src/astrom.h +5 −2 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * * Contents: Astrometrical stuff. * Contents: Astrometrical stuff. * * * Last modify: 18/05/2008 * Last modify: 20/07/2009 * * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ */ Loading @@ -30,12 +30,15 @@ /*------------------------------- structures --------------------------------*/ /*------------------------------- structures --------------------------------*/ /*------------------------------- functions ---------------------------------*/ /*------------------------------- functions ---------------------------------*/ extern void astrom_errparam(picstruct *, objstruct *), extern void astrom_errparam(picstruct *, objstruct *), astrom_peakpos(picstruct *, objstruct *), astrom_pos(picstruct *, objstruct *), astrom_proferrparam(picstruct *, objstruct *), astrom_proferrparam(picstruct *, objstruct *), astrom_profpos(picstruct *, objstruct *), astrom_profshapeparam(picstruct *, objstruct *), astrom_profshapeparam(picstruct *, objstruct *), astrom_shapeparam(picstruct *, objstruct *), astrom_shapeparam(picstruct *, objstruct *), astrom_winerrparam(picstruct *, objstruct *), astrom_winerrparam(picstruct *, objstruct *), astrom_winpos(picstruct *, objstruct *), astrom_winshapeparam(picstruct *, objstruct *), astrom_winshapeparam(picstruct *, objstruct *), computeastrom(picstruct *, objstruct *), initastrom(picstruct *), initastrom(picstruct *), j2b(double, double, double, double *, double *), j2b(double, double, double, double *, double *), precess(double,double,double,double,double *,double *); precess(double,double,double,double,double *,double *); Loading
src/catout.c +11 −4 Original line number Original line Diff line number Diff line Loading @@ -9,7 +9,7 @@ * * * Contents: functions for output of catalog data. * Contents: functions for output of catalog data. * * * Last modify: 29/05/2009 * Last modify: 20/07/2009 * * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ */ Loading Loading @@ -201,13 +201,15 @@ void updateparamflags() | FLAG(obj2.alpha2000_prof); | FLAG(obj2.alpha2000_prof); FLAG(obj2.xw_prof) |= FLAG(obj2.yw_prof) FLAG(obj2.xw_prof) |= FLAG(obj2.yw_prof) | FLAG(obj2.alphas_prof); | FLAG(obj2.alphas_prof); FLAG(obj2.xf_prof) |= FLAG(obj2.yf_prof); FLAG(obj2.x_prof) |= FLAG(obj2.y_prof) FLAG(obj2.x_prof) |= FLAG(obj2.y_prof) | FLAG(obj2.xw_prof) | FLAG(obj2.xw_prof) | FLAG(obj2.xf_prof) | FLAG(obj2.poserra_prof) | FLAG(obj2.poserra_prof) | FLAG(obj2.poserrcxx_prof) | FLAG(obj2.poserrcxx_prof) | FLAG(obj2.prof_concentration) | FLAG(obj2.prof_concentration) | FLAG(obj2.prof_class_star); | FLAG(obj2.prof_class_star); FLAG(obj2.mag_prof) |= FLAG(obj2.magerr_prof); FLAG(obj2.mag_prof) |= FLAG(obj2.magerr_prof); FLAG(obj2.magerr_prof) |= FLAG(obj2.fluxerr_prof); FLAG(obj2.magerr_prof) |= FLAG(obj2.fluxerr_prof); FLAG(obj2.flux_prof) |= FLAG(obj2.mag_prof) | FLAG(obj2.fluxerr_prof); FLAG(obj2.flux_prof) |= FLAG(obj2.mag_prof) | FLAG(obj2.fluxerr_prof); Loading Loading @@ -392,6 +394,7 @@ void updateparamflags() | FLAG(obj2.winposerr_theta2000); | FLAG(obj2.winposerr_theta2000); FLAG(obj2.winpos_alphas) |= FLAG(obj2.winpos_deltas) FLAG(obj2.winpos_alphas) |= FLAG(obj2.winpos_deltas) | FLAG(obj2.winpos_alpha2000); | FLAG(obj2.winpos_alpha2000); FLAG(obj2.winpos_xf) |= FLAG(obj2.winpos_yf); FLAG(obj2.winpos_xw) |= FLAG(obj2.winpos_yw) FLAG(obj2.winpos_xw) |= FLAG(obj2.winpos_yw) | FLAG(obj2.winpos_alphas); | FLAG(obj2.winpos_alphas); Loading Loading @@ -432,8 +435,11 @@ void updateparamflags() | FLAG(obj2.npixw) | FLAG(obj2.fdnpixw) | FLAG(obj2.npixw) | FLAG(obj2.fdnpixw) | FLAG(obj2.fwhmw); | FLAG(obj2.fwhmw); FLAG(obj2.peakxw) |= FLAG(obj2.peakyf); FLAG(obj2.peakxw) |= FLAG(obj2.peakyw) | FLAG(obj2.peakalphas); FLAG(obj2.peakxw) |= FLAG(obj2.peakyw) | FLAG(obj2.peakalphas); FLAG(obj.peakx) |= FLAG(obj.peaky) | FLAG(obj2.peakxw); FLAG(obj.peakx) |= FLAG(obj.peaky) | FLAG(obj2.peakxw) | FLAG(obj2.peakxf); FLAG(obj2.mxf) |= FLAG(obj2.myf); FLAG(obj2.mxw) |= FLAG(obj2.myw) | FLAG(obj2.mx2w) | FLAG(obj2.alphas) FLAG(obj2.mxw) |= FLAG(obj2.myw) | FLAG(obj2.mx2w) | FLAG(obj2.alphas) | FLAG(obj2.poserr_mx2w); | FLAG(obj2.poserr_mx2w); Loading @@ -442,7 +448,8 @@ void updateparamflags() | FLAG(obj2.flux_win) | FLAG(obj2.fluxerr_win); | FLAG(obj2.flux_win) | FLAG(obj2.fluxerr_win); FLAG(obj2.winpos_x) |= FLAG(obj2.winpos_y) FLAG(obj2.winpos_x) |= FLAG(obj2.winpos_y) | FLAG(obj2.winposerr_mx2) | FLAG(obj2.win_mx2) | FLAG(obj2.winposerr_mx2) | FLAG(obj2.win_mx2) | FLAG(obj2.winpos_xw) | FLAG(obj2.win_flag) | FLAG(obj2.winpos_xw) | FLAG(obj2.winpos_xf) | FLAG(obj2.win_flag) | FLAG(obj2.flux_win) |FLAG(obj2.winpos_niter); | FLAG(obj2.flux_win) |FLAG(obj2.winpos_niter); /*------------------------------ Photometry ---------------------------------*/ /*------------------------------ Photometry ---------------------------------*/ Loading