blob: 7b08b45331da38aee7defdbfb6274880e706c3e7 (
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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
|
# Header file for the Radial Velocity/Cross Correlation Package
define RV_VERSION "RV Level-0 Release V1.3: 1/6/92"
define LEN_RVSTRUCT 200 # Length of main data structure
define MAXTEMPS 702 # Max templates allowed
define DBL_LEN 50 # Deblended struct len
define SZ_APNUM 80 # Size of the APNUM field
define SZ_APLIST 256 # Size of APNUM keyword range
# Image data pointers (current working set)
define RV_OPIXX Memi[$1] # Object x-axis (ptr)
define RV_OPIXY Memi[$1+1] # Object y-axis (ptr)
define RV_RPIXX Memi[$1+2] # Template x-axis (ptr)
define RV_RPIXY Memi[$1+3] # Template y-axis (ptr)
define RV_WKPIXX Memi[$1+4] # Working array x-axis (ptr)
define RV_WKPIXY Memi[$1+5] # Working array y-axis (ptr)
# Task Parameters
define RV_APODIZE Memr[P2R($1+10)] # Endmask percentage
define RV_AUTOWRITE Memi[$1+11] # Auto record results?
define RV_AUTODRAW Memi[$1+12] # Auto redraw fit results?
define RV_CONTINUUM Memi[$1+13] # Continuum subtract spectra?
define RV_FILTER Memi[$1+14] # Fourier filter data?
define RV_INTERACTIVE Memi[$1+15] # Interactive flag?
define RV_PIXCORR Memi[$1+16] # Do a pixel-only correlation?
define RV_INTERP Memi[$1+17] # Rebinning interpolator
# Peak Fitting Misc.
define RV_BACKGROUND Memr[P2R($1+20)] # baseline for FWHM computation
define RV_FITDONE Memi[$1+21] # Has a fit been done?
define RV_FITFUNC Memi[$1+22] # Correlation fitting func
define RV_FITHGHT Memr[P2R($1+23)] # Height of peak to begin fit
define RV_FITWIDTH Memr[P2R($1+24)] # Width of fitting region
define RV_ISHIFT Memi[$1+25] # Initial shift of ccf
define RV_ISTART Memi[$1+26] # Start element of ccf fit
define RV_IEND Memi[$1+27] # Ending element of ccf fit
define RV_MINWIDTH Memr[P2R($1+28)] # Min Width of fitting region
define RV_MAXWIDTH Memr[P2R($1+29)] # Max Width of fitting region
define RV_MAXITERS Memi[$1+30] # Max number of iterations
define RV_PEAK Memi[$1+31] # Is fitheight relative to peak height?
define RV_TOLERANCE Memr[P2R($1+32)] # Fitting tolerance
define RV_WEIGHTS Memr[P2R($1+33)] # Weighting power
define RV_WINPAR Memr[P2R($1+34)] # Size of plot window
define RV_WINCENPAR Memr[P2R($1+35)] # Center of plot window
define RV_WINDOW Memi[$1+36] # Size of plot window (array index)
define RV_WINCENTER Memi[$1+37] # Center of plot window (array index)
define RV_WINL Memi[$1+38] # Left edge of window (array index)
define RV_WINR Memi[$1+39] # Right edge of window (array index)
# Miscellaneous values
define RV_APNUM Memi[$1+40] # Aperture number
define RV_CCFNPTS Memi[$1+41] # No. points in CCF
define RV_CURAPNUM Memi[$1+42] # Current aperture
define RV_DI1 Memi[$1+43] # Deblend continuum start index
define RV_DSCALE Memr[P2R($1+44)] # Deblend continuum scale
define RV_DSLOPE Memr[P2R($1+45)] # Deblend continuum slope
define RV_DX1 Memr[P2R($1+46)] # Start of deblend region
define RV_DY1 Memr[P2R($1+47)] # End of deblend region
define RV_DX2 Memr[P2R($1+48)] # Start of deblend region
define RV_DY2 Memr[P2R($1+49)] # End of deblend region
define RV_FILL Memi[$1+50] # Sample region filling type
define RV_FFTNPTS Memi[$1+51] # Npts in FFT of spectrum
define RV_IMNUM Memi[$1+52] # Image no. in input list
define RV_IMUPDATE Memi[$1+53] # Update image headers?
define RV_IS_DOUBLE Memi[$1+54] # Update image headers?
define RV_MODES Memi[$1+55] # Command mode structure
define RV_NOBJS Memi[$1+56] # Number of object spectra
define RV_NTEMPS Memi[$1+57] # Number of template spectra
define RV_NFITP Memi[$1+58] # Number of peak points fit
define RV_NPTS Memi[$1+59] # No. points in object
define RV_NSHIFTS Memi[$1+60] # No. of shift in deblend
define RV_NUMAPS Memi[$1+61] # No. of apertures in image
define RV_OAPNUM Memi[$1+62] # Object aperture number
define RV_REBIN Memi[$1+63] # Which spectrum to rebin
define RV_RNPTS Memi[$1+64] # No. points in refrence
define RV_RAPNUM Memi[$1+65] # Template aperture number
define RV_TEMPNUM Memi[$1+66] # Template image number
define RV_UPDATE Memi[$1+67] # Update since write flag
define RV_VERBOSE Memi[$1+68] # Verbose output format types
define RV_ZTHRESH Memr[P2R($1+69)] # Output redshift threshold
# Observatory values
define RV_OBSPTR Memi[$1+70] # Observation Location (ptr)
define RV_ALTITUDE Memr[P2R($1+71)] # Altitude of observation
define RV_LATITUDE Memr[P2R($1+72)] # Latitude of observation
define RV_LONGITUDE Memr[P2R($1+73)] # Logitude of observation
# Output Miscellaneous values
define RV_NEWGRAPH Memi[$1+75] # GTOOLS newgraph flag
define RV_RECORD Memi[$1+76] # Output record being written
define RV_TXFD Memi[$1+77] # Text file FD
define RV_GRFD Memi[$1+78] # Metacode file FD
define RV_VBFD Memi[$1+79] # Verbose logfile FD
define RV_CCFFILE Memi[$1+80] # Output ccf File
define RV_CCFTYPE Memi[$1+81] # Output ccf Type (image|text)
define RV_STATLINE Memi[$1+82] # Status line output flag
define RV_TEMPCODE Memi[$1+83] # Template code on output
define RV_TCODE Memi[$1+84] # Template code array ptr
define RV_PRINTZ Memi[$1+85] # Output z values instead of velocities
# Plotting Miscellaneous values
define RV_DTYPE Memi[$1+90] # Data type
define RV_GTYPE Memi[$1+91] # Graph type
define RV_RESDONE Memi[$1+92] # Residuals plotted?
define RV_SPMKEY Memi[$1+93] # Spec-mode plot switch
define RV_SPMPLOT Memi[$1+94] # Spec-mode plot switch
define RV_WHERE Memi[$1+95] # Where is data plotted on split screen
define RV_X1 Memr[P2R($1+96)] # Starting plot scale
define RV_X2 Memr[P2R($1+97)] # Ending plot scale
define RV_Y1 Memr[P2R($1+98)] # Bottom plot scale (ccf plot)
define RV_Y2 Memr[P2R($1+99)] # Top plot scale (ccf plot)
# Dispersion Info and Misc.
define RV_APPARAM Memi[$1+100] # APNUM parameter string (ptr)
define RV_APLIST Memi[$1+101] # Aperture ranges list
define RV_CMD Memi[$1+102] # Current cursor keystroke command
define RV_DCBIAS Memr[P2R($1+103)] # DC BIAS of the object spectrum
define RV_DCFLAG Memi[$1+104] # Is data in log-lambda space?
define RV_DELTAV Memr[P2R($1+105)] # Velocity per pixel
define RV_DO_CORRECT Memi[$1+106] # Do the heliocentric correction?
define RV_OFORMAT Memi[$1+107] # Data format (1D, echelle, multispec)
define RV_RFORMAT Memi[$1+108] # Data format (1D, echelle, multispec)
define RV_FWHM_Y Memr[P2R($1+109)] # Correlation coeff for FWHM calc.
define RV_GLOB_W1 Memr[P2R($1+110)] # Global w1
define RV_GLOB_W2 Memr[P2R($1+111)] # Global w2
define RV_NEWXCOR Memi[$1+112] # Do a new correlation?
define RV_OW0 Memr[P2R($1+113)] # Object W0
define RV_OW2 Memr[P2R($1+114)] # Object endpoint of dispersion
define RV_OWPC Memr[P2R($1+115)] # Object WPC
define RV_RW0 Memr[P2R($1+116)] # Reference W0
define RV_RW2 Memr[P2R($1+117)] # Template endpoint of dispersion
define RV_RWPC Memr[P2R($1+118)] # Reference WPC
define RV_DO_REBIN Memi[$1+119] # Rebin the data?
# The answers
define RV_VOBS Memd[P2D($1+120)] # Observed velocity (vel)
define RV_VCOR Memd[P2D($1+122)] # Corrected velocity (vel)
define RV_ERROR Memd[P2D($1+124)] # Obs. Velocity error (vel)
define RV_HJD Memd[P2D($1+126)] # Heliocentric JD of obs (days)
define RV_MJD_OBS Memd[P2D($1+128)] # Heliocentric JD of obs (days)
define RV_VREL Memr[P2R($1+131)] # Relative vel. from pix shift
define RV_R Memr[P2R($1+132)] # Tonry&Davis 'R' parameter (vel)
define RV_SHIFT Memr[P2R($1+133)] # Computed shift value (pix)
define RV_SIGMA Memr[P2R($1+134)] # Error of fit (pix)
define RV_FWHM Memr[P2R($1+135)] # FWHM of ccf peak
define RV_HEIGHT Memr[P2R($1+136)] # Height of ccf peak (fft only)
define RV_DISP Memr[P2R($1+137)] # Dispersion
define RV_ERRCODE Memi[$1+138] # Error code for comment
define RV_DBL_SHIFT Memi[$1+139] # Deblended velocity struct ptr
# Pointers for other packages
define RV_GP Memi[$1+140] # GIO pointer
define RV_MGP Memi[$1+141] # Metacode GIO pointer
define RV_GT Memi[$1+142] # GTOOLS pointer
define RV_NLFIT Memi[$1+143] # NLFIT pointer
define RV_ICFIT Memi[$1+144] # ICFIT pointer
define RV_COEFFS Memi[$1+145] # Coefficients pointer
define RV_ECOEFFS Memi[$1+146] # Error coefficients pointer
define RV_CONT Memi[$1+147] # Continuum params pointer
define RV_FILTP Memi[$1+148] # Filter params pointer
define RV_KEYW Memi[$1+149] # Keyword table pointer
define RV_PLOTP Memi[$1+150] # Plotpars params pointer
define RV_MWCSP Memi[$1+151] # MWCS structure pointer
# Sample correlation regions structure pointers
define RV_OSAMPLE Memi[$1+155] # Obj sample struct (ptr)
define RV_RSAMPLE Memi[$1+156] # Ref sample struct (ptr)
# Working array pointers. Keep things in memory and reallocate space
# as needed. All indexing automatically done by macros below.
define RV_OBJECTS Memi[$1+160] # Object list ptr
define RV_TEMPLATES Memi[$1+161] # Template list ptr
define RV_OBJCONT Memi[$1+162] # Object normalized flag
define RV_REFCONT Memi[$1+163] # Reference normalized flag
define RV_OCONTP Memi[$1+164] # Object normalized data ptr
define RV_RCONTP Memi[$1+165] # Reference normalized data ptr
define RV_ANTISYM Memi[$1+166] # CCF Antisymmetric noise ptr
define RV_ERRCOMMENTS Memi[$1+167] # Error comments ptr
define RV_TEMPVEL Memi[$1+168] # All template velocities
define RV_APNUMKWD Memi[$1+169] # APNUM keyword strings (ptr)
# File names and stuff.
define RV_IMAGE Memi[$1+170] # Object image name
define RV_RIMAGE Memi[$1+171] # Ref image name
define RV_SPOOL Memi[$1+172] # Root spool name
define RV_DEVICE Memi[$1+173] # Output device name
define RV_OBJNAME Memi[$1+174] # Object Name
define RV_TEMPNAME Memi[$1+175] # Template Name
# Output color values.
define RV_TXTCOLOR Memi[$1+176] # Text color
define RV_LINECOLOR Memi[$1+177] # Overplot line colors
# Package Debugging info. (To be deleted in installed software.)
define DBG_DEBUG Memi[$1+180] # Debug flag
define DBG_FNAME Memi[$1+181] # Debug filename (ptr)
define DBG_FD Memi[$1+182] # Debug file descriptor
define DBG_LEVEL Memi[$1+183] # Level of debugging info
define DBG_OTHER Memi[$1+184] # Compare algorithms?
define DBG_KEYSTROKE Memi[$1+185] # Intial keystroke command
define DBG_QUICK Memi[$1+186] # Speed up graphics?
################### End of structure definitions ##############################
# Useful Macro definitions. All indexing is done in the macros themselves
# and pointers are assumed to be allocated at process startup.
# Current working data
define OBJPIXX Memr[RV_OPIXX($1)+$2-1] # Pixel data
define OBJPIXY Memr[RV_OPIXY($1)+$2-1] # Pixel data
define REFPIXX Memr[RV_RPIXX($1)+$2-1] # Comparison data
define REFPIXY Memr[RV_RPIXY($1)+$2-1] # Comparison data
define WRKPIXX Memr[RV_WKPIXX($1)+$2-1] # Working space
define WRKPIXY Memr[RV_WKPIXY($1)+$2-1] # Working space
# File names and stuff.
define IMAGE Memc[RV_IMAGE($1)] # Object image name
define RIMAGE Memc[RV_RIMAGE($1)] # Ref image name
define SPOOL Memc[RV_SPOOL($1)] # Root spool name
define DEVICE Memc[RV_DEVICE($1)] # Output device name
define OBJNAME Memc[RV_OBJNAME($1)] # Object Name
define TEMPNAME Memc[RV_TEMPNAME($1)] # Template Name
# Misc arrays.
define ANTISYM Memr[RV_ANTISYM($1)+$2-1] # Antisymmetric noise array
define ERRCOMMENTS Memc[RV_ERRCOMMENTS($1)] # Error comment strings
# Deblending data struct. We are insured there is enough space and offsets
# are correct assuming only 4 Gaussians are fit. Length of the struct is 50.
define DBL_SHIFT Memr[RV_DBL_SHIFT($1)+$2-1] # Self-explanatory
define DBL_VOBS Memr[RV_DBL_SHIFT($1)+5+$2-1]
define DBL_VHELIO Memr[RV_DBL_SHIFT($1)+10+$2-1]
define DBL_VERR Memr[RV_DBL_SHIFT($1)+15+$2-1]
define DBL_R Memr[RV_DBL_SHIFT($1)+20+$2-1]
define DBL_FWHM Memr[RV_DBL_SHIFT($1)+25+$2-1]
define DBL_HEIGHT Memr[RV_DBL_SHIFT($1)+30+$2-1]
define DBL_COEFFS Memr[RV_DBL_SHIFT($1)+35+$2-1]
define DBL_NFITP RV_NFITP($1) # Npts fit in deblend
define DBL_I1 RV_DI1($1) # Index of start
define DBL_X1 RV_DX1($1) # Left WCS of fit
define DBL_Y1 RV_DY1($1) # Bottom WCS of fit
define DBL_X2 RV_DX2($1) # Right WCS of fit
define DBL_Y2 RV_DY2($1) # Top WCS of fit
define DBL_SCALE RV_DSCALE($1) # Amplitude scale factor
define DBL_SLOPE RV_DSLOPE($1) # Slope of continuum
define DBL_NSHIFTS RV_NSHIFTS($1) # No. of components
define IS_DBLSTAR RV_IS_DOUBLE($1) # Deblend fit flag
# Aperture Dispersion information
define APLIST Memi[RV_APLIST($1)+$2-1] # List of apertures to be used
define APNUM Memc[RV_APNUMKWD($1)+(($2-1)*SZ_APNUM)]
define APPARAM Memc[RV_APPARAM($1)] # APNUM parameter string
define CURAPNUM RV_CURAPNUM($1) # Current number in list
define NUMAPS RV_NUMAPS($1) # Number of apertures in image
define OAPNUM RV_OAPNUM($1) # Object aperture number
define RAPNUM RV_RAPNUM($1) # Reference aperture number
# Flags and miscellaneous
define TEMPVEL Memr[RV_TEMPVEL($1)+$2-1] # Template velocity array
define COEFF Memr[RV_COEFFS($1)+$2-1] # Coefficients array
define ECOEFF Memr[RV_ECOEFFS($1)+$2-1] # Coefficients array
define OCONT_DATA Memr[RV_OCONTP($1)+$2-1] # Obj contin norm data
define RCONT_DATA Memr[RV_RCONTP($1)+$2-1] # Ref contin norm data
define DEBUG_FNAME Memc[DBG_FNAME($1)] # Debugging info file name
define TEMPCODE Memi[RV_TCODE($1)+$2-1] # Output template code
define OBJCONT RV_OBJCONT($1) # Have objects been normalized
define REFCONT RV_REFCONT($1) # Have temps been normalized
|