Index: imagery/i.atcorr/geomcond.cpp =================================================================== --- imagery/i.atcorr/geomcond.cpp (revision 68611) +++ imagery/i.atcorr/geomcond.cpp (working copy) @@ -373,6 +373,10 @@ case 17: /* quickbird2 * enter month,day,hh.ddd,long.,lat. */ case 18: /* Landsat 8 * enter month,day,hh.ddd,long.,lat. */ case 19: /* geoeye1 * enter month,day,hh.ddd,long.,lat. */ + case 20: /* spot6 * enter month,day,hh.ddd,long.,lat. */ + case 21: /* spot7 * enter month,day,hh.ddd,long.,lat. */ + case 22: /* pleiades1a * enter month,day,hh.ddd,long.,lat. */ + case 23: /* pleiades1b * enter month,day,hh.ddd,long.,lat. */ { cin >> month; cin >> jday; @@ -438,7 +442,11 @@ string(" Worldview2 observation "), string(" Quickbird2 observation "), string(" Landsat 8 observation "), - string(" geoeye1 observation ") + string(" geoeye1 observation "), + string(" spot6 observation "), + string(" spot7 observation "), + string(" pleiades1a observation "), + string(" pleiades1b observation ") }; static const string head(" geometrical conditions identity "); Index: imagery/i.atcorr/geomcond.h =================================================================== --- imagery/i.atcorr/geomcond.h (revision 68611) +++ imagery/i.atcorr/geomcond.h (working copy) @@ -67,6 +67,14 @@ /* c */ /* 19 geoeye1 * enter month,day,hh.ddd,long.,lat. c */ /* c */ +/* 20 spot6 * enter month,day,hh.ddd,long.,lat. c */ +/* c */ +/* 21 spot7 * enter month,day,hh.ddd,long.,lat. c */ +/* c */ +/* 22 pleiades1a * enter month,day,hh.ddd,long.,lat. c */ +/* c */ +/* 23 pleia * enter month,day,hh.ddd,long.,lat. c */ +/* c */ /* note: for hrv and tm experiments long. and lat. are the c */ /* coordinates of the scene center. c */ /* lat. must be > 0 for north lat., < 0 for south lat. c */ Index: imagery/i.atcorr/i.atcorr.html =================================================================== --- imagery/i.atcorr/i.atcorr.html (revision 68611) +++ imagery/i.atcorr/i.atcorr.html (working copy) @@ -184,6 +184,35 @@
@@ -614,6 +643,34 @@118 GeoEye 1 Red Band (0.655-0.690) + + 120 GeoEye 1 NIR Band (0.780-0.920) + 129 Spot6 Blue band (455nm - 525nm) + 130 Spot6 Green band (530nm - 527nm) + 131 Spot6 Red band (625nm - 695nm) + 132 Spot6 NIR band (760nm - 890nm) + + + 133 Spot6 Pan band (455nm - 745nm) + 134 Spot7 Blue band (455nm - 525nm) + 135 Spot7 Green band (530nm - 527nm) + 136 Spot7 Red band (625nm - 695nm) + 137 Spot7 NIR band (760nm - 890nm) + + + 138 Spot7 Pan band (455nm - 745nm) + 139 Pleiades1A Blue band (430nm - 550nm) + 140 Pleiades1A Green band (490nm - 610nm) + 141 Pleiades1A Red band (600nm - 720nm) + 142 Pleiades1A NIR band (750nm - 950nm) + + + 143 Pleiades1A Pan band (480nm - 830nm) + 144 Pleiades1B Blue band (430nm - 550nm) + 145 Pleiades1B Green band (490nm - 610nm) + 146 Pleiades1B Red band (600nm - 720nm) + 147 Pleiades1B NIR band (750nm - 950nm) + 148 Pleiades1B Pan band (480nm - 830nm) EXAMPLES
Index: imagery/i.atcorr/iwave.cpp =================================================================== --- imagery/i.atcorr/iwave.cpp (revision 68611) +++ imagery/i.atcorr/iwave.cpp (working copy) @@ -3305,6 +3305,781 @@ } } +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; + } +} + + float IWave::equivwl() const { float seb = 0; @@ -3381,6 +4156,10 @@ else if(iwave <= 114) quickbird2(iwave - 109); else if(iwave <= 123) landsat_8(iwave - 114); 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); } @@ -3451,7 +4230,15 @@ string(" Landsat 8 NIR"),string(" Landsat 8 Cirrus"),string(" Landsat 8 SWIR1"), string(" Landsat 8 SWIR2"), string(" geoeye 1 pan"), 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") }; Index: imagery/i.atcorr/iwave.h =================================================================== --- imagery/i.atcorr/iwave.h (revision 68611) +++ imagery/i.atcorr/iwave.h (working copy) @@ -150,6 +150,26 @@ c 126 Green " ( 0.510-0.580 ) c c 127 Red " ( 0.655-0.690 ) c c 128 NIR " ( 0.780-0.920 ) c +c 129 Blue band of spot6 ( 0.455-0.525 ) c +c 130 Green " ( 0.530-0.590 ) c +c 131 Red " ( 0.625-0.695 ) c +c 132 NIR " ( 0.760-0.890 ) c +c 133 Pan " ( 0.455-0.745 ) c +c 129 Blue band of spot7 ( 0.455-0.525 ) c +c 130 Green " ( 0.530-0.590 ) c +c 131 Red " ( 0.625-0.695 ) c +c 132 NIR " ( 0.760-0.890 ) c +c 133 Pan " ( 0.455-0.745 ) c +c 129 Blue band of pleiades1a ( 0.430-0.550 ) c +c 130 Green " ( 0.490-0.610 ) c +c 131 Red " ( 0.600-0.720 ) c +c 132 NIR " ( 0.750-0.950 ) c +c 133 Pan " ( 0.480-0.830 ) c +c 129 Blue band of pleiades1b ( 0.455-0.525 ) c +c 130 Green " ( 0.530-0.590 ) c +c 131 Red " ( 0.625-0.695 ) c +c 132 NIR " ( 0.760-0.890 ) c +c 133 Pan " ( 0.480-0.830 ) c c c c note: wl has to be in micrometer c c**********************************************************************/ @@ -196,6 +216,10 @@ void quickbird2(int iwa); void landsat_8(int iwa); void geoeye1(int iwa); + void spot6(int iwa); + void spot7(int iwa); + void pleiades1a(int iwa); + void pleiades1b(int iwa); public: /* To compute the equivalent wavelength needed for the calculation of the