15 std::vector<float> PressureAlts;
17 _Rcf_Set.getBestWeightedRCSet(ScanBTs, ACAltKm, 0.0);
24 float BtDiff = (ScanBTs[j] - BestWtdRCSet.
FL_RCs.
MBTAvg[j]);
25 Temperature = Temperature + (BestWtdRCSet.
FL_RCs.
RC[L][j] * BtDiff);
30 ATP.
Altitudes = Pressure2Km(PressureAlts);
47 std::vector<float> Retriever::Pressure2Km(std::vector<float> Pressures)
49 std::vector<float> Altitudes;
52 for (std::vector<float>::iterator Pit = Pressures.begin();
53 Pit != Pressures.end(); ++Pit)
57 Altitude = 44.3307692307692 *
58 (1.0 - pow((*Pit/1013.25),0.190263235151657));
59 }
else if (*Pit > 54.7488)
61 Altitude = 11.0 - (6.34161998393947*log(*Pit/226.3206));
62 }
else if (*Pit > 8.680185)
64 Altitude = 20.0 - (216.65 *
65 (1.0 - pow((*Pit/54.7488),-0.0292712699464088)));
66 }
else if (*Pit > 1.109063)
68 Altitude = 32.0 - (81.6607142857143 *
69 (1.0 - pow((*Pit/8.680185),-0.0819595474499447)));
70 }
else if (*Pit > 0.6693885)
72 Altitude = 47.0 - (7.92226839904554 * log(*Pit/1.109063));
73 }
else if (*Pit > 0.03956419)
75 Altitude = 51.0 + (96.6607142857143 *
76 (1.0 - pow((*Pit/0.6693885),(0.0819595474499447))));
77 }
else if (*Pit > 1.45742511874549E-03)
79 Altitude = 71.0 + (107.325 *
80 (1.0 - pow((*Pit/0.03956419),(5.85425338928176E-02))));
81 }
else if (*Pit > 5.8654139565495E-04)
83 Altitude = 84.852 - (5.47214624555127 * log(*Pit/0.003733834));
84 }
else if (*Pit > 2.40645796828482E-04)
86 Altitude = 95.0 - (140.597 *
87 (1.0 - pow((*Pit/5.8654139565495E-04),
88 (-3.92234986852218E-02))));
89 }
else if (*Pit > 1.03251578598705E-04)
91 Altitude = 100.0 - (71.20438 *
92 (1.0 - pow((*Pit/2.40645796828482E-04),
93 (-8.02032717123127E-02))));
94 }
else if (*Pit > 4.81695302325482E-05)
96 Altitude = 105.0 - (33.46154 *
97 (1.0 - pow((*Pit/1.03251578598705E-04),
98 (-0.18265269904593))));
101 if (*Pit <= 0) *Pit=0.000001;
102 Altitude = 110.0 - (20.0 *
103 (1.0 - pow((*Pit/4.81695302325482E-05),
104 (-0.351255203356906))));
107 Altitudes.push_back(Altitude);
float MBTAvg[NUM_BRT_TEMPS]
Model Brightness Temperature Averages.
float TAvgRl[NUM_RETR_LVLS]
Average T at retrieval levels.
This class encapsulates the whole set of RCFs for a project and provides a method for determining whi...
float RC[NUM_RETR_LVLS][NUM_BRT_TEMPS]
Retrieval Coefficients.
AtmosphericTemperatureProfile Retrieve(std::vector< float >, float)
#define NUM_RETR_LVLS
number of retrieval levels per flight level in RCFs
std::vector< float > Temperatures
This class encapsulates the retrieval method which performs the inverse calculation of the radiative ...
std::vector< float > Altitudes
float PAltRl[NUM_RETR_LVLS]
Pressure at retrieval levels.