|
@@ -3305,6 +3305,782 @@ void IWave::geoeye1(int iwa)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void IWave::spot6(int iwa)
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+ /* Spot6 Blue of spot6 */
|
|
|
|
+ static const float sr1[241] = {
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0002, .0002, .0005, .0012, .0022, .0039, .0084,
|
|
|
|
+ .0182, .0319, .0680, .1467, .2649, .4506, .6147, .7798,
|
|
|
|
+ .8575, .8527, .8532, .8547, .8756, .9153, .9331, .9370,
|
|
|
|
+ .9338, .9225, .9209, .9396, .9636, .9747, .9664, .9522,
|
|
|
|
+ .9582, .9861, 1.0000, .9973, .9840, .9234, .8339, .6537,
|
|
|
|
+ .4313, .2393, .1046, .0502, .0279, .0156, .0081, .0049,
|
|
|
|
+ .0033, .0024, .0017, .0012, .0009, .0006, .0005, .0005,
|
|
|
|
+ .0004, .0004, .0003, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0002, .0002, .0002, .0002, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0002, .0002, .0002, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0002, .0002,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0002, .0002, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* spot6 Green of spot6 */
|
|
|
|
+ static const float sr2[241] = {
|
|
|
|
+ .0000, .0000, .0000, .0000, .0001, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0001, .0001, .0001, .0001, .0002, .0003,
|
|
|
|
+ .0004, .0006, .0010, .0019, .0033, .0061, .0127, .0313,
|
|
|
|
+ .0704, .1541, .3075, .5195, .7467, .9229, 1.0057, 1.0230,
|
|
|
|
+ 1.0212, 1.0164, 1.0096, 1.0029, .9996, 1.0026, 1.0091, 1.0100,
|
|
|
|
+ .9990, .9815, .9702, .9709, .9807, .9944, .9991, .9871,
|
|
|
|
+ .9639, .8850, .7236, .5325, .2984, .1244, .0510, .0246,
|
|
|
|
+ .0118, .0055, .0025, .0013, .0008, .0006, .0004, .0003,
|
|
|
|
+ .0002, .0002, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0001, .0001, .0000, .0000,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* spot6 Red of spot6 */
|
|
|
|
+ static const float sr3[241] = {
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0001, .0001, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0001, .0001, .0000,
|
|
|
|
+ .0001, .0001, .0001, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0001, .0001, .0001, .0002, .0003, .0004, .0005, .0006,
|
|
|
|
+ .0009, .0016, .0031, .0065, .0125, .0222, .0387, .0747,
|
|
|
|
+ .1634, .3494, .5463, .7600, .9267, .9767, .9951, .9979,
|
|
|
|
+ .9662, .9217, .8987, .9033, .9255, .9573, .9887, 1.0107,
|
|
|
|
+ 1.0137, .9960, .9674, .9391, .9198, .9138, .9211, .9366,
|
|
|
|
+ .9466, .9308, .8765, .7978, .6985, .5868, .4715, .3531,
|
|
|
|
+ .2351, .1401, .0776, .0416, .0206, .0098, .0045, .0023,
|
|
|
|
+ .0013, .0008, .0005, .0005, .0004, .0003, .0003, .0002,
|
|
|
|
+ .0001, .0001, .0000, .0000, .0000, .0000, .0001, .0001,
|
|
|
|
+ .0001, .0002, .0001, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* spot6 NIR of spot6 */
|
|
|
|
+ static const float sr4[241] = {
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0008, .0008, .0010, .0000, .0000,
|
|
|
|
+ .0000, .0001, .0001, .0001, .0001, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0001, .0001, .0001, .0001, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0001,
|
|
|
|
+ .0001, .0002, .0002, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0002, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0003, .0003, .0003, .0003, .0003, .0004,
|
|
|
|
+ .0005, .0006, .0006, .0004, .0003, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0002, .0002, .0003, .0004, .0005,
|
|
|
|
+ .0007, .0010, .0014, .0019, .0028, .0042, .0065, .0104,
|
|
|
|
+ .0170, .0290, .0496, .0862, .1462, .2549, .3877, .5465,
|
|
|
|
+ .7084, .8466, .9436, .9893, 1.0000, .9932, .9834, .9753,
|
|
|
|
+ .9694, .9633, .9552, .9448, .9330, .9201, .9087, .8988,
|
|
|
|
+ .8904, .8829, .8749, .8643, .8520, .8377, .8224, .8081,
|
|
|
|
+ .7954, .7842, .7751, .7670, .7592, .7514, .7431, .7336,
|
|
|
|
+ .7233, .7118, .6987, .6841, .6699, .6567, .6454, .6366,
|
|
|
|
+ .6299, .6230, .6150, .6053, .5943, .5805, .5570, .5102,
|
|
|
|
+ .4427, .3607, .2673, .1717, .0941, .0480, .0243, .0132,
|
|
|
|
+ .0074, .0046, .0029, .0020, .0014, .0011, .0008, .0007,
|
|
|
|
+ .0006, .0005, .0004, .0003, .0003, .0002, .0002, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* spot6 Pan of spot6 */
|
|
|
|
+ static const float sr5[241] = {
|
|
|
|
+ .0001, .0001, .0001, .0001, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0003, .0004, .0007, .0010, .0017, .0036, .0066, .0105,
|
|
|
|
+ .0161, .0327, .0717, .1335, .2227, .3529, .5156, .6744,
|
|
|
|
+ .7759, .8080, .8143, .8112, .8188, .8450, .8704, .8801,
|
|
|
|
+ .8818, .8903, .9054, .9170, .9198, .9199, .9258, .9378,
|
|
|
|
+ .9461, .9454, .9412, .9432, .9542, .9668, .9732, .9716,
|
|
|
|
+ .9700, .9751, .9831, .9870, .9830, .9731, .9665, .9703,
|
|
|
|
+ .9820, .9939, .9973, .9903, .9797, .9738, .9773, .9886,
|
|
|
|
+ .9989, 1.0017, .9947, .9834, .9750, .9752, .9831, .9934,
|
|
|
|
+ .9995, .9972, .9883, .9779, .9716, .9725, .9790, .9867,
|
|
|
|
+ .9906, .9880, .9807, .9719, .9663, .9660, .9693, .9736,
|
|
|
|
+ .9754, .9719, .9638, .9531, .9437, .9383, .9375, .9407,
|
|
|
|
+ .9449, .9469, .9449, .9373, .9260, .9148, .9056, .9009,
|
|
|
|
+ .9006, .9039, .9079, .9100, .9088, .9026, .8936, .8832,
|
|
|
|
+ .8737, .8675, .8649, .8644, .8650, .8654, .8633, .8590,
|
|
|
|
+ .8522, .8434, .8344, .8267, .8205, .8160, .8128, .8096,
|
|
|
|
+ .8061, .7995, .7908, .7812, .7707, .7633, .7544, .7290,
|
|
|
|
+ .6647, .5549, .4157, .2694, .1503, .0778, .0392, .0209,
|
|
|
|
+ .0115, .0067, .0044, .0026, .0017, .0011, .0008, .0006,
|
|
|
|
+ .0004, .0003, .0003, .0002, .0002, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ static const float wli[5] = {0.400, 0.400, 0.400, 0.400, 0.400};
|
|
|
|
+ static const float wls[5] = {1.000, 1.000, 1.000, 1.000, 1.000};
|
|
|
|
+
|
|
|
|
+ ffu.wlinf = (float)wli[iwa-1];
|
|
|
|
+ ffu.wlsup = (float)wls[iwa-1];
|
|
|
|
+
|
|
|
|
+ int i;
|
|
|
|
+ for(i = 0; i < 1501; i++) ffu.s[i] = 0;
|
|
|
|
+
|
|
|
|
+ switch(iwa)
|
|
|
|
+ {
|
|
|
|
+ case 1: for(i = 0; i < 241; i++) ffu.s[60+i] = sr1[i];
|
|
|
|
+ break;
|
|
|
|
+ case 2: for(i = 0; i < 241; i++) ffu.s[60+i] = sr2[i];
|
|
|
|
+ break;
|
|
|
|
+ case 3: for(i = 0; i < 241; i++) ffu.s[60+i] = sr3[i];
|
|
|
|
+ break;
|
|
|
|
+ case 4: for(i = 0; i < 241; i++) ffu.s[60+i] = sr4[i];
|
|
|
|
+ break;
|
|
|
|
+ case 5: for(i = 0; i < 241; i++) ffu.s[60+i] = sr5[i];
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* Following filter function created using create_iwave.py */
|
|
|
|
+
|
|
|
|
+void IWave::spot7(int iwa)
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+ /* spot7 Blue of spot7 */
|
|
|
|
+ static const float sr1[241] = {
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0002, .0004, .0007,
|
|
|
|
+ .0014, .0036, .0145, .0771, .2058, .3851, .5883, .7118,
|
|
|
|
+ .7732, .8001, .8134, .8290, .8540, .8798, .8934, .9007,
|
|
|
|
+ .9104, .9133, .9290, .9436, .9534, .9595, .9525, .9394,
|
|
|
|
+ .9498, .9599, .9648, .9754, .9792, .9920, 1.0000, .9602,
|
|
|
|
+ .8198, .6370, .4136, .1930, .0761, .0275, .0075, .0037,
|
|
|
|
+ .0029, .0021, .0007, .0003, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0003, .0003, .0003, .0003, .0003, .0003, .0003, .0003,
|
|
|
|
+ .0003, .0003, .0003, .0003, .0003, .0003, .0003, .0003,
|
|
|
|
+ .0003, .0003, .0003, .0003, .0003, .0003, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0003, .0003, .0003, .0003, .0003, .0003,
|
|
|
|
+ .0002, .0002, .0002, .0002, .0003, .0003, .0003, .0005,
|
|
|
|
+ .0007, .0013, .0010, .0004, .0003, .0015, .0014, .0046,
|
|
|
|
+ .0036, .0034, .0002, .0011, .0031, .0034, .0041, .0024,
|
|
|
|
+ .0014, .0004, .0004, .0005, .0003, .0004, .0002, .0002,
|
|
|
|
+ .0003, .0002, .0002, .0002, .0002, .0001, .0002, .0001,
|
|
|
|
+ .0002, .0001, .0002, .0002, .0002, .0001, .0002, .0002,
|
|
|
|
+ .0003, .0004, .0003, .0003, .0001, .0002, .0001, .0001,
|
|
|
|
+ .0001, .0002, .0001, .0001, .0000, .0001, .0000, .0001,
|
|
|
|
+ .0000, .0001, .0002, .0002, .0001, .0002, .0002, .0002,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0002, .0002, .0003, .0004, .0004,
|
|
|
|
+ .0005, .0005, .0005, .0005, .0005, .0005, .0005, .0005,
|
|
|
|
+ .0005, .0004, .0004, .0005, .0006, .0006, .0008, .0015,
|
|
|
|
+ .0021, .0020, .0022, .0019, .0018, .0014, .0013, .0011,
|
|
|
|
+ .0009, .0008, .0008, .0007, .0008, .0009, .0011, .0012,
|
|
|
|
+ .0012, .0022, .0021, .0027, .0028, .0021, .0021, .0009,
|
|
|
|
+ .0008, .0003, .0002, .0001, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* spot7 Green of spot7 */
|
|
|
|
+ static const float sr2[241] = {
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0001, .0001, .0002, .0004, .0007,
|
|
|
|
+ .0019, .0051, .0154, .0747, .2220, .4198, .6371, .7791,
|
|
|
|
+ .8264, .8142, .8193, .8678, .9098, .9331, .9473, .9534,
|
|
|
|
+ .9543, .9588, .9665, .9740, .9853, .9949, .9985, .9979,
|
|
|
|
+ .9994, .9992, .9761, .9071, .8632, .7668, .6158, .5032,
|
|
|
|
+ .3340, .1427, .0470, .0192, .0085, .0037, .0014, .0007,
|
|
|
|
+ .0004, .0002, .0001, .0000, .0000, .0000, .0001, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0001, .0001, .0003,
|
|
|
|
+ .0004, .0003, .0001, .0001, .0002, .0001, .0002, .0002,
|
|
|
|
+ .0002, .0000, .0000, .0000, .0000, .0001, .0001, .0001,
|
|
|
|
+ .0002, .0002, .0002, .0003, .0003, .0002, .0002, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0002, .0003, .0004, .0006, .0008, .0008,
|
|
|
|
+ .0008, .0007, .0006, .0003, .0003, .0003, .0003, .0003,
|
|
|
|
+ .0003, .0002, .0001, .0001, .0001, .0002, .0003, .0004,
|
|
|
|
+ .0005, .0005, .0005, .0006, .0004, .0004, .0002, .0002,
|
|
|
|
+ .0002, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* spot7 Red of spot7 */
|
|
|
|
+ static const float sr3[241] = {
|
|
|
|
+ .0001, .0001, .0001, .0002, .0002, .0002, .0006, .0033,
|
|
|
|
+ .0059, .0064, .0040, .0009, .0013, .0016, .0013, .0009,
|
|
|
|
+ .0011, .0013, .0012, .0012, .0012, .0013, .0015, .0010,
|
|
|
|
+ .0008, .0011, .0013, .0012, .0012, .0008, .0008, .0009,
|
|
|
|
+ .0010, .0009, .0008, .0007, .0006, .0007, .0007, .0008,
|
|
|
|
+ .0009, .0008, .0008, .0008, .0008, .0009, .0009, .0009,
|
|
|
|
+ .0009, .0008, .0008, .0008, .0008, .0009, .0011, .0011,
|
|
|
|
+ .0011, .0009, .0008, .0007, .0008, .0008, .0008, .0010,
|
|
|
|
+ .0011, .0013, .0011, .0010, .0008, .0007, .0008, .0008,
|
|
|
|
+ .0008, .0009, .0014, .0024, .0029, .0031, .0026, .0019,
|
|
|
|
+ .0019, .0027, .0045, .0078, .0140, .0292, .0802, .1791,
|
|
|
|
+ .2523, .3239, .3762, .3703, .3855, .4631, .5767, .6899,
|
|
|
|
+ .7903, .8963, .9694, .9814, .9837, .9964, .9995, .9920,
|
|
|
|
+ .9851, .9778, .9612, .9341, .9075, .8951, .9035, .9239,
|
|
|
|
+ .9382, .9348, .9219, .9104, .9044, .8952, .8624, .7922,
|
|
|
|
+ .6672, .5121, .3598, .2257, .1290, .0793, .0577, .0468,
|
|
|
|
+ .0390, .0318, .0232, .0138, .0070, .0040, .0028, .0025,
|
|
|
|
+ .0026, .0028, .0027, .0027, .0024, .0019, .0015, .0016,
|
|
|
|
+ .0019, .0017, .0019, .0018, .0013, .0009, .0008, .0008,
|
|
|
|
+ .0008, .0008, .0008, .0010, .0007, .0010, .0011, .0015,
|
|
|
|
+ .0014, .0016, .0016, .0015, .0014, .0012, .0011, .0008,
|
|
|
|
+ .0009, .0008, .0007, .0007, .0005, .0006, .0005, .0005,
|
|
|
|
+ .0007, .0006, .0005, .0004, .0005, .0011, .0016, .0017,
|
|
|
|
+ .0016, .0019, .0018, .0013, .0013, .0006, .0003, .0003,
|
|
|
|
+ .0002, .0004, .0004, .0004, .0003, .0004, .0006, .0008,
|
|
|
|
+ .0010, .0012, .0013, .0013, .0015, .0015, .0014, .0011,
|
|
|
|
+ .0011, .0017, .0026, .0033, .0026, .0032, .0044, .0040,
|
|
|
|
+ .0028, .0021, .0010, .0009, .0006, .0006, .0004, .0004,
|
|
|
|
+ .0003, .0003, .0003, .0002, .0002, .0002, .0002, .0001,
|
|
|
|
+ .0002, .0001, .0001, .0001, .0001, .0001, .0001, .0000,
|
|
|
|
+ .0001
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* spot7 NIR of spot7 */
|
|
|
|
+ static const float sr4[241] = {
|
|
|
|
+ .0000, .0000, .0000, .0001, .0003, .0004, .0005, .0005,
|
|
|
|
+ .0004, .0004, .0003, .0003, .0004, .0005, .0008, .0009,
|
|
|
|
+ .0009, .0008, .0006, .0007, .0010, .0013, .0019, .0021,
|
|
|
|
+ .0022, .0018, .0013, .0010, .0008, .0005, .0003, .0003,
|
|
|
|
+ .0002, .0001, .0001, .0001, .0001, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0003, .0003, .0003, .0003, .0001, .0004,
|
|
|
|
+ .0007, .0010, .0010, .0006, .0003, .0005, .0008, .0010,
|
|
|
|
+ .0011, .0008, .0006, .0007, .0010, .0013, .0013, .0010,
|
|
|
|
+ .0006, .0004, .0002, .0002, .0002, .0003, .0003, .0003,
|
|
|
|
+ .0003, .0002, .0002, .0003, .0005, .0007, .0009, .0009,
|
|
|
|
+ .0010, .0007, .0004, .0002, .0001, .0002, .0001, .0001,
|
|
|
|
+ .0002, .0001, .0001, .0001, .0002, .0001, .0001, .0002,
|
|
|
|
+ .0002, .0001, .0001, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0002, .0001, .0002, .0001, .0001, .0002,
|
|
|
|
+ .0002, .0002, .0002, .0002, .0002, .0002, .0002, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0002, .0002, .0002, .0002, .0003,
|
|
|
|
+ .0003, .0004, .0005, .0006, .0007, .0010, .0015, .0024,
|
|
|
|
+ .0039, .0065, .0113, .0202, .0353, .0606, .1026, .1796,
|
|
|
|
+ .3276, .4949, .6522, .7976, .9149, .9645, .9593, .9472,
|
|
|
|
+ .9500, .9614, .9741, .9798, .9945, .9989, .9942, .9787,
|
|
|
|
+ .9669, .9546, .9411, .9290, .9171, .9071, .8970, .8867,
|
|
|
|
+ .8749, .8603, .8429, .8247, .8050, .7864, .7700, .7573,
|
|
|
|
+ .7482, .7402, .7312, .7216, .7074, .6893, .6667, .6404,
|
|
|
|
+ .6118, .5830, .5529, .5224, .4938, .4658, .4379, .4077,
|
|
|
|
+ .3707, .3252, .2748, .2212, .1662, .1137, .0696, .0391,
|
|
|
|
+ .0211, .0120, .0073, .0049, .0035, .0029, .0024, .0021,
|
|
|
|
+ .0018, .0016, .0014, .0012, .0010, .0007, .0005, .0004,
|
|
|
|
+ .0003, .0002, .0001, .0001, .0001, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* spot7 Pan of spot7 */
|
|
|
|
+ static const float sr5[241] = {
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0000, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0002, .0003, .0004, .0008, .0026,
|
|
|
|
+ .0089, .0293, .0911, .2322, .4161, .5766, .6555, .6834,
|
|
|
|
+ .7001, .7313, .7615, .7761, .7760, .7811, .7970, .8226,
|
|
|
|
+ .8557, .8692, .8794, .8849, .8867, .8913, .8908, .8982,
|
|
|
|
+ .9110, .9220, .9366, .9446, .9460, .9504, .9514, .9529,
|
|
|
|
+ .9519, .9403, .9273, .9205, .9230, .9388, .9551, .9536,
|
|
|
|
+ .9457, .9484, .9614, .9764, .9866, .9868, .9811, .9784,
|
|
|
|
+ .9806, .9841, .9873, .9898, .9901, .9918, .9963, .9997,
|
|
|
|
+ .9971, .9877, .9793, .9768, .9791, .9821, .9814, .9755,
|
|
|
|
+ .9703, .9717, .9777, .9819, .9814, .9786, .9764, .9741,
|
|
|
|
+ .9742, .9739, .9734, .9716, .9677, .9634, .9616, .9617,
|
|
|
|
+ .9620, .9614, .9587, .9529, .9441, .9352, .9302, .9315,
|
|
|
|
+ .9357, .9386, .9379, .9331, .9277, .9235, .9198, .9155,
|
|
|
|
+ .9093, .8992, .8850, .8686, .8561, .8524, .8583, .8648,
|
|
|
|
+ .8692, .8681, .8631, .8572, .8521, .8469, .8403, .8349,
|
|
|
|
+ .8280, .8152, .7916, .7543, .7074, .6639, .6386, .6187,
|
|
|
|
+ .5794, .5198, .4311, .3047, .1803, .1007, .0572, .0331,
|
|
|
|
+ .0176, .0090, .0044, .0026, .0017, .0013, .0011, .0009,
|
|
|
|
+ .0009, .0008, .0008, .0010, .0007, .0010, .0011, .0011,
|
|
|
|
+ .0007, .0008, .0009, .0009, .0008, .0009, .0008, .0008,
|
|
|
|
+ .0008, .0008, .0009, .0010, .0012, .0008, .0007, .0009,
|
|
|
|
+ .0010, .0007, .0007, .0006, .0006, .0006, .0004, .0004,
|
|
|
|
+ .0008, .0005, .0006, .0004, .0007, .0006, .0005, .0004,
|
|
|
|
+ .0003, .0004, .0005, .0004, .0004, .0004, .0004, .0004,
|
|
|
|
+ .0004, .0004, .0004, .0004, .0003, .0003, .0003, .0003,
|
|
|
|
+ .0003, .0003, .0002, .0004, .0003, .0003, .0002, .0002,
|
|
|
|
+ .0004, .0003, .0003, .0002, .0003, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0001, .0002, .0001, .0002, .0002, .0002,
|
|
|
|
+ .0001, .0001, .0002, .0001, .0000, .0001, .0001, .0001,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ static const float wli[5] = {0.400, 0.400, 0.400, 0.400, 0.400};
|
|
|
|
+ static const float wls[5] = {1.000, 1.000, 1.000, 1.000, 1.000};
|
|
|
|
+
|
|
|
|
+ ffu.wlinf = (float)wli[iwa-1];
|
|
|
|
+ ffu.wlsup = (float)wls[iwa-1];
|
|
|
|
+
|
|
|
|
+ int i;
|
|
|
|
+ for(i = 0; i < 1501; i++) ffu.s[i] = 0;
|
|
|
|
+
|
|
|
|
+ switch(iwa)
|
|
|
|
+ {
|
|
|
|
+ case 1: for(i = 0; i < 241; i++) ffu.s[60+i] = sr1[i];
|
|
|
|
+ break;
|
|
|
|
+ case 2: for(i = 0; i < 241; i++) ffu.s[60+i] = sr2[i];
|
|
|
|
+ break;
|
|
|
|
+ case 3: for(i = 0; i < 241; i++) ffu.s[60+i] = sr3[i];
|
|
|
|
+ break;
|
|
|
|
+ case 4: for(i = 0; i < 241; i++) ffu.s[60+i] = sr4[i];
|
|
|
|
+ break;
|
|
|
|
+ case 5: for(i = 0; i < 241; i++) ffu.s[60+i] = sr5[i];
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* Following filter function created using create_iwave.py */
|
|
|
|
+
|
|
|
|
+void IWave::pleiades1a(int iwa)
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+ /* pleiades1a Blue of pleiades1a */
|
|
|
|
+ static const float sr1[209] = {
|
|
|
|
+ .0100, .0296, .0886, .1300, .1355, .2482, .4389, .5185,
|
|
|
|
+ .4758, .5178, .6596, .7786, .7959, .7725, .7796, .8094,
|
|
|
|
+ .8324, .8437, .8410, .8332, .8250, .8246, .8369, .8711,
|
|
|
|
+ .9167, .9474, .9601, .9669, .9748, .9730, .9684, .9664,
|
|
|
|
+ .9744, .9903, 1.0000, .9938, .9817, .9813, .9671, .8859,
|
|
|
|
+ .7175, .4994, .3052, .1740, .0953, .0549, .0349, .0264,
|
|
|
|
+ .0232, .0225, .0212, .0175, .0120, .0074, .0047, .0034,
|
|
|
|
+ .0026, .0020, .0015, .0011, .0007, .0005, .0004, .0004,
|
|
|
|
+ .0005, .0010, .0014, .0014, .0009, .0003, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0001, .0002, .0005, .0008, .0010, .0007,
|
|
|
|
+ .0005, .0004, .0006, .0012, .0016, .0017, .0010, .0004,
|
|
|
|
+ .0002, .0001, .0001, .0001, .0001, .0000, .0000, .0001,
|
|
|
|
+ .0001, .0000, .0001, .0001, .0001, .0001, .0002, .0002,
|
|
|
|
+ .0004, .0005, .0007, .0008, .0007, .0005, .0004, .0003,
|
|
|
|
+ .0003, .0003, .0002, .0002, .0002, .0003, .0003, .0004,
|
|
|
|
+ .0005, .0006, .0008, .0012, .0018, .0031, .0056, .0105,
|
|
|
|
+ .0168, .0214, .0218, .0179, .0138, .0108, .0090, .0081,
|
|
|
|
+ .0080, .0081, .0090, .0103, .0127, .0164, .0224, .0311,
|
|
|
|
+ .0416, .0503, .0537, .0489, .0395, .0294, .0215, .0164,
|
|
|
|
+ .0130, .0109, .0095, .0085, .0078, .0075, .0073, .0074,
|
|
|
|
+ .0075, .0077, .0079, .0079, .0078, .0073, .0067, .0058,
|
|
|
|
+ .0049
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* Pleiades1a Green of pleiades1a */
|
|
|
|
+ static const float sr2[209] = {
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0001, .0001, .0001, .0001, .0002, .0003, .0004,
|
|
|
|
+ .0005, .0008, .0046, .0086, .0145, .0246, .0486, .1109,
|
|
|
|
+ .2379, .4375, .6562, .8184, .8944, .9165, .9230, .9287,
|
|
|
|
+ .9374, .9507, .9616, .9692, .9772, .9815, .9834, .9876,
|
|
|
|
+ .9958, 1.0000, .9973, .9849, .9679, .9538, .9542, .9675,
|
|
|
|
+ .9818, .9868, .9724, .9345, .8829, .8441, .8255, .8103,
|
|
|
|
+ .7517, .6227, .4368, .2572, .1376, .0778, .0485, .0346,
|
|
|
|
+ .0270, .0215, .0162, .0108, .0061, .0031, .0016, .0008,
|
|
|
|
+ .0005, .0003, .0002, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0001, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0001, .0002, .0002,
|
|
|
|
+ .0002, .0001, .0001, .0001, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0001, .0000, .0000, .0001, .0001, .0001,
|
|
|
|
+ .0002, .0004, .0010, .0042, .0067, .0079, .0069, .0030,
|
|
|
|
+ .0011, .0007, .0006, .0005, .0005, .0005, .0006, .0008,
|
|
|
|
+ .0011, .0017, .0031, .0056, .0092, .0126, .0146, .0143,
|
|
|
|
+ .0119, .0091, .0069, .0057, .0053, .0054, .0061, .0068,
|
|
|
|
+ .0084, .0108, .0141, .0186, .0234, .0276, .0301, .0304,
|
|
|
|
+ .0290, .0269, .0250, .0240, .0235, .0239, .0248, .0260,
|
|
|
|
+ .0271, .0270, .0257, .0230, .0191, .0150, .0111, .0081,
|
|
|
|
+ .0058
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* Pleiades1a Red of pleiades1a */
|
|
|
|
+ static const float sr3[209] = {
|
|
|
|
+ .0097, .0035, .0035, .0114, .0267, .0374, .0905, .0908,
|
|
|
|
+ .0400, .0209, .0081, .0027, .0011, .0006, .0005, .0006,
|
|
|
|
+ .0010, .0019, .0015, .0006, .0003, .0003, .0003, .0003,
|
|
|
|
+ .0005, .0008, .0005, .0002, .0001, .0001, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0002, .0002, .0003, .0004, .0006, .0010, .0033,
|
|
|
|
+ .0100, .0182, .0331, .0625, .1184, .2220, .3759, .5579,
|
|
|
|
+ .7347, .8643, .9326, .9533, .9627, .9534, .9444, .9463,
|
|
|
|
+ .9569, .9700, .9846, .9956, .9999, 1.0000, .9970, .9951,
|
|
|
|
+ .9890, .9864, .9814, .9690, .9551, .9378, .9176, .8929,
|
|
|
|
+ .8669, .8448, .8226, .7893, .7378, .6630, .5666, .4496,
|
|
|
|
+ .3262, .2196, .1417, .0926, .0620, .0457, .0356, .0311,
|
|
|
|
+ .0295, .0234, .0190, .0159, .0132, .0108, .0084, .0064,
|
|
|
|
+ .0047, .0034, .0024, .0017, .0013, .0010, .0007, .0006,
|
|
|
|
+ .0005, .0004, .0004, .0003, .0003, .0003, .0003, .0003,
|
|
|
|
+ .0003, .0003, .0003, .0004, .0005, .0005, .0006, .0007,
|
|
|
|
+ .0007, .0007, .0006, .0005, .0004, .0004, .0002, .0003,
|
|
|
|
+ .0002, .0002, .0002, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0003, .0003, .0003, .0005, .0005, .0007,
|
|
|
|
+ .0008, .0011, .0014, .0019, .0025, .0034, .0042, .0054,
|
|
|
|
+ .0063, .0069, .0071, .0070, .0066, .0068, .0067, .0069,
|
|
|
|
+ .0071, .0074, .0081, .0087, .0097, .0107, .0120, .0137,
|
|
|
|
+ .0160, .0181, .0207, .0237, .0270, .0311, .0353, .0399,
|
|
|
|
+ .0439, .0463, .0455, .0409, .0333, .0251, .0179, .0125,
|
|
|
|
+ .0086
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* pleiades1a NIR of pleiades1a */
|
|
|
|
+ static const float sr4[209] = {
|
|
|
|
+ .0024, .0017, .0021, .0021, .0013, .0007, .0006, .0006,
|
|
|
|
+ .0008, .0012, .0021, .0024, .0013, .0006, .0004, .0003,
|
|
|
|
+ .0003, .0003, .0003, .0005, .0009, .0010, .0007, .0004,
|
|
|
|
+ .0003, .0002, .0002, .0003, .0004, .0006, .0007, .0007,
|
|
|
|
+ .0006, .0004, .0003, .0003, .0003, .0003, .0004, .0005,
|
|
|
|
+ .0006, .0007, .0009, .0009, .0009, .0008, .0007, .0006,
|
|
|
|
+ .0005, .0006, .0006, .0008, .0014, .0024, .0027, .0014,
|
|
|
|
+ .0006, .0004, .0002, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0003, .0007, .0014, .0013, .0006, .0002, .0001, .0001,
|
|
|
|
+ .0000, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0001, .0001, .0001, .0001, .0001, .0001, .0000,
|
|
|
|
+ .0000, .0000, .0001, .0001, .0001, .0001, .0001, .0002,
|
|
|
|
+ .0002, .0003, .0004, .0005, .0006, .0008, .0010, .0012,
|
|
|
|
+ .0014, .0016, .0018, .0019, .0021, .0023, .0025, .0038,
|
|
|
|
+ .0045, .0054, .0067, .0084, .0108, .0152, .0214, .0295,
|
|
|
|
+ .0417, .0591, .0841, .1200, .1685, .2344, .3148, .4102,
|
|
|
|
+ .5131, .6196, .7196, .8080, .8783, .9313, .9662, .9859,
|
|
|
|
+ .9959, 1.0000, .9979, .9931, .9853, .9735, .9606, .9494,
|
|
|
|
+ .9376, .9313, .9284, .9275, .9289, .9299, .9302, .9309,
|
|
|
|
+ .9315, .9278, .9226, .9162, .9073, .8975, .8845, .8736,
|
|
|
|
+ .8604, .8494, .8370, .8259, .8132, .7983, .7852, .7720,
|
|
|
|
+ .7580, .7433, .7273, .7098, .6906, .6694, .6464, .6221,
|
|
|
|
+ .5966, .5716, .5472, .5225, .4996, .4771, .4563, .4366,
|
|
|
|
+ .4164, .3950, .3688, .3351, .2940, .2473, .1978, .1498,
|
|
|
|
+ .1077, .0744, .0496, .0331, .0218, .0147, .0104, .0077,
|
|
|
|
+ .0062
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* Pleiades1a Pan of pleiades1a */
|
|
|
|
+ static const float sr5[209] = {
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0004, .0008, .0030, .0061, .0130, .0240, .0422, .0718,
|
|
|
|
+ .1152, .1739, .2443, .3204, .3941, .4553, .5016, .5325,
|
|
|
|
+ .5538, .5684, .5825, .5968, .6108, .6233, .6336, .6422,
|
|
|
|
+ .6502, .6571, .6641, .6708, .6766, .6809, .6830, .6835,
|
|
|
|
+ .6832, .6832, .6847, .6893, .6965, .7074, .7194, .7324,
|
|
|
|
+ .7450, .7555, .7639, .7717, .7777, .7827, .7872, .7914,
|
|
|
|
+ .7950, .7975, .7998, .8008, .8004, .8003, .8001, .8013,
|
|
|
|
+ .8037, .8078, .8137, .8211, .8304, .8391, .8483, .8565,
|
|
|
|
+ .8635, .8690, .8739, .8769, .8801, .8826, .8851, .8895,
|
|
|
|
+ .8940, .8995, .9057, .9125, .9190, .9246, .9290, .9339,
|
|
|
|
+ .9375, .9416, .9450, .9481, .9511, .9533, .9561, .9582,
|
|
|
|
+ .9602, .9610, .9632, .9650, .9675, .9730, .9775, .9829,
|
|
|
|
+ .9875, .9928, .9967, .9995, 1.0000, .9944, .9883, .9812,
|
|
|
|
+ .9752, .9701, .9661, .9633, .9625, .9622, .9634, .9655,
|
|
|
|
+ .9672, .9673, .9678, .9654, .9634, .9580, .9534, .9487,
|
|
|
|
+ .9424, .9359, .9300, .9245, .9191, .9142, .9089, .9041,
|
|
|
|
+ .8981, .8928, .8871, .8829, .8773, .8735, .8695, .8665,
|
|
|
|
+ .8661, .8589, .8478, .8332, .8137, .7867, .7491, .6982,
|
|
|
|
+ .6307, .5507, .4617, .3696, .2824, .2075, .1465, .1010,
|
|
|
|
+ .0687, .0471, .0324, .0247, .0174, .0127, .0117, .0087,
|
|
|
|
+ .0082, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ static const float wli[5] = {0.430, 0.430, 0.430, 0.430, 0.430};
|
|
|
|
+ static const float wls[5] = {0.950, 0.950, 0.950, 0.950, 0.950};
|
|
|
|
+
|
|
|
|
+ ffu.wlinf = (float)wli[iwa-1];
|
|
|
|
+ ffu.wlsup = (float)wls[iwa-1];
|
|
|
|
+
|
|
|
|
+ int i;
|
|
|
|
+ for(i = 0; i < 1501; i++) ffu.s[i] = 0;
|
|
|
|
+
|
|
|
|
+ switch(iwa)
|
|
|
|
+ {
|
|
|
|
+ case 1: for(i = 0; i < 209; i++) ffu.s[72+i] = sr1[i];
|
|
|
|
+ break;
|
|
|
|
+ case 2: for(i = 0; i < 209; i++) ffu.s[72+i] = sr2[i];
|
|
|
|
+ break;
|
|
|
|
+ case 3: for(i = 0; i < 209; i++) ffu.s[72+i] = sr3[i];
|
|
|
|
+ break;
|
|
|
|
+ case 4: for(i = 0; i < 209; i++) ffu.s[72+i] = sr4[i];
|
|
|
|
+ break;
|
|
|
|
+ case 5: for(i = 0; i < 209; i++) ffu.s[72+i] = sr5[i];
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* Following filter function created using create_iwave.py */
|
|
|
|
+
|
|
|
|
+void IWave::pleiades1b(int iwa)
|
|
|
|
+{
|
|
|
|
+
|
|
|
|
+ /* pleiades1b Blue of pleiades1b */
|
|
|
|
+ static const float sr1[209] = {
|
|
|
|
+ .0016, .0013, .0043, .0111, .0176, .0234, .0574, .1346,
|
|
|
|
+ .2238, .3085, .4616, .6508, .7554, .7477, .7168, .7185,
|
|
|
|
+ .7567, .8101, .8422, .8234, .7752, .7527, .7802, .8199,
|
|
|
|
+ .8517, .8603, .8587, .8658, .8828, .9040, .9197, .9326,
|
|
|
|
+ .9502, .9758, .9950, 1.0000, .9951, .9806, .9417, .8436,
|
|
|
|
+ .6711, .4633, .2889, .1671, .0902, .0505, .0315, .0238,
|
|
|
|
+ .0213, .0206, .0196, .0168, .0114, .0067, .0041, .0030,
|
|
|
|
+ .0024, .0020, .0016, .0011, .0013, .0008, .0006, .0004,
|
|
|
|
+ .0004, .0004, .0005, .0011, .0020, .0012, .0004, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0001, .0002, .0008, .0011,
|
|
|
|
+ .0008, .0004, .0004, .0004, .0007, .0016, .0024, .0010,
|
|
|
|
+ .0003, .0002, .0001, .0001, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0001, .0000, .0001, .0001, .0001,
|
|
|
|
+ .0002, .0003, .0004, .0007, .0009, .0007, .0006, .0004,
|
|
|
|
+ .0003, .0002, .0002, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0003, .0004, .0004, .0005, .0007, .0010, .0016, .0026,
|
|
|
|
+ .0046, .0091, .0172, .0238, .0215, .0159, .0120, .0095,
|
|
|
|
+ .0079, .0072, .0072, .0076, .0084, .0099, .0123, .0163,
|
|
|
|
+ .0226, .0320, .0444, .0547, .0564, .0480, .0358, .0258,
|
|
|
|
+ .0189, .0144, .0117, .0099, .0086, .0078, .0072, .0070,
|
|
|
|
+ .0069, .0069, .0070, .0073, .0074, .0075, .0075, .0071,
|
|
|
|
+ .0064
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* Pleiades1b Green of pleiades1b */
|
|
|
|
+ static const float sr2[209] = {
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0001, .0001, .0001, .0002, .0003, .0005, .0006, .0008,
|
|
|
|
+ .0015, .0041, .0100, .0196, .0325, .0568, .1238, .2859,
|
|
|
|
+ .5290, .7716, .8838, .9080, .9131, .9137, .9225, .9367,
|
|
|
|
+ .9498, .9545, .9586, .9642, .9705, .9723, .9675, .9589,
|
|
|
|
+ .9524, .9525, .9560, .9552, .9490, .9471, .9544, .9711,
|
|
|
|
+ .9898, 1.0000, .9954, .9698, .9253, .8633, .7948, .7239,
|
|
|
|
+ .6453, .5439, .4170, .2767, .1575, .0856, .0492, .0327,
|
|
|
|
+ .0238, .0182, .0141, .0100, .0058, .0030, .0015, .0008,
|
|
|
|
+ .0005, .0003, .0002, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0000, .0001, .0000, .0000, .0001, .0001, .0001, .0003,
|
|
|
|
+ .0003, .0002, .0001, .0001, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0001,
|
|
|
|
+ .0003, .0002, .0001, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0001, .0001, .0001, .0003, .0007, .0032, .0142,
|
|
|
|
+ .0083, .0022, .0009, .0006, .0004, .0004, .0004, .0004,
|
|
|
|
+ .0005, .0006, .0008, .0011, .0019, .0037, .0064, .0103,
|
|
|
|
+ .0131, .0133, .0111, .0084, .0066, .0057, .0054, .0056,
|
|
|
|
+ .0062, .0072, .0089, .0115, .0149, .0193, .0235, .0264,
|
|
|
|
+ .0270, .0255, .0234, .0214, .0199, .0193, .0191, .0197,
|
|
|
|
+ .0207, .0220, .0232, .0238, .0230, .0207, .0172, .0133,
|
|
|
|
+ .0098
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* Pleiades1b Red of pleiades1b */
|
|
|
|
+ static const float sr3[209] = {
|
|
|
|
+ .0005, .0009, .0005, .0012, .0051, .0080, .0067, .0109,
|
|
|
|
+ .0247, .0654, .1225, .0570, .0214, .0128, .0063, .0024,
|
|
|
|
+ .0009, .0005, .0004, .0004, .0005, .0008, .0010, .0006,
|
|
|
|
+ .0004, .0003, .0002, .0003, .0004, .0005, .0005, .0004,
|
|
|
|
+ .0003, .0002, .0001, .0001, .0001, .0001, .0001, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0001, .0001, .0001, .0001, .0001, .0002,
|
|
|
|
+ .0002, .0002, .0007, .0012, .0021, .0038, .0068, .0123,
|
|
|
|
+ .0222, .0413, .0781, .1519, .2777, .4510, .6291, .7625,
|
|
|
|
+ .8329, .8579, .8659, .8693, .8752, .8858, .9006, .9175,
|
|
|
|
+ .9349, .9478, .9570, .9623, .9648, .9624, .9613, .9620,
|
|
|
|
+ .9699, .9812, .9934, 1.0000, .9810, .9523, .9132, .8694,
|
|
|
|
+ .8252, .7830, .7361, .6735, .5878, .4805, .3630, .2523,
|
|
|
|
+ .1626, .1022, .0641, .0419, .0285, .0205, .0154, .0121,
|
|
|
|
+ .0099, .0083, .0071, .0061, .0052, .0043, .0035, .0028,
|
|
|
|
+ .0036, .0030, .0023, .0018, .0013, .0010, .0008, .0006,
|
|
|
|
+ .0005, .0004, .0004, .0004, .0003, .0003, .0003, .0003,
|
|
|
|
+ .0003, .0003, .0003, .0003, .0004, .0004, .0005, .0006,
|
|
|
|
+ .0006, .0007, .0007, .0006, .0005, .0005, .0004, .0003,
|
|
|
|
+ .0003, .0003, .0002, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0002, .0002, .0002, .0003, .0003, .0003, .0003, .0004,
|
|
|
|
+ .0005, .0006, .0008, .0010, .0013, .0018, .0024, .0033,
|
|
|
|
+ .0044, .0057, .0069, .0078, .0083, .0084, .0082, .0081,
|
|
|
|
+ .0080, .0078, .0078, .0080, .0082, .0085, .0088, .0093,
|
|
|
|
+ .0098, .0101, .0104, .0104, .0102, .0095, .0086, .0073,
|
|
|
|
+ .0060
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* pleiades1b NIR of pleiades1b */
|
|
|
|
+ static const float sr4[209] = {
|
|
|
|
+ .0002, .0008, .0004, .0005, .0017, .0027, .0012, .0007,
|
|
|
|
+ .0007, .0008, .0008, .0010, .0015, .0022, .0020, .0010,
|
|
|
|
+ .0005, .0003, .0002, .0002, .0002, .0003, .0004, .0006,
|
|
|
|
+ .0006, .0004, .0003, .0002, .0002, .0002, .0002, .0002,
|
|
|
|
+ .0004, .0006, .0007, .0006, .0005, .0004, .0004, .0004,
|
|
|
|
+ .0004, .0005, .0006, .0006, .0007, .0008, .0008, .0007,
|
|
|
|
+ .0006, .0006, .0005, .0005, .0005, .0006, .0007, .0012,
|
|
|
|
+ .0023, .0029, .0020, .0008, .0004, .0002, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0002, .0003, .0005, .0008,
|
|
|
|
+ .0007, .0003, .0002, .0001, .0001, .0001, .0000, .0000,
|
|
|
|
+ .0000, .0000, .0000, .0000, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0002, .0002, .0002, .0002, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
|
|
|
|
+ .0001, .0001, .0001, .0001, .0002, .0002, .0003, .0003,
|
|
|
|
+ .0004, .0005, .0006, .0008, .0010, .0012, .0014, .0016,
|
|
|
|
+ .0018, .0020, .0023, .0025, .0029, .0052, .0064, .0080,
|
|
|
|
+ .0101, .0131, .0171, .0229, .0310, .0427, .0592, .0835,
|
|
|
|
+ .1179, .1664, .2311, .3159, .4172, .5285, .6410, .7472,
|
|
|
|
+ .8386, .9088, .9594, .9881, 1.0000, .9992, .9896, .9677,
|
|
|
|
+ .9514, .9375, .9255, .9152, .9088, .9026, .8967, .8925,
|
|
|
|
+ .8855, .8777, .8676, .8569, .8474, .8360, .8237, .8130,
|
|
|
|
+ .8016, .7922, .7828, .7769, .7715, .7631, .7543, .7452,
|
|
|
|
+ .7349, .7255, .7146, .7031, .6919, .6816, .6705, .6595,
|
|
|
|
+ .6476, .6292, .6111, .5934, .5761, .5600, .5449, .5306,
|
|
|
|
+ .5155, .4977, .4734, .4388, .3934, .3368, .2743, .2114,
|
|
|
|
+ .1536, .1063, .0704, .0459, .0295, .0193, .0127, .0085,
|
|
|
|
+ .0058
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ /* Pleiades1b Pan of pleiades1b */
|
|
|
|
+ static const float sr5[209] = {
|
|
|
|
+ .0000, .0000, .0000, .0000, .0001, .0001, .0001, .0002,
|
|
|
|
+ .0004, .0008, .0028, .0056, .0120, .0221, .0389, .0664,
|
|
|
|
+ .1067, .1614, .2272, .2987, .3678, .4258, .4697, .4992,
|
|
|
|
+ .5193, .5333, .5467, .5603, .5736, .5855, .5957, .6041,
|
|
|
|
+ .6120, .6188, .6256, .6319, .6378, .6422, .6444, .6449,
|
|
|
|
+ .6449, .6451, .6468, .6513, .6591, .6691, .6812, .6937,
|
|
|
|
+ .7056, .7158, .7251, .7324, .7384, .7439, .7493, .7536,
|
|
|
|
+ .7581, .7611, .7639, .7652, .7662, .7666, .7675, .7688,
|
|
|
|
+ .7723, .7771, .7834, .7917, .8015, .8110, .8200, .8291,
|
|
|
|
+ .8365, .8427, .8482, .8519, .8555, .8583, .8620, .8667,
|
|
|
|
+ .8716, .8780, .8847, .8913, .8989, .9046, .9105, .9155,
|
|
|
|
+ .9208, .9253, .9290, .9329, .9370, .9401, .9442, .9469,
|
|
|
|
+ .9503, .9521, .9543, .9574, .9608, .9663, .9721, .9788,
|
|
|
|
+ .9846, .9912, .9957, .9991, 1.0000, .9963, .9915, .9870,
|
|
|
|
+ .9817, .9771, .9746, .9729, .9739, .9742, .9769, .9798,
|
|
|
|
+ .9828, .9846, .9851, .9837, .9826, .9790, .9746, .9697,
|
|
|
|
+ .9648, .9598, .9533, .9484, .9445, .9397, .9345, .9297,
|
|
|
|
+ .9248, .9183, .9112, .9061, .9006, .8953, .8908, .8895,
|
|
|
|
+ .8885, .8810, .8708, .8567, .8369, .8102, .7729, .7190,
|
|
|
|
+ .6529, .5711, .4796, .3846, .2948, .2166, .1531, .1057,
|
|
|
|
+ .0717, .0491, .0338, .0257, .0182, .0132, .0122, .0090,
|
|
|
|
+ .0084, .0043, .0033, .0027, .0022, .0018, .0015, .0014,
|
|
|
|
+ .0012, .0011, .0010, .0009, .0009, .0008, .0007, .0007,
|
|
|
|
+ .0007, .0006, .0006, .0006, .0006, .0006, .0005, .0005,
|
|
|
|
+ .0005, .0005, .0004, .0004, .0004, .0005, .0004, .0004,
|
|
|
|
+ .0004, .0004, .0004, .0004, .0003, .0004, .0003, .0003,
|
|
|
|
+ .0003
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ static const float wli[5] = {0.430, 0.430, 0.430, 0.430, 0.430};
|
|
|
|
+ static const float wls[5] = {0.950, 0.950, 0.950, 0.950, 0.950};
|
|
|
|
+
|
|
|
|
+ ffu.wlinf = (float)wli[iwa-1];
|
|
|
|
+ ffu.wlsup = (float)wls[iwa-1];
|
|
|
|
+
|
|
|
|
+ int i;
|
|
|
|
+ for(i = 0; i < 1501; i++) ffu.s[i] = 0;
|
|
|
|
+
|
|
|
|
+ switch(iwa)
|
|
|
|
+ {
|
|
|
|
+ case 1: for(i = 0; i < 209; i++) ffu.s[72+i] = sr1[i];
|
|
|
|
+ break;
|
|
|
|
+ case 2: for(i = 0; i < 209; i++) ffu.s[72+i] = sr2[i];
|
|
|
|
+ break;
|
|
|
|
+ case 3: for(i = 0; i < 209; i++) ffu.s[72+i] = sr3[i];
|
|
|
|
+ break;
|
|
|
|
+ case 4: for(i = 0; i < 209; i++) ffu.s[72+i] = sr4[i];
|
|
|
|
+ break;
|
|
|
|
+ case 5: for(i = 0; i < 209; i++) ffu.s[72+i] = sr5[i];
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/* filter functions must be defined above */
|
|
|
|
+
|
|
float IWave::equivwl() const
|
|
float IWave::equivwl() const
|
|
{
|
|
{
|
|
float seb = 0;
|
|
float seb = 0;
|
|
@@ -3381,6 +4157,10 @@ void IWave::parse()
|
|
else if(iwave <= 114) quickbird2(iwave - 109);
|
|
else if(iwave <= 114) quickbird2(iwave - 109);
|
|
else if(iwave <= 123) landsat_8(iwave - 114);
|
|
else if(iwave <= 123) landsat_8(iwave - 114);
|
|
else if(iwave <= 128) geoeye1(iwave - 123);
|
|
else if(iwave <= 128) geoeye1(iwave - 123);
|
|
|
|
+ else if(iwave <= 133) spot6(iwave - 128);
|
|
|
|
+ else if(iwave <= 138) spot7(iwave - 133);
|
|
|
|
+ else if(iwave <= 143) pleiades1a(iwave - 138);
|
|
|
|
+ else if(iwave <= 148) pleiades1b(iwave - 143);
|
|
else G_warning(_("Unsupported iwave value: %d"), iwave);
|
|
else G_warning(_("Unsupported iwave value: %d"), iwave);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3451,7 +4231,15 @@ void IWave::print()
|
|
string(" Landsat 8 NIR"),string(" Landsat 8 Cirrus"),string(" Landsat 8 SWIR1"),
|
|
string(" Landsat 8 NIR"),string(" Landsat 8 Cirrus"),string(" Landsat 8 SWIR1"),
|
|
string(" Landsat 8 SWIR2"), string(" geoeye 1 pan"),
|
|
string(" Landsat 8 SWIR2"), string(" geoeye 1 pan"),
|
|
string(" geoeye 1 blue"), string(" geoeye 1 green"), string(" geoeye 1 red"),
|
|
string(" geoeye 1 blue"), string(" geoeye 1 green"), string(" geoeye 1 red"),
|
|
- string(" geoeye 1 nir")
|
|
|
|
|
|
+ string(" geoeye 1 nir"),
|
|
|
|
+ string(" spot6 blue"), string(" spot6 green"), string(" spot6 red"), string(" spot6 nir"),
|
|
|
|
+ string(" spot6 pan"),
|
|
|
|
+ string(" spot7 blue"), string(" spot7 green"), string(" spot7 red"), string(" spot7 nir"),
|
|
|
|
+ string(" spot7 pan"),
|
|
|
|
+ string(" pleiades1a blue"), string(" pleiades1a green"), string(" pleiades1a red"), string(" pleiades1a nir"),
|
|
|
|
+ string(" pleiades1a pan"),
|
|
|
|
+ string(" pleiades1b blue"), string(" pleiades1b green"), string(" pleiades1b red"), string(" pleiades1b nir"),
|
|
|
|
+ string(" pleiades1b pan")
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|