pro make_dark,resolution,exposure_time,output_file,specsum=specsum if (keyword_set(specsum)) then begin spsm = specsum endif else begin spsm = "no" endelse caldir = getenv('caldir') if (resolution eq "hi") then begin openr,dmlun, $ caldir+"/calib/vis_hires_dark_model.tab",/get_lun dmarray = fltarr(192,96,2) readu,dmlun,dmarray free_lun,dmlun endif else begin openr,dmlun, $ caldir+"/calib/vis_lowres_dark_model.tab",/get_lun dmarray = fltarr(64,96,2) readu,dmlun,dmarray free_lun,dmlun endelse ; Make the dark data. samples = 64 if (resolution eq "hi") then samples = 192 lines = 64 if (resolution eq "hi") then lines = 192 bands = 352 dark_array = fltarr(samples,lines,bands) for i = 0, samples-1 do begin for k = 0, bands-1 do begin if (k le 95) then begin v = dmarray[i,k,0] + dmarray[i,k,1]*exposure_time for j = 0, lines-1 do begin dark_array(i,j,k) = v endfor endif else begin for j = 0, lines-1 do begin dark_array(i,j,k) = 0.0 endfor endelse endfor endfor if (spsm eq "yes") then begin for i=0,351,8 do begin sum = dark_array[*,*,i] + dark_array[*,*,i+1]+dark_array[*,*,i+2]+dark_array[*,*,i+3]+ $ dark_array[*,*,i+4]+dark_array[*,*,i+5]+dark_array[*,*,i+6]+dark_array[*,*,i+7] sum = sum/8.0 dark_array[*,*,i] = sum dark_array[*,*,i+1] = sum dark_array[*,*,i+2] = sum dark_array[*,*,i+3] = sum dark_array[*,*,i+4] = sum dark_array[*,*,i+5] = sum dark_array[*,*,i+6] = sum dark_array[*,*,i+7] = sum endfor endif proto_head = [ $ "CCSD3ZF0000100000001NJPL3IF0PDS200000001 = SFDU_LABEL", $ "RECORD_TYPE = FIXED_LENGTH", $ "RECORD_BYTES = 512", $ "FILE_RECORDS = 102422", $ "LABEL_RECORDS = 14", $ "FILE_STATE = CLEAN", $ "^HISTORY = 15", $ "OBJECT = HISTORY", $ "END_OBJECT = HISTORY", $ " ", $ "^QUBE = 20", $ "OBJECT = QUBE", $ " AXES = 3", $ " AXIS_NAME = (SAMPLE,LINE,BAND)", $ " ", $ " CORE_ITEMS = ("+string(samples,format='(I3)')+","+ $ string(lines,format='(I3)')+",352)", $ " CORE_ITEM_BYTES = 4", $ " CORE_ITEM_TYPE = PC_REAL", $ " CORE_BASE = 0.0", $ " CORE_MULTIPLIER = 1.0", $ " CORE_VALID_MINIMUM = 16#FF7FFFFA#", $ " CORE_NULL = 16#FF7FFFFB#", $ " CORE_LOW_REPR_SATURATION = 16#FF7FFFFC#", $ " CORE_LOW_INSTR_SATURATION = 16#FF7FFFFD#", $ " CORE_HIGH_INSTR_SATURATION = 16#FF7FFFFE#", $ " CORE_HIGH_REPR_SATURATION = 16#FF7FFFFF#", $ " ", $ " SUFFIX_BYTES = 4", $ " SUFFIX_ITEMS = (0,0,0)", $ " CORE_NAME = ZERO", $ " CORE_UNIT = UNKNOWN", $ " GROUP = BAND_BIN", $ " BAND_BIN_UNIT = MICROMETER", $ " BAND_BIN_CENTER = (0.350540, 0.358950, 0.366290, 0.373220,", $ " 0.379490, 0.387900, 0.395180, 0.402520, 0.409550, 0.417310,", $ " 0.424360, 0.431840, 0.439190, 0.446520, 0.453720, 0.461630,", $ " 0.468410, 0.476220, 0.486290, 0.489670, 0.497770, 0.506280,", $ " 0.512220, 0.519630, 0.527660, 0.534160, 0.541560, 0.549540,", $ " 0.556140, 0.563530, 0.571310, 0.578100, 0.585480, 0.593120,", $ " 0.599380, 0.607570, 0.615050, 0.622070, 0.629400, 0.637040,", $ " 0.644080, 0.651420, 0.659100, 0.666090, 0.673420, 0.681020,", $ " 0.688030, 0.695350, 0.702880, 0.710000, 0.717330, 0.724840,", $ " 0.731980, 0.739300, 0.746760, 0.753960, 0.761280, 0.768740,", $ " 0.775950, 0.783280, 0.790720, 0.797930, 0.805220, 0.812620,", $ " 0.819890, 0.827210, 0.834630, 0.841900, 0.849220, 0.856630,", $ " 0.863910, 0.871220, 0.878630, 0.885890, 0.893860, 0.900320,", $ " 0.907870, 0.915180, 0.922540, 0.929830, 0.937130, 0.944450,", $ " 0.951770, 0.959070, 0.966380, 0.973820, 0.981000, 0.988830,", $ " 0.995880, 1.00295, 1.01005, 1.01695, 1.02471, 1.03195, 1.03865,", $ " 1.04598, 0.884210, 0.900750, 0.916920, 0.933080, 0.949800,", $ " 0.965680, 0.982260, 0.998820, 1.01479, 1.03132, 1.04755,", $ " 1.06541, 1.08183, 1.09806, 1.11396, 1.13024, 1.14695, 1.16370,", $ " 1.17996, 1.19622, 1.21246, 1.22859, 1.24492, 1.26166, 1.27813,", $ " 1.29482, 1.31091, 1.32695, 1.34324, 1.35952, 1.37695, 1.39326,", $ " 1.40940, 1.42557, 1.44184, 1.45841, 1.47514, 1.49169, 1.50794,", $ " 1.52421, 1.54035, 1.55674, 1.57361, 1.59018, 1.60228, 1.62523,", $ " 1.64160, 1.65567, 1.67238, 1.68901, 1.70536, 1.72175, 1.73802,", $ " 1.75436, 1.77105, 1.78771, 1.80401, 1.82004, 1.83616, 1.85288,", $ " 1.86933, 1.88679, 1.90261, 1.91916, 1.93545, 1.95191, 1.96871,", $ " 1.98531, 2.00167, 2.01781, 2.03424, 2.05091, 2.06757, 2.08400,", $ " 2.10034, 2.11667, 2.13337, 2.15018, 2.16652, 2.18288, 2.19920,", $ " 2.21591, 2.23282, 2.24952, 2.26622, 2.28238, 2.29921, 2.31612,", $ " 2.33325, 2.35043, 2.36765, 2.38472, 2.40156, 2.41820, 2.43471,", $ " 2.45097, 2.46723, 2.48360, 2.50002, 2.51659, 2.53292, 2.54916,", $ " 2.56437, 2.58176, 2.59807, 2.61508, 2.63000, 2.64650, 2.66146,", $ " 2.68085, 2.69620, 2.71205, 2.73270, 2.74770, 2.76305, 2.78118,", $ " 2.79889, 2.81606, 2.83247, 2.84954, 2.86609, 2.88242, 2.89878,", $ " 2.91540, 2.93143, 2.94726, 2.96327, 2.97720, 3.00072, 3.01382,", $ " 3.02970, 3.04806, 3.06446, 3.08036, 3.09689, 3.11213, 3.12962,", $ " 3.14667, 3.16304, 3.17974, 3.19708, 3.21364, 3.23150, 3.24806,", $ " 3.26561, 3.28298, 3.29946, 3.31619, 3.33338, 3.34981, 3.36564,", $ " 3.38183, 3.39872, 3.41546, 3.43178, 3.44874, 3.46475, 3.48137,", $ " 3.49795, 3.51284, 3.53015, 3.54664, 3.56274, 3.58034, 3.59610,", $ " 3.61387, 3.63085, 3.64853, 3.66522, 3.68283, 3.69953, 3.71743,", $ " 3.73439, 3.75103, 3.76763, 3.78444, 3.80083, 3.81742, 3.83472,", $ " 3.85141, 3.86184, 3.88167, 3.89859, 3.91478, 3.93069, 3.94762,", $ " 3.96375, 3.98015, 3.99672, 4.01280, 4.02944, 4.04730, 4.06295,", $ " 4.08086, 4.09743, 4.11450, 4.13183, 4.14883, 4.16644, 4.18299,", $ " 4.19839, 4.21120, 4.22402, 4.24220, 4.26028, 4.27840, 4.29650,", $ " 4.31470, 4.33280, 4.35094, 4.36646, 4.38295, 4.39793, 4.41537,", $ " 4.43172, 4.44772, 4.46573, 4.48240, 4.49951, 4.51591, 4.53379,", $ " 4.55187, 4.56797, 4.58556, 4.60290, 4.62010, 4.63615, 4.65416,", $ " 4.67034, 4.68721, 4.70290, 4.71956, 4.73706, 4.75351, 4.77031,", $ " 4.78673, 4.80349, 4.81952, 4.83577, 4.85292, 4.86940, 4.88553,", $ " 4.90265, 4.91983, 4.93685, 4.95389, 4.97178, 4.98896, 5.00576,", $ " 5.02240, 5.04078, 5.05734, 5.07402, 5.09106, 5.10680, 5.10800)", $ " BAND_BIN_ORIGINAL_BAND = (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, 271, 272, 273, 274,", $ " 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,", $ " 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,", $ " 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,", $ " 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,", $ " 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,", $ " 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352)", $ " END_GROUP = BAND_BIN", $ "END_OBJECT = QUBE", $ "END" $ ] history = [ $ " ", $ " ", $ " ", $ " END " $ ] a = 13B aa = 10B openw, olun, output_file, /GET_LUN phd = size(proto_head) for i = 0, phd[1]-1 do begin writeu, olun, proto_head[i] writeu, olun, a writeu, olun, aa endfor point_lun,-olun,thispos ; write zeros out until we are at the history place. i=0L for i = 0,((15-1)*512L - thispos)-1 do begin writeu,olun,0B endfor phd = size(history) for i = 0, phd[1]-1 do begin writeu, olun, history[i] writeu, olun, a writeu, olun, aa endfor point_lun,-olun,thispos ; write zeros out until we are at the data place. i=0L for i = 0,((20-1)*512L - thispos)-1 do begin writeu,olun,0B endfor ; Now, write out the data. for k = 0, bands-1 do begin for j = 0, lines-1 do begin samptemp = dark_array[*,j,k] writeu,olun,samptemp endfor endfor close,olun free_lun,olun end