[GRASS-SVN] r60610 - grass/trunk/imagery/i.atcorr

svn_grass at osgeo.org svn_grass at osgeo.org
Fri May 30 08:14:49 PDT 2014


Author: neteler
Date: 2014-05-30 08:14:49 -0700 (Fri, 30 May 2014)
New Revision: 60610

Modified:
   grass/trunk/imagery/i.atcorr/GeomCond.cpp
   grass/trunk/imagery/i.atcorr/GeomCond.h
   grass/trunk/imagery/i.atcorr/Iwave.cpp
   grass/trunk/imagery/i.atcorr/Iwave.h
   grass/trunk/imagery/i.atcorr/create_iwave.py
   grass/trunk/imagery/i.atcorr/i.atcorr.html
Log:
i.atcorr: added Landsat8 support for testing (vesnikos, trac #2305)

Modified: grass/trunk/imagery/i.atcorr/GeomCond.cpp
===================================================================
--- grass/trunk/imagery/i.atcorr/GeomCond.cpp	2014-05-30 13:40:31 UTC (rev 60609)
+++ grass/trunk/imagery/i.atcorr/GeomCond.cpp	2014-05-30 15:14:49 UTC (rev 60610)
@@ -369,6 +369,9 @@
     case 13: /* rapideye         * enter month,day,hh.ddd,long.,lat. */
     case 14: /* vgt1_spot4       * enter month,day,hh.ddd,long.,lat. */
     case 15: /* vgt2_spot5       * enter month,day,hh.ddd,long.,lat. */
+	case 16: /* worldview2       * enter month,day,hh.ddd,long.,lat. */
+	case 17: /* quickbird2       * enter month,day,hh.ddd,long.,lat. */
+    case 18: /* Landsat 8        * enter month,day,hh.ddd,long.,lat. */
     {
 	cin >> month;
 	cin >> jday;
@@ -414,24 +417,27 @@
 /* ---- print geometrical conditions ---- */
 void GeomCond::print()
 {
-    static const string etiq1[16] = {
+    static const string etiq1[] = {
 	string(" user defined conditions     "),
-	string(" meteosat observation        "),
-	string(" goes east observation       "),
-	string(" goes west observation       "),
-	string(" avhrr (AM noaa) observation "),
-	string(" avhrr (PM noaa) observation "),
-	string(" h.r.v.   observation        "),
-	string(" t.m.     observation        "),
-	string(" etm+     observation        "),
-	string(" liss     observation        "),
-	string(" aster    observation        "),
-	string(" avnir    observation        "),
-	string(" ikonos   observation        "),
-	string(" rapideye observation        "),
-	string(" vgt1_spot4 observation      "),
-	string(" vgt2_spot5 observation      ")
-    };
+	string(" Meteosat observation        "),
+	string(" GOES east observation       "),
+	string(" GOES west observation       "),
+	string(" AVHRR (AM noaa) observation "),
+	string(" AVHRR (PM noaa) observation "),
+	string(" H.R.V.   observation        "),
+	string(" T.M.     observation        "),
+	string(" ETM+     observation        "),
+	string(" LISS     observation        "),
+	string(" ASTER    observation        "),
+	string(" AVNIR    observation        "),
+	string(" Ikonos   observation        "),
+	string(" Rapideye observation        "),
+	string(" VGT1-SPOT4 observation      "),
+	string(" VGT2-SPOT5 observation      "),
+	string(" Worldview2 observation      "),
+	string(" Quickbird2 observation      "),
+    string(" Landsat 8 observation       ")
+	};
 
     static const string head(" geometrical conditions identity  ");
     static const string line(" -------------------------------  ");

Modified: grass/trunk/imagery/i.atcorr/GeomCond.h
===================================================================
--- grass/trunk/imagery/i.atcorr/GeomCond.h	2014-05-30 13:40:31 UTC (rev 60609)
+++ grass/trunk/imagery/i.atcorr/GeomCond.h	2014-05-30 15:14:49 UTC (rev 60610)
@@ -59,15 +59,20 @@
 /*                                                                      c */
 /*         15      vgt2_spot5        * enter month,day,hh.ddd,long.,lat.c */
 /*                                                                      c */
+/*         16      worldview2        * enter month,day,hh.ddd,long.,lat.c */
 /*                                                                      c */
+/*         17      quickbird        * enter month,day,hh.ddd,long.,lat. c */
+/*																		c */
+/*         18      Landsat 8        * 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 */
-/*                 long. must be > 0 for east long., <0 for west long.  c */
+/*                 long. must be > 0 for east long., < 0 for west long. c */
 /*                                                                      c */
 /*                 solar and viewing positions are computed             c */
 /*                                                                      c */
-/* **********************************************************************c */
+/* *********************************************************************c */
 
 struct GeomCond
 {

Modified: grass/trunk/imagery/i.atcorr/Iwave.cpp
===================================================================
--- grass/trunk/imagery/i.atcorr/Iwave.cpp	2014-05-30 13:40:31 UTC (rev 60609)
+++ grass/trunk/imagery/i.atcorr/Iwave.cpp	2014-05-30 15:14:49 UTC (rev 60610)
@@ -2457,6 +2457,644 @@
     }
 }
 
+void IWave::worldview2(int iwa)
+{
+
+    /* WV2 Pan of wv2_spectral_response */
+    static const float sr1[301] = {
+		.0055, .0062, .0068, .0045, .0022, .0024, .0027, .0034,
+		.0041, .0038, .0030, .0039, .0049, .0042, .0034, .0037,
+		.0040, .0050, .0060, .0050, .0040, .0036, .0033, .0037,
+		.0042, .0052, .0063, .0048, .0034, .0061, .0088, .0105,
+		.0121, .0499, .0881, .2723, .4599, 1.6988, 2.9515, 55.9008,
+		109.7660, 271.3440, 436.1630, 461.8220, 487.5330, 494.8560, 504.9920, 515.2150,
+		525.5960, 529.5890, 535.5830, 529.7560, 522.2330, 527.2070, 533.6600, 528.6020,
+		523.0890, 541.1120, 557.2800, 558.1700, 558.2320, 580.8990, 605.5330, 616.2080,
+		626.7920, 612.1180, 595.4140, 612.0080, 630.7120, 649.1530, 671.5410, 663.7040,
+		654.7330, 672.5320, 693.0980, 691.3350, 688.2370, 678.2900, 664.9730, 683.3230,
+		701.5600, 705.9920, 713.5760, 709.8480, 709.7860, 738.4220, 765.7520, 762.7560,
+		757.8270, 759.1620, 759.8180, 779.9830, 794.0850, 797.9350, 800.7150, 811.3510,
+		819.2900, 820.8140, 823.0300, 829.7940, 838.8690, 848.9130, 860.8020, 858.0370,
+		858.4620, 865.1970, 870.2850, 877.9320, 889.2780, 896.4750, 909.2530, 913.0800,
+		917.8850, 914.2210, 910.7620, 916.9790, 924.8900, 936.8300, 950.7910, 943.9980,
+		936.9110, 932.3110, 929.4170, 938.2740, 951.2320, 960.0120, 962.7810, 957.5010,
+		953.8650, 954.7520, 957.3760, 968.1550, 977.7350, 961.3320, 949.2170, 946.9550,
+		953.3340, 946.6560, 952.1930, 962.4700, 969.5950, 983.9680, 1000.0000, 994.3200,
+		994.0030, 980.9740, 969.5630, 968.2530, 968.3970, 973.6740, 978.8550, 966.8470,
+		963.7410, 952.2520, 946.6540, 945.9200, 952.9380, 954.7590, 962.5830, 962.1420,
+		956.6370, 950.3810, 940.9620, 936.2240, 924.5960, 923.3790, 921.6840, 933.5680,
+		940.8310, 957.9770, 963.8320, 958.1430, 941.2970, 924.2600, 903.0000, 895.8780,
+		887.1520, 910.5230, 929.4020, 744.0190, 553.8670, 320.2460, 85.8164, 51.4292,
+		17.2983, 12.0102, 6.5998, 4.3680, 2.1313, 1.5356, .9222, .7218,
+		.5287, .4897, .4497, .4318, .4090, .4071, .3964, .4203,
+		.4465, .4033, .3613, .3303, .2980, .3011, .3085, .2862,
+		.2615, .2536, .2423, .2746, .3070, .2950, .2837, .2615,
+		.2375, .2483, .2590, .2701, .2825, .2617, .2408, .2486,
+		.2580, .2735, .2876, .2828, .2762, .2753, .2731, .2568,
+		.2422, .2392, .2343, .2234, .2135, .2157, .2186, .2048,
+		.1911, .1799, .1690, .1771, .1832, .1676, .1513, .1388,
+		.1258, .1297, .1337, .1225, .1114, .1029, .0942, .1047,
+		.1152, .0995, .0839, .0845, .0853, .0776, .0701, .0707,
+		.0711, .0657, .0600, .0621, .0642, .0557, .0473, .0433,
+		.0392, .0361, .0329, .0341, .0352, .0314, .0276, .0255,
+		.0234, .0211, .0188, .0180, .0171, .0151, .0131, .0121,
+		.0111, .0100, .0088, .0088, .0087, .0080, .0072, .0071,
+		.0069, .0067, .0064, .0064, .0063
+    };
+	
+    /* WV2 Coastal Blue of wv2_spectral_response */
+    static const float sr2[301] = {
+		.0019, .0033, .0033, .0028, .0017, .0033, .0036, .0044,
+		.0029, .0062, .0054, .0050, .0074, .0135, .0454, .1731,
+		.6347, 3.4150, 27.4284, 132.9030, 355.9880, 592.5800, 700.7190, 739.6250,
+		765.3070, 787.8420, 817.0880, 838.6870, 861.7800, 883.5130, 905.0550, 917.0720,
+		927.2080, 947.6580, 965.0880, 979.3040, 985.9210, 989.0940, 997.2360, 974.6130,
+		853.9400, 588.0320, 281.5770, 80.5215, 8.9461, 1.3331, .3609, .1454,
+		.0712, .0380, .0115, .0096, .0051, .0112, .0110, .0108,
+		.0091, .0101, .0117, .0064, .0013, .0014, .0009, .0006,
+		.0007, .0009, .0009, .0011, .0010, .0007, .0009, .0012,
+		.0036, .0013, .0004, .0005, .0003, .0005, .0004, .0126,
+		.1417, .0024, .0003, .0003, .0005, .0005, .0003, .0003,
+		.0001, .0000, .0002, .0016, .0017, .0004, .0001, .0001,
+		.0005, .0029, .0045, .0028, .0010, .0017, .0013, .0014,
+		.0023, .0031, .0061, .0116, .0101, .0056, .0039, .0032,
+		.0027, .0031, .0025, .0026, .0027, .0027, .0025, .0021,
+		.0022, .0018, .0017, .0018, .0018, .0021, .0024, .0030,
+		.0044, .0093, .0172, .0163, .0078, .0042, .0044, .0042,
+		.0036, .0042, .0066, .0185, .0264, .0124, .0081, .0076,
+		.0085, .0096, .0122, .0292, .0976, .0936, .0333, .0238,
+		.0298, .0442, .0669, .1526, .4227, .2563, .0653, .0414,
+		.0578, .2646, .7112, .4411, .0894, .0305, .0131, .0081,
+		.0060, .0059, .0070, .0112, .0193, .0331, .0553, .1062,
+		.2462, .2458, .1162, .0691, .1216, .1248, .1605, .1959,
+		.1637, .1168, .0928, .0797, .0730, .0625, .0716, .0692,
+		.0699, .0721, .0593, .0474, .0512, .0388, .0287, .0282,
+		.0423, .0284, .0276, .0314, .0321, .0255, .0155, .0168,
+		.0152, .0173, .0183, .0163, .0163, .0211, .0168, .0132,
+		.0099, .0096, .0092, .0160, .0189, .0195, .0168, .0153,
+		.0145, .0112, .0095, .0074, .0062, .0047, .0040, .0040,
+		.0030, .0033, .0025, .0030, .0030, .0034, .0036, .0042,
+		.0041, .0050, .0054, .0060, .0054, .0064, .0054, .0049,
+		.0044, .0039, .0037, .0041, .0039, .0040, .0046, .0053,
+		.0049, .0046, .0042, .0035, .0032, .0026, .0024, .0023,
+		.0024, .0023, .0026, .0030, .0031, .0037, .0037, .0037,
+		.0038, .0034, .0031, .0027, .0025, .0021, .0019, .0016,
+		.0015, .0015, .0015, .0017, .0019, .0025, .0029, .0034,
+		.0041, .0043, .0046, .0048, .0047, .0050, .0050, .0056,
+		.0058, .0063, .0068, .0078, .0081
+    };
+	
+    /* WV2 Blue of wv2_spectral_response */
+    static const float sr3[301] = {
+		.0008, .0004, .0003, .0002, .0003, .0001, .0002, .0003,
+		.0004, .0005, .0004, .0005, .0004, .0003, .0005, .0006,
+		.0007, .0005, .0006, .0007, .0028, .0024, .0017, .0010,
+		.0026, .0062, .0135, .0275, .0412, .0515, .0701, .1333,
+		.3374, .9579, 2.2771, 5.4329, 19.7821, 81.8229, 245.2000, 503.3090,
+		700.9700, 757.6050, 778.2550, 788.6260, 800.0000, 801.7370, 809.8590, 821.0700,
+		826.0450, 830.9250, 842.2620, 862.7060, 878.4820, 876.9430, 878.2670, 887.6130,
+		907.5760, 930.5590, 950.1920, 976.8010, 1000.0000, 978.9400, 855.7790, 593.8730,
+		297.6290, 125.6610, 50.3684, 18.1990, 5.7341, 2.9735, 1.6560, .9803,
+		.6049, .3915, .2592, .1681, .1089, .0763, .0514, .0520,
+		.0667, .0623, .0607, .0594, .0626, .0549, .0587, .0488,
+		.0494, .0415, .0310, .0297, .0174, .0175, .0143, .0109,
+		.0128, .0092, .0086, .0092, .0081, .0085, .0090, .0076,
+		.0081, .0091, .0074, .0072, .0080, .0061, .0055, .0061,
+		.0042, .0035, .0041, .0038, .0028, .0038, .0038, .0032,
+		.0042, .0054, .0057, .0057, .0100, .0162, .0175, .0215,
+		.0359, .0457, .0343, .0239, .0243, .0255, .0195, .0134,
+		.0126, .0141, .0120, .0086, .0076, .0088, .0101, .0090,
+		.0070, .0081, .0109, .0134, .0124, .0120, .0149, .0224,
+		.0310, .0326, .0310, .0340, .0454, .0611, .0653, .0523,
+		.0415, .0420, .0510, .0638, .0645, .0492, .0354, .0300,
+		.0320, .0400, .0444, .0393, .0299, .0248, .0245, .0294,
+		.0405, .0507, .0515, .0447, .0595, .0543, .0609, .0773,
+		.0848, .0927, .0950, .0805, .0570, .0509, .0510, .0429,
+		.0566, .0641, .0635, .0645, .0686, .0662, .0780, .0785,
+		.0748, .0557, .0449, .0383, .0324, .0264, .0202, .0219,
+		.0214, .0236, .0270, .0351, .0351, .0308, .0297, .0280,
+		.0215, .0221, .0192, .0175, .0185, .0174, .0181, .0187,
+		.0178, .0187, .0184, .0172, .0158, .0142, .0148, .0135,
+		.0130, .0131, .0118, .0109, .0106, .0099, .0088, .0079,
+		.0070, .0061, .0064, .0069, .0074, .0090, .0105, .0120,
+		.0136, .0146, .0152, .0146, .0128, .0114, .0094, .0078,
+		.0063, .0056, .0053, .0053, .0052, .0054, .0053, .0048,
+		.0038, .0032, .0027, .0022, .0020, .0021, .0022, .0024,
+		.0029, .0029, .0028, .0025, .0021, .0019, .0015, .0014,
+		.0014, .0018, .0022, .0027, .0030, .0032, .0030, .0027,
+		.0025, .0021, .0018, .0021, .0027, .0038, .0047, .0056,
+		.0063, .0059, .0051, .0043, .0033
+    };
+	
+    /* WV2 Green of wv2_spectral_response */
+    static const float sr4[301] = {
+		.0004, .0003, .0001, .0002, .0002, .0001, .0002, .0002,
+		.0003, .0003, .0002, .0003, .0004, .0002, .0004, .0005,
+		.0004, .0004, .0004, .0005, .0004, .0005, .0005, .0005,
+		.0005, .0004, .0004, .0005, .0003, .0005, .0004, .0004,
+		.0003, .0004, .0005, .0003, .0002, .0003, .0005, .0004,
+		.0006, .0006, .0005, .0005, .0023, .0044, .0085, .0128,
+		.0141, .0159, .0198, .0212, .0226, .0266, .0356, .0435,
+		.0664, .1438, .3963, 1.1357, 3.0919, 11.1042, 40.5198, 133.7880,
+		351.5100, 606.0390, 723.0070, 760.0260, 779.3890, 788.8110, 806.8500, 828.0350,
+		840.7560, 842.0390, 844.3050, 846.8570, 850.3350, 859.7230, 863.5160, 869.1430,
+		882.5710, 900.7200, 924.4690, 942.1680, 962.2850, 976.6010, 985.7260, 994.7640,
+		1000.0000, 993.0530, 979.1210, 907.7450, 664.0400, 301.4360, 92.9241, 25.2385,
+		5.5627, 2.4767, 1.1294, .5085, .2229, .1072, .0539, .0257,
+		.0069, .0035, .0017, .0003, .0018, .0017, .0062, .0086,
+		.0152, .0161, .0257, .0325, .0292, .0270, .0241, .0141,
+		.0002, .0001, .0002, .0002, .0003, .0005, .0007, .0008,
+		.0010, .0008, .0006, .0010, .0011, .0006, .0009, .0011,
+		.0012, .0011, .0009, .0008, .0011, .0011, .0010, .0009,
+		.0011, .0009, .0010, .0011, .0011, .0011, .0010, .0013,
+		.0009, .0011, .0008, .0008, .0010, .0012, .0008, .0010,
+		.0011, .0013, .0011, .0010, .0011, .0012, .0014, .0012,
+		.0017, .0035, .0040, .0027, .0014, .0010, .0008, .0007,
+		.0003, .0007, .0008, .0011, .0010, .0026, .0009, .0002,
+		.0000, .0000, .0000, .0000, .0000, .0000, .0000, .0006,
+		.0051, .0042, .0018, .0005, .0003, .0004, .0008, .0003,
+		.0001, .0023, .0086, .0047, .0017, .0002, .0001, .0017,
+		.0013, .0017, .0010, .0002, .0117, .0095, .0112, .0091,
+		.0090, .0085, .0077, .0067, .0077, .0070, .0060, .0055,
+		.0061, .0069, .0062, .0066, .0066, .0058, .0060, .0054,
+		.0054, .0049, .0040, .0036, .0035, .0035, .0029, .0026,
+		.0023, .0021, .0029, .0024, .0022, .0022, .0020, .0018,
+		.0018, .0017, .0015, .0015, .0012, .0014, .0014, .0013,
+		.0012, .0011, .0013, .0013, .0011, .0013, .0014, .0016,
+		.0016, .0020, .0019, .0018, .0019, .0019, .0017, .0016,
+		.0017, .0014, .0013, .0013, .0012, .0013, .0013, .0015,
+		.0017, .0019, .0023, .0030, .0038, .0052, .0072, .0097,
+		.0132, .0170, .0211, .0255, .0300, .0351, .0407, .0474,
+		.0551, .0653, .0811, .1055, .1401
+    };
+	
+    /* WV2 Yellow of wv2_spectral_response */
+    static const float sr5[301] = {
+		.0003, .0001, .0001, .0001, .0000, .0000, .0001, .0001,
+		.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0003,
+		.0006, .0211, .0273, .0005, .0000, .0001, .0000, .0001,
+		.0002, .0002, .0001, .0002, .0002, .0003, .0003, .0002,
+		.0003, .0004, .0004, .0004, .0010, .0050, .0032, .0012,
+		.0005, .0003, .0004, .0003, .0007, .0006, .0005, .0005,
+		.0004, .0007, .0007, .0007, .0007, .0007, .0007, .0006,
+		.0007, .0006, .0003, .0004, .0002, .0003, .0002, .0002,
+		.0002, .0002, .0001, .0003, .0001, .0002, .0004, .0003,
+		.0005, .0002, .0002, .0002, .0001, .0004, .0004, .0038,
+		.0070, .0062, .0044, .0049, .0038, .0111, .0267, .0575,
+		.1271, .3445, .8950, 2.2247, 5.8789, 26.5572, 134.6520, 389.2200,
+		663.5500, 848.1980, 899.8060, 920.0230, 932.6340, 940.1810, 947.0260, 952.4410,
+		966.4120, 981.4690, 989.7230, 992.7060, 1000.0000, 969.3680, 759.4330, 436.6510,
+		134.3220, 30.8525, 7.3852, 2.2367, .6906, .2851, .1576, .0963,
+		.0443, .0231, .0129, .0075, .0050, .0033, .0022, .0014,
+		.0008, .0010, .0008, .0007, .0009, .0005, .0008, .0009,
+		.0006, .0009, .0005, .0007, .0010, .0005, .0009, .0008,
+		.0007, .0011, .0009, .0008, .0012, .0011, .0015, .0013,
+		.0012, .0011, .0013, .0013, .0010, .0009, .0011, .0011,
+		.0010, .0008, .0009, .0008, .0008, .0009, .0008, .0008,
+		.0006, .0005, .0005, .0006, .0007, .0002, .0004, .0006,
+		.0003, .0004, .0006, .0006, .0234, .0159, .0189, .0213,
+		.0113, .0140, .0189, .0200, .0194, .0099, .0183, .0115,
+		.0093, .0135, .0106, .0113, .0119, .0076, .0120, .0127,
+		.0171, .0114, .0067, .0086, .0089, .0068, .0044, .0064,
+		.0049, .0058, .0060, .0049, .0019, .0039, .0036, .0029,
+		.0033, .0030, .0031, .0047, .0039, .0043, .0039, .0038,
+		.0033, .0028, .0025, .0021, .0020, .0017, .0018, .0018,
+		.0010, .0014, .0013, .0013, .0007, .0008, .0009, .0009,
+		.0008, .0008, .0009, .0009, .0006, .0010, .0009, .0007,
+		.0009, .0007, .0007, .0008, .0009, .0008, .0010, .0014,
+		.0015, .0016, .0018, .0018, .0015, .0014, .0012, .0010,
+		.0005, .0004, .0005, .0004, .0004, .0005, .0004, .0003,
+		.0003, .0004, .0004, .0004, .0003, .0004, .0003, .0003,
+		.0002, .0002, .0002, .0001, .0001, .0001, .0001, .0001,
+		.0001, .0001, .0001, .0001, .0001, .0002, .0002, .0003,
+		.0003, .0004, .0005, .0005, .0006
+    };
+	
+    /* WV2 Red of wv2_spectral_response */
+    static const float sr6[301] = {
+		.0003, .0001, .0001, .0000, .0001, .0000, .0001, .0001,
+		.0002, .0001, .0001, .0002, .0002, .0001, .0002, .0003,
+		.0004, .0002, .0003, .0004, .0003, .0003, .0003, .0004,
+		.0004, .0004, .0006, .0006, .0003, .0003, .0003, .0003,
+		.0003, .0003, .0002, .0002, .0003, .0002, .0004, .0002,
+		.0003, .0003, .0003, .0002, .0019, .0034, .0008, .0006,
+		.0012, .0024, .0010, .0009, .0006, .0013, .0013, .0014,
+		.0029, .0019, .0029, .0022, .0015, .0023, .0008, .0002,
+		.0003, .0002, .0002, .0002, .0002, .0002, .0001, .0000,
+		.0002, .0000, .0000, .0000, .0001, .0001, .0001, .0001,
+		.0001, .0000, .0001, .0002, .0001, .0001, .0001, .0001,
+		.0002, .0001, .0001, .0003, .0002, .0004, .0005, .0006,
+		.0008, .0009, .0013, .0091, .0126, .0268, .0410, .0704,
+		.1229, .2687, .6281, 1.6492, 4.8674, 22.7608, 95.5659, 294.3530,
+		596.0710, 822.2890, 872.7760, 885.3350, 927.9280, 955.6950, 965.0420, 967.0950,
+		965.5880, 957.7760, 955.5000, 952.8310, 955.8010, 965.2530, 970.3580, 976.4930,
+		987.5260, 996.5750, 999.0850, 992.1070, 983.6940, 978.3110, 885.2800, 632.5950,
+		291.8230, 83.2547, 20.4412, 5.6355, 1.9137, .8432, .4036, .2037,
+		.1018, .0569, .0272, .0162, .0142, .0168, .0133, .0144,
+		.0132, .0125, .0106, .0061, .0031, .0034, .0015, .0014,
+		.0012, .0004, .0006, .0012, .0030, .0050, .0095, .0073,
+		.0067, .0089, .0069, .0049, .0055, .0022, .0015, .0005,
+		.0022, .0007, .0006, .0009, .0138, .0140, .0134, .0163,
+		.0106, .0124, .0108, .0077, .0089, .0090, .0079, .0043,
+		.0108, .0045, .0070, .0065, .0062, .0064, .0084, .0069,
+		.0027, .0065, .0063, .0065, .0051, .0071, .0092, .0108,
+		.0067, .0079, .0041, .0043, .0086, .0062, .0072, .0061,
+		.0039, .0055, .0048, .0050, .0057, .0051, .0042, .0044,
+		.0040, .0035, .0035, .0040, .0027, .0031, .0032, .0024,
+		.0031, .0027, .0021, .0017, .0017, .0016, .0013, .0011,
+		.0012, .0010, .0013, .0010, .0011, .0009, .0008, .0007,
+		.0007, .0007, .0008, .0007, .0007, .0006, .0006, .0006,
+		.0005, .0005, .0005, .0006, .0005, .0006, .0005, .0005,
+		.0002, .0006, .0005, .0004, .0004, .0004, .0003, .0003,
+		.0004, .0005, .0005, .0006, .0006, .0008, .0007, .0006,
+		.0005, .0003, .0003, .0002, .0001, .0002, .0001, .0001,
+		.0002, .0002, .0002, .0002, .0002, .0002, .0002, .0002,
+		.0001, .0001, .0001, .0001, .0001
+    };
+	
+    /* WV2 RedEdge of wv2_spectral_response */
+    static const float sr7[301] = {
+		.0001, .0002, .0003, .0002, .0002, .0001, .0001, .0002,
+		.0002, .0002, .0002, .0002, .0003, .0003, .0003, .0004,
+		.0008, .0023, .0013, .0013, .0020, .0011, .0016, .0010,
+		.0010, .0011, .0009, .0020, .0011, .0009, .0007, .0010,
+		.0097, .0509, .0025, .0003, .0008, .0239, .0026, .0002,
+		.0002, .0003, .0001, .0002, .0002, .0002, .0002, .0001,
+		.0001, .0005, .0008, .0017, .0009, .0058, .0138, .0079,
+		.0039, .0057, .0153, .0099, .0012, .0015, .0042, .0014,
+		.0002, .0002, .0001, .0001, .0002, .0001, .0001, .0001,
+		.0002, .0001, .0002, .0002, .0001, .0001, .0001, .0000,
+		.0000, .0001, .0002, .0001, .0004, .0020, .0021, .0008,
+		.0009, .0020, .0031, .0031, .0045, .0067, .0061, .0050,
+		.0071, .0113, .0138, .0161, .0240, .0344, .0375, .0398,
+		.0538, .0794, .0884, .0759, .0904, .1744, .1848, .0517,
+		.0088, .0045, .0027, .0015, .0011, .0007, .0014, .0028,
+		.0050, .0064, .0081, .0106, .0116, .0115, .0118, .0105,
+		.0113, .0084, .0082, .0089, .0097, .0153, .0328, .0787,
+		.2073, .7591, 3.1275, 18.8368, 99.6101, 346.8350, 622.9080, 853.7850,
+		952.7920, 978.4220, 987.6340, 989.0260, 993.9010, 999.8580, 999.2800, 989.4170,
+		986.8130, 980.9620, 977.1160, 944.1910, 846.3990, 615.8370, 359.7630, 138.8130,
+		30.5442, 7.0917, 2.1585, .7300, .2699, .1188, .0553, .0240,
+		.0096, .0069, .0053, .0033, .0043, .0040, .0051, .0077,
+		.0083, .0094, .0064, .0050, .0001, .0003, .0003, .0003,
+		.0002, .0003, .0002, .0002, .0002, .0001, .0001, .0003,
+		.0002, .0002, .0002, .0001, .0003, .0003, .0002, .0004,
+		.0004, .0002, .0008, .0008, .0019, .0039, .0088, .0112,
+		.0114, .0077, .0047, .0043, .0104, .0084, .0076, .0074,
+		.0089, .0118, .0153, .0190, .0174, .0171, .0183, .0187,
+		.0180, .0190, .0157, .0145, .0127, .0102, .0081, .0062,
+		.0045, .0039, .0032, .0025, .0020, .0016, .0015, .0011,
+		.0010, .0010, .0008, .0007, .0008, .0006, .0007, .0005,
+		.0006, .0006, .0007, .0006, .0007, .0004, .0004, .0006,
+		.0004, .0005, .0005, .0005, .0005, .0004, .0004, .0004,
+		.0004, .0004, .0004, .0004, .0003, .0003, .0002, .0002,
+		.0002, .0002, .0002, .0002, .0002, .0001, .0001, .0001,
+		.0001, .0002, .0002, .0001, .0002, .0002, .0002, .0002,
+		.0002, .0001, .0001, .0001, .0001, .0001, .0001, .0000,
+		.0001, .0001, .0001, .0003, .0005
+    };
+	
+    /* WV2 NIR1 of wv2_spectral_response */
+    static const float sr8[301] = {
+		.0003, .0000, .0000, .0001, .0001, .0000, .0000, .0001,
+		.0001, .0000, .0000, .0000, .0000, .0000, .0000, .0000,
+		.0001, .0000, .0000, .0001, .0002, .0000, .0001, .0001,
+		.0001, .0002, .0001, .0001, .0001, .0001, .0001, .0001,
+		.0001, .0002, .0001, .0001, .0016, .0061, .0004, .0001,
+		.0004, .0003, .0003, .0003, .0003, .0004, .0005, .0006,
+		.0004, .0004, .0007, .0014, .0006, .0009, .0016, .0006,
+		.0005, .0006, .0003, .0002, .0003, .0001, .0002, .0004,
+		.0002, .0003, .0003, .0004, .0003, .0004, .0002, .0001,
+		.0001, .0000, .0000, .0000, .0000, .0000, .0001, .0001,
+		.0000, .0001, .0001, .0002, .0001, .0000, .0001, .0001,
+		.0000, .0000, .0001, .0000, .0000, .0000, .0000, .0001,
+		.0001, .0000, .0000, .0000, .0002, .0000, .0000, .0002,
+		.0000, .0001, .0000, .0001, .0000, .0000, .0000, .0001,
+		.0000, .0000, .0000, .0001, .0000, .0001, .0001, .0004,
+		.0005, .0005, .0006, .0005, .0007, .0007, .0010, .0008,
+		.0011, .0008, .0009, .0010, .0010, .0009, .0009, .0012,
+		.0013, .0010, .0009, .0021, .0017, .0035, .0048, .0064,
+		.0052, .0043, .0039, .0044, .0050, .0060, .0066, .0111,
+		.0162, .0284, .0440, .0705, .1061, .1653, .2562, .4123,
+		.7130, 1.3994, 2.8857, 5.9533, 12.6868, 27.6938, 58.8599, 123.1170,
+		260.2040, 506.7740, 759.9670, 940.5800, 995.8050, 997.6220, 988.9070, 983.0910,
+		972.9340, 958.3120, 941.1390, 931.9070, 919.3820, 909.0800, 897.6000, 882.1200,
+		871.1910, 863.0540, 844.2840, 836.4960, 838.0360, 841.1890, 835.6570, 833.8190,
+		842.5480, 830.7770, 818.6040, 816.8370, 806.7110, 810.7600, 794.1610, 779.8840,
+		767.3130, 749.6020, 739.2710, 738.7140, 734.1450, 711.8330, 697.1410, 680.4620,
+		658.6350, 649.7810, 632.4710, 619.9080, 609.1200, 598.9920, 590.9140, 566.1070,
+		507.1120, 402.7990, 275.1740, 157.6670, 73.8047, 32.7870, 13.8147, 5.3908,
+		2.6246, 1.8086, 1.3063, 1.0328, .9172, .8912, .7983, .7457,
+		.7272, .7833, .7011, .6553, .6028, .5579, .2812, .2742,
+		.0044, .0032, .0029, .0022, .0020, .0015, .0011, .0010,
+		.0011, .0009, .0009, .0007, .0007, .0007, .0007, .0007,
+		.0004, .0006, .0007, .0006, .0003, .0005, .0005, .0005,
+		.0003, .0004, .0004, .0003, .0002, .0005, .0003, .0003,
+		.0003, .0004, .0003, .0003, .0002, .0002, .0002, .0002,
+		.0001, .0002, .0002, .0001, .0001, .0001, .0001, .0001,
+		.0001, .0001, .0001, .0001, .0001, .0001, .0001, .0001,
+		.0001, .0001, .0001, .0000, .0001
+    };
+	
+    /* WV2 NIR2 of wv2_spectral_response */
+    static const float sr9[301] = {
+		.0003, .0070, .0199, .0874, .0748, .0052, .0005, .0006,
+		.0003, .0001, .0002, .0003, .0001, .0002, .0002, .0002,
+		.0002, .0002, .0002, .0002, .0002, .0001, .0002, .0002,
+		.0004, .0002, .0002, .0002, .0001, .0002, .0002, .0002,
+		.0001, .0002, .0001, .0008, .0012, .0001, .0002, .0019,
+		.0012, .0008, .0006, .0002, .0000, .0001, .0004, .0002,
+		.0000, .0009, .0037, .0012, .0002, .0001, .0007, .0009,
+		.0000, .0003, .0001, .0000, .0007, .0008, .0000, .0001,
+		.0002, .0004, .0008, .0009, .0004, .0002, .0002, .0027,
+		.0088, .0007, .0004, .0040, .0047, .0001, .0003, .0021,
+		.0010, .0001, .0002, .0001, .0001, .0000, .0000, .0000,
+		.0000, .0000, .0000, .0001, .0013, .0001, .0003, .0002,
+		.0002, .0005, .0006, .0002, .0006, .0005, .0005, .0006,
+		.0012, .0005, .0003, .0002, .0005, .0006, .0006, .0011,
+		.0011, .0003, .0004, .0005, .0001, .0006, .0007, .0008,
+		.0012, .0019, .0024, .0010, .0005, .0015, .0005, .0000,
+		.0003, .0002, .0003, .0005, .0008, .0002, .0002, .0005,
+		.0008, .0002, .0004, .0003, .0001, .0002, .0001, .0004,
+		.0005, .0007, .0007, .0009, .0009, .0006, .0010, .0009,
+		.0007, .0007, .0009, .0011, .0006, .0009, .0010, .0010,
+		.0012, .0009, .0008, .0005, .0008, .0007, .0009, .0006,
+		.0005, .0011, .0010, .0005, .0006, .0009, .0009, .0008,
+		.0012, .1141, .4534, .5047, .7796, 1.0461, .9763, 1.1133,
+		1.0687, 1.0909, 1.0955, 1.1311, 1.0945, 1.0891, 1.0416, 1.1403,
+		1.1270, 1.1706, 1.1509, 1.2061, 1.3547, 1.3002, 1.4918, 2.2310,
+		4.3284, 10.5836, 30.5957, 107.8530, 313.7460, 571.8840, 789.2690, 951.5410,
+		987.1440, 991.6770, 993.3630, 999.6910, 996.6910, 983.3270, 970.8560, 952.3600,
+		933.0200, 922.3760, 910.9220, 899.7670, 892.1120, 878.5650, 864.6450, 850.5250,
+		841.2980, 827.2570, 808.1800, 794.0050, 774.3770, 760.2820, 746.9060, 725.8480,
+		708.9670, 689.1840, 661.7200, 640.6300, 620.9290, 596.4570, 574.6850, 551.8710,
+		530.9050, 511.6300, 493.6670, 474.1180, 454.3110, 437.7660, 421.4490, 406.0470,
+		389.7410, 376.6220, 363.5170, 349.8550, 336.6970, 326.9620, 317.0800, 305.8060,
+		294.9200, 282.2030, 271.4390, 260.8070, 250.9120, 243.3730, 235.7340, 227.6580,
+		217.5590, 208.7220, 198.5760, 188.1520, 178.7050, 168.4410, 159.0320, 148.1250,
+		137.7700, 124.5570, 109.6120, 91.7406, 71.5068, 50.3125, 32.8064, 19.8817,
+		9.7957, 4.7076, 2.1849, 1.0292, .5237, .2985, .2000, .1460,
+		.1143, .1020, .0801, .0766, .0801, .0645, .0701, .0646,
+		.0538, .0298, .0300, .0277, .0007
+    };
+	
+    static const float wli[9] = {0.350, 0.350, 0.350, 0.350, 0.350, 0.350, 0.350, 0.350, 0.350};
+    static const float wls[9] = {1.100, 1.100, 1.100, 1.100, 1.100, 1.100, 1.100, 1.100, 1.100};
+
+    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 < 301; i++)  ffu.s[40+i] = sr1[i];
+        break;
+    case 2: for(i = 0; i < 301; i++)  ffu.s[40+i] = sr2[i];
+        break;
+    case 3: for(i = 0; i < 301; i++)  ffu.s[40+i] = sr3[i];
+        break;
+    case 4: for(i = 0; i < 301; i++)  ffu.s[40+i] = sr4[i];
+        break;
+    case 5: for(i = 0; i < 301; i++)  ffu.s[40+i] = sr5[i];
+        break;
+    case 6: for(i = 0; i < 301; i++)  ffu.s[40+i] = sr6[i];
+        break;
+    case 7: for(i = 0; i < 301; i++)  ffu.s[40+i] = sr7[i];
+        break;
+    case 8: for(i = 0; i < 301; i++)  ffu.s[40+i] = sr8[i];
+        break;
+    case 9: for(i = 0; i < 301; i++)  ffu.s[40+i] = sr9[i];
+        break;
+    }
+}
+
+void IWave::quickbird2(int iwa)
+{
+  
+  /* QuickBird Pan of quickbird2 */
+  static const float sr1[65] = {
+	300.0000, 312.5000, 325.0000, 337.5000, 350.0000, 362.5000, 375.0000, 387.5000,
+	400.0000, 412.5000, 425.0000, 437.5000, 450.0000, 462.5000, 475.0000, 487.5000,
+	500.0000, 512.5000, 525.0000, 537.5000, 550.0000, 562.5000, 575.0000, 587.5000,
+	600.0000, 612.5000, 625.0000, 637.5000, 650.0000, 662.5000, 675.0000, 687.5000,
+	700.0000, 712.5000, 725.0000, 737.5000, 750.0000, 762.5000, 775.0000, 787.5000,
+	800.0000, 812.5000, 825.0000, 837.5000, 850.0000, 862.5000, 875.0000, 887.5000,
+	900.0000, 912.5000, 925.0000, 937.5000, 950.0000, 962.5000, 975.0000, 987.5000,
+	1000.0000, 1012.5000, 1025.0000, 1037.5000, 1050.0000, 1062.5000, 1075.0000, 1087.5000,
+	1100.0000
+  };
+  
+  /* QuickBird Blue of quickbird2 */
+  static const float sr2[65] = {
+	.0000, .0000, .0000, .0000, .0014, .0010, .0020, .0138,
+	.0362, .0758, .1219, .1789, .2198, .2854, .3364, .3579,
+	.3781, .4276, .4982, .5925, .7051, .8105, .8911, .9426,
+	.9598, .9922, .9876, .9573, .9183, .8831, .8893, .8848,
+	.8888, .8677, .8625, .8897, .9295, .9130, .9039, .8761,
+	.8457, .8582, .8339, .8526, .8394, .7850, .7342, .6788,
+	.6186, .5832, .4969, .4305, .3738, .3035, .2567, .2162,
+	.1776, .1421, .1085, .0773, .0548, .0050, .0000, .0000,
+	.0000
+  };
+  
+  /* QuickBird Green of quickbird2 */
+  static const float sr3[65] = {
+	.0000, .0000, .0010, .0037, .0053, .0030, .0013, .0023,
+	.0025, .0053, .0284, .2164, .6299, .8176, .9178, .9801,
+	.9179, .4787, .1592, .0663, .0293, .0126, .0126, .0098,
+	.0098, .0091, .0036, .0025, .0028, .0030, .0089, .0256,
+	.0083, .0086, .0091, .0028, .0031, .0034, .0036, .0033,
+	.0030, .0035, .0040, .0042, .0048, .0057, .0052, .0052,
+	.0068, .0101, .0093, .0056, .0035, .0019, .0014, .0012,
+	.0011, .0012, .0015, .0015, .0012, .0000, .0000, .0000,
+	.0000
+  };
+  
+  /* QuickBird Red of quickbird2 */
+  static const float sr4[65] = {
+	.0000, .0000, .0000, .0000, .0031, .0023, .0014, .0012,
+	.0012, .0013, .0023, .0046, .0178, .0356, .0982, .2739,
+	.5277, .8005, .8705, .9640, .9934, .9733, .9652, .7230,
+	.3124, .1139, .0365, .0268, .0242, .0140, .0132, .0076,
+	.0032, .0035, .0076, .0047, .0022, .0029, .0034, .0041,
+	.0038, .0031, .0031, .0035, .0051, .0084, .0090, .0078,
+	.0076, .0081, .0067, .0043, .0027, .0016, .0013, .0010,
+	.0008, .0009, .0013, .0010, .0009, .0000, .0000, .0000,
+	.0000
+  };
+  
+  /* QuickBird NIR of quickbird2 */
+  static const float sr5[65] = {
+	.0000, .0000, .0000, .0000, .0037, .0018, .0011, .0009,
+	.0007, .0013, .0010, .0024, .0029, .0032, .0032, .0023,
+	.0031, .0036, .0053, .0065, .0078, .0110, .0177, .0399,
+	.0872, .2675, .6620, .8976, .9798, .9961, .8726, .5119,
+	.1651, .0417, .0201, .0205, .0095, .0048, .0045, .0063,
+	.0045, .0026, .0025, .0025, .0025, .0024, .0022, .0019,
+	.0021, .0028, .0015, .0010, .0010, .0008, .0007, .0006,
+	.0008, .0007, .0008, .0009, .0008, .0000, .0000, .0000,
+	.0000
+  };
+  
+  static const float wli[5] = {0.001, 0.001, 0.001, 0.001, 0.001};
+  static const float wls[5] = {0.161, 0.161, 0.161, 0.161, 0.161};
+  
+  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 < 65; i++)  ffu.s[-99+i] = sr1[i];
+	break;
+	case 2: for(i = 0; i < 65; i++)  ffu.s[-99+i] = sr2[i];
+	break;
+	case 3: for(i = 0; i < 65; i++)  ffu.s[-99+i] = sr3[i];
+	break;
+	case 4: for(i = 0; i < 65; i++)  ffu.s[-99+i] = sr4[i];
+	break;
+	case 5: for(i = 0; i < 65; i++)  ffu.s[-99+i] = sr5[i];
+	break;
+  }
+}
+
+void IWave::landsat_8(int iwa)
+{
+
+    /* Coastal Aerosol of landsat_8 */
+    static const float sr1[13] = {
+		.0001, .0025, .0248, .3860, .9087, .9806, .9867, .9966,
+		.9828, .8257, .2264, .0256, .0024
+    };
+	
+    /* Blue of landsat_8 */
+    static const float sr2[37] = {
+		.0000, .0002, .0005, .0016, .0069, .0429, .2714, .7907,
+		.9030, .9047, .8897, .8792, .8797, .8898, .8485, .8363,
+		.8685, .9115, .9317, .9549, .9564, .9838, .9895, .9681,
+		.9887, .9611, .9661, .9821, .9631, .9982, .8449, .1195,
+		.0053, .0013, .0005, .0001, .0000
+    };
+	
+    /* Green of landsat_8 */
+    static const float sr3[35] = {
+		.0000, .0003, .0009, .0022, .0049, .0133, .0415, .1676,
+		.5459, .8963, .9542, .9631, .9525, .9779, .9809, .9961,
+		.9838, .9612, .9479, .9721, .9534, .9743, .9810, .9733,
+		.9758, .9744, .9678, .9717, .9837, .9603, .8093, .4353,
+		.0878, .0100, .0010
+    };
+	
+    /* Red of landsat_8 */
+    static const float sr4[23] = {
+		.0003, .0027, .0145, .1077, .5268, .9267, .9474, .9689,
+		.9836, .9783, .9556, .9550, 1.0000, .9831, .9730, .9945,
+		.9640, .9690, .9499, .4629, .0460, .0053, .0006
+    };
+	
+    /* Pan of landsat_8 */
+    static const float sr5[82] = {
+		.0002, .0013, .0038, .0123, .0427, .1601, .4725, .7454,
+		.8319, .8553, .8596, .8577, .8585, .8583, .8502, .8582,
+		.8615, .8577, .8792, .8917, .9063, .9129, .9029, .9207,
+		.9130, .8857, .8794, .8742, .8754, .8917, .8741, .8869,
+		.9035, .9110, .9132, .9202, .9244, .9298, .9489, .9405,
+		.9457, .9394, .9467, .9340, .9408, .9580, .9682, .9665,
+		.9572, .9477, .9525, .9575, .9642, .9674, .9770, .9760,
+		.9696, .9728, .9658, .9667, .9721, .9793, .9711, .9534,
+		.9639, .9671, .9706, .9800, .9883, .9918, 1.0000, .9985,
+		.9926, .9858, .9139, .5244, .1673, .0462, .0152, .0067,
+		.0032, .0012
+    };
+	
+    /* Nir of landsat_8 */
+    static const float sr6[27] = {
+		.0000, .0002, .0005, .0012, .0032, .0090, .0283, .1149,
+		.4035, .8177, .9868, .9884, .9898, .9740, .9512, .9523,
+		.9401, .9613, .9366, .7120, .2888, .0793, .0207, .0062,
+		.0019, .0006, .0001
+    };
+	
+    /* Cirrus of landsat_8 */
+    static const float sr7[25] = {
+		.0001, .0004, .0009, .0016, .0030, .0063, .0170, .0560,
+		.1828, .5269, .8624, .9465, .9387, .9933, .9832, .9638,
+		.8727, .5295, .1910, .0538, .0162, .0056, .0018, .0007,
+		.0001
+    };
+	
+    /* SWIR1 of landsat_8 */
+    static const float sr8[73] = {
+		.0001, .0003, .0006, .0010, .0016, .0023, .0033, .0046,
+		.0064, .0090, .0124, .0176, .0259, .0378, .0554, .0826,
+		.1202, .1755, .2529, .3528, .4736, .6052, .7213, .8047,
+		.8734, .9035, .9187, .9270, .9251, .9241, .9214, .9237,
+		.9346, .9451, .9464, .9489, .9513, .9548, .9615, .9591,
+		.9609, .9611, .9679, .9722, .9791, .9813, .9959, .9999,
+		.9966, .9826, .9551, .8983, .7965, .6654, .5099, .3684,
+		.2513, .1657, .1067, .0694, .0450, .0291, .0187, .0124,
+		.0082, .0054, .0036, .0024, .0015, .0009, .0005, .0003,
+		.0000
+    };
+	
+    /* SWIR2 of landsat_8 */
+    static const float sr9[125] = {
+		.0000, .0002, .0003, .0005, .0007, .0010, .0014, .0019,
+		.0024, .0032, .0041, .0054, .0071, .0094, .0123, .0159,
+		.0210, .0274, .0354, .0482, .0633, .0841, .1128, .1534,
+		.2028, .2673, .3425, .4315, .5225, .6134, .6897, .7665,
+		.8137, .8500, .8836, .8907, .9097, .9221, .9322, .9420,
+		.9431, .9464, .9497, .9510, .9531, .9509, .9475, .9494,
+		.9533, .9494, .9515, .9437, .9434, .9426, .9381, .9468,
+		.9474, .9473, .9341, .9390, .9347, .9264, .9369, .9295,
+		.9358, .9364, .9566, .9543, .9644, .9630, .9637, .9600,
+		.9578, .9502, .9588, .9576, .9520, .9607, .9493, .9619,
+		.9643, .9694, .9809, .9844, .9915, .9954, .9927, .9996,
+		.9944, .9860, .9891, .9765, .9742, .9757, .9737, .9584,
+		.9551, .9419, .9071, .8695, .7849, .6751, .5526, .4283,
+		.3157, .2284, .1617, .1143, .0803, .0567, .0404, .0294,
+		.0213, .0156, .0114, .0085, .0063, .0047, .0034, .0025,
+		.0018, .0012, .0008, .0005, .0002
+    };
+	
+    static const float wli[9] = {0.427, 0.436, 0.513, 0.626, 0.488, 0.830, 1.341, 1.516, 2.038};
+    static const float wls[9] = {0.459, 0.527, 0.600, 0.682, 0.692, 0.896, 1.402, 1.696, 2.350};
+
+    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 < 13; i++)  ffu.s[70+i] = sr1[i];
+        break;
+    case 2: for(i = 0; i < 37; i++)  ffu.s[74+i] = sr2[i];
+        break;
+    case 3: for(i = 0; i < 35; i++)  ffu.s[105+i] = sr3[i];
+        break;
+    case 4: for(i = 0; i < 23; i++)  ffu.s[150+i] = sr4[i];
+        break;
+    case 5: for(i = 0; i < 82; i++)  ffu.s[95+i] = sr5[i];
+        break;
+    case 6: for(i = 0; i < 27; i++)  ffu.s[232+i] = sr6[i];
+        break;
+    case 7: for(i = 0; i < 25; i++)  ffu.s[436+i] = sr7[i];
+        break;
+    case 8: for(i = 0; i < 73; i++)  ffu.s[506+i] = sr8[i];
+        break;
+    case 9: for(i = 0; i < 125; i++)  ffu.s[715+i] = sr9[i];
+        break;
+    }
+}
+
+
+
 float IWave::equivwl() const
 {
     float seb = 0;
@@ -2529,6 +3167,9 @@
 	else if(iwave <= 92)    rapideye(iwave - 87);
 	else if(iwave <= 96)    vgt1_spot4(iwave - 92);
 	else if(iwave <= 100)   vgt2_spot5(iwave - 96);
+	else if(iwave <= 109)   worldview2(iwave - 100);
+	else if(iwave <= 114)   quickbird2(iwave - 109);
+	else if(iwave <= 115)	landsat_8(iwave - 114);
 	else G_warning(_("Unsupported iwave value: %d"), iwave);
     }
 
@@ -2545,7 +3186,8 @@
 /* --- spectral condition ---- */
 void IWave::print()
 {
-    static const string nsat[102] = {
+/* The compiler will deduce the dimension from the initializer list. */ 
+    static const string nsat[] = {
 	string(" constant        "), string(" user s          "),
 	string(" meteosat        "), string(" goes east       "), string(" goes west       "),
 	string(" avhrr 1 (noaa6) "), string(" avhrr 2 (noaa6) "),
@@ -2588,7 +3230,15 @@
 	string(" vgt1 spot4 0    "), string(" vgt1 spot4 2    "), string(" vgt1 spot4 3    "),
 	string(" vgt1 spot4 MIR  "),
 	string(" vgt2 spot5 0    "), string(" vgt2 spot5 2    "), string(" vgt2 spot5 3    "),
-	string(" vgt2 spot5 MIR  "),
+	string(" vgt2 spot5 MIR  "), string(" worldview 2 pan  "), string(" worldview 2 coastal blue"),
+	string(" worldview 2 blue "), string(" worldview 2 blue "), string(" worldview 2 green"),
+	string(" worldview 2 yellow"), string(" worldview 2 red"), string(" worldview 2 red edge"),
+	string(" worldview 2 nir1"), string(" worldview 2 nir2"), string(" quickbird 2 pan"),
+	string(" quickbird 2 blue"), string(" quickbird 2 green"), string(" quickbird 2 red"),
+	string(" quickbird 2 nir"), string(" Landsat 8 Coastal Aerosol"), string(" Landsat 8 Blue"),
+	string(" Landsat 8 Green"),string(" Landsat 8 Red"), string(" Landsat 8 Panchromatic"),
+	string(" Landsat 8 NIR"),string(" Landsat 8 Cirrus"),string(" Landsat 8 SWIR1"),
+	string(" Landsat 8 SWIR2")
     };
 
 

Modified: grass/trunk/imagery/i.atcorr/Iwave.h
===================================================================
--- grass/trunk/imagery/i.atcorr/Iwave.h	2014-05-30 13:40:31 UTC (rev 60609)
+++ grass/trunk/imagery/i.atcorr/Iwave.h	2014-05-30 15:14:49 UTC (rev 60610)
@@ -122,6 +122,30 @@
 c        98  B2       "               ( 0.580-0.780 )                  c
 c        99  B3       "               ( 0.700-1.000 )                  c
 c        100 MIR      "               ( 1.450-1.800 )                  c
+c        101 Pan band of Worldview 2  ( 0.450-0.800 )                  c
+c        102 Coastal  "               ( 0.396-0.458 )                  c
+c        103 Blue     "               ( 0.442-0.515 )                  c
+c        104 Green    "               ( 0.506-0.586 )                  c
+c        105 Yellow   "               ( 0.584-0.632 )                  c
+c        106 Red      "               ( 0.624-0.694 )                  c
+c        107 RedEdge  "               ( 0.699-0.749 )                  c
+c        108 NIR1     "               ( 0.765-0.901 )                  c
+c        109 NIR2     "               ( 0.856-1.043 )                  c
+c        110 Pan band of QuickBird 2  ( 0.405-1.053 )                  c
+c        111 Blue     "               ( 0.430-0.545 )                  c
+c        112 Green    "               ( 0.466-0.620 )                  c
+c        113 Red      "               ( 0.590-0.710 )                  c
+c        114 NIR      "               ( 0.715-0.918 )                  c
+c        115 Coastal Aerosol of LS8   ( 0.427-0.459 )                  c
+c        116 Blue	  "               ( 0.436-0.527 )                  c 
+c        117 Green    "               ( 0.512-0.610 )                  c 
+c        118 Red      "               ( 0.625-0.691 )                  c 
+c        119 Pan      "               ( 0.488-0.692 )                  c 
+c        120 NIR      "               ( 0.829-0.900 )                  c 
+c        121 Cirrus   "               ( 1.340-1.409 )                  c  
+c        122 SWIR1    "               ( 1.515-1.697 )                  c 
+c        123 SWIR2    "               ( 2.037-2.037 )                  c 
+c                                                                      c
 c  note: wl has to be in micrometer                                    c
 c**********************************************************************/
 
@@ -163,8 +187,10 @@
 	void rapideye(int iwa);
 	void vgt1_spot4(int iwa);
 	void vgt2_spot5(int iwa);
+	void worldview2(int iwa);
+	void quickbird2(int iwa);
+	void landsat_8(int iwa);
 
-
 public:
 	/* To compute the equivalent wavelength needed for the calculation of the
 	  downward radiation field used in the computation of the non lambertian 

Modified: grass/trunk/imagery/i.atcorr/create_iwave.py
===================================================================
--- grass/trunk/imagery/i.atcorr/create_iwave.py	2014-05-30 13:40:31 UTC (rev 60609)
+++ grass/trunk/imagery/i.atcorr/create_iwave.py	2014-05-30 15:14:49 UTC (rev 60610)
@@ -87,6 +87,7 @@
     w = values[:,1] >= 0
     response = values[w]
     
+
     # interpolating
     f = interpolate.interp1d(response[:,0],response[:,1])
     

Modified: grass/trunk/imagery/i.atcorr/i.atcorr.html
===================================================================
--- grass/trunk/imagery/i.atcorr/i.atcorr.html	2014-05-30 13:40:31 UTC (rev 60609)
+++ grass/trunk/imagery/i.atcorr/i.atcorr.html	2014-05-30 15:14:49 UTC (rev 60610)
@@ -161,6 +161,25 @@
 <td><b>VGT2 (SPOT5)</b></td>
 <td>enter month,day,hh.ddd,long.,lat. *</td>
 </tr>
+
+<tr>
+<td>16</td>
+<td><b>WorldView 2</b></td>
+<td>enter month,day,hh.ddd,long.,lat. *</td>
+</tr>
+
+<tr>
+<td>17</td>
+<td><b>QuickBird</b></td>
+<td>enter month,day,hh.ddd,long.,lat. *</td>
+</tr>
+
+<tr>
+<td>17</td>
+<td><b>LandSat 8</b></td>
+<td>enter month,day,hh.ddd,long.,lat. *</td>
+</tr>
+
 </table>
 
 <blockquote>
@@ -557,6 +576,36 @@
 <tr><td>98</td><td>VGT2 (SPOT5) band 2 (0.580-0.780)</td></tr>
 <tr><td>99</td><td>VGT2 (SPOT5) band 3 (0.700-1.000)</td></tr>
 <tr><td>100</td><td>VGT2 (SPOT5) MIR band (1.450-1.800)</td></tr>
+
+<tr><td>101</td><td>WorldView 2 Panchromatic band (0.447-0.808)</td></tr>
+<tr><td>102</td><td>WorldView 2 Coastal Blue band (0.396-0.458)</td></tr>
+<tr><td>103</td><td>WorldView 2 Blue band (0.442-0.515)</td></tr>
+<tr><td>104</td><td>WorldView 2 Green band (0.506-0.586)</td></tr>
+<tr><td>105</td><td>WorldView 2 Yellow band (0.584-0.632)</td></tr>
+<tr><td>106</td><td>WorldView 2 Red band (0.624-0.694)</td></tr>
+<tr><td>107</td><td>WorldView 2 Red Edge band (0.699-0.749)</td></tr>
+<tr><td>108</td><td>WorldView 2 NIR1 band (0.765-0.901)</td></tr>
+<tr><td>109</td><td>WorldView 2 NIR2 band (0.856-0.1043)</td></tr>
+
+<tr><td>110</td><td><b>QuickBird</b> Panchromatic band (0.405-1.053)</td></tr>
+<tr><td>111</td><td>QuickBird Blue band (0.430-0.545)</td></tr>
+<tr><td>112</td><td>QuickBird Green band (0.466-0.620)</td></tr>
+<tr><td>113</td><td>QuickBird Red band (0.590-0.710)</td></tr>
+<tr><td>114</td><td>QuickBird NIR1 band (0.715-0.918)</td></tr>
+
+<tr><td>115</td><td><b>Landsat 8 </b> Coastal Aerosol Band (0.427nm - 0.459nm)</td></tr>
+<tr><td>116</td><td>Landsat 8 Blue Band  (436nm - 527nm)</td></tr>
+<tr><td>117</td><td>Landsat 8 Green Band (512nm-610nm)</td></tr>
+<tr><td>118</td><td>Landsat 8 Red Band (625nm-691nm)</td></tr>
+<tr><td>119</td><td>Landsat 8 Panchromatic Band (488nm-692nm)</td></tr>
+<tr><td>120</td><td>Landsat 8 NIR Band (829nm-900nm)</td></tr>
+<tr><td>121</td><td>Landsat 8 Cirrus Band (1340nm-1409nm)</td></tr>
+<tr><td>122</td><td>Landsat 8 SWIR1 Band (1515nm - 1697nm)</td></tr>
+<tr><td>123</td><td>Landsat 8 SWIR2 Band (2037nm - 2355nm)</td></tr>
+
+
+
+
 </table>
 
 <h2>EXAMPLES</h2>
@@ -696,6 +745,7 @@
      <a href="http://www.rsgis.ait.ac.th/~honda/textbooks/advrs/6smanv2.0_P2.pdf">PDF2</a>, 
      and <a href="http://www.rsgis.ait.ac.th/~honda/textbooks/advrs/6smanv2.0_P3.pdf">PDF3</a>
 <li>RapidEye sensors have been provided by <a href="http://www.rapideye.com/">RapidEye AG, Germany</a>
+<li> Julia A. Barsi, Brian L. Markham and Jeffrey A. Pedelty  "The operational land imager: spectral response and spectral uniformity", Proc. SPIE 8153, 81530G (2011); doi:10.1117/12.895438
 </ul>
 
 
@@ -722,5 +772,10 @@
 <p><em>VGT1 and VGT2 sensors addition from <a href="http://6s.ltdri.org/">6SV-1.1 sources</a>, addition 07/2011:</em>
 <br>Alfredo Alessandrini, Anne Ghisla
 
-<p><i>Last changed: $Date$</i>
+<p><em>Added Landsat 8 from <a href="http://landsat.gsfc.nasa.gov/?p=5779">NASA sources</a>, addition 05/2014:</em>
+<br>Nikolaos Ves
 
+
+<p>
+<i>Last changed: $Date$</i>
+



More information about the grass-commit mailing list