aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/apphot/fitpsf/appfconfirm.x
blob: 30e111b2bbf6f894b11495ffc291bcf0e5799884 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
include "../lib/apphot.h"
include "../lib/noise.h"
include "../lib/fitpsf.h"

# AP_PFCONFIRM -- Procedure to confirm the critical fitpsf parameters.

procedure ap_pfconfirm (ap, out, stid)

pointer	ap		# pointer to the apphot structure
int	out		# the output file descriptor
int	stid		# the output file sequence number

pointer	sp, str
real	fwhmpsf, psfapert, datamin, datamax
int	apstati()
real	apstatr(), ap_vfwhmpsf(), ap_vpsfapert()
real	ap_vdatamin(), ap_vdatamax()

begin
	call smark (sp)
	call salloc (str, SZ_FNAME, TY_CHAR)

	call printf ("\n")

	# Confirm the fitting function.
	call ap_vpfstring (ap, Memc[str], SZ_FNAME)

	# Confirm the fwhmpsf.
	if (apstati (ap, PSFUNCTION) != AP_MOMENTS)
	    fwhmpsf = ap_vfwhmpsf (ap)
	else
	    fwhmpsf = apstatr (ap, FWHMPSF)

	# Confirm the fitting box.
	psfapert = 2.0 * ap_vpsfapert (ap)

	# Confirm the good data minimum and maximum values.
	datamin = ap_vdatamin (ap)
	datamax = ap_vdatamax (ap)

	call printf ("\n")

	# Update the database file.
	if (out != NULL && stid > 1) {
	    call ap_sparam (out, KY_PSFSTRING, Memc[str], UN_PSFMODEL,
		"psf fitting function")
	    call ap_rparam (out, KY_FWHMPSF, fwhmpsf, UN_ASCALEUNIT,
	        "full width half maximum of the psf")
	    call ap_rparam (out, KY_PSFAPERT, psfapert, UN_PSFSCALEUNIT,
	        "width of fitting box")
	    call ap_rparam (out, KY_DATAMIN, datamin, UN_ACOUNTS,
	        "minimum good data value")
	    call ap_rparam (out, KY_DATAMAX, datamax, UN_ACOUNTS,
	        "maximum good data value")
	}

	call sfree (sp)
end