航线设计

题目: 

假设要对某区域进行航摄飞行,该区域的设计成图比例尺为1:2000(对应地面采样间隔为20cm),设计飞行的航向重叠度为65%,旁向重叠度为35%。航摄飞行使用的是δ(面阵像元大小)=6.8μ,f(焦距)=50mm的相机,像幅大小为10000(列)×14500(行)。摄区最高点高程为624m,最低点高程为0m。要求根据上述资料计算相对航高(H)、摄影基线(B)和航线间隔(D),并判断最高点重叠度是否满足航摄要求(航向重叠>53%,旁向重叠>13%)

 

#include<stdio.h>
double height(double GSD,double d,double f);
double basic(double m,double Lx,double Px);
double space(double m,double Ly,double Py);
int main()
{
 
	double f,GSD,d,Px,Py,m,Lx,Ly;
	double H,B,D,h,H2,H3;
	double m2,Px2,Py2;
	printf("enter elements\n");
	printf("enter GSD\n");		/*地面采样间隔 */
	scanf("%lf",&GSD);	
	printf("enter d\n");		/*像素大小 */
	scanf("%lf",&d);
	printf("enter f\n");		/*焦距*/
	scanf("%lf",&f);
	printf("enter Px\n");		/*航向重叠度*/ 
	scanf("%lf",&Px);
	printf("enter Py\n");		/*旁向重叠度*/ 
	scanf("%lf",&Py);
	/*printf("enter Lx\n");		航向像片长
	scanf("%lf",&Lx);		
	printf("enter Ly\n");
	scanf("%lf",&Ly);			旁向像片长*/ 
	
	Lx=d*10000;				/*航向像片长为像素大小乘以列数*/ 
	Ly=d*14500;				/*旁向像片长为像素大小乘以行数*/
					
	H=GSD*f/d; 				/*相对航高*/
	m=H/f;	
	B=m*Lx*(1-Px);			/*摄影基线*/ 
	D=m*Ly*(1-Py);			/*航线间隔*/ 
	
	printf("%lf\n",m);
	printf("相对航高=%lf\n",H);
	printf("摄影基线=%lf\n",B);
	printf("航线间隔=%lf\n",D);
	
	printf("enter 最低点H2\n");
	scanf("%lf",&H2);				/*最低点海拔*/ 
	printf("enter 最高点H3\n");		/*最高点海拔*/ 
	scanf("%lf",&H3);
	   
	h=(H2+H3)/2;
	m2=(H+h-H3)/f;		/*最高点实际航高为相对航高加平均海拔再减去最高点海拔*/ 
	Lx=d*10000;
	Ly=d*14500;
	B=m*Lx*(1-Px);			/*摄影基线*/ 
	D=m*Ly*(1-Py);			/*航线间隔*/ 
	Px2=1-B/(m2*Lx);
	Py2=1-D/(m2*Ly);
	printf("%lf\n",m2);
	printf("最高点航向重叠度=%lf\n",Px2);
	printf("最高点旁向重叠度=%lf\n",Py2);
	if(Px2>0.53&&Py2>0.13)
	{
		printf("最高点重叠度合格");
		 
	}
	else
		printf("最高点重叠度不合格");
			 
	return 0;
 } 

运算结果为

第一次自己独立成功用程序解决专业问题,感觉很骄傲,我会继续努力解决更多问题的。 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值