/* Following filter function created using create_iwave.py */ void IWave::planet(int iwa) { /* Blue of planet */ static const float sr1[113] = { .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0043, .0045, .0047, .0050, .0063, .0075, .0088, .0100, .1258, .2415, .3572, .4730, .5952, .7175, .8397, .9620, .9702, .9785, .9868, .9950, .9962, .9975, .9988, 1.0000, .9855, .9710, .9565, .9420, .9137, .8855, .8572, .8290, .7997, .7705, .7412, .7120, .6713, .6305, .5897, .5490, .5060, .4630, .4200, .3770, .3540, .3310, .3080, .2850, .2675, .2500, .2325, .2150, .1975, .1800, .1625, .1450, .1327, .1205, .1082, .0960, .0912, .0865, .0818, .0770, .0740, .0710, .0680, .0650, .0628, .0605, .0583, .0560, .0545, .0530, .0515, .0500, .0498, .0495, .0493, .0490, .0500, .0510, .0520, .0530, .0560, .0590, .0620, .0650, .0698, .0745, .0793, .0840, .0897, .0955, .1013, .1070, .1110, .1150, .1190, .1230, .1080, .0930, .0780, .0630 }; /* Green of planet */ static const float sr2[113] = { .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0040, .0043, .0045, .0047, .0050, .0288, .0525, .0762, .1000, .1260, .1520, .1780, .2040, .2145, .2250, .2355, .2460, .2765, .3070, .3375, .3680, .4045, .4410, .4775, .5140, .5495, .5850, .6205, .6560, .6955, .7350, .7745, .8140, .8450, .8760, .9070, .9380, .9517, .9655, .9792, .9930, .9948, .9965, .9982, 1.0000, .9935, .9870, .9805, .9740, .9592, .9445, .9298, .9150, .8912, .8675, .8438, .8200, .7927, .7655, .7382, .7110, .6750, .6390, .6030, .5670, .5250, .4830, .4410, .3990, .3635, .3280, .2925, .2570, .2355, .2140, .1925, .1710, .1645, .1580, .1515, .1450, .1397, .1345, .1293, .1240, .1205, .1170, .1135, .1100, .1085, .1070, .1055, .1040, .1065, .1090, .1115, .1140, .1023, .0905, .0788, .0670 }; /* Red of planet */ static const float sr3[117] = { .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0010, .0055, .0100, .0145, .0190, .0217, .0245, .0272, .0300, .0297, .0295, .0293, .0290, .0298, .0305, .0312, .0320, .0318, .0315, .0312, .0310, .0302, .0295, .0288, .0280, .0288, .0295, .0302, .0310, .0353, .0395, .0437, .0480, .0528, .0575, .0622, .0670, .0625, .0580, .0535, .0490, .0428, .0365, .0303, .0240, .0232, .0225, .0218, .0210, .0278, .0345, .0413, .0480, .1067, .1655, .2243, .2830, .4165, .5500, .6835, .8170, .8582, .8995, .9407, .9820, .9865, .9910, .9955, 1.0000, .9950, .9900, .9850, .9800, .9798, .9795, .9792, .9790, .9705, .9620, .9535, .9450, .9385, .9320, .9255, .9190, .9085, .8980, .8875, .8770, .8660, .8550, .8440, .8330, .7240, .6150, .5060, .3970, .2980, .1990, .1000, .0010 }; /* NIR of planet */ static const float sr4[174] = { .0015, .0020, .0020, .0020, .0020, .0020, .0018, .0015, .0013, .0010, .0008, .0005, .0003, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0003, .0005, .0008, .0010, .0013, .0015, .0018, .0020, .0018, .0015, .0013, .0010, .0010, .0010, .0010, .0010, .0013, .0015, .0018, .0020, .0020, .0020, .0020, .0020, .0020, .0020, .0020, .0020, .0018, .0015, .0013, .0010, .0008, .0005, .0003, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0003, .0005, .0008, .0010, .0013, .0015, .0018, .0020, .0023, .0025, .0027, .0030, .0030, .0030, .0030, .0030, .0030, .0030, .0030, .0030, .0027, .0025, .0023, .0020, .0015, .0010, .0005, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0000, .0003, .0005, .0008, .0010, .0025, .0040, .0055, .0070, .0457, .0845, .1232, .1620, .3700, .5780, .7860, .9940, .9955, .9970, .9985, 1.0000, .9810, .9620, .9430, .9240, .9103, .8965, .8828, .8690, .8552, .8415, .8277, .8140, .8002, .7865, .7728, .7590, .7470, .7350, .7230, .7110, .6972, .6835, .6698, .6560, .6430, .6300, .6170, .6040, .5922, .5805, .5688, .5570, .4775, .3980, .3185, .2390, .1802, .1215, .0628, .0040 }; static const float wli[4] = {0.4000, 0.4000, 0.4000, 0.4475}; static const float wls[4] = {0.6825, 0.6825, 0.6925, 0.8825}; 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 < 113; i++) ffu.s[60+i] = sr1[i]; break; case 2: for(i = 0; i < 113; i++) ffu.s[60+i] = sr2[i]; break; case 3: for(i = 0; i < 117; i++) ffu.s[60+i] = sr3[i]; break; case 4: for(i = 0; i < 174; i++) ffu.s[79+i] = sr4[i]; break; } }