diff --git a/policy/.gitignore b/policy/.gitignore
new file mode 100644
index 00000000..e268752c
--- /dev/null
+++ b/policy/.gitignore
@@ -0,0 +1 @@
+hsc.yaml
diff --git a/policy/0.yaml b/policy/0.yaml
new file mode 100644
index 00000000..ae806718
--- /dev/null
+++ b/policy/0.yaml
@@ -0,0 +1,519 @@
+'0' :
+ detectorType : HAMAMATSU
+ raftSerial : R0
+
+ ccdSerials :
+ '30' : 'SER16'
+ '29' : 'SER17'
+ '28' : 'SER18'
+ '27' : 'SER22'
+ '26' : 'SER23'
+ '25' : 'SER24'
+ '24' : 'SER25'
+ '23' : 'SER30'
+ '22' : 'SER31'
+ '21' : 'SER32'
+ '20' : 'SER33'
+ '19' : 'SER38'
+ '18' : 'SER39'
+ '17' : 'SER40'
+ '16' : 'SER41'
+ '15' : 'SER46'
+ '14' : 'SER47'
+ '13' : 'SER48'
+ '12' : 'SER49'
+ '11' : 'SER54'
+ '10' : 'SER55'
+ '09' : 'SER56'
+ '08' : 'SER57'
+ '07' : 'SER62'
+ '06' : 'SER63'
+ '05' : 'SER64'
+ '04' : 'SER65'
+ '03' : 'SER70'
+ '02' : 'SER71'
+ '01' : 'SER72'
+ '00' : 'SER73'
+ '34' : 'SER78'
+ '33' : 'SER79'
+ '32' : 'SER80'
+ '41' : 'SER84'
+ '40' : 'SER85'
+ '39' : 'SER86'
+ '38' : 'SER87'
+ '37' : 'SER88'
+ '36' : 'SER89'
+ '47' : 'SER90'
+ '46' : 'SER91'
+ '45' : 'SER92'
+ '44' : 'SER93'
+ '43' : 'SER94'
+ '42' : 'SER95'
+ '56' : 'SER96'
+ '55' : 'SER97'
+ '54' : 'SER98'
+ '53' : 'SER99'
+ '31' : 'SER100'
+ '35' : 'SER102'
+ '57' : 'SER108'
+ '52' : 'SER109'
+ '51' : 'SER110'
+ '48' : 'SER111'
+
+ sensorTypes : # this should be moved to rafts.yaml and generateCamera.py should be updated
+ '57' : FOCUS
+ '52' : FOCUS
+ '51' : FOCUS
+ '48' : FOCUS
+
+ geometryWithinRaft:
+ '30' :
+ offset : [0.0594, 0.0236]
+ yaw : -0.0179
+ '29' :
+ offset : [0.0470, 0.0291]
+ yaw : -0.0210
+ '28' :
+ offset : [0.0301, 0.0137]
+ yaw : -0.0113
+ '27' :
+ offset : [0.0139, 0.0018]
+ yaw : -0.0043
+ '26' :
+ offset : [-0.0459, -0.0192]
+ yaw : 0.0220
+ '25' :
+ offset : [-0.0507, 0.0330]
+ yaw : 0.0305
+ '24' :
+ offset : [-0.0354, -0.0314]
+ yaw : 0.0186
+ '23' :
+ offset : [0.0114, 0.0071]
+ yaw : 0.0201
+ '22' :
+ offset : [0.0442, -0.0027]
+ yaw : -0.0253
+ '21' :
+ offset : [0.0507, -0.0535]
+ yaw : 0.0080
+ '20' :
+ offset : [-0.0138, -0.0085]
+ yaw : 0.0296
+ '19' :
+ offset : [-0.0305, 0.0082]
+ yaw : -0.0003
+ '18' :
+ offset : [0.0054, -0.0392]
+ yaw : -0.0269
+ '17' :
+ offset : [-0.0267, 0.0295]
+ yaw : -0.0091
+ '16' :
+ offset : [-0.0453, -0.0409]
+ yaw : 0.0079
+ '15' :
+ offset : [0.0243, 0.0160]
+ yaw : -0.0070
+ '14' :
+ offset : [0.0447, -0.0282]
+ yaw : 0.0071
+ '13' :
+ offset : [0.0099, 0.0397]
+ yaw : -0.0035
+ '12' :
+ offset : [-0.0042, -0.0136]
+ yaw : 0.0073
+ '11' :
+ offset : [-0.0391, 0.0253]
+ yaw : -0.0202
+ '10' :
+ offset : [-0.0247, -0.0361]
+ yaw : -0.0315
+ '09' :
+ offset : [0.0401, 0.0147]
+ yaw : 0.0011
+ '08' :
+ offset : [-0.0426, 0.0019]
+ yaw : -0.0346
+ '07' :
+ offset : [-0.0229, 0.0170]
+ yaw : 0.0153
+ '06' :
+ offset : [0.0152, -0.0266]
+ yaw : -0.0008
+ '05' :
+ offset : [0.0066, 0.0054]
+ yaw : -0.0148
+ '04' :
+ offset : [-0.0110, -0.0284]
+ yaw : -0.0101
+ '03' :
+ offset : [-0.0017, -0.0055]
+ yaw : -0.0620
+ '02' :
+ offset : [-0.0505, -0.0315]
+ yaw : 0.0004
+ '01' :
+ offset : [0.0224, 0.0148]
+ yaw : 0.0023
+ '00' :
+ offset : [-0.0338, -0.0022]
+ yaw : 0.0099
+ '34' :
+ offset : [-0.0397, 0.0018]
+ yaw : 0.0401
+ '33' :
+ offset : [-0.0292, -0.0009]
+ yaw : 0.0196
+ '32' :
+ offset : [-0.0259, -0.0388]
+ yaw : -0.0063
+ '41' :
+ offset : [0.0162, -0.0363]
+ yaw : 0.0384
+ '40' :
+ offset : [0.0197, 0.0152]
+ yaw : 0.0117
+ '39' :
+ offset : [0.0351, -0.0625]
+ yaw : -0.0016
+ '38' :
+ offset : [0.0699, -0.0459]
+ yaw : -0.0365
+ '37' :
+ offset : [0.0415, -0.0219]
+ yaw : -0.0261
+ '36' :
+ offset : [0.0175, 0.0436]
+ yaw : -0.0137
+ '47' :
+ offset : [-0.0317, 0.0325]
+ yaw : 0.0045
+ '46' :
+ offset : [-0.0223, 0.0147]
+ yaw : 0.0334
+ '45' :
+ offset : [-0.0337, 0.0499]
+ yaw : 0.0010
+ '44' :
+ offset : [-0.0027, 0.0260]
+ yaw : -0.0256
+ '43' :
+ offset : [-0.0429, -0.0455]
+ yaw : -0.0058
+ '42' :
+ offset : [0.0508, 0.0361]
+ yaw : -0.0061
+ '56' :
+ offset : [0.0240, 0.0204]
+ yaw : 0.0016
+ '55' :
+ offset : [0.0259, -0.0505]
+ yaw : 0.0013
+ '54' :
+ offset : [0.0448, 0.0055]
+ yaw : -0.0423
+ '53' :
+ offset : [0.0411, -0.0592]
+ yaw : -0.0440
+ '31' :
+ offset : [-0.0239, 0.0374]
+ yaw : -0.0113
+ '35' :
+ offset : [-0.0224, -0.0469]
+ yaw : 0.0297
+ '57' :
+ offset : [0.0339, 0.5964]
+ yaw : 0.0000
+ '52' :
+ offset : [0.0339, 0.6132]
+ yaw : 0.0000
+ '51' :
+ offset : [-0.0018, 0.6038]
+ yaw : 0.0000
+ '48' :
+ offset : [-0.0018, 0.5896]
+ yaw : 0.0000
+
+ amplifiers:
+ '30' :
+ A0 : {gain : 3.7430, readNoise : 1.56, saturation : 48500 }
+ A1 : {gain : 3.6459, readNoise : 1.55, saturation : 48500 }
+ A2 : {gain : 3.5879, readNoise : 1.71, saturation : 48500 }
+ A3 : {gain : 3.5248, readNoise : 1.72, saturation : 48500 }
+ '29' :
+ A0 : {gain : 3.3771, readNoise : 1.55, saturation : 55000 }
+ A1 : {gain : 3.4122, readNoise : 1.57, saturation : 55000 }
+ A2 : {gain : 3.3818, readNoise : 1.82, saturation : 55000 }
+ A3 : {gain : 3.4246, readNoise : 1.74, saturation : 55000 }
+ '28' :
+ A0 : {gain : 3.6675, readNoise : 1.39, saturation : 49500 }
+ A1 : {gain : 3.6478, readNoise : 1.46, saturation : 49500 }
+ A2 : {gain : 3.6674, readNoise : 1.42, saturation : 49500 }
+ A3 : {gain : 4.8096, readNoise : 1.34, saturation : 39500 }
+ '27' :
+ A0 : {gain : 4.0108, readNoise : 1.48, saturation : 39000 }
+ A1 : {gain : 4.1789, readNoise : 1.47, saturation : 39000 }
+ A2 : {gain : 4.1640, readNoise : 1.58, saturation : 39000 }
+ A3 : {gain : 4.1089, readNoise : 1.57, saturation : 39000 }
+ '26' :
+ A0 : {gain : 3.4311, readNoise : 1.50, saturation : 50000 }
+ A1 : {gain : 3.4982, readNoise : 1.60, saturation : 50000 }
+ A2 : {gain : 3.6575, readNoise : 1.59, saturation : 50000 }
+ A3 : {gain : 3.6190, readNoise : 1.70, saturation : 50000 }
+ '25' :
+ A0 : {gain : 3.5397, readNoise : 1.66, saturation : 52000 }
+ A1 : {gain : 3.4463, readNoise : 1.57, saturation : 52000 }
+ A2 : {gain : 3.3666, readNoise : 1.95, saturation : 52000 }
+ A3 : {gain : 3.4027, readNoise : 1.69, saturation : 52000 }
+ '24' :
+ A0 : {gain : 3.6623, readNoise : 1.38, saturation : 51000 }
+ A1 : {gain : 3.6113, readNoise : 1.50, saturation : 51000 }
+ A2 : {gain : 3.5542, readNoise : 1.39, saturation : 51000 }
+ A3 : {gain : 3.5547, readNoise : 1.49, saturation : 51000 }
+ '23' :
+ A0 : {gain : 3.6852, readNoise : 1.52, saturation : 48000 }
+ A1 : {gain : 3.5346, readNoise : 1.69, saturation : 48000 }
+ A2 : {gain : 3.5048, readNoise : 1.86, saturation : 48000 }
+ A3 : {gain : 3.5941, readNoise : 1.65, saturation : 48000 }
+ '22' :
+ A0 : {gain : 3.4972, readNoise : 1.62, saturation : 52000 }
+ A1 : {gain : 3.4192, readNoise : 1.67, saturation : 52000 }
+ A2 : {gain : 3.4315, readNoise : 1.74, saturation : 52000 }
+ A3 : {gain : 3.5786, readNoise : 1.76, saturation : 52000 }
+ '21' :
+ A0 : {gain : 4.1764, readNoise : 1.52, saturation : 45000 }
+ A1 : {gain : 3.9905, readNoise : 1.75, saturation : 45000 }
+ A2 : {gain : 4.0414, readNoise : 1.75, saturation : 45000 }
+ A3 : {gain : 3.9232, readNoise : 1.81, saturation : 45000 }
+ '20' :
+ A0 : {gain : 3.6177, readNoise : 1.57, saturation : 49000 }
+ A1 : {gain : 3.7089, readNoise : 1.45, saturation : 49000 }
+ A2 : {gain : 3.5542, readNoise : 1.53, saturation : 49000 }
+ A3 : {gain : 3.6315, readNoise : 1.47, saturation : 49000 }
+ '19' :
+ A0 : {gain : 3.5176, readNoise : 1.49, saturation : 52000 }
+ A1 : {gain : 3.5802, readNoise : 1.54, saturation : 52000 }
+ A2 : {gain : 3.4294, readNoise : 1.82, saturation : 52000 }
+ A3 : {gain : 3.5904, readNoise : 1.94, saturation : 52000 }
+ '18' :
+ A0 : {gain : 3.3525, readNoise : 1.58, saturation : 55000 }
+ A1 : {gain : 3.3915, readNoise : 1.61, saturation : 55000 }
+ A2 : {gain : 3.3761, readNoise : 1.86, saturation : 55000 }
+ A3 : {gain : 3.4485, readNoise : 1.82, saturation : 55000 }
+ '17' :
+ A0 : {gain : 3.3695, readNoise : 1.60, saturation : 55000 }
+ A1 : {gain : 3.4810, readNoise : 1.72, saturation : 55000 }
+ A2 : {gain : 3.4087, readNoise : 1.99, saturation : 55000 }
+ A3 : {gain : 3.4190, readNoise : 1.89, saturation : 55000 }
+ '16' :
+ A0 : {gain : 3.6126, readNoise : 1.45, saturation : 48000 }
+ A1 : {gain : 3.6638, readNoise : 1.47, saturation : 48000 }
+ A2 : {gain : 3.6969, readNoise : 1.41, saturation : 48000 }
+ A3 : {gain : 3.7518, readNoise : 1.74, saturation : 48000 }
+ '15' :
+ A0 : {gain : 3.9854, readNoise : 1.53, saturation : 45500 }
+ A1 : {gain : 4.0760, readNoise : 1.51, saturation : 45500 }
+ A2 : {gain : 4.0109, readNoise : 1.71, saturation : 45500 }
+ A3 : {gain : 4.2024, readNoise : 1.76, saturation : 45500 }
+ '14' :
+ A0 : {gain : 3.3579, readNoise : 1.61, saturation : 51000 }
+ A1 : {gain : 3.5747, readNoise : 1.60, saturation : 51000 }
+ A2 : {gain : 3.6535, readNoise : 1.64, saturation : 51000 }
+ A3 : {gain : 3.5840, readNoise : 1.73, saturation : 51000 }
+ '13' :
+ A0 : {gain : 3.4362, readNoise : 1.57, saturation : 55000 }
+ A1 : {gain : 3.4420, readNoise : 1.77, saturation : 55000 }
+ A2 : {gain : 3.4081, readNoise : 1.71, saturation : 55000 }
+ A3 : {gain : 3.4557, readNoise : 1.80, saturation : 55000 }
+ '12' :
+ A0 : {gain : 3.6664, readNoise : 1.42, saturation : 48500 }
+ A1 : {gain : 3.5893, readNoise : 1.42, saturation : 48500 }
+ A2 : {gain : 3.4973, readNoise : 1.44, saturation : 48500 }
+ A3 : {gain : 3.4956, readNoise : 1.49, saturation : 48500 }
+ '11' :
+ A0 : {gain : 4.0956, readNoise : 1.50, saturation : 46000 }
+ A1 : {gain : 4.0372, readNoise : 1.53, saturation : 46000 }
+ A2 : {gain : 3.9997, readNoise : 1.62, saturation : 46000 }
+ A3 : {gain : 3.8727, readNoise : 1.67, saturation : 46000 }
+ '10' :
+ A0 : {gain : 3.3652, readNoise : 1.62, saturation : 55000 }
+ A1 : {gain : 3.2922, readNoise : 1.60, saturation : 55000 }
+ A2 : {gain : 3.3499, readNoise : 1.64, saturation : 55000 }
+ A3 : {gain : 3.4548, readNoise : 1.73, saturation : 55000 }
+ '09' :
+ A0 : {gain : 3.7129, readNoise : 1.54, saturation : 50000 }
+ A1 : {gain : 3.6167, readNoise : 1.68, saturation : 50000 }
+ A2 : {gain : 3.5726, readNoise : 1.80, saturation : 50000 }
+ A3 : {gain : 3.3898, readNoise : 1.91, saturation : 50000 }
+ '08' :
+ A0 : {gain : 3.5473, readNoise : 1.42, saturation : 51000 }
+ A1 : {gain : 3.5862, readNoise : 1.43, saturation : 51000 }
+ A2 : {gain : 3.5173, readNoise : 1.44, saturation : 51000 }
+ A3 : {gain : 3.5326, readNoise : 1.47, saturation : 51000 }
+ '07' :
+ A0 : {gain : 3.5347, readNoise : 1.56, saturation : 50000 }
+ A1 : {gain : 3.3952, readNoise : 1.57, saturation : 50000 }
+ A2 : {gain : 3.5172, readNoise : 1.72, saturation : 50000 }
+ A3 : {gain : 3.5641, readNoise : 1.84, saturation : 50000 }
+ '06' :
+ A0 : {gain : 3.9209, readNoise : 1.53, saturation : 45000 }
+ A1 : {gain : 3.9650, readNoise : 1.62, saturation : 45000 }
+ A2 : {gain : 4.0174, readNoise : 1.64, saturation : 45000 }
+ A3 : {gain : 4.0330, readNoise : 1.66, saturation : 45000 }
+ '05' :
+ A0 : {gain : 3.5861, readNoise : 1.55, saturation : 49000 }
+ A1 : {gain : 3.6431, readNoise : 1.61, saturation : 49000 }
+ A2 : {gain : 3.6012, readNoise : 1.68, saturation : 49000 }
+ A3 : {gain : 3.5822, readNoise : 1.90, saturation : 49000 }
+ '04' :
+ A0 : {gain : 4.1845, readNoise : 1.39, saturation : 43000 }
+ A1 : {gain : 4.3031, readNoise : 1.46, saturation : 43000 }
+ A2 : {gain : 4.3020, readNoise : 1.42, saturation : 43000 }
+ A3 : {gain : 4.2607, readNoise : 1.42, saturation : 43000 }
+ '03' :
+ A0 : {gain : 3.6968, readNoise : 1.54, saturation : 47000 }
+ A1 : {gain : 3.5811, readNoise : 1.50, saturation : 47000 }
+ A2 : {gain : 3.6060, readNoise : 1.58, saturation : 47000 }
+ A3 : {gain : 3.5445, readNoise : 1.62, saturation : 47000 }
+ '02' :
+ A0 : {gain : 3.5863, readNoise : 1.44, saturation : 50500 }
+ A1 : {gain : 3.4424, readNoise : 1.57, saturation : 50500 }
+ A2 : {gain : 3.3541, readNoise : 1.66, saturation : 50500 }
+ A3 : {gain : 3.3098, readNoise : 1.78, saturation : 50500 }
+ '01' :
+ A0 : {gain : 3.3832, readNoise : 1.52, saturation : 51500 }
+ A1 : {gain : 3.3351, readNoise : 1.68, saturation : 51500 }
+ A2 : {gain : 3.2788, readNoise : 1.73, saturation : 51500 }
+ A3 : {gain : 3.6075, readNoise : 1.67, saturation : 51500 }
+ '00' :
+ A0 : {gain : 4.2097, readNoise : 1.36, saturation : 44000 }
+ A1 : {gain : 4.0540, readNoise : 1.43, saturation : 44000 }
+ A2 : {gain : 3.9717, readNoise : 1.46, saturation : 44000 }
+ A3 : {gain : 3.9878, readNoise : 1.43, saturation : 44000 }
+ '34' :
+ A0 : {gain : 3.6720, readNoise : 1.59, saturation : 40000 }
+ A1 : {gain : 4.0952, readNoise : 1.56, saturation : 40000 }
+ A2 : {gain : 4.4608, readNoise : 1.60, saturation : 40000 }
+ A3 : {gain : 4.0158, readNoise : 1.64, saturation : 40000 }
+ '33' :
+ A0 : {gain : 4.0036, readNoise : 1.54, saturation : 43500 }
+ A1 : {gain : 4.1340, readNoise : 1.58, saturation : 43500 }
+ A2 : {gain : 4.2509, readNoise : 1.62, saturation : 43500 }
+ A3 : {gain : 4.1673, readNoise : 1.58, saturation : 43500 }
+ '32' :
+ A0 : {gain : 3.4687, readNoise : 1.53, saturation : 47500 }
+ A1 : {gain : 3.6662, readNoise : 1.51, saturation : 47500 }
+ A2 : {gain : 3.6074, readNoise : 1.56, saturation : 47500 }
+ A3 : {gain : 3.6418, readNoise : 1.65, saturation : 47500 }
+ '41' :
+ A0 : {gain : 3.4125, readNoise : 1.50, saturation : 52000 }
+ A1 : {gain : 3.5046, readNoise : 1.63, saturation : 52000 }
+ A2 : {gain : 3.5024, readNoise : 1.57, saturation : 52000 }
+ A3 : {gain : 3.4391, readNoise : 1.67, saturation : 52000 }
+ '40' :
+ A0 : {gain : 4.1682, readNoise : 1.38, saturation : 44000 }
+ A1 : {gain : 3.9704, readNoise : 1.46, saturation : 46500 }
+ A2 : {gain : 3.8654, readNoise : 1.44, saturation : 46500 }
+ A3 : {gain : 3.9271, readNoise : 1.45, saturation : 46500 }
+ '39' :
+ A0 : {gain : 3.5263, readNoise : 1.46, saturation : 55000 }
+ A1 : {gain : 3.4846, readNoise : 1.55, saturation : 55000 }
+ A2 : {gain : 3.3779, readNoise : 1.67, saturation : 55000 }
+ A3 : {gain : 3.3687, readNoise : 1.58, saturation : 55000 }
+ '38' :
+ A0 : {gain : 3.6285, readNoise : 1.42, saturation : 51000 }
+ A1 : {gain : 3.4686, readNoise : 1.54, saturation : 51000 }
+ A2 : {gain : 3.4998, readNoise : 1.53, saturation : 51000 }
+ A3 : {gain : 3.6743, readNoise : 1.52, saturation : 51000 }
+ '37' :
+ A0 : {gain : 3.3134, readNoise : 1.50, saturation : 49000 }
+ A1 : {gain : 3.3293, readNoise : 1.64, saturation : 49000 }
+ A2 : {gain : 3.3244, readNoise : 1.68, saturation : 49000 }
+ A3 : {gain : 3.4237, readNoise : 1.69, saturation : 49000 }
+ '36' :
+ A0 : {gain : 3.6075, readNoise : 1.39, saturation : 49500 }
+ A1 : {gain : 3.6268, readNoise : 1.50, saturation : 49500 }
+ A2 : {gain : 3.6013, readNoise : 1.46, saturation : 49500 }
+ A3 : {gain : 3.5537, readNoise : 1.76, saturation : 49500 }
+ '47' :
+ A0 : {gain : 3.6091, readNoise : 1.49, saturation : 46500 }
+ A1 : {gain : 3.6579, readNoise : 1.48, saturation : 46500 }
+ A2 : {gain : 3.6938, readNoise : 1.59, saturation : 46500 }
+ A3 : {gain : 3.7052, readNoise : 1.70, saturation : 46500 }
+ '46' :
+ A0 : {gain : 3.4250, readNoise : 1.48, saturation : 53000 }
+ A1 : {gain : 3.3902, readNoise : 1.43, saturation : 53000 }
+ A2 : {gain : 3.2615, readNoise : 1.46, saturation : 53000 }
+ A3 : {gain : 3.1804, readNoise : 1.60, saturation : 53000 }
+ '45' :
+ A0 : {gain : 3.7141, readNoise : 1.55, saturation : 48000 }
+ A1 : {gain : 3.6591, readNoise : 1.40, saturation : 48000 }
+ A2 : {gain : 3.5420, readNoise : 1.63, saturation : 48000 }
+ A3 : {gain : 3.6293, readNoise : 1.80, saturation : 48000 }
+ '44' :
+ A0 : {gain : 3.3960, readNoise : 1.44, saturation : 50000 }
+ A1 : {gain : 3.6077, readNoise : 1.51, saturation : 50000 }
+ A2 : {gain : 3.5174, readNoise : 1.61, saturation : 50000 }
+ A3 : {gain : 3.6305, readNoise : 1.67, saturation : 50000 }
+ '43' :
+ A0 : {gain : 3.4800, readNoise : 1.51, saturation : 55000 }
+ A1 : {gain : 3.3571, readNoise : 1.62, saturation : 55000 }
+ A2 : {gain : 3.4854, readNoise : 1.85, saturation : 55000 }
+ A3 : {gain : 3.3186, readNoise : 1.84, saturation : 55000 }
+ '42' :
+ A0 : {gain : 4.0050, readNoise : 1.43, saturation : 45000 }
+ A1 : {gain : 4.0688, readNoise : 1.44, saturation : 45000 }
+ A2 : {gain : 3.9911, readNoise : 1.44, saturation : 45000 }
+ A3 : {gain : 3.9804, readNoise : 1.48, saturation : 45000 }
+ '56' :
+ A0 : {gain : 3.4931, readNoise : 1.41, saturation : 50000 }
+ A1 : {gain : 3.6141, readNoise : 1.46, saturation : 50000 }
+ A2 : {gain : 3.5797, readNoise : 1.47, saturation : 50000 }
+ A3 : {gain : 3.5656, readNoise : 1.47, saturation : 50000 }
+ '55' :
+ A0 : {gain : 3.6161, readNoise : 1.48, saturation : 51000 }
+ A1 : {gain : 3.6126, readNoise : 1.46, saturation : 51000 }
+ A2 : {gain : 3.4366, readNoise : 1.57, saturation : 51000 }
+ A3 : {gain : 3.2555, readNoise : 1.60, saturation : 51000 }
+ '54' :
+ A0 : {gain : 3.4641, readNoise : 1.46, saturation : 51000 }
+ A1 : {gain : 3.3127, readNoise : 1.53, saturation : 51000 }
+ A2 : {gain : 3.2820, readNoise : 1.65, saturation : 51000 }
+ A3 : {gain : 3.2724, readNoise : 1.58, saturation : 51000 }
+ '53' :
+ A0 : {gain : 4.4115, readNoise : 1.39, saturation : 40000 }
+ A1 : {gain : 3.5293, readNoise : 1.50, saturation : 40000 }
+ A2 : {gain : 3.5722, readNoise : 1.69, saturation : 40000 }
+ A3 : {gain : 3.5893, readNoise : 1.64, saturation : 40000 }
+ '31' :
+ A0 : {gain : 3.7434, readNoise : 1.65, saturation : 47500 }
+ A1 : {gain : 3.6152, readNoise : 1.63, saturation : 47500 }
+ A2 : {gain : 3.5929, readNoise : 1.45, saturation : 47500 }
+ A3 : {gain : 3.6272, readNoise : 1.42, saturation : 47500 }
+ '35' :
+ A0 : {gain : 3.8229, readNoise : 1.72, saturation : 44000 }
+ A1 : {gain : 3.9344, readNoise : 1.61, saturation : 44000 }
+ A2 : {gain : 3.9308, readNoise : 1.53, saturation : 44000 }
+ A3 : {gain : 4.2350, readNoise : 1.44, saturation : 44000 }
+ '57' :
+ A0 : {gain : 3.3508, readNoise : 1.45, saturation : 55000 }
+ A1 : {gain : 3.3597, readNoise : 1.47, saturation : 55000 }
+ A2 : {gain : 3.3779, readNoise : 1.45, saturation : 55000 }
+ A3 : {gain : 3.5293, readNoise : 1.50, saturation : 55000 }
+ '52' :
+ A0 : {gain : 3.4689, readNoise : 1.38, saturation : 55000 }
+ A1 : {gain : 3.3610, readNoise : 1.51, saturation : 55000 }
+ A2 : {gain : 3.4321, readNoise : 1.42, saturation : 55000 }
+ A3 : {gain : 3.4181, readNoise : 1.43, saturation : 55000 }
+ '51' :
+ A0 : {gain : 3.3427, readNoise : 1.63, saturation : 55000 }
+ A1 : {gain : 3.4856, readNoise : 1.87, saturation : 55000 }
+ A2 : {gain : 3.4176, readNoise : 2.29, saturation : 55000 }
+ A3 : {gain : 3.4788, readNoise : 2.89, saturation : 55000 }
+ '48' :
+ A0 : {gain : 3.4619, readNoise : 1.53, saturation : 55000 }
+ A1 : {gain : 3.4463, readNoise : 1.49, saturation : 55000 }
+ A2 : {gain : 3.4954, readNoise : 1.48, saturation : 55000 }
+ A3 : {gain : 3.5139, readNoise : 1.50, saturation : 55000 }
diff --git a/policy/1.yaml b/policy/1.yaml
new file mode 100644
index 00000000..692e61e9
--- /dev/null
+++ b/policy/1.yaml
@@ -0,0 +1,519 @@
+'1' :
+ detectorType : HAMAMATSU
+ raftSerial : R1
+
+ ccdSerials :
+ '53' : 'SER0'
+ '54' : 'SER1'
+ '55' : 'SER2'
+ '56' : 'SER3'
+ '42' : 'SER4'
+ '43' : 'SER5'
+ '44' : 'SER6'
+ '45' : 'SER7'
+ '46' : 'SER8'
+ '47' : 'SER9'
+ '36' : 'SER10'
+ '37' : 'SER11'
+ '38' : 'SER12'
+ '39' : 'SER13'
+ '40' : 'SER14'
+ '41' : 'SER15'
+ '32' : 'SER19'
+ '33' : 'SER20'
+ '34' : 'SER21'
+ '00' : 'SER26'
+ '01' : 'SER27'
+ '02' : 'SER28'
+ '03' : 'SER29'
+ '04' : 'SER34'
+ '05' : 'SER35'
+ '06' : 'SER36'
+ '07' : 'SER37'
+ '08' : 'SER42'
+ '09' : 'SER43'
+ '10' : 'SER44'
+ '11' : 'SER45'
+ '12' : 'SER50'
+ '13' : 'SER51'
+ '14' : 'SER52'
+ '15' : 'SER53'
+ '16' : 'SER58'
+ '17' : 'SER59'
+ '18' : 'SER60'
+ '19' : 'SER61'
+ '20' : 'SER66'
+ '21' : 'SER67'
+ '22' : 'SER68'
+ '23' : 'SER69'
+ '24' : 'SER74'
+ '25' : 'SER75'
+ '26' : 'SER76'
+ '27' : 'SER77'
+ '28' : 'SER81'
+ '29' : 'SER82'
+ '30' : 'SER83'
+ '35' : 'SER101'
+ '31' : 'SER103'
+ '48' : 'SER104'
+ '51' : 'SER105'
+ '52' : 'SER106'
+ '57' : 'SER107'
+
+ sensorTypes : # this should be moved to rafts.yaml and generateCamera.py should be updated
+ '48' : FOCUS
+ '51' : FOCUS
+ '52' : FOCUS
+ '57' : FOCUS
+
+ geometryWithinRaft:
+ '53' :
+ offset : [0.0162, -0.0393]
+ yaw : 0.0043
+ '54' :
+ offset : [0.0187, 0.0393]
+ yaw : -0.0010
+ '55' :
+ offset : [0.0241, -0.0380]
+ yaw : 0.0099
+ '56' :
+ offset : [0.0135, 0.0249]
+ yaw : -0.0066
+ '42' :
+ offset : [0.0478, 0.0369]
+ yaw : 0.0060
+ '43' :
+ offset : [-0.0435, -0.0185]
+ yaw : -0.0196
+ '44' :
+ offset : [-0.0360, 0.0261]
+ yaw : -0.0282
+ '45' :
+ offset : [0.0111, 0.0441]
+ yaw : 0.0392
+ '46' :
+ offset : [-0.0240, 0.0319]
+ yaw : -0.0249
+ '47' :
+ offset : [-0.0300, 0.0652]
+ yaw : -0.0423
+ '36' :
+ offset : [0.0141, 0.0481]
+ yaw : -0.0033
+ '37' :
+ offset : [0.0409, -0.0372]
+ yaw : 0.0406
+ '38' :
+ offset : [0.0124, -0.0144]
+ yaw : -0.0337
+ '39' :
+ offset : [0.0033, -0.0283]
+ yaw : -0.0273
+ '40' :
+ offset : [0.0686, 0.0037]
+ yaw : 0.0334
+ '41' :
+ offset : [0.0315, -0.0388]
+ yaw : -0.0159
+ '32' :
+ offset : [-0.0104, -0.0432]
+ yaw : 0.0136
+ '33' :
+ offset : [-0.0371, 0.0237]
+ yaw : -0.0076
+ '34' :
+ offset : [0.0313, -0.0806]
+ yaw : 0.0620
+ '00' :
+ offset : [-0.0569, -0.0460]
+ yaw : -0.0107
+ '01' :
+ offset : [0.0581, 0.0181]
+ yaw : 0.0169
+ '02' :
+ offset : [-0.0017, -0.0607]
+ yaw : 0.0483
+ '03' :
+ offset : [-0.0713, 0.0074]
+ yaw : -0.0076
+ '04' :
+ offset : [-0.0094, -0.0453]
+ yaw : -0.0086
+ '05' :
+ offset : [-0.0254, 0.0165]
+ yaw : -0.0178
+ '06' :
+ offset : [0.0075, -0.0610]
+ yaw : 0.0003
+ '07' :
+ offset : [-0.0124, 0.0116]
+ yaw : -0.0107
+ '08' :
+ offset : [-0.0198, -0.0386]
+ yaw : 0.0158
+ '09' :
+ offset : [0.0552, 0.0226]
+ yaw : 0.0265
+ '10' :
+ offset : [-0.0352, -0.0240]
+ yaw : 0.0123
+ '11' :
+ offset : [-0.0461, 0.0043]
+ yaw : 0.0071
+ '12' :
+ offset : [0.0105, -0.0178]
+ yaw : 0.0515
+ '13' :
+ offset : [0.0345, 0.0102]
+ yaw : 0.0535
+ '14' :
+ offset : [-0.0022, -0.0041]
+ yaw : -0.0174
+ '15' :
+ offset : [0.0184, -0.0047]
+ yaw : 0.0099
+ '16' :
+ offset : [-0.0280, -0.0304]
+ yaw : 0.0056
+ '17' :
+ offset : [-0.0236, 0.0385]
+ yaw : -0.0016
+ '18' :
+ offset : [0.0027, -0.0203]
+ yaw : 0.0025
+ '19' :
+ offset : [-0.0265, 0.0134]
+ yaw : 0.0089
+ '20' :
+ offset : [0.0277, -0.0205]
+ yaw : 0.0012
+ '21' :
+ offset : [0.0318, -0.0445]
+ yaw : -0.0083
+ '22' :
+ offset : [0.0328, -0.0411]
+ yaw : 0.0090
+ '23' :
+ offset : [0.0403, 0.0160]
+ yaw : -0.0224
+ '24' :
+ offset : [-0.0131, -0.0082]
+ yaw : 0.0085
+ '25' :
+ offset : [-0.0202, 0.0534]
+ yaw : 0.0022
+ '26' :
+ offset : [-0.0332, -0.0001]
+ yaw : -0.0248
+ '27' :
+ offset : [-0.0104, 0.0208]
+ yaw : 0.0024
+ '28' :
+ offset : [0.0112, 0.0254]
+ yaw : -0.0002
+ '29' :
+ offset : [0.0215, 0.0292]
+ yaw : 0.0186
+ '30' :
+ offset : [0.0364, -0.0278]
+ yaw : 0.0078
+ '35' :
+ offset : [-0.0241, -0.0460]
+ yaw : -0.0007
+ '31' :
+ offset : [-0.0227, 0.0393]
+ yaw : 0.0183
+ '48' :
+ offset : [-0.0346, -0.6038]
+ yaw : 0.0000
+ '51' :
+ offset : [-0.0346, -0.5896]
+ yaw : 0.0000
+ '52' :
+ offset : [0.0181, -0.5964]
+ yaw : 0.0000
+ '57' :
+ offset : [0.0181, -0.6132]
+ yaw : 0.0000
+
+ amplifiers:
+ '53' :
+ A0 : {gain : 3.5118, readNoise : 1.56, saturation : 52000 }
+ A1 : {gain : 2.4617, readNoise : 1.53, saturation : 52000 }
+ A2 : {gain : 3.5089, readNoise : 1.53, saturation : 52000 }
+ A3 : {gain : 3.5495, readNoise : 1.72, saturation : 52000 }
+ '54' :
+ A0 : {gain : 3.4806, readNoise : 1.51, saturation : 52000 }
+ A1 : {gain : 3.4654, readNoise : 1.49, saturation : 52000 }
+ A2 : {gain : 3.3887, readNoise : 1.56, saturation : 52000 }
+ A3 : {gain : 3.4770, readNoise : 1.57, saturation : 52000 }
+ '55' :
+ A0 : {gain : 4.2467, readNoise : 1.38, saturation : 45000 }
+ A1 : {gain : 4.0574, readNoise : 1.49, saturation : 45000 }
+ A2 : {gain : 4.0085, readNoise : 1.54, saturation : 45000 }
+ A3 : {gain : 4.0065, readNoise : 1.71, saturation : 45000 }
+ '56' :
+ A0 : {gain : 3.6091, readNoise : 1.40, saturation : 50000 }
+ A1 : {gain : 3.6289, readNoise : 1.49, saturation : 50000 }
+ A2 : {gain : 3.5242, readNoise : 1.49, saturation : 50000 }
+ A3 : {gain : 3.5918, readNoise : 1.46, saturation : 50000 }
+ '42' :
+ A0 : {gain : 3.9351, readNoise : 1.40, saturation : 45000 }
+ A1 : {gain : 3.9913, readNoise : 1.36, saturation : 45000 }
+ A2 : {gain : 3.9616, readNoise : 1.41, saturation : 45000 }
+ A3 : {gain : 4.0744, readNoise : 1.43, saturation : 45000 }
+ '43' :
+ A0 : {gain : 3.5280, readNoise : 1.51, saturation : 48500 }
+ A1 : {gain : 3.6529, readNoise : 1.57, saturation : 48500 }
+ A2 : {gain : 3.6044, readNoise : 1.61, saturation : 48500 }
+ A3 : {gain : 3.6263, readNoise : 1.62, saturation : 48500 }
+ '44' :
+ A0 : {gain : 3.6108, readNoise : 1.49, saturation : 50000 }
+ A1 : {gain : 3.6409, readNoise : 1.57, saturation : 50000 }
+ A2 : {gain : 3.5754, readNoise : 1.57, saturation : 50000 }
+ A3 : {gain : 3.5318, readNoise : 1.58, saturation : 50000 }
+ '45' :
+ A0 : {gain : 3.5333, readNoise : 1.48, saturation : 51000 }
+ A1 : {gain : 3.6363, readNoise : 1.49, saturation : 51000 }
+ A2 : {gain : 3.5879, readNoise : 1.58, saturation : 51000 }
+ A3 : {gain : 3.5798, readNoise : 1.64, saturation : 51000 }
+ '46' :
+ A0 : {gain : 3.6401, readNoise : 1.43, saturation : 52000 }
+ A1 : {gain : 3.5708, readNoise : 1.43, saturation : 52000 }
+ A2 : {gain : 3.5970, readNoise : 1.43, saturation : 52000 }
+ A3 : {gain : 3.6521, readNoise : 1.50, saturation : 52000 }
+ '47' :
+ A0 : {gain : 3.5330, readNoise : 1.49, saturation : 49000 }
+ A1 : {gain : 3.5729, readNoise : 1.50, saturation : 49000 }
+ A2 : {gain : 3.4773, readNoise : 1.66, saturation : 49000 }
+ A3 : {gain : 3.5509, readNoise : 1.56, saturation : 49000 }
+ '36' :
+ A0 : {gain : 4.0693, readNoise : 1.42, saturation : 45000 }
+ A1 : {gain : 4.0580, readNoise : 1.41, saturation : 45000 }
+ A2 : {gain : 4.0932, readNoise : 1.39, saturation : 45000 }
+ A3 : {gain : 4.0788, readNoise : 1.43, saturation : 45000 }
+ '37' :
+ A0 : {gain : 3.5943, readNoise : 1.52, saturation : 49000 }
+ A1 : {gain : 3.6865, readNoise : 1.51, saturation : 49000 }
+ A2 : {gain : 3.6034, readNoise : 1.63, saturation : 49000 }
+ A3 : {gain : 3.7033, readNoise : 1.67, saturation : 49000 }
+ '38' :
+ A0 : {gain : 3.5874, readNoise : 1.49, saturation : 52500 }
+ A1 : {gain : 3.5323, readNoise : 1.53, saturation : 52500 }
+ A2 : {gain : 3.5920, readNoise : 1.60, saturation : 52500 }
+ A3 : {gain : 3.4052, readNoise : 1.74, saturation : 52500 }
+ '39' :
+ A0 : {gain : 3.5924, readNoise : 1.48, saturation : 50000 }
+ A1 : {gain : 3.7142, readNoise : 1.53, saturation : 50000 }
+ A2 : {gain : 3.6971, readNoise : 1.52, saturation : 50000 }
+ A3 : {gain : 3.6920, readNoise : 1.54, saturation : 50000 }
+ '40' :
+ A0 : {gain : 3.5169, readNoise : 1.47, saturation : 53000 }
+ A1 : {gain : 3.5761, readNoise : 1.50, saturation : 53000 }
+ A2 : {gain : 3.5784, readNoise : 1.47, saturation : 53000 }
+ A3 : {gain : 3.6089, readNoise : 1.54, saturation : 53000 }
+ '41' :
+ A0 : {gain : 3.4745, readNoise : 1.53, saturation : 52000 }
+ A1 : {gain : 3.5879, readNoise : 1.45, saturation : 52000 }
+ A2 : {gain : 3.5942, readNoise : 1.54, saturation : 52000 }
+ A3 : {gain : 3.6219, readNoise : 1.54, saturation : 52000 }
+ '32' :
+ A0 : {gain : 4.2931, readNoise : 1.52, saturation : 42000 }
+ A1 : {gain : 4.1028, readNoise : 1.56, saturation : 42000 }
+ A2 : {gain : 4.1015, readNoise : 1.46, saturation : 42000 }
+ A3 : {gain : 4.0497, readNoise : 1.53, saturation : 42000 }
+ '33' :
+ A0 : {gain : 4.0951, readNoise : 1.55, saturation : 45000 }
+ A1 : {gain : 4.2265, readNoise : 1.59, saturation : 45000 }
+ A2 : {gain : 4.2242, readNoise : 1.66, saturation : 45000 }
+ A3 : {gain : 4.1731, readNoise : 1.61, saturation : 45000 }
+ '34' :
+ A0 : {gain : 3.5503, readNoise : 1.78, saturation : 52000 }
+ A1 : {gain : 3.4786, readNoise : 1.63, saturation : 52000 }
+ A2 : {gain : 3.4501, readNoise : 1.72, saturation : 52000 }
+ A3 : {gain : 3.5623, readNoise : 1.72, saturation : 52000 }
+ '00' :
+ A0 : {gain : 4.2009, readNoise : 1.36, saturation : 44500 }
+ A1 : {gain : 4.1102, readNoise : 1.43, saturation : 44500 }
+ A2 : {gain : 4.0652, readNoise : 1.44, saturation : 44500 }
+ A3 : {gain : 4.0380, readNoise : 1.44, saturation : 44500 }
+ '01' :
+ A0 : {gain : 3.4271, readNoise : 1.65, saturation : 55000 }
+ A1 : {gain : 3.4766, readNoise : 1.68, saturation : 55000 }
+ A2 : {gain : 3.4194, readNoise : 1.97, saturation : 55000 }
+ A3 : {gain : 3.5167, readNoise : 1.99, saturation : 55000 }
+ '02' :
+ A0 : {gain : 4.2689, readNoise : 1.46, saturation : 45000 }
+ A1 : {gain : 3.9250, readNoise : 1.59, saturation : 45000 }
+ A2 : {gain : 3.9383, readNoise : 1.55, saturation : 45000 }
+ A3 : {gain : 3.9370, readNoise : 1.63, saturation : 45000 }
+ '03' :
+ A0 : {gain : 3.6933, readNoise : 1.66, saturation : 48000 }
+ A1 : {gain : 3.4925, readNoise : 1.50, saturation : 48000 }
+ A2 : {gain : 3.4640, readNoise : 1.62, saturation : 48000 }
+ A3 : {gain : 3.4893, readNoise : 1.86, saturation : 48000 }
+ '04' :
+ A0 : {gain : 3.7581, readNoise : 1.44, saturation : 48000 }
+ A1 : {gain : 3.8587, readNoise : 1.42, saturation : 48000 }
+ A2 : {gain : 3.7873, readNoise : 1.45, saturation : 48000 }
+ A3 : {gain : 3.7672, readNoise : 1.32, saturation : 48000 }
+ '05' :
+ A0 : {gain : 3.6509, readNoise : 1.52, saturation : 51000 }
+ A1 : {gain : 3.6521, readNoise : 1.66, saturation : 51000 }
+ A2 : {gain : 3.6376, readNoise : 1.78, saturation : 51000 }
+ A3 : {gain : 3.6400, readNoise : 2.24, saturation : 51000 }
+ '06' :
+ A0 : {gain : 3.5652, readNoise : 1.56, saturation : 50000 }
+ A1 : {gain : 3.6996, readNoise : 1.68, saturation : 50000 }
+ A2 : {gain : 3.6888, readNoise : 1.76, saturation : 50000 }
+ A3 : {gain : 3.6660, readNoise : 1.66, saturation : 50000 }
+ '07' :
+ A0 : {gain : 3.7531, readNoise : 1.45, saturation : 48000 }
+ A1 : {gain : 3.4899, readNoise : 1.69, saturation : 48000 }
+ A2 : {gain : 3.4376, readNoise : 1.75, saturation : 48000 }
+ A3 : {gain : 3.3731, readNoise : 2.00, saturation : 48000 }
+ '08' :
+ A0 : {gain : 3.5753, readNoise : 1.64, saturation : 49500 }
+ A1 : {gain : 3.6195, readNoise : 1.45, saturation : 49500 }
+ A2 : {gain : 3.6502, readNoise : 1.44, saturation : 49500 }
+ A3 : {gain : 3.5942, readNoise : 1.50, saturation : 49500 }
+ '09' :
+ A0 : {gain : 3.4815, readNoise : 1.54, saturation : 46000 }
+ A1 : {gain : 4.0725, readNoise : 1.51, saturation : 46000 }
+ A2 : {gain : 3.5448, readNoise : 1.56, saturation : 46000 }
+ A3 : {gain : 3.5217, readNoise : 1.76, saturation : 46000 }
+ '10' :
+ A0 : {gain : 3.6218, readNoise : 1.51, saturation : 50000 }
+ A1 : {gain : 3.3945, readNoise : 1.60, saturation : 50000 }
+ A2 : {gain : 3.4882, readNoise : 1.57, saturation : 50000 }
+ A3 : {gain : 3.5858, readNoise : 1.73, saturation : 50000 }
+ '11' :
+ A0 : {gain : 3.3674, readNoise : 1.83, saturation : 55000 }
+ A1 : {gain : 3.3472, readNoise : 1.60, saturation : 55000 }
+ A2 : {gain : 3.3710, readNoise : 1.68, saturation : 55000 }
+ A3 : {gain : 3.4040, readNoise : 1.74, saturation : 55000 }
+ '12' :
+ A0 : {gain : 3.7614, readNoise : 1.43, saturation : 46000 }
+ A1 : {gain : 3.8688, readNoise : 1.49, saturation : 46000 }
+ A2 : {gain : 3.8732, readNoise : 1.46, saturation : 46000 }
+ A3 : {gain : 3.8159, readNoise : 1.48, saturation : 46000 }
+ '13' :
+ A0 : {gain : 3.5855, readNoise : 1.51, saturation : 51000 }
+ A1 : {gain : 3.6576, readNoise : 1.54, saturation : 51000 }
+ A2 : {gain : 3.5981, readNoise : 1.61, saturation : 51000 }
+ A3 : {gain : 3.6408, readNoise : 1.72, saturation : 51000 }
+ '14' :
+ A0 : {gain : 4.0625, readNoise : 1.49, saturation : 42500 }
+ A1 : {gain : 4.2531, readNoise : 1.43, saturation : 42500 }
+ A2 : {gain : 4.4095, readNoise : 1.46, saturation : 42500 }
+ A3 : {gain : 4.1928, readNoise : 1.50, saturation : 42500 }
+ '15' :
+ A0 : {gain : 3.6964, readNoise : 1.47, saturation : 48500 }
+ A1 : {gain : 3.6477, readNoise : 1.57, saturation : 48500 }
+ A2 : {gain : 3.6157, readNoise : 1.62, saturation : 48500 }
+ A3 : {gain : 3.6935, readNoise : 1.64, saturation : 48500 }
+ '16' :
+ A0 : {gain : 3.5387, readNoise : 1.47, saturation : 51000 }
+ A1 : {gain : 3.7454, readNoise : 1.46, saturation : 51000 }
+ A2 : {gain : 3.5618, readNoise : 1.64, saturation : 51000 }
+ A3 : {gain : 3.6503, readNoise : 1.47, saturation : 51000 }
+ '17' :
+ A0 : {gain : 3.4369, readNoise : 1.58, saturation : 51500 }
+ A1 : {gain : 3.5157, readNoise : 1.64, saturation : 51500 }
+ A2 : {gain : 3.5347, readNoise : 1.79, saturation : 51500 }
+ A3 : {gain : 3.6027, readNoise : 1.91, saturation : 51500 }
+ '18' :
+ A0 : {gain : 3.6806, readNoise : 1.51, saturation : 49000 }
+ A1 : {gain : 3.4790, readNoise : 1.62, saturation : 49000 }
+ A2 : {gain : 3.5373, readNoise : 1.73, saturation : 49000 }
+ A3 : {gain : 3.4512, readNoise : 1.84, saturation : 49000 }
+ '19' :
+ A0 : {gain : 3.4316, readNoise : 1.56, saturation : 53000 }
+ A1 : {gain : 3.3752, readNoise : 1.63, saturation : 53000 }
+ A2 : {gain : 3.3773, readNoise : 1.86, saturation : 53000 }
+ A3 : {gain : 3.3953, readNoise : 1.99, saturation : 53000 }
+ '20' :
+ A0 : {gain : 3.5527, readNoise : 1.41, saturation : 46000 }
+ A1 : {gain : 3.6236, readNoise : 1.46, saturation : 46000 }
+ A2 : {gain : 3.5445, readNoise : 1.47, saturation : 46000 }
+ A3 : {gain : 3.7014, readNoise : 1.43, saturation : 46000 }
+ '21' :
+ A0 : {gain : 3.7645, readNoise : 1.53, saturation : 48000 }
+ A1 : {gain : 3.4889, readNoise : 1.58, saturation : 48000 }
+ A2 : {gain : 3.4623, readNoise : 1.72, saturation : 48000 }
+ A3 : {gain : 3.5169, readNoise : 1.75, saturation : 48000 }
+ '22' :
+ A0 : {gain : 3.5799, readNoise : 1.51, saturation : 51000 }
+ A1 : {gain : 3.5371, readNoise : 1.60, saturation : 51000 }
+ A2 : {gain : 3.5079, readNoise : 1.70, saturation : 51000 }
+ A3 : {gain : 3.5179, readNoise : 1.72, saturation : 51000 }
+ '23' :
+ A0 : {gain : 4.2310, readNoise : 1.41, saturation : 43000 }
+ A1 : {gain : 4.0347, readNoise : 1.52, saturation : 45000 }
+ A2 : {gain : 4.0239, readNoise : 1.61, saturation : 45000 }
+ A3 : {gain : 3.9215, readNoise : 1.75, saturation : 46000 }
+ '24' :
+ A0 : {gain : 3.6479, readNoise : 1.41, saturation : 49000 }
+ A1 : {gain : 3.5397, readNoise : 1.41, saturation : 49000 }
+ A2 : {gain : 3.4948, readNoise : 1.43, saturation : 49000 }
+ A3 : {gain : 3.4321, readNoise : 1.39, saturation : 49000 }
+ '25' :
+ A0 : {gain : 4.5439, readNoise : 1.46, saturation : 41500 }
+ A1 : {gain : 3.5370, readNoise : 1.66, saturation : 51000 }
+ A2 : {gain : 3.5125, readNoise : 1.76, saturation : 51000 }
+ A3 : {gain : 3.4109, readNoise : 1.65, saturation : 51000 }
+ '26' :
+ A0 : {gain : 3.5270, readNoise : 1.55, saturation : 53000 }
+ A1 : {gain : 3.5171, readNoise : 1.65, saturation : 53000 }
+ A2 : {gain : 3.4995, readNoise : 1.73, saturation : 52000 }
+ A3 : {gain : 3.3932, readNoise : 1.77, saturation : 55000 }
+ '27' :
+ A0 : {gain : 3.4713, readNoise : 1.52, saturation : 51000 }
+ A1 : {gain : 3.2932, readNoise : 1.58, saturation : 51000 }
+ A2 : {gain : 3.2263, readNoise : 1.71, saturation : 51000 }
+ A3 : {gain : 3.3141, readNoise : 1.85, saturation : 51000 }
+ '28' :
+ A0 : {gain : 3.6487, readNoise : 1.42, saturation : 50000 }
+ A1 : {gain : 3.3490, readNoise : 1.53, saturation : 50000 }
+ A2 : {gain : 3.4109, readNoise : 1.52, saturation : 50000 }
+ A3 : {gain : 3.3182, readNoise : 1.52, saturation : 50000 }
+ '29' :
+ A0 : {gain : 3.5249, readNoise : 1.52, saturation : 50000 }
+ A1 : {gain : 3.5415, readNoise : 1.72, saturation : 50000 }
+ A2 : {gain : 3.4576, readNoise : 1.82, saturation : 50000 }
+ A3 : {gain : 3.5624, readNoise : 1.80, saturation : 50000 }
+ '30' :
+ A0 : {gain : 3.4981, readNoise : 1.55, saturation : 51000 }
+ A1 : {gain : 3.4080, readNoise : 1.69, saturation : 51000 }
+ A2 : {gain : 3.4147, readNoise : 1.74, saturation : 51000 }
+ A3 : {gain : 3.3761, readNoise : 1.79, saturation : 51000 }
+ '35' :
+ A0 : {gain : 3.5469, readNoise : 1.79, saturation : 49000 }
+ A1 : {gain : 3.5384, readNoise : 1.72, saturation : 49000 }
+ A2 : {gain : 3.6006, readNoise : 1.68, saturation : 49000 }
+ A3 : {gain : 3.6291, readNoise : 1.63, saturation : 47000 }
+ '31' :
+ A0 : {gain : 3.5869, readNoise : 1.89, saturation : 48000 }
+ A1 : {gain : 3.5360, readNoise : 1.84, saturation : 48000 }
+ A2 : {gain : 3.6423, readNoise : 1.58, saturation : 48000 }
+ A3 : {gain : 3.5520, readNoise : 1.52, saturation : 48000 }
+ '48' :
+ A0 : {gain : 3.1296, readNoise : 1.62, saturation : 55000 }
+ A1 : {gain : 3.3026, readNoise : 1.46, saturation : 55000 }
+ A2 : {gain : 3.3817, readNoise : 1.51, saturation : 55000 }
+ A3 : {gain : 3.5192, readNoise : 1.51, saturation : 55000 }
+ '51' :
+ A0 : {gain : 3.3609, readNoise : 1.67, saturation : 55000 }
+ A1 : {gain : 3.4082, readNoise : 1.84, saturation : 55000 }
+ A2 : {gain : 3.4134, readNoise : 2.37, saturation : 55000 }
+ A3 : {gain : 3.5023, readNoise : 2.42, saturation : 55000 }
+ '52' :
+ A0 : {gain : 3.3195, readNoise : 1.44, saturation : 55000 }
+ A1 : {gain : 3.4867, readNoise : 1.50, saturation : 55000 }
+ A2 : {gain : 3.4577, readNoise : 1.43, saturation : 55000 }
+ A3 : {gain : 3.4673, readNoise : 1.49, saturation : 55000 }
+ '57' :
+ A0 : {gain : 3.3170, readNoise : 1.47, saturation : 55000 }
+ A1 : {gain : 3.2255, readNoise : 1.55, saturation : 55000 }
+ A2 : {gain : 3.2903, readNoise : 1.64, saturation : 55000 }
+ A3 : {gain : 3.3406, readNoise : 1.57, saturation : 55000 }
diff --git a/policy/SConscript b/policy/SConscript
new file mode 100644
index 00000000..67cef155
--- /dev/null
+++ b/policy/SConscript
@@ -0,0 +1,40 @@
+# -*- python -*-
+
+import lsst.utils
+import lsst.sconsUtils
+import glob
+import os
+
+# scons steals our environment away, so we have to reinstate it
+env = lsst.sconsUtils.env.Clone()
+for name in ("PYTHONPATH", "LD_LIBRARY_PATH",
+ "DYLD_LIBRARY_PATH", "PATH"):
+ if name in os.environ:
+ env.AppendENVPath(name, os.environ[name])
+
+# we may need an explicit library load path specified in the command
+libpathstr = lsst.sconsUtils.utils.libraryLoaderEnvironment()
+
+# hack: use the version from obs_lsst for now
+obsLsst = lsst.utils.getPackageDir("obs_lsst")
+
+# We always run these commands with an explicit python rather than relying on the shebang
+python = "{} python".format(libpathstr)
+
+for camera in ["hsc"]:
+ # Invoke the bin.src variant so that we do not depend on the shebang
+ # target having been run
+ commandInst = env.Command(f"{camera}.yaml", "",
+ f"{python} {obsLsst}/bin.src/generateCamera.py --path {camera}:. $TARGET")
+
+ env.Depends(commandInst, lsst.sconsUtils.targets["python"])
+ dirList = []
+ if os.path.isdir(camera):
+ dirList.append(camera)
+
+ for d in dirList:
+ for f in glob.glob(os.path.join(d, "*.yaml")):
+ env.Depends(commandInst, f)
+
+ for f in ["cameraHeader.yaml", "cameraTransforms.yaml", "rafts.yaml", env.Glob(f"R[01].yaml")]:
+ env.Depends(commandInst, f)
diff --git a/policy/cameraHeader.yaml b/policy/cameraHeader.yaml
new file mode 100644
index 00000000..2db98323
--- /dev/null
+++ b/policy/cameraHeader.yaml
@@ -0,0 +1,324 @@
+# This file is part of obs_subaru.
+#
+# Developed for the LSST Data Management System.
+# This product includes software developed by the LSST Project
+# (http://www.lsst.org).
+# See the COPYRIGHT file at the top-level directory of this distribution
+# for details of code ownership.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the LSST License Statement and
+# the GNU General Public License along with this program. If not,
+# see .
+#
+#
+--- # hsc
+#
+
+name : "hsc"
+
+#
+# A single amplifier
+#
+AMP : &
+ perAmpData : False
+ # trimmed
+ dataExtent : [512, 4176]
+ readCorner : LL
+ # [[x0, y0], [xsize, ysize]]
+ rawBBox : [[0, 0], [536, 4241]] # total size of one amp's raw data
+
+ rawDataBBox : [[8, 49], [512, 4176]] # data region in raw data
+ rawSerialPrescanBBox : [[0, 49], [8, 4176]] # serial prescan (often == extended)
+ rawSerialOverscanBBox : [[520, 49], [16, 4176]] # serial overscan
+ rawParallelPrescanBBox : [[0, 0], [536, 49]] # pixels before first usable parallel transfer
+ rawParallelOverscanBBox : [[8, 4225], [512, 16]] # parallel overscan
+
+ saturation : 43000 # saturation level, DN XXX Should this be in electrons?
+
+ # Linearity correction is still under discussion, so this is a placeholder.
+ linearityType : SQUARED
+ linearityThreshold : 0
+ linearityMax : 43000 # == saturation
+ linearityCoeffs : [0, 43000] # == [linearityThreshold, linearityMax]
+
+#
+# A single CCD
+#
+CCD_HAMAMATSU : &CCD
+ detectorType : 0
+ refpos : [1023.5, 2087.5]
+ offset : [.nan, .nan]
+ # This is the orientation we need to put the serial direction along the x-axis
+ bbox : [[0, 0], [2047, 4175]] # [llc, urc] -- sorry; different convention from e.g. rawDataBBox
+ pixelSize : [0.015, 0.015] # in mm
+ transformDict : {nativeSys : 'Pixels', transforms : None}
+ transposeDetector : False
+ pitch : 0.0 # (degrees)
+ yaw : 0.0 # rotation in plane of camera (degrees)
+ roll : 0.0 # (degrees)
+
+ amplifiers:
+ A0: &A0_HAMAMATSU
+ <<: *AMP
+ hdu : 0 # used to sort the amps
+ flipXY : [False, False]
+ controllerFlipXY : [False, False]
+ readCorner : LL
+ ixy : [0, 0]
+ A1: &A1_HAMAMATSU
+ <<: *A0_HAMAMATSU
+ hdu : 1
+ #flipXY : [True, False]
+ controllerFlipXY : [True, False]
+ readCorner : LR
+ ixy : [1, 0]
+ A2: &A2_HAMAMATSU
+ <<: *A0_HAMAMATSU
+ hdu : 2
+ ixy : [2, 0]
+ A3: &A3_HAMAMATSU
+ <<: *A1_HAMAMATSU
+ hdu : 3
+ ixy : [3, 0]
+
+#
+# Layout of CCDs within a raft
+#
+RAFT_HAMAMATSU:
+ ccds :
+ '00' : &00_HAMAMATSU
+ << : *CCD
+ offset : [-95.6, -31.9]
+
+ '01' : &01_HAMAMATSU
+ << : *CCD
+ offset : [-95.5, -99.0]
+
+ '02' : &02_HAMAMATSU
+ << : *CCD
+ offset : [-95.6, -166.2]
+
+ '03' : &03_HAMAMATSU
+ << : *CCD
+ offset : [-95.6, -233.3]
+
+ '04' : &04_HAMAMATSU
+ << : *CCD
+ offset : [-63.7, -31.9]
+
+ '05' : &05_HAMAMATSU
+ << : *CCD
+ offset : [-63.7, -99.0]
+
+ '06' : &06_HAMAMATSU
+ << : *CCD
+ offset : [-63.7, -166.2]
+
+ '07' : &07_HAMAMATSU
+ << : *CCD
+ offset : [-63.7, -233.3]
+
+ '08' : &08_HAMAMATSU
+ << : *CCD
+ offset : [-31.9, -31.9]
+
+ '09' : &09_HAMAMATSU
+ << : *CCD
+ offset : [-31.8, -99.0]
+
+ '10' : &10_HAMAMATSU
+ << : *CCD
+ offset : [-31.9, -166.2]
+
+ '11' : &11_HAMAMATSU
+ << : *CCD
+ offset : [-31.9, -233.3]
+
+ '12' : &12_HAMAMATSU
+ << : *CCD
+ offset : [-0.0, -31.9]
+
+ '13' : &13_HAMAMATSU
+ << : *CCD
+ offset : [-0.0, -99.0]
+
+ '14' : &14_HAMAMATSU
+ << : *CCD
+ offset : [-0.0, -166.2]
+
+ '15' : &15_HAMAMATSU
+ << : *CCD
+ offset : [-0.0, -233.3]
+
+ '16' : &16_HAMAMATSU
+ << : *CCD
+ offset : [31.8, -31.9]
+
+ '17' : &17_HAMAMATSU
+ << : *CCD
+ offset : [31.8, -99.0]
+
+ '18' : &18_HAMAMATSU
+ << : *CCD
+ offset : [31.8, -166.2]
+
+ '19' : &19_HAMAMATSU
+ << : *CCD
+ offset : [31.8, -233.3]
+
+ '20' : &20_HAMAMATSU
+ << : *CCD
+ offset : [63.7, -31.9]
+
+ '21' : &21_HAMAMATSU
+ << : *CCD
+ offset : [63.7, -99.1]
+
+ '22' : &22_HAMAMATSU
+ << : *CCD
+ offset : [63.7, -166.2]
+
+ '23' : &23_HAMAMATSU
+ << : *CCD
+ offset : [63.7, -233.3]
+
+ '24' : &24_HAMAMATSU
+ << : *CCD
+ offset : [95.5, -31.9]
+
+ '25' : &25_HAMAMATSU
+ << : *CCD
+ offset : [95.5, -99.0]
+
+ '26' : &26_HAMAMATSU
+ << : *CCD
+ offset : [95.5, -166.2]
+
+ '27' : &27_HAMAMATSU
+ << : *CCD
+ offset : [95.5, -233.3]
+
+ '28' : &28_HAMAMATSU
+ << : *CCD
+ offset : [127.4, -31.9]
+
+ '29' : &29_HAMAMATSU
+ << : *CCD
+ offset : [127.4, -99.0]
+
+ '30' : &30_HAMAMATSU
+ << : *CCD
+ offset : [127.4, -166.2]
+
+ '31' : &31_HAMAMATSU
+ << : *CCD
+ offset : [143.8, -217.3]
+ yaw : 270
+
+ '32' : &32_HAMAMATSU
+ << : *CCD
+ offset : [-127.4, -31.9]
+
+ '33' : &33_HAMAMATSU
+ << : *CCD
+ offset : [-127.4, -99.0]
+
+ '34' : &34_HAMAMATSU
+ << : *CCD
+ offset : [-127.4, -166.2]
+
+ '35' : &35_HAMAMATSU
+ << : *CCD
+ offset : [-143.9, -217.4]
+ yaw : 90
+
+ '36' : &36_HAMAMATSU
+ << : *CCD
+ offset : [-159.2, 169.6]
+
+ '37' : &37_HAMAMATSU
+ << : *CCD
+ offset : [-159.2, 102.4]
+
+ '38' : &38_HAMAMATSU
+ << : *CCD
+ offset : [-159.2, 35.2]
+
+ '39' : &39_HAMAMATSU
+ << : *CCD
+ offset : [-159.2, -31.9]
+
+ '40' : &40_HAMAMATSU
+ << : *CCD
+ offset : [-159.2, -99.0]
+
+ '41' : &41_HAMAMATSU
+ << : *CCD
+ offset : [-159.2, -166.2]
+
+ '42' : &42_HAMAMATSU
+ << : *CCD
+ offset : [-191.0, 169.6]
+
+ '43' : &43_HAMAMATSU
+ << : *CCD
+ offset : [-191.1, 102.4]
+
+ '44' : &44_HAMAMATSU
+ << : *CCD
+ offset : [-191.1, 35.3]
+
+ '45' : &45_HAMAMATSU
+ << : *CCD
+ offset : [-191.1, -31.8]
+
+ '46' : &46_HAMAMATSU
+ << : *CCD
+ offset : [-191.1, -99.0]
+
+ '47' : &47_HAMAMATSU
+ << : *CCD
+ offset : [-191.1, -166.1]
+
+ '48' : &48_HAMAMATSU
+ << : *CCD
+ offset : [-254.8, 99.7]
+
+ '51' : &51_HAMAMATSU
+ << : *CCD
+ offset : [-254.8, -99.7]
+
+ '52' : &52_HAMAMATSU
+ << : *CCD
+ offset : [-222.9, 166.7]
+
+ '53' : &53_HAMAMATSU
+ << : *CCD
+ offset : [-222.9, 102.4]
+
+ '54' : &54_HAMAMATSU
+ << : *CCD
+ offset : [-222.9, 35.3]
+
+ '55' : &55_HAMAMATSU
+ << : *CCD
+ offset : [-222.9, -31.9]
+
+ '56' : &56_HAMAMATSU
+ << : *CCD
+ offset : [-222.9, -99.0]
+
+ '57' : &57_HAMAMATSU
+ << : *CCD
+ offset : [-222.9, -166.7]
+
diff --git a/policy/cameraTransforms.yaml b/policy/cameraTransforms.yaml
new file mode 100644
index 00000000..c71e90e5
--- /dev/null
+++ b/policy/cameraTransforms.yaml
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+# This file is part of obs_lsst.
+#
+# Developed for the LSST Data Management System.
+# This product includes software developed by the LSST Project
+# (http://www.lsst.org).
+# See the COPYRIGHT file at the top-level directory of this distribution
+# for details of code ownership.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the LSST License Statement and
+# the GNU General Public License along with this program. If not,
+# see .
+#
+--- # lsstCam
+
+#
+# Provide transformations *from* the nativeSys *to* the specified system (e.g. FieldAngle)
+#
+plateScale : 11.20 # plate scale, in arcseconds on sky/mm
+
+transforms :
+ nativeSys : FocalPlane
+
+ #FocalPlane :
+ # transformType : affine
+ # translation : [0.0, 0.0]
+ # linear : [[1.0, 0.0], [0.0, 1.0]]
+
+ FieldAngle :
+ transformType : radial
+ coeffs : [0.0, 1.0, 0.0] # radial distortion coefficients (c_0 + c_1 r + c_2 r^2 + ...)
diff --git a/policy/ccdData.yaml b/policy/ccdData.yaml
new file mode 100644
index 00000000..9ec5235e
--- /dev/null
+++ b/policy/ccdData.yaml
@@ -0,0 +1,2 @@
+crosstalk :
+ None : None
diff --git a/policy/rafts.yaml b/policy/rafts.yaml
new file mode 100644
index 00000000..6b176b44
--- /dev/null
+++ b/policy/rafts.yaml
@@ -0,0 +1,126 @@
+#
+# A list of all the rafts in the camera
+#
+rafts :
+ '0' :
+ offset : [0.00, 0.30] # offset of centre of raft, mm
+ yaw : 0.0 # rotation of raft about centre, degrees
+ detectorIds :
+ '30' : 16
+ '29' : 17
+ '28' : 18
+ '27' : 22
+ '26' : 23
+ '25' : 24
+ '24' : 25
+ '23' : 30
+ '22' : 31
+ '21' : 32
+ '20' : 33
+ '19' : 38
+ '18' : 39
+ '17' : 40
+ '16' : 41
+ '15' : 46
+ '14' : 47
+ '13' : 48
+ '12' : 49
+ '11' : 54
+ '10' : 55
+ '09' : 56
+ '08' : 57
+ '07' : 62
+ '06' : 63
+ '05' : 64
+ '04' : 65
+ '03' : 70
+ '02' : 71
+ '01' : 72
+ '00' : 73
+ '34' : 78
+ '33' : 79
+ '32' : 80
+ '41' : 84
+ '40' : 85
+ '39' : 86
+ '38' : 87
+ '37' : 88
+ '36' : 89
+ '47' : 90
+ '46' : 91
+ '45' : 92
+ '44' : 93
+ '43' : 94
+ '42' : 95
+ '56' : 96
+ '55' : 97
+ '54' : 98
+ '53' : 99
+ '31' : 100
+ '35' : 102
+ '57' : 108
+ '52' : 109
+ '51' : 110
+ '48' : 111
+
+ '1' :
+ offset : [0.00, -0.30] # offset of centre of raft, mm
+ yaw : 180.0 # rotation of raft about centre, degrees
+ detectorIds :
+ '53' : 0
+ '54' : 1
+ '55' : 2
+ '56' : 3
+ '42' : 4
+ '43' : 5
+ '44' : 6
+ '45' : 7
+ '46' : 8
+ '47' : 9
+ '36' : 10
+ '37' : 11
+ '38' : 12
+ '39' : 13
+ '40' : 14
+ '41' : 15
+ '32' : 19
+ '33' : 20
+ '34' : 21
+ '00' : 26
+ '01' : 27
+ '02' : 28
+ '03' : 29
+ '04' : 34
+ '05' : 35
+ '06' : 36
+ '07' : 37
+ '08' : 42
+ '09' : 43
+ '10' : 44
+ '11' : 45
+ '12' : 50
+ '13' : 51
+ '14' : 52
+ '15' : 53
+ '16' : 58
+ '17' : 59
+ '18' : 60
+ '19' : 61
+ '20' : 66
+ '21' : 67
+ '22' : 68
+ '23' : 69
+ '24' : 74
+ '25' : 75
+ '26' : 76
+ '27' : 77
+ '28' : 81
+ '29' : 82
+ '30' : 83
+ '35' : 101
+ '31' : 103
+ '48' : 104
+ '51' : 105
+ '52' : 106
+ '57' : 107
+