aboutsummaryrefslogtreecommitdiff
path: root/noao/imred/ccdred/ccdtest/demo.dat
blob: 733a319bcf89a0f5b083c28cde4fab119e44bb80 (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
O=NOAO/IRAF V2.5 valdes@lyra Mon 15:42:35 12-Oct-87
\T=vt640
\G=vt640
clear\n\{%V-%!200\}
\n\{%10000
			CCD REDUCTION DEMONSTRATION

    In this demonstration we are going to make some (artificial) CCD
    observations which we will reduce using the CCDRED package.  The
    dome is opening and we are ready to begin observing...\}
\n\{%V-\}
unlearn\sccdred;unlearn\sccdtest\n\{	# Initialize parameters and data...\}
imdelete\s%B%%*.*\sv-\n\{%V-\}
imrename\sB*.*\s%B%%*.*\sv-\n\{%V-\}
imdelete\sZero*.*,Flat*.*\n\{%V-\}
delete\sDemo*\sv-\n\{%V-\}
\n\{%V-\}
setinstrument\sdemo\sreview-\n\{		# Set instrument parameters...\}
lpar\sartobs\n\{				# List observing parameters...\}
artobs\sobs001\s0.\szero\n\{%15000		# Observe zero level images...\}
artobs\sobs002\s0.\szero\n\{%V-\}
artobs\sobs003\s0.\szero\n\{%V-\}
artobs\sobs004\s0.\szero\n\{%V-\}
artobs\sobs005\s0.\szero\n\{%V-\}
\n\{%V-\}
artobs.skyrate=0\n\{			# Observe a long dark count...\}
artobs\sobs006\s1000.\sdark\n\{%V-\}
\n\{%V-\}
artobs.filter="V"\n\{			# Observe V flat fields...\}
artobs.skyrate=2000\n\{%V-\}
artobs\sobs007\s1.\sflat\n\{%V-\}
artobs\sobs008\s1.\sflat\n\{%V-\}
artobs\sobs009\s1.\sflat\n\{%V-\}
artobs\sobs010\s1.\sflat\n\{%V-\}
artobs\sobs011\s2.\sflat\n\{%V-\}
artobs\sobs012\s2.\sflat\n\{%V-\}
\n\{%V-\}
artobs.filter="B"\n\{			# Observe B flat fields...\}
artobs.skyrate=1000\n\{%V-\}
artobs\sobs013\s1.\sflat\n\{%V-\}
artobs\sobs014\s2.\sflat\n\{%V-\}
artobs\sobs015\s3.\sflat\n\{%V-\}
artobs\sobs016\s3.\sflat\n\{%V-\}
artobs\sobs017\s3.\sflat\n\{%V-\}
artobs\sobs018\s3.\sflat\n\{%V-\}
\n\{%V-\}
artobs.filter="V"\n\{			# Observe objects...\}
artobs.skyrate=100\n\{%V-\}
artobs\sobs019\s10.\sobject\simdata=dev$pix\n\{%V-\}
artobs\sobs020\s20.\sobject\simdata=dev$pix\n\{%V-\}
artobs.filter="B"\n\{%V-\}
artobs\sobs021\s30.\sobject\simdata=dev$pix\n\{%V-\}
artobs\sobs022\s40.\sobject\simdata=dev$pix\n\{%V-\}
\n\{%V-\}
lpar\ssubsection\n\{			# Subsection readout parameters...\}
subsection\sobs023\sobs019\n\{%5000		# Readout a subsection of the CCD...\}
dir\n\{					# Check directory of observations...\}
clear\n\{%10000				# Continue...\}
\n\{%15000
			INSTRUMENT SETUP

    Because there are a variety of instruments, observatories, and data
    formats there are many parameters.  To set all of these conveniently
    there is a task which reads setup files prepared by the observing
    staff.  The setup task:
	1.  Defines an instrument header translation file which
	    translates the image header parameters to something
	    the CCDRED package understands.  This is an important
	    feature of the package.
	2.  It runs a setup script which sets parameters and performs
	    other functions desired by the observing staff.
	3.  The user is then given the opportunity to modify the
	    package and processing parameters...\}
\n\{%V-\}
setinstrument\smode=m\n\{		# Set demo instrument parameters...\}
demo\r
\{%5000\}^Z
\{%5000\}^Z
\{%5000\}\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
Zero\r
\r
Flat*.*\r
^Z
clear\n\{%5000				# Continue...\}
\n\{%20000
				IMAGE HEADERS

    The CCDRED package uses image header information if present.  This
    includes the type of data (object, flat field, etc.), exposure
    time, region of image containing the data, processing status, and
    more.  To make this more general there is a instrument header
    translation file to translate image header keywords to the standard
    names used by the package.  In this example the image header
    keywords are identical to the package except that the image type is
    CCDTYPE, the exposure time is INTEG and the subset parameter is
    FILTER.  Let's look at the image header using the the standard
    image header lister and the special one in the CCDRED package.
    This special lister provides additional information about image
    types and processing status...\}

\n\{%V-\}
imheader\sobs023\sl+\n\{			# List object image header...\}
ccdlist\sobs*.*\n\{%5000			# List short CCD status...\}
ccdlist\sobs023\sl+\n\{%5000			# List long CCD status...\}
clear\n\{%5000					# Continue...\}
\n\{%20000
			COMBINE CALIBRATION IMAGES

    In order to reduce calibration noise and eliminate cosmic ray events
    we combine many zero level and flat field calibration images.  The
    combining task provides many options.  We will combine the images by
    scaling each image to the same exposure time, rejecting the highest
    pixel at each image point, and taking a weighted average of the
    remainder.  Flat field images must be combined separately for each
    filter.  We will simply specify all the images and the task automatically
    selects the appropriate images to combine! ...\}
\n\{%V-\}
zerocombine\smode=m\n\{			# Combine zero level images...\}
obs*.*\r
\{%5000\}^Z
flatcombine\smode=m\n\{			# Combine flat field images...\}
obs*.*\r
\{%5000\}^Z
clear\n\{%5000			# Continue...\}
\n\{%15000
			PROCESS OBSERVATIONS

    We are now ready to process our observations.  The processing steps we
    have selected are to replace bad pixels by interpolation, fit and
    subtract a readout bias given by an overscan strip, subtract the zero
    level calibration image, scale and subtract a dark count calibration,
    divide by a flat field, trim the image of the overscan strip and border
    columns and lines.  The task which does this is "ccdproc".  The task is
    expert at reducing CCD observations easily and efficiently.  It checks
    the image types, applies the proper filter flat field, applies the
    proper part of the calibration images to subsection readouts, does only
    the processing steps selected if not done previously, and automatically
    processes the calibration images as needed.  As before we simply specify
    all the images and the task selects the appropriate images to process
    including finding the one dark count image "obs006".  Watch the log
    messages to see what the task is doing...\}
\n\{%V-\}
ccdproc\sobs*.*\n\{			# Process object images...\}
\n\{%V-\}
\{%V-\}q0,+,\r
NO\n\{%V-\}
\n\{%10000
    That's it!  We're done.  Now lets check the results.  The "ccdlist"
    listing will show the processing status and the images are now smaller
    and of pixel datatype real.  The CCDSEC parameter identifies the relation
    of the image to the actual CCD pixels of the detector...\}
\n\{%V-\}
ccdlist\sobs*.*\sccdtype=object\n\{		# List short CCD status...\}
ccdlist\sobs023\sl+\n\{%5000			# List long CCD status...\}
imhead\sobs023\sl+\n\{%5000			# List object image header...\}
dir\n\{%5000				# Check the data directory...\}
\n\{%V-
    We specified that the original images be saved by using the prefix B.
    We are also left with a text log file, a metacode file containing the
    fits to the overscan regions, and a file which maps the filter subset
    strings to short identifiers used in CCDLIST and when creating the
    combined images "FlatV" and "FlatB".  You may look through these files,
    or use GKIMOSAIC to examine the metacode file, now if you want.
\}