diff options
Diffstat (limited to 'noao/digiphot/daophot/daolib/dpverify.x')
-rw-r--r-- | noao/digiphot/daophot/daolib/dpverify.x | 563 |
1 files changed, 563 insertions, 0 deletions
diff --git a/noao/digiphot/daophot/daolib/dpverify.x b/noao/digiphot/daophot/daolib/dpverify.x new file mode 100644 index 00000000..dcc721ad --- /dev/null +++ b/noao/digiphot/daophot/daolib/dpverify.x @@ -0,0 +1,563 @@ +include "../lib/daophotdef.h" + +# DP_VFUNCTION -- Verify the analytic psf function. + +procedure dp_vfunction (dao) + +pointer dao # pointer to the daophot structure. + +int len +pointer sp, str, pstr +int scan(), nscan(), strlen(), dp_fctdecode(), dp_strwrd() + +begin + call smark (sp) + call salloc (str, SZ_FNAME, TY_CHAR) + call salloc (pstr, SZ_FNAME, TY_CHAR) + + # Print the current function list. + len = strlen (DP_FUNCLIST(dao)) + call strcpy (DP_FUNCLIST(dao), Memc[pstr], len - 1) + call printf ("Analytic psf function(s) (%s): ") + call pargstr (Memc[pstr+1]) + call flush (STDOUT) + + # Confirm the PSF function type. + if (scan() == EOF) + ; + else { + call gargstr (Memc[str], SZ_FNAME) + if (nscan () != 1) + ; + else if (dp_fctdecode (Memc[str], Memc[pstr], SZ_FNAME) <= 0) + ; + else + call strcpy (Memc[pstr], DP_FUNCLIST(dao), SZ_FNAME) + } + + # Print the confirmed function list. + len = strlen (DP_FUNCLIST(dao)) + call strcpy (DP_FUNCLIST(dao), Memc[pstr], len - 1) + call printf ( "\tAnalytic psf function(s): %d\n") + call pargstr (Memc[pstr+1]) + + # Set the function type. + if (dp_strwrd (1, Memc[str], SZ_FNAME, DP_FUNCLIST(dao)) <= 0) + call strcpy ("gauss", DP_FUNCTION(dao), SZ_FNAME) + else + call strcpy (Memc[str], DP_FUNCTION(dao), SZ_FNAME) + + call sfree (sp) +end + + +# DP_VVARORDER -- Verify the order of variability of the psf function. + +procedure dp_vvarorder (dao) + +pointer dao # pointer to the daophot structure. + +int varorder +int scan(), nscan() + +begin + # Confirm that the psf is variable. + call printf ("Order of variable psf (%d): ") + call pargi (DP_VARORDER(dao)) + call flush (STDOUT) + if (scan() == EOF) + varorder = DP_VARORDER(dao) + else { + call gargi (varorder) + if (nscan () != 1) + varorder = DP_VARORDER(dao) + else if (varorder < -1 || varorder > 2) + varorder = DP_VARORDER(dao) + } + DP_VARORDER(dao) = varorder + call printf ( "\tOrder of variable psf: %d\n") + call pargi (varorder) +end + + +# DP_VFEXPAND -- Verify whether or not to expand the analytics function. + +procedure dp_vfexpand (dao) + +pointer dao # pointer to the daophot structure. + +bool fexpand +bool itob() +int scan(), nscan(), btoi() + +begin + # Confirm whether of not to expand the analytic function. + call printf ("Expand the analytic function (%b): ") + call pargb (itob (DP_FEXPAND(dao))) + call flush (STDOUT) + if (scan() == EOF) + fexpand = itob (DP_FEXPAND(dao)) + else { + call gargb (fexpand) + if (nscan () != 1) + fexpand = itob (DP_FEXPAND(dao)) + } + DP_FEXPAND(dao) = btoi (fexpand) + call printf ( "\tExpand analytic fucntion: %b\n") + call pargb (fexpand) +end + + +# DP_VSATURATED -- Verify whether or not to use saturated stars in the +# psf computation. + +procedure dp_vsaturated (dao) + +pointer dao # pointer to the daophot structure. + +bool saturated +bool itob() +int scan(), nscan(), btoi() + +begin + # Confirm whether of not to use saturated psf stars. + call printf ("Use saturated psf stars (%b): ") + call pargb (itob (DP_SATURATED(dao))) + call flush (STDOUT) + if (scan() == EOF) + saturated = itob (DP_SATURATED(dao)) + else { + call gargb (saturated) + if (nscan () != 1) + saturated = itob (DP_SATURATED(dao)) + } + DP_SATURATED(dao) = btoi (saturated) + call printf ( "\tUse saturated psf stars: %b\n") + call pargb (saturated) +end + + +# DP_VFWHMPSF -- Confirm the fwhm of the psf. + +procedure dp_vfwhmpsf (dao) + +pointer dao # pointer to the daophot structure + +real sfwhmpsf, fwhmpsf +int scan(), nscan() + +begin + # Confirm the psf radius. + call printf ( "Fwhm of psf in scale units (%g): ") + call pargr (DP_SFWHMPSF(dao)) + call flush (STDOUT) + if (scan() == EOF) + sfwhmpsf = DP_SFWHMPSF(dao) + else { + call gargr (sfwhmpsf) + if (nscan () != 1) + sfwhmpsf = DP_SFWHMPSF(dao) + } + fwhmpsf = sfwhmpsf / DP_SCALE(dao) + + DP_SFWHMPSF(dao) = sfwhmpsf + DP_FWHMPSF(dao) = fwhmpsf + + call printf ( "\tNew fwhm: %g scale units %g pixels\n") + call pargr (sfwhmpsf) + call pargr (fwhmpsf) +end + + +# DP_VPSFRAD -- Confirm the psf radius. + +procedure dp_vpsfrad (dao) + +pointer dao # pointer to the daophot structure + +real rpsfrad, psfrad +int scan(), nscan() + +begin + # Confirm the psf radius. + call printf ( "Psf radius in scale units (%g): ") + call pargr (DP_RPSFRAD(dao)) + call flush (STDOUT) + if (scan() == EOF) + rpsfrad = DP_RPSFRAD(dao) + else { + call gargr (rpsfrad) + if (nscan () != 1) + rpsfrad = DP_RPSFRAD(dao) + } + psfrad = rpsfrad / DP_SCALE(dao) + + DP_RPSFRAD(dao) = rpsfrad + DP_SPSFRAD(dao) = rpsfrad + DP_PSFRAD(dao) = psfrad + + call printf ( "\tNew psf radius: %g scale units %g pixels\n") + call pargr (rpsfrad) + call pargr (psfrad) +end + + +# DP_VFITRAD -- Confirm the fitting radius. + +procedure dp_vfitrad (dao) + +pointer dao # pointer to the daophot structures + +real sfitrad, fitrad +int scan(), nscan() + +begin + # Confirm the fitting radius. + call printf ( "Fitting radius in scale units (%g): ") + call pargr (DP_SFITRAD(dao)) + call flush (STDOUT) + if (scan() == EOF) + sfitrad = DP_SFITRAD(dao) + else { + call gargr (sfitrad) + if (nscan () != 1) + sfitrad = DP_SFITRAD(dao) + } + fitrad = sfitrad / DP_SCALE(dao) + + DP_SFITRAD(dao) = sfitrad + DP_FITRAD(dao) = fitrad + + call printf ( "\tNew fitting radius: %g scale units %g pixels\n") + call pargr (sfitrad) + call pargr (fitrad) +end + + +# DP_VMATCHRAD -- Confirm the matching radius. + +procedure dp_vmatchrad (dao) + +pointer dao # pointer to the daophot structure + +real smatchrad, matchrad +int scan(), nscan() + +begin + # Confirm the matching radius. + call printf ( "Matching radius in scale units (%g): ") + call pargr (DP_SMATCHRAD(dao)) + call flush (STDOUT) + if (scan() == EOF) + smatchrad = DP_SMATCHRAD(dao) + else { + call gargr (smatchrad) + if (nscan () != 1) + smatchrad = DP_SMATCHRAD(dao) + } + matchrad = smatchrad / DP_SCALE(dao) + + DP_SMATCHRAD(dao) = smatchrad + DP_MATCHRAD(dao) = matchrad + + call printf ( "\tNew matching radius: %g scale units %g pixels\n") + call pargr (smatchrad) + call pargr (matchrad) +end + + +# DP_VMERGERAD -- Confirm the merging radius. + +procedure dp_vmergerad (dao) + +pointer dao # pointer to the daophot structure + +real smergerad, mergerad +int scan(), nscan() + +begin + # Confirm the merging radius. + call printf ( "Merging radius in scale units (%g): ") + call pargr (DP_SMERGERAD(dao)) + call flush (STDOUT) + if (scan() == EOF) + smergerad = DP_SMERGERAD(dao) + else { + call gargr (smergerad) + if (nscan () != 1) + smergerad = DP_SMERGERAD(dao) + } + if (IS_INDEFR(smergerad)) + mergerad = INDEFR + else + mergerad = smergerad / DP_SCALE(dao) + + DP_SMERGERAD(dao) = smergerad + DP_MERGERAD(dao) = mergerad + + call printf ( "\tNew merging radius: %g scale units %g pixels\n") + call pargr (smergerad) + call pargr (mergerad) +end + + +# DP_VFITRAD -- Confirm the fitting radius. + + +# DP_VDATAMIN-- Verify the minimum good data value. + +procedure dp_vdatamin (dao) + +pointer dao # pointer to the daophot structure + +real datamin +int scan(), nscan() + +begin + # Confirm the threshold parameter. + call printf ("Minimum good data value (%g) (CR or value): ") + call pargr (DP_MINGDATA(dao)) + call flush (STDOUT) + if (scan() == EOF) + datamin = DP_MINGDATA(dao) + else { + call gargr (datamin) + if (nscan () != 1) + datamin = DP_MINGDATA(dao) + } + DP_MINGDATA(dao) = datamin + + call printf ("\tNew minimum good data value: %g counts\n") + call pargr (datamin) +end + + +# DP_VDATAMAX-- Verify the maximum good data value. + +procedure dp_vdatamax (dao) + +pointer dao # pointer to the daophot structure + +real datamax +int scan(), nscan() + +begin + # Confirm the threshold parameter. + call printf ("Maximum good data value (%g) (CR or value): ") + call pargr (DP_MAXGDATA(dao)) + call flush (STDOUT) + if (scan() == EOF) + datamax = DP_MAXGDATA(dao) + else { + call gargr (datamax) + if (nscan () != 1) + datamax = DP_MAXGDATA(dao) + } + DP_MAXGDATA(dao) = datamax + + call printf ("\tNew maximum good data value: %g counts\n") + call pargr (datamax) +end + + +# DP_VMAXGROUP -- Verify the maximum group size. + +procedure dp_vmaxgroup (dao) + +pointer dao # pointer to the daophot strucuture + +int maxgroup +int scan(), nscan() + +begin + call printf ( "Maximum group size in number of stars (%d): ") + call pargi (DP_MAXGROUP(dao)) + call flush (STDOUT) + if (scan() == EOF) + maxgroup = DP_MAXGROUP(dao) + else { + call gargi (maxgroup) + if (nscan () != 1) + maxgroup = DP_MAXGROUP(dao) + } + DP_MAXGROUP(dao) = maxgroup + + call printf ( "\tNew maximum group size: %d stars\n") + call pargi (maxgroup) +end + + +# DP_VCRITSNRATIO -- Verify the critical signal-to-noise ratio. + +procedure dp_vcritnsratio (dao) + +pointer dao # pointer to the daophot structure + +real critsnratio +int scan(), nscan() + +begin + # Confirm the critical signal-to-noise ratio. + call printf ( "Critical S/N ratio in stdevs per pixel (%g): ") + call pargr (DP_CRITSNRATIO(dao)) + call flush (STDOUT) + if (scan() == EOF) + critsnratio = DP_CRITSNRATIO(dao) + else { + call gargr (critsnratio) + if (nscan () != 1) + critsnratio = DP_CRITSNRATIO(dao) + } + DP_CRITSNRATIO(dao) = critsnratio + + call printf ( "\tNew critical S/N ratio: %g stdevs per pixel\n") + call pargr (critsnratio) +end + + +# DP_VRECENTER -- Verify whether or not to recenter the stars. + +procedure dp_vrecenter (dao) + +pointer dao # pointer to the daophot structure. + +bool recenter +bool itob() +int scan(), nscan(), btoi() + +begin + # Confirm whether of not to recenter the stars. + call printf ("Recenter the stars (%b): ") + call pargb (itob (DP_RECENTER(dao))) + call flush (STDOUT) + if (scan() == EOF) + recenter = itob (DP_RECENTER(dao)) + else { + call gargb (recenter) + if (nscan () != 1) + recenter = itob (DP_RECENTER(dao)) + } + DP_RECENTER(dao) = btoi (recenter) + call printf ( "\tRecenter the stars: %b\n") + call pargb (recenter) +end + + +# DP_VFITSKY -- Verify whether or not to refit the sky value. + +procedure dp_vfitsky (dao) + +pointer dao # pointer to the daophot structure. + +bool fitsky +bool itob() +int scan(), nscan(), btoi() + +begin + # Confirm whether of not to refit the sky. + call printf ("Refit the sky (%b): ") + call pargb (itob (DP_FITSKY(dao))) + call flush (STDOUT) + if (scan() == EOF) + fitsky = itob (DP_FITSKY(dao)) + else { + call gargb (fitsky) + if (nscan () != 1) + fitsky = itob (DP_FITSKY(dao)) + } + DP_FITSKY(dao) = btoi (fitsky) + call printf ( "\tRefit the sky: %b\n") + call pargb (fitsky) +end + + +# DP_VGROUPSKY -- Verify whether or not to fit group sky values. + +procedure dp_vgroupsky (dao) + +pointer dao # pointer to the daophot structure + +bool groupsky +bool itob() +int scan(), nscan(), btoi() + +begin + # Confirm whether of not to use group sky values. + call printf ("Use group sky values (%b): ") + call pargb (itob (DP_GROUPSKY(dao))) + call flush (STDOUT) + if (scan() == EOF) + groupsky = itob (DP_GROUPSKY(dao)) + else { + call gargb (groupsky) + if (nscan () != 1) + groupsky = itob (DP_GROUPSKY(dao)) + } + DP_GROUPSKY(dao) = btoi (groupsky) + call printf ( "\tUse group sky values: %b\n") + call pargb (groupsky) +end + + +# DP_VSANNULUS -- Confirm the inner radius of the sky fitting annulus. + +procedure dp_vsannulus (dao) + +pointer dao # pointer to the daophot structure + +real sannulus, annulus +int scan(), nscan() + +begin + # Confirm the inner radius of the sky annulus. + call printf ( "Inner radius of sky annulus in scale units (%g): ") + call pargr (DP_SANNULUS(dao)) + call flush (STDOUT) + if (scan() == EOF) + sannulus = DP_SANNULUS(dao) + else { + call gargr (sannulus) + if (nscan () != 1) + sannulus = DP_SANNULUS(dao) + } + annulus = sannulus / DP_SCALE(dao) + + DP_SANNULUS(dao) = sannulus + DP_ANNULUS(dao) = annulus + + call printf ( "\tNew inner radius: %g scale units %g pixels\n") + call pargr (sannulus) + call pargr (annulus) +end + + +# DP_VWSANNULUS -- Confirm the width of the sky fitting annulus. + +procedure dp_vwsannulus (dao) + +pointer dao # pointer to the daophot structure + +real sdannulus, dannulus +int scan(), nscan() + +begin + # Confirm the inner radius of the sky annulus. + call printf ( "Width of sky annulus in scale units (%g): ") + call pargr (DP_SDANNULUS(dao)) + call flush (STDOUT) + if (scan() == EOF) + sdannulus = DP_SDANNULUS(dao) + else { + call gargr (sdannulus) + if (nscan () != 1) + sdannulus = DP_SDANNULUS(dao) + } + dannulus = sdannulus / DP_SCALE(dao) + + DP_SDANNULUS(dao) = sdannulus + DP_DANNULUS(dao) = dannulus + + call printf ( "\tNew annulus width: %g scale units %g pixels\n") + call pargr (sdannulus) + call pargr (dannulus) +end |