const struct { float d[4][3]; struct { float vc, A, B; } rad[3]; struct { float Ns; float b[3]; } cor[3]; } satcal[] = { /* calibration coeff from NOAA KLM POES satellite user guide */ /* http://www.ncdc.noaa.gov/oa/pod-guide/ncdc/docs/klm/tables.htm */ {/* NOAA-15 */ { /* PRT coeff d0,d1,d2 */ {276.60157 , 0.051045 , 1.36328E-06}, {276.62531 , 0.050909 , 1.47266E-06}, {276.67413 , 0.050907 , 1.47656E-06}, {276.59258 , 0.050966 , 1.47656E-06} }, { /* channel radiance coeff vc,A,B*/ {925.4075 , 0.337810 , 0.998719}, /* channel 4 */ {839.8979 , 0.304558 , 0.999024}, /* channel 5 */ {2695.9743 , 1.621256 , 0.998015} /* channel 3B */ }, { /* nonlinear radiance correction Ns,b0,b1,b2 */ {-4.50 , {4.76 , -0.0932 , 0.0004524}}, /* channel 4 */ {-3.61 , {3.83 , -0.0659 , 0.0002811}}, /* channel 5*/ {0.0,{0.0,0.0,0.0}} /* channel 3B*/ } }, {/* NOAA-16 */ { /* PRT coeff d0,d1,d2 */ {276.355 , 5.562E-02 ,-1.590E-05}, {276.142 , 5.605E-02 ,-1.707E-05}, {275.996 , 5.486E-02 ,-1.223E-05}, {276.132 , 5.494E-02 ,-1.344E-05} }, { /* channel radiance coeff vc,A,B*/ {917.2289 ,0.332380 ,0.998522}, /* channel 4 */ {838.1255 ,0.674623 ,0.998363}, /* channel 5 */ {2700.1148 ,1.592459,0.998147} /* channel 3B */ }, { /* nonlinear radiance correction Ns,b0,b1,b2 */ {-2.467, {2.96,-0.05411,0.00024532}}, /* channel 4 */ {-2.009,{2.25,-0.03665,0.00014854}}, /* channel 5*/ {0.0,{0.0,0.0,0.0}} /* channel 3B*/ } }, {/* NOAA 17 */ { /* PRT coeff d0,d1,d2 */ {276.628 , 0.05098 , 1.371e-06}, {276.538 , 0.05098 , 1.371e-06}, {276.761 , 0.05097 , 1.369e-06}, {276.660 , 0.05100 , 1.348e-06} }, { /* channel radiance coeff vc,A,B*/ {926.2947 , 0.271683 , 0.998794}, /* channel 4 */ {839.8246 , 0.309180 , 0.999012}, /* channel 5 */ {2669.3554 , 1.702380 , 0.997378} /* channel 3B */ }, { /* nonlinear radiance correction Ns,b0,b1,b2 */ {-8.55 , {8.22 , -0.15795 , 0.00075579}}, /* channel 4 */ {-3.97 , {4.31 , -0.07318 , 0.00030976}}, /* channel 5 */ {0.0,{0.0,0.0,0.0}} /* channel 3B*/ } }, {/* NOAA 18 */ { /* PRT coeff d0,d1,d2 */ {276.601 , 0.05090 , 1.657e-06}, {276.683 , 0.05101 , 1.482e-06}, {276.565 , 0.05117 , 1.313e-06}, {276.615 , 0.05103 , 1.484e-06} }, { /* channel radiance coeff vc,A,B*/ {928.1460 , 0.436645 , 0.998607}, /* channel 4 */ {833.2532 , 0.253179 , 0.999057}, /* channel 5 */ {2659.7952 , 1.698704 , 0.996960} /* channel 3B */ }, { /* nonlinear radiance correction Ns,b0,b1,b2 */ {-5.53 , {5.82 , -0.11069 , 0.00052337}}, /* channel 4 */ {-2.22 , {2.67 , -0.04360 , 0.00017715}}, /* channel 5 */ {0.0,{0.0,0.0,0.0}} /* channel 3B*/ } }, {/* NOAA 19 */ { /* PRT coeff d0,d1,d2 */ {276.6067 , 0.051111 , 1.405783E-06}, {276.6119 , 0.051090 , 1.496037E-06}, {276.6311 , 0.051033 , 1.496990E-06}, {276.6268 , 0.051058 , 1.493110E-06} }, { /* channel radiance coeff vc,A,B*/ {928.9 , 0.53959 , 0.998534}, /* channel 4 */ {831.9 , 0.36064 , 0.998913}, /* channel 5 */ {2670.0 , 1.67396 , 0.997364} /* channel 3B */ }, { /* nonlinear radiance correction Ns,b0,b1,b2 */ {-5.49 , {5.70 -0.11187 , 0.00054668}}, /* channel 4 */ {-3.39 , {3.58 -0.05991 , 0.00024985}}, /* channel 5 */ {0.0,{0.0,0.0,0.0}} /* channel 3B*/ } } }; const float c1=1.1910427e-5; const float c2=1.4387752;