aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/daophot/daolib/dpinit.x
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/digiphot/daophot/daolib/dpinit.x
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'noao/digiphot/daophot/daolib/dpinit.x')
-rw-r--r--noao/digiphot/daophot/daolib/dpinit.x225
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