⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atmostrans.h

📁 计算大气光谱透射率和平均透射率
💻 H
📖 第 1 页 / 共 2 页
字号:
	//此函数没有对波段的两个端点wavelength1(um)、wavelength2(um)的取值范围限制,调用时要限制这两个参数的取值
	//在正确的波段范围内,并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。)
	double GetVaporAveTransOfHorizonInAnyHeightFrom3To5(double wavelength1, double wavelength2,
		                   int temperature, double Hr, double height, double distance);
	
	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),(所在海拔高度上的)大气温度temperature(摄氏度)、
	//(所在海拔高度上的)相对湿度Hr(百分数)、海拔高度height(km)、
	//以所在海拔高度height为原点的斜传输路径的起点高度 height1(km)、终点高度height2(km),
	//所在海拔高度height处的水平地面法线与辐射传输路径的夹角r(度),
	//返回所在海拔高度所求波段的斜传输路径的水蒸气的平均透射率
	//(注:波段的两个端点wavelength1(um)、wavelength2(um)不分起点和终点即不分大小。
	//海拔高度height在海平面上取正,在海平面下取负。
	//起点高度 height1、终点高度height2都是相对海拔高度height的相对高度。当起点或终点的实际海拔高度
	//大于所在的海拔高度height时,起点高度 height1、终点高度height2取正值;当起点或终点的实际海拔高度
	//小于所在的海拔高度height时,起点高度 height1、终点高度height2取负值。
	//所在海拔高度height处的水平地面法线取指向天空方向为正方向,夹角r取值范围0-180。
	//此函数没有对(所在海拔高度上的)相对湿度Hr的取值范围限制,此函数调用必须保证传输路径倾斜即height1!=height2且r!=90
	//此函数没有对波段的两个端点wavelength1(um)、wavelength2(um)的取值范围限制,调用时要限制这两个参数的取值
	//在正确的波段范围内,并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。)
	double GetVaporAveTransOfInclineInAnyHeightFrom3To5(double wavelength1, double wavelength2,
		   int temperature, double Hr, double height, double height1, double height2, double r);
	
	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),海拔高度height(km),(所在海拔高度上的)水平传输距离distance(km),
	//返回所在海拔高度水平路径所求波段的二氧化碳的平均透射率
	//(注:波段的两个端点wavelength1(um)、wavelength2(um)不分起点和终点即不分大小。
	//海拔高度height在海平面上取正,在海平面下取负。
	//此函数没有对(所在海拔高度上的)水平传输距离distance(km)的取值范围限制。
	//此函数没有对波段的两个端点wavelength1(um)、wavelength2(um)的取值范围限制,调用时要限制这两个参数的取值
	//在正确的波段范围内,并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。)
	double GetCO2AveTransOfHorizonInAnyHeightFrom3To5(double wavelength1, double wavelength2,
		                   double height, double distance);

	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),海拔高度height(km),
	//以所在海拔高度height为原点的斜传输路径的起点高度 height1(km)、终点高度height2(km),
	//所在海拔高度height处的水平地面法线与辐射传输路径的夹角r(度),
	//返回所在海拔高度所求波段的斜传输路径的二氧化碳的平均透射率
	//(注:波段的两个端点wavelength1(um)、wavelength2(um)不分起点和终点即不分大小。
	//海拔高度height在海平面上取正,在海平面下取负。
	//起点高度 height1、终点高度height2都是相对海拔高度height的相对高度。当起点或终点的实际海拔高度
	//大于所在的海拔高度height时,起点高度 height1、终点高度height2取正值;当起点或终点的实际海拔高度
	//小于所在的海拔高度height时,起点高度 height1、终点高度height2取负值。
	//所在海拔高度height处的水平地面法线取指向天空方向为正方向,夹角r取值范围0-180。
	//此函数调用必须保证传输路径倾斜即height1!=height2且r!=90
	//此函数没有对波段的两个端点wavelength1(um)、wavelength2(um)的取值范围限制,调用时要限制这两个参数的取值
	//在正确的波段范围内,并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。)
	double GetCO2AveTransOfInclineInAnyHeightFrom3To5(double wavelength1, double wavelength2,
		                   double height, double height1, double height2, double r);
	
	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),(所在海拔高度上的)大气温度temperature(摄氏度),
	//(所在海拔高度上的)相对湿度Hr(百分数),海拔高度height(km),(所在海拔高度上的)水平传输距离distance(km),
	//所在海拔高度的气象视程Dv(km),降雨量Jrain(mm/h),降雪量Jsnow(mm/h),
	//返回所在海拔高度水平路径所求波段的大气总的平均透射率
	//(注:注意各个参数取值的范围限制)
	double GetAtmosAveTransOfHorizonInAnyHeightFrom3To5(double wavelength1, double wavelength2,
		int temperature, double Hr, double height, double distance, double Dv, double Jrain, double Jsnow);

	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),(所在海拔高度上的)大气温度temperature(摄氏度),
	//(所在海拔高度上的)相对湿度Hr(百分数),海拔高度height(km),以所在海拔高度height为原点的斜传输路径的起点高度 height1(km)、终点高度height2(km),
	//所在海拔高度height处的水平地面法线与辐射传输路径的夹角r(度),所在海拔高度的气象视程Dv(km),降雨量Jrain(mm/h),降雪量Jsnow(mm/h),
	//返回所在海拔高度所求波段的斜传输路径的大气总的平均透射率
	//(注:注意各个参数取值的范围限制)
	double GetAtmosAveTransOfInclineInAnyHeightFrom3To5(double wavelength1, double wavelength2,
		int temperature, double Hr, double height, double height1, double height2, double r, double Dv, double Jrain, double Jsnow);
	


	
	
	/*8-14um的平均透射率函数*/

	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),(所在海拔高度上的)大气温度temperature(摄氏度)、
	//(所在海拔高度上的)相对湿度Hr(百分数)、海拔高度height(km)、(所在海拔高度上的)水平传输距离distance(km)
	//返回所在海拔高度水平路径所求波段的水蒸气的平均透射率
	//(注:波段的两个端点wavelength1(um)、wavelength2(um)不分起点和终点即不分大小。
	//海拔高度height在海平面上取正,在海平面下取负。
	//此函数没有对(所在海拔高度上的)相对湿度Hr和(所在海拔高度上的)水平传输距离distance(km)的取值范围限制
	//调用时要限制这两个参数的取值的有效。
	//此函数没有对波段的两个端点wavelength1(um)、wavelength2(um)的取值范围限制,调用时要限制这两个参数的取值
	//在正确的波段范围内,并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。)
    double GetVaporAveTransOfHorizonInAnyHeightFrom8To14(double wavelength1, double wavelength2,
		                   int temperature, double Hr, double height, double distance);
	
	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),(所在海拔高度上的)大气温度temperature(摄氏度)、
	//(所在海拔高度上的)相对湿度Hr(百分数)、海拔高度height(km)、
	//以所在海拔高度height为原点的斜传输路径的起点高度 height1(km)、终点高度height2(km),
	//所在海拔高度height处的水平地面法线与辐射传输路径的夹角r(度),
	//返回所在海拔高度所求波段的斜传输路径的水蒸气的平均透射率
	//(注:波段的两个端点wavelength1(um)、wavelength2(um)不分起点和终点即不分大小。
	//海拔高度height在海平面上取正,在海平面下取负。
	//起点高度 height1、终点高度height2都是相对海拔高度height的相对高度。当起点或终点的实际海拔高度
	//大于所在的海拔高度height时,起点高度 height1、终点高度height2取正值;当起点或终点的实际海拔高度
	//小于所在的海拔高度height时,起点高度 height1、终点高度height2取负值。
	//所在海拔高度height处的水平地面法线取指向天空方向为正方向,夹角r取值范围0-180。
	//此函数没有对(所在海拔高度上的)相对湿度Hr的取值范围限制,此函数调用必须保证传输路径倾斜即height1!=height2且r!=90
	//此函数没有对波段的两个端点wavelength1(um)、wavelength2(um)的取值范围限制,调用时要限制这两个参数的取值
	//在正确的波段范围内,并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。)
	double GetVaporAveTransOfInclineInAnyHeightFrom8To14(double wavelength1, double wavelength2,
		   int temperature, double Hr, double height, double height1, double height2, double r);
	
	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),海拔高度height(km),(所在海拔高度上的)水平传输距离distance(km),
	//返回所在海拔高度水平路径所求波段的二氧化碳的平均透射率
	//(注:波段的两个端点wavelength1(um)、wavelength2(um)不分起点和终点即不分大小。
	//海拔高度height在海平面上取正,在海平面下取负。
	//此函数没有对(所在海拔高度上的)水平传输距离distance(km)的取值范围限制。
	//此函数没有对波段的两个端点wavelength1(um)、wavelength2(um)的取值范围限制,调用时要限制这两个参数的取值
	//在正确的波段范围内,并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。)
	double GetCO2AveTransOfHorizonInAnyHeightFrom8To14(double wavelength1, double wavelength2,
		                   double height, double distance);
	
	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),海拔高度height(km),
	//以所在海拔高度height为原点的斜传输路径的起点高度 height1(km)、终点高度height2(km),
	//所在海拔高度height处的水平地面法线与辐射传输路径的夹角r(度),
	//返回所在海拔高度所求波段的斜传输路径的二氧化碳的平均透射率
	//(注:波段的两个端点wavelength1(um)、wavelength2(um)不分起点和终点即不分大小。
	//海拔高度height在海平面上取正,在海平面下取负。
	//起点高度 height1、终点高度height2都是相对海拔高度height的相对高度。当起点或终点的实际海拔高度
	//大于所在的海拔高度height时,起点高度 height1、终点高度height2取正值;当起点或终点的实际海拔高度
	//小于所在的海拔高度height时,起点高度 height1、终点高度height2取负值。
	//所在海拔高度height处的水平地面法线取指向天空方向为正方向,夹角r取值范围0-180。
	//此函数调用必须保证传输路径倾斜即height1!=height2且r!=90
	//此函数没有对波段的两个端点wavelength1(um)、wavelength2(um)的取值范围限制,调用时要限制这两个参数的取值
	//在正确的波段范围内,并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。)
	double GetCO2AveTransOfInclineInAnyHeightFrom8To14(double wavelength1, double wavelength2,
		                   double height, double height1, double height2, double r);

	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),(所在海拔高度上的)大气温度temperature(摄氏度),
	//(所在海拔高度上的)相对湿度Hr(百分数),海拔高度height(km),(所在海拔高度上的)水平传输距离distance(km),
	//所在海拔高度的气象视程Dv(km),降雨量Jrain(mm/h),降雪量Jsnow(mm/h),
	//返回所在海拔高度水平路径所求波段的大气总的平均透射率
	//(注:注意各个参数取值的范围限制)
	double GetAtmosAveTransOfHorizonInAnyHeightFrom8To14(double wavelength1, double wavelength2,
		int temperature, double Hr, double height, double distance, double Dv, double Jrain, double Jsnow);
	
	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),(所在海拔高度上的)大气温度temperature(摄氏度),
	//(所在海拔高度上的)相对湿度Hr(百分数),海拔高度height(km),以所在海拔高度height为原点的斜传输路径的起点高度 height1(km)、终点高度height2(km),
	//所在海拔高度height处的水平地面法线与辐射传输路径的夹角r(度),所在海拔高度的气象视程Dv(km),降雨量Jrain(mm/h),降雪量Jsnow(mm/h),
	//返回所在海拔高度所求波段的斜传输路径的大气总的平均透射率
	//(注:注意各个参数取值的范围限制)
	double GetAtmosAveTransOfInclineInAnyHeightFrom8To14(double wavelength1, double wavelength2,
		int temperature, double Hr, double height, double height1, double height2, double r, double Dv, double Jrain, double Jsnow);
	


	/*散射的平均透射率函数*/

	//根据所求波段的两个端点wavelength1(um)、wavelength2(um),所在海拔高度的气象视程Dv(km),辐射传输的距离distance(km)
	//返回散射造成的所求波段范围的的平均透射率
	//(注:波段的两个端点wavelength1(um)、wavelength2(um)不分起点和终点即不分大小,取值均要大于0。
	//并且两个端点wavelength1(um)、wavelength2(um)的取值小数点之后只能有一位(光谱分辨率为0.1um),
	//而且两者之差要大于或等于光谱最小分辨率0.1um。
	//气象视程Dv>0,辐射传输的距离distance>=0)
	double GetDispersionAveTrans(double wavelength1, double wavelength2, double Dv, double distance);


protected:
	static const double m_dW0_Table[99];// 空气相对湿度100%和不同温度时的每公里的可凝结水毫米数(mm/km)
	static const double m_dVapor_Table1[20][14];//3-5um的海平面上水平路程水蒸气的光谱透射率
	static const double m_dVapor_Table2[60][14];//8-14um的海平面上水平路程水蒸气的光谱透射率
	static const double m_dCO2_Table1[20][14];//3-5um的海平面上水平路程二氧化碳的光谱透射率
	static const double m_dCO2_Table2[60][14];//8-14um的海平面上水平路程二氧化碳的光谱透射率
};
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -