diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/digiphot/daophot/daolib/dpinit.x | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'noao/digiphot/daophot/daolib/dpinit.x')
-rw-r--r-- | noao/digiphot/daophot/daolib/dpinit.x | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/noao/digiphot/daophot/daolib/dpinit.x b/noao/digiphot/daophot/daolib/dpinit.x new file mode 100644 index 00000000..ceac884b --- /dev/null +++ b/noao/digiphot/daophot/daolib/dpinit.x @@ -0,0 +1,225 @@ +include "../lib/daophotdef.h" +include "../lib/apseldef.h" +include "../lib/allstardef.h" + +# DP_INIT - Procedure to initialize the daophot structure. + +procedure dp_init (dp) + +pointer dp # pointer to the daophot structure + +begin + # Set the daophot structure. + call calloc (dp, LEN_DPSTRUCT, TY_STRUCT) + + # Initalize the output type parameters. + DP_TEXT(dp) = YES + DP_VERBOSE(dp) = YES + + # Initialize the wcs parameters. + DP_MW(dp) = NULL + DP_WCSIN(dp) = WCS_LOGICAL + DP_WCSOUT(dp) = WCS_LOGICAL + DP_WCSPSF(dp) = WCS_LOGICAL + DP_CTIN(dp) = NULL + DP_CTOUT(dp) = NULL + DP_CTPSF(dp) = NULL + + # Initialize the data depedent parameters. + DP_SCALE(dp) = DEF_SCALE + DP_SFWHMPSF(dp) = DEF_FWHMPSF + DP_FWHMPSF(dp) = DEF_FWHMPSF / DEF_SCALE + DP_MINGDATA(dp) = INDEFR + DP_MAXGDATA(dp) = INDEFR + + # Initialize the noise parameters + DP_CCDGAIN(dp) = EOS + DP_PHOTADU(dp) = INDEFR + DP_CCDREAD(dp) = EOS + DP_READNOISE(dp) = INDEFR + + # Initialize the observing parameters. + DP_EXPTIME(dp) = EOS + DP_ITIME(dp) = INDEFR + DP_AIRMASS(dp) = EOS + DP_XAIRMASS(dp) = INDEFR + DP_FILTER(dp) = EOS + DP_IFILTER(dp) = EOS + DP_OBSTIME(dp) = EOS + DP_OTIME(dp) = EOS + + # Initialize the psf fitting parameters. + call strcpy (",gauss,", DP_FUNCLIST(dp), SZ_FNAME) + call strcpy ("gauss", DP_FUNCTION(dp), SZ_FNAME) + DP_VARORDER(dp) = -1 + DP_FEXPAND(dp) = NO + DP_SATURATED(dp) = NO + DP_RPSFRAD(dp) = DEF_PSFRAD / DEF_SCALE + DP_SPSFRAD (dp) = DEF_PSFRAD / DEF_SCALE + DP_PSFRAD (dp) = DEF_PSFRAD + + # Initialize the fitting parameters. + DP_SFITRAD(dp) = DEF_FITRAD / DEF_SCALE + DP_FITRAD(dp) = DEF_FITRAD + DP_SANNULUS(dp) = DEF_ANNULUS / DEF_SCALE + DP_ANNULUS(dp) = DEF_ANNULUS + DP_SDANNULUS(dp) = DEF_DANNULUS / DEF_SCALE + DP_DANNULUS(dp) = DEF_DANNULUS + DP_MAXITER(dp) = DEF_MAXITER + DP_MAXGROUP(dp) = DEF_MAXGROUP + DP_MAXNSTAR(dp) = DEF_MAXNSTAR + DP_RECENTER(dp) = YES + DP_FITSKY(dp) = NO + DP_GROUPSKY(dp) = YES + + # Initialize the file names. + DP_INIMAGE(dp) = EOS + DP_COORDS(dp) = EOS + DP_INPHOTFILE(dp) = EOS + DP_PSFIMAGE(dp) = EOS + DP_OUTPHOTFILE(dp) = EOS + DP_OUTIMAGE(dp) = EOS + DP_OUTREJFILE(dp) = EOS + + # Initialize the substructure pointers. + DP_PSF(dp) = NULL + DP_PSFFIT(dp) = NULL + DP_GROUP(dp) = NULL + DP_PEAK(dp) = NULL + DP_NSTAR(dp) = NULL + DP_SUBSTAR(dp) = NULL + DP_ADDSTAR(dp) = NULL + DP_ALLSTAR(dp) = NULL + DP_APSEL(dp) = NULL +end + + +# DP_FITSETUP -- Setup the current PSF parameters given that the fitting +# parameters have been correctly read in. + +procedure dp_fitsetup (dp) + +pointer dp # pointer to daophot structure + +pointer psffit +bool streq() + +begin + # Set up the psf fit structure. + call malloc (DP_PSFFIT(dp), LEN_PSFFIT, TY_STRUCT) + psffit = DP_PSFFIT(dp) + call calloc (DP_PSFPARS(psffit), MAX_NFCTNPARS, TY_REAL) + + # Define the psf function. The if user entered string is "auto" + # or a list then intialize the psf function to "gauss" or the + # first function in the list respectively. + + if (streq (DP_FUNCTION(dp), "gauss")) { + DP_PSFUNCTION(psffit) = FCTN_GAUSS + } else if (streq (DP_FUNCTION(dp), "moffat25")) { + DP_PSFUNCTION(psffit) = FCTN_MOFFAT25 + } else if (streq (DP_FUNCTION(dp), "penny1")) { + DP_PSFUNCTION(psffit) = FCTN_PENNY1 + } else if (streq (DP_FUNCTION(dp), "moffat15")) { + DP_PSFUNCTION(psffit) = FCTN_MOFFAT15 + } else if (streq (DP_FUNCTION(dp), "penny2")) { + DP_PSFUNCTION(psffit) = FCTN_PENNY2 + } else if (streq (DP_FUNCTION(dp), "lorentz")) { + DP_PSFUNCTION(psffit) = FCTN_LORENTZ + } else if (streq (DP_FUNCTION(dp), "auto")) { + DP_PSFUNCTION(psffit) = FCTN_GAUSS + } else { + call error (0, "Unknown analytic PSF function") + } + + switch (DP_VARORDER(dp)) { + case -1: + DP_NVLTABLE(psffit) = 0 + case 0: + DP_NVLTABLE(psffit) = 1 + case 1: + DP_NVLTABLE(psffit) = 3 + case 2: + DP_NVLTABLE(psffit) = 6 + } + if (DP_FEXPAND(dp) == NO) + DP_NFEXTABLE(psffit) = 0 + else + DP_NFEXTABLE(psffit) = 5 + + # Set the initial values of the function parameters. + switch (DP_PSFUNCTION(psffit)) { + case FCTN_GAUSS: + DP_PSFNPARS(psffit) = 2 + Memr[DP_PSFPARS(psffit)] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+1] = DP_FWHMPSF(dp) / 2.0 + case FCTN_MOFFAT25: + DP_PSFNPARS(psffit) = 3 + Memr[DP_PSFPARS(psffit)] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+1] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+2] = 0.0 + Memr[DP_PSFPARS(psffit)+3] = 2.5 + case FCTN_PENNY1: + DP_PSFNPARS(psffit) = 4 + Memr[DP_PSFPARS(psffit)] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+1] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+2] = 0.75 + Memr[DP_PSFPARS(psffit)+3] = 0.0 + case FCTN_MOFFAT15: + DP_PSFNPARS(psffit) = 3 + Memr[DP_PSFPARS(psffit)] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+1] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+2] = 0.0 + Memr[DP_PSFPARS(psffit)+3] = 1.5 + case FCTN_PENNY2: + DP_PSFNPARS(psffit) = 5 + Memr[DP_PSFPARS(psffit)] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+1] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+2] = 0.75 + Memr[DP_PSFPARS(psffit)+3] = 0.0 + Memr[DP_PSFPARS(psffit)+4] = 0.0 + case FCTN_LORENTZ: + DP_PSFNPARS(psffit) = 3 + Memr[DP_PSFPARS(psffit)] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+1] = DP_FWHMPSF(dp) / 2.0 + Memr[DP_PSFPARS(psffit)+2] = 0.0 + default: + call error (0, "Unknown analytic PSF function") + } + + DP_PSFHEIGHT(psffit) = INDEFR + DP_PSFMAG(psffit) = INDEFR + DP_PSFX(psffit) = INDEFR + DP_PSFY(psffit) = INDEFR + + DP_PSFSIZE(psffit) = 0 + DP_PSFLUT(psffit) = NULL +end + + +# DP_APSELSETUP -- Procedure to set up the APSEL parameters. + +procedure dp_apselsetup (dp) + +pointer dp # pointer to daophot structure + +pointer apsel + +begin + # APSEL structure + call malloc (DP_APSEL(dp), LEN_DPAPSTRUCT, TY_STRUCT) + apsel = DP_APSEL(dp) + call malloc (DP_APRESULT(apsel), NAPPAR, TY_INT) + + # Set the default values for the apsel parameters. + DP_APID(apsel) = NULL + DP_APXCEN(apsel)= NULL + DP_APYCEN(apsel)= NULL + DP_APMAG(apsel) = NULL + DP_APERR(apsel) = NULL + DP_APMSKY(apsel)= NULL + DP_APGROUP(apsel) = NULL + DP_APNITER(apsel) = NULL + DP_APCHI(apsel) = NULL + DP_APSHARP(apsel) = NULL +end |