📄 atmostrans.cpp
字号:
}
sum1 = (GetVaporSpectrumTransOfInclineInAnyHeightFrom3To5(wavelengthbegin, temperature, Hr, height, height1, height2, r)
+ GetVaporSpectrumTransOfInclineInAnyHeightFrom3To5(wavelengthend, temperature, Hr, height, height1, height2, r)
)*0.5;
n = (int)(wavelengthend*10+0.5) - (int)(wavelengthbegin*10+0.5);
sum2 = 0;
if(n > 1){
wavelength = wavelengthbegin;
for(int i = 1; i <= (n - 1); i++){
wavelength = wavelength*10 + 1;
wavelength = wavelength / 10;
sum2 += GetVaporSpectrumTransOfInclineInAnyHeightFrom3To5(wavelength, temperature, Hr,
height, height1, height2, r);
}
}
else{}
vaporavetrans = (sum1 + sum2)*0.1/(wavelengthend - wavelengthbegin);
return vaporavetrans;
};
double AtmosTrans::GetCO2AveTransOfHorizonInAnyHeightFrom3To5(double wavelength1, double wavelength2,
double height, double distance)
{
double wavelengthbegin, wavelengthend, wavelength, sum1, sum2, co2avetrans;
int n; //循环计数变量
if(wavelength1 < wavelength2){ //确定波长wavelength1,wavelength2的大小
wavelengthbegin = wavelength1; //小的赋值给wavelengthbegin
wavelengthend = wavelength2; //大的赋值给wavelengthend
}
else{
wavelengthbegin = wavelength2;
wavelengthend = wavelength1;
}
sum1 = (GetCO2SpectrumTransOfHorizonInAnyHeightFrom3To5(wavelengthbegin, height, distance)
+ GetCO2SpectrumTransOfHorizonInAnyHeightFrom3To5(wavelengthend, height, distance)
)*0.5;
n = (int)(wavelengthend*10+0.5) - (int)(wavelengthbegin*10+0.5);
sum2 = 0;
if(n > 1){
wavelength = wavelengthbegin;
for(int i = 1; i <= (n - 1); i++){
wavelength = wavelength*10 + 1;
wavelength = wavelength / 10;
sum2 += GetCO2SpectrumTransOfHorizonInAnyHeightFrom3To5(wavelength, height, distance);
}
}
else{}
co2avetrans = (sum1 + sum2)*0.1/(wavelengthend - wavelengthbegin);
return co2avetrans;
};
double AtmosTrans::GetCO2AveTransOfInclineInAnyHeightFrom3To5(double wavelength1, double wavelength2,
double height, double height1, double height2, double r)
{
double wavelengthbegin, wavelengthend, wavelength, sum1, sum2, co2avetrans;
int n; //循环计数变量
if(wavelength1 < wavelength2){ //确定波长wavelength1,wavelength2的大小
wavelengthbegin = wavelength1; //小的赋值给wavelengthbegin
wavelengthend = wavelength2; //大的赋值给wavelengthend
}
else{
wavelengthbegin = wavelength2;
wavelengthend = wavelength1;
}
sum1 = (GetCO2SpectrumTransOfInclineInAnyHeightFrom3To5(wavelengthbegin, height, height1, height2, r)
+ GetCO2SpectrumTransOfInclineInAnyHeightFrom3To5(wavelengthend, height, height1, height2, r)
)*0.5;
n = (int)(wavelengthend*10+0.5) - (int)(wavelengthbegin*10+0.5);
sum2 = 0;
if(n > 1){
wavelength = wavelengthbegin;
for(int i = 1; i <= (n - 1); i++){
wavelength = wavelength*10 + 1;
wavelength = wavelength / 10;
sum2 += GetCO2SpectrumTransOfInclineInAnyHeightFrom3To5(wavelength, height, height1, height2, r);
}
}
else{}
co2avetrans = (sum1 + sum2)*0.1/(wavelengthend - wavelengthbegin);
return co2avetrans;
};
double AtmosTrans::GetAtmosAveTransOfHorizonInAnyHeightFrom3To5(double wavelength1, double wavelength2, int temperature,
double Hr, double height, double distance, double Dv, double Jrain, double Jsnow)
{
double atmosavetrans;
atmosavetrans = GetVaporAveTransOfHorizonInAnyHeightFrom3To5(wavelength1, wavelength2, temperature, Hr, height, distance)
*GetCO2AveTransOfHorizonInAnyHeightFrom3To5(wavelength1, wavelength2, height, distance)
*GetDispersionAveTrans(wavelength1, wavelength2, Dv, distance)
*GetRainSpectrumTrans(Jrain, distance)
*GetSnowSpectrumTrans(Jsnow, distance);
return atmosavetrans;
};
double AtmosTrans::GetAtmosAveTransOfInclineInAnyHeightFrom3To5(double wavelength1, double wavelength2, int temperature,
double Hr, double height, double height1, double height2, double r, double Dv, double Jrain, double Jsnow)
{
double atmosavetrans;
atmosavetrans = GetVaporAveTransOfInclineInAnyHeightFrom3To5(wavelength1, wavelength2, temperature, Hr, height, height1, height2, r)
*GetCO2AveTransOfInclineInAnyHeightFrom3To5(wavelength1, wavelength2, height, height1, height2, r)
*GetDispersionAveTrans(wavelength1, wavelength2, Dv, (height2 - height1)/cos(r*PI/180))
*GetRainSpectrumTrans(Jrain, (height2 - height1)/cos(r*PI/180))
*GetSnowSpectrumTrans(Jsnow, (height2 - height1)/cos(r*PI/180));
return atmosavetrans;
};
double AtmosTrans::GetVaporAveTransOfHorizonInAnyHeightFrom8To14(double wavelength1, double wavelength2, int temperature,
double Hr, double height, double distance)
{
double wavelengthbegin, wavelengthend, wavelength, sum1, sum2, vaporavetrans;
int n; //循环计数变量
if(wavelength1 < wavelength2){ //确定波长wavelength1,wavelength2的大小
wavelengthbegin = wavelength1; //小的赋值给wavelengthbegin
wavelengthend = wavelength2; //大的赋值给wavelengthend
}
else{
wavelengthbegin = wavelength2;
wavelengthend = wavelength1;
}
sum1 = (GetVaporSpectrumTransOfHorizonInAnyHeightFrom8To14(wavelengthbegin, temperature, Hr, height, distance)
+ GetVaporSpectrumTransOfHorizonInAnyHeightFrom8To14(wavelengthend, temperature, Hr, height, distance)
)*0.5;
n = (int)(wavelengthend*10+0.5) - (int)(wavelengthbegin*10+0.5);
sum2 = 0;
if(n > 1){
wavelength = wavelengthbegin;
for(int i = 1; i <= (n - 1); i++){
wavelength = wavelength*10 + 1;
wavelength = wavelength / 10;
sum2 += GetVaporSpectrumTransOfHorizonInAnyHeightFrom8To14(wavelength, temperature, Hr,
height, distance);
}
}
else{}
vaporavetrans = (sum1 + sum2)*0.1/(wavelengthend - wavelengthbegin);
return vaporavetrans;
};
double AtmosTrans::GetVaporAveTransOfInclineInAnyHeightFrom8To14(double wavelength1, double wavelength2, int temperature,
double Hr, double height, double height1, double height2, double r)
{
double wavelengthbegin, wavelengthend, wavelength, sum1, sum2, vaporavetrans;
int n; //循环计数变量
if(wavelength1 < wavelength2){ //确定波长wavelength1,wavelength2的大小
wavelengthbegin = wavelength1; //小的赋值给wavelengthbegin
wavelengthend = wavelength2; //大的赋值给wavelengthend
}
else{
wavelengthbegin = wavelength2;
wavelengthend = wavelength1;
}
sum1 = (GetVaporSpectrumTransOfInclineInAnyHeightFrom8To14(wavelengthbegin, temperature, Hr, height, height1, height2, r)
+ GetVaporSpectrumTransOfInclineInAnyHeightFrom8To14(wavelengthend, temperature, Hr, height, height1, height2, r)
)*0.5;
n = (int)(wavelengthend*10+0.5) - (int)(wavelengthbegin*10+0.5);
sum2 = 0;
if(n > 1){
wavelength = wavelengthbegin;
for(int i = 1; i <= (n - 1); i++){
wavelength = wavelength*10 + 1;
wavelength = wavelength / 10;
sum2 += GetVaporSpectrumTransOfInclineInAnyHeightFrom8To14(wavelength, temperature, Hr,
height, height1, height2, r);
}
}
else{}
vaporavetrans = (sum1 + sum2)*0.1/(wavelengthend - wavelengthbegin);
return vaporavetrans;
};
double AtmosTrans::GetCO2AveTransOfHorizonInAnyHeightFrom8To14(double wavelength1, double wavelength2,
double height, double distance)
{
double wavelengthbegin, wavelengthend, wavelength, sum1, sum2, co2avetrans;
int n; //循环计数变量
if(wavelength1 < wavelength2){ //确定波长wavelength1,wavelength2的大小
wavelengthbegin = wavelength1; //小的赋值给wavelengthbegin
wavelengthend = wavelength2; //大的赋值给wavelengthend
}
else{
wavelengthbegin = wavelength2;
wavelengthend = wavelength1;
}
sum1 = (GetCO2SpectrumTransOfHorizonInAnyHeightFrom8To14(wavelengthbegin, height, distance)
+ GetCO2SpectrumTransOfHorizonInAnyHeightFrom8To14(wavelengthend, height, distance)
)*0.5;
n = (int)(wavelengthend*10+0.5) - (int)(wavelengthbegin*10+0.5);
sum2 = 0;
if(n > 1){
wavelength = wavelengthbegin;
for(int i = 1; i <= (n - 1); i++){
wavelength = wavelength*10 + 1;
wavelength = wavelength / 10;
sum2 += GetCO2SpectrumTransOfHorizonInAnyHeightFrom8To14(wavelength, height, distance);
}
}
else{}
co2avetrans = (sum1 + sum2)*0.1/(wavelengthend - wavelengthbegin);
return co2avetrans;
};
double AtmosTrans::GetCO2AveTransOfInclineInAnyHeightFrom8To14(double wavelength1, double wavelength2,
double height, double height1, double height2, double r)
{
double wavelengthbegin, wavelengthend, wavelength, sum1, sum2, co2avetrans;
int n; //循环计数变量
if(wavelength1 < wavelength2){ //确定波长wavelength1,wavelength2的大小
wavelengthbegin = wavelength1; //小的赋值给wavelengthbegin
wavelengthend = wavelength2; //大的赋值给wavelengthend
}
else{
wavelengthbegin = wavelength2;
wavelengthend = wavelength1;
}
sum1 = (GetCO2SpectrumTransOfInclineInAnyHeightFrom8To14(wavelengthbegin, height, height1, height2, r)
+ GetCO2SpectrumTransOfInclineInAnyHeightFrom8To14(wavelengthend, height, height1, height2, r)
)*0.5;
n = (int)(wavelengthend*10+0.5) - (int)(wavelengthbegin*10+0.5);
sum2 = 0;
if(n > 1){
wavelength = wavelengthbegin;
for(int i = 1; i <= (n - 1); i++){
wavelength = wavelength*10 + 1;
wavelength = wavelength / 10;
sum2 += GetCO2SpectrumTransOfInclineInAnyHeightFrom8To14(wavelength, height, height1, height2, r);
}
}
else{}
co2avetrans = (sum1 + sum2)*0.1/(wavelengthend - wavelengthbegin);
return co2avetrans;
};
double AtmosTrans::GetAtmosAveTransOfHorizonInAnyHeightFrom8To14(double wavelength1, double wavelength2, int temperature,
double Hr, double height, double distance, double Dv, double Jrain, double Jsnow)
{
double atmosavetrans;
atmosavetrans = GetVaporAveTransOfHorizonInAnyHeightFrom8To14(wavelength1, wavelength2, temperature, Hr, height, distance)
*GetCO2AveTransOfHorizonInAnyHeightFrom8To14(wavelength1, wavelength2, height, distance)
*GetDispersionAveTrans(wavelength1, wavelength2, Dv, distance)
*GetRainSpectrumTrans(Jrain, distance)
*GetSnowSpectrumTrans(Jsnow, distance);
return atmosavetrans;
};
double AtmosTrans::GetAtmosAveTransOfInclineInAnyHeightFrom8To14(double wavelength1, double wavelength2, int temperature,
double Hr, double height, double height1, double height2, double r, double Dv, double Jrain, double Jsnow)
{
double atmosavetrans;
atmosavetrans = GetVaporAveTransOfInclineInAnyHeightFrom8To14(wavelength1, wavelength2, temperature, Hr, height, height1, height2, r)
*GetCO2AveTransOfInclineInAnyHeightFrom8To14(wavelength1, wavelength2, height, height1, height2, r)
*GetDispersionAveTrans(wavelength1, wavelength2, Dv, (height2 - height1)/cos(r*PI/180))
*GetRainSpectrumTrans(Jrain, (height2 - height1)/cos(r*PI/180))
*GetSnowSpectrumTrans(Jsnow, (height2 - height1)/cos(r*PI/180));
return atmosavetrans;
};
double AtmosTrans::GetDispersionAveTrans(double wavelength1, double wavelength2, double Dv, double distance)
{
double wavelengthbegin, wavelengthend, wavelength, sum1, sum2, dispersionavetrans;
int n; //循环计数变量
if(wavelength1 < wavelength2){ //确定波长wavelength1,wavelength2的大小
wavelengthbegin = wavelength1; //小的赋值给wavelengthbegin
wavelengthend = wavelength2; //大的赋值给wavelengthend
}
else{
wavelengthbegin = wavelength2;
wavelengthend = wavelength1;
}
sum1 = (GetDispersionSpectrumTrans(wavelengthbegin, Dv, distance)
+ GetDispersionSpectrumTrans(wavelengthend, Dv, distance)
)*0.5;
n = (int)(wavelengthend*10+0.5) - (int)(wavelengthbegin*10+0.5);
sum2 = 0;
if(n > 1){
wavelength = wavelengthbegin;
for(int i = 1; i <= (n - 1); i++){
wavelength = wavelength*10 + 1;
wavelength = wavelength / 10;
sum2 += GetDispersionSpectrumTrans(wavelength, Dv, distance);
}
}
else{}
dispersionavetrans = (sum1 + sum2)*0.1/(wavelengthend - wavelengthbegin);
return dispersionavetrans;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -