C# 双像空间前方交会

1 简介

首先,以txt文件的形式读取立体像对的外方位元素和同名像点的像空间直角坐标系坐标。然后,依据双像前方交会公式计算出左右相片投影系数、同名像点的像空间辅助坐标系坐标及对应的地面摄影测量坐标系坐标。最后,将中间及最终计算结果用txt文件保存。

2 算法设计与流程图

以txt文件形式存放相片的内、外方位元素及同名像点坐标,数据格式如图1所示。本程序首先是读取内、外方位元素及同名像点坐标;然后,分别依据公式(1)、(2)和(3)计算同名像点的空间辅助坐标系坐标、左右相片的投影系数N1、N2和同名像点对应的地面摄影测量坐标系坐标;最后,将中间结果、最终结果输出到txt文件。算法流程如下图所示。
流程图

3 主要函数和变量

3.1 ExternalElement类

存放当张像片的六个外方位元素和焦距,包含Xs, Ys, Zs, o, p, q, f 7个变量,变量均为double类型。

3.2 ImagePoint类

存放像点像点坐标相关属性,计算空间辅助坐标系坐标u,v,w。7个变量分别是id、x、y、u、v、w、element,其中id为string类型,为像点点号;element为ExternalElement类,放置该像片的外方位元素和焦距。

3.3 TerrainPoint类

地面点坐标,包括计算投影系数和地面点坐标X、Y、Z。包括变量id、N1、N2、X、Y、Z

4 部分代码

   public class ExternalElement  //外方位元素
    {
   
        public double Xs, Ys, Zs, o, p, q, f;   //六个外方位元素
        public ExternalElement(double Xs, double Ys, double Zs, double o, double p, double q, double f)
        {
   
            this.Xs = Xs;
            this.Ys = Ys;
            this.Zs = Zs;
            this.o = o;
            this.p = p;
            this.q = q;
            this.f = f;
        }
        public ExternalElement()
        {
   
            Xs = -6911.42788;
            Ys = 4181.15686;
            Zs = 157.77319;
            o = 0.34831;
            p = -0.30914;
            q = 0.08136;
            f = -165.37034;
        }
    }
    public class ImagePoint   //像点
    {
   
        public string id;
        public double x, y;
        public double u, v, w;   //空间辅助坐标系坐标
        public ExternalElement element;   //外方位元素

        public ImagePoint(string id, double x,double y, ExternalElement element)
        {
   
            this.id = id;
            this.x = x;
            this.y = y;
            this.element = element;
            double f = element.f;
            double o = element.o;
            double p = element.p;
            double q = element.q;
            double pI = Math.PI;
            double a1 = Math
  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值