摄影测量后方交会程序

摄影测量后方交会程序
摄影测量后方交会程序

摄影测量后方交会程序(c/c++)

输入数据截图:

结果截图:

程序源代码(其中的矩阵求逆在前面已经有了,链接):

#include

#include

#include

const double PRECISION=1e-5;

typedef double DOUBLE[5];

int InputData(int &Num, DOUBLE *&Data,double &m,double &f);

int Resection(const int &Num,const DOUBLE *&Data,const double &m,const double &f); int InverseMatrix(double *matrix,const int &row);

int main(int argc, char* argv[])

{

DOUBLE *Data=NULL;

int Num;

double f(0),m(0);

if(InputData(Num,Data,m,f))

{

if (Data!=NULL)

{

delete []Data;

}

return 1;

}

if(Resection(Num,Data,m,f))

{

if (Data!=NULL)

{

delete []Data;

}

return 1;

}

if (Data!=NULL)

{

delete []Data;

}

printf("解算完毕...\n");

do{

printf("计算结果保存于\"结果.txt\"文件中\n"

"请选择操作(输入P打开结果数据,R打开原始数据,其它退出程序):"); fflush(stdin); //刷新输入流

char order=getchar();

if ('P'==order || 'p'==order)

{

system("结果.txt");

}

else if ('R'==order || 'r'==order)

{

system("data.txt");

}

else

break;

system("cls");

}while(1);

system("PAUSE");

return 0;

}

/**********************************************

*函数名:InputData

*函数介绍:从文件(data.txt)中读取数据,

*文件格式如下:

*点数 m(未知写作0)

* 内方位元素(f x0 y0)

*编号 x y X Y Z

*下面是一个实例:

4 0

153.24 0 0

1 -86.15 -68.99 36589.41 25273.3

2 2195.17

2 -53.40 82.21 37631.08 31324.51 728.69

3 -14.78 -76.63 39100.97 24934.98 2386.50

4 10.46 64.43 40426.54 30319.81 757.31

*参数:(in/out)Num(点数),

*(in/out)Data(存放数据),m,f,x0,y0

*返回值:int ,0成功,1文件打开失败,2控制点个

*数不足,3文件格式错误

*作者:vcrs

*完成时间:09-10-4

**********************************************/

int InputData(int &Num, DOUBLE *&Data,double &m,double &f) {

double x0,y0;

FILE *fp_input;

if (!(fp_input=fopen("data.txt","r")))

{

return 1;

}

fscanf(fp_input,"%d%lf",&Num,&m);

if (Num<4)

{

return 2;

}

fscanf(fp_input,"%lf%lf%lf",&f,&x0,&y0);

f/=1000;

if (m<0 || f<0)

{

return 3;

}

Data=new DOUBLE[Num];

double *temp= new double[Num-1];

double scale=0;

int i;

for (i=0;i

{

//读取数据,忽略编号

if(fscanf(fp_input,"%*d%lf%lf%lf%lf%lf",

&Data[i][0],&Data[i][1],&Data[i][2],

&Data[i][3],&Data[i][4])!=5)

{

return 3;

}

//单位换算成m

Data[i][0]/=1000.0;

Data[i][1]/=1000.0;

}

//如果m未知则归算其值

if (0==m)

{

for (i=0;i

{

temp[i]=(Data[i][2]-Data[i+1][2])/(Data[i][0]-Data[i+1][0])+ (Data[i][3]-Data[i+1][3])/(Data[i][1]-Data[i+1][1]);

scale+=temp[i]/2.0;

}

m=scale/(Num-1);

}

fclose(fp_input);

delete []temp;

return 0;

}

/**********************************************

*函数名:MatrixMul

*函数介绍:求两个矩阵的积,

*参数:Jz1(第一个矩阵),row(第一个矩阵行数),

*Jz2(第二个矩阵),row(第二个矩阵列数),com(第一个

*矩阵列数),(out)JgJz(存放结果矩阵)

*返回值:void

*作者:vcrs

*完成时间:09-10-4

**********************************************/

void MatrixMul(double *Jz1,const int &row,double *Jz2,

const int &line,const int &com,double *JgJz)

{

for (int i=0;i

{

for (int j=0;j

{

double temp=0;

for (int k=0;k

{

temp+=*(Jz1+i*com+k)*(*(Jz2+k*line+j));

}

*(JgJz+i*line+j)=temp;

}

}

}

/**********************************************

*函数名:OutPut

*函数介绍:向结果.txt文件输出数据

*参数:Q协因数阵,m精度,m0单位权中误差,6个外

*方位元素,旋转矩阵

*返回值:int,0成功,1失败

*作者:vcrs

*完成时间:09-10-4

**********************************************/

int OutPut(const double *&Q,const double *&m,const double &m0, const double &Xs,const double &Ys,const double &Zs,

const double &Phi,const double &Omega,

const double &Kappa,const double *R)

{

FILE *fp_out;

if (!(fp_out=fopen("结果.txt","w")))

{

return 1;

}

FILE *fp_input;

if (!(fp_input=fopen("data.txt","r")))

{

return 1;

}

fprintf(fp_out,"**************************************"

"**************************************"

"**************************************"

"*********************************\n");

fprintf(fp_out,"\n空间后方交会程序(C\\C++)\n遥感信息工程学院\n班级:" "00000\n学号:0000000\n姓名:vcrs\n\n");

fprintf(fp_out,"**************************************"

"**************************************"

"**************************************"

"*********************************\n");

fprintf(fp_out,"已知数据:\n\n已知点数:");

int num;double temp,x,y;

fscanf(fp_input,"%d%lf",&num,&temp);

fprintf(fp_out,"%d\n",num);

fprintf(fp_out,"摄影比例尺(0表示其值位置):");

fprintf(fp_out,"%10.0lf\n",temp);

fprintf(fp_out,"内方位元素(f x0 y0):");

fscanf(fp_input,"%lf%lf%lf",&temp,&x,&y);

fprintf(fp_out,"%10lf\t%10lf\t%10lf\n",temp,x,y);

for (int i=0;i

{

double temp[5];

fscanf(fp_input,"%*d%lf%lf%lf%lf%lf",

&temp[0],&temp[1],&temp[2],&temp[3],&temp[4]);

fprintf(fp_out,"%3d\t%10lf\t%10lf\t%10lf\t%10lf\t%10lf\n", i+1,temp[0],temp[1],temp[2],temp[3],temp[4]);

}

fclose(fp_input);

fprintf(fp_out,"**************************************" "**************************************"

"**************************************"

"*********************************\n");

fprintf(fp_out,"计算结果如下:\n\n外方位元素:\n");

fprintf(fp_out,"\tXs=%10lf\n",Xs);

fprintf(fp_out,"\tYs=%10lf\n",Ys);

fprintf(fp_out,"\tZs=%10lf\n",Zs);

fprintf(fp_out,"\tPhi=%10lf\n",Phi);

fprintf(fp_out,"\tOmega=%10lf\n",Omega);

fprintf(fp_out,"\tKappa=%10lf\n\n",Kappa);

fprintf(fp_out,"旋转矩阵:\n");

for (i=0;i<3;i++)

{

fprintf(fp_out,"\t");

for (int j=0;j<3;j++)

{

fprintf(fp_out,"%10lf\t",*(R+i*3+j));

}

fprintf(fp_out,"\n");

}

fprintf(fp_out,"\n单位权中误差:%10lf\n\n",m0);

fprintf(fp_out,"协因数阵:\n");

for (i=0;i<6;i++)

{

fprintf(fp_out,"\t");

for (int j=0;j<6;j++)

{

fprintf(fp_out,"%20lf\t",*(Q+i*6+j));

}

fprintf(fp_out,"\n");

}

fprintf(fp_out,"\n外方位元素精度:");

for (i=0;i<6;i++)

{

fprintf(fp_out,"%10lf\t",m[i]);

}

fprintf(fp_out,"\n");

fprintf(fp_out,"**************************************"

"**************************************"

"**************************************"

"*********************************\n");

fclose(fp_out);

return 0;

}

/**********************************************

*函数名:Resection

*函数介绍:计算

*参数:Num(点数),Data(数据),m,,f(焦距),x0,y0

*返回值:int,0成功,其它失败

*作者:vcrs

*完成时间:09-10-4

**********************************************/

int Resection(const int &Num,const DOUBLE *&Data,const double &m, const double &f)

{

double Xs=0,Ys=0,Zs=0;

int i,j;

//设置初始值

for (i=0;i

{

Xs+=Data[i][2];

Ys+=Data[i][3];

}

Xs/=Num;

Ys/=Num;

Zs=m*f;

double Phi(0),Omega(0),Kappa(0);

double R[3][3]={0.0};

double *L=new double[2*Num];

typedef double Double6[6];

Double6 *A=new Double6[2*Num];

double *AT=new double[2*Num*6];

double *ATA=new double[6*6];

double *ATL=new double[6];

double *Xg=new double[6];

//迭代计算

do

{

//旋转矩阵

R[0][0]=cos(Phi)*cos(Kappa)-sin(Phi)*sin(Omega)*sin(Kappa); R[0][1]=-cos(Phi)*sin(Kappa)-sin(Phi)*sin(Omega)*cos(Kappa); R[0][2]=-sin(Phi)*cos(Omega);

R[1][0]=cos(Omega)*sin(Kappa);

R[1][1]=cos(Omega)*cos(Kappa);

R[1][2]=-sin(Omega);

R[2][0]=sin(Phi)*cos(Kappa)+cos(Phi)*sin(Omega)*sin(Kappa);

R[2][1]=-sin(Phi)*sin(Kappa)+cos(Phi)*sin(Omega)*cos(Kappa); R[2][2]=cos(Phi)*cos(Omega);

for (i=0;i

{

double X=R[0][0]*(Data[i][2]-Xs)+R[1][0]*(Data[i][3]-Ys)+

R[2][0]*(Data[i][4]-Zs);

double Y=R[0][1]*(Data[i][2]-Xs)+R[1][1]*(Data[i][3]-Ys)+

R[2][1]*(Data[i][4]-Zs);

double Z=R[0][2]*(Data[i][2]-Xs)+R[1][2]*(Data[i][3]-Ys)+

R[2][2]*(Data[i][4]-Zs);

double xxx,yyy;

xxx=-f*X/Z;

yyy=-f*Y/Z;

//常数项

L[2*i]=Data[i][0]-(-f*X/Z);

L[2*i+1]=Data[i][1]-(-f*Y/Z);

A[2*i][0]=(R[0][0]*f+R[0][2]*(xxx))/Z;

A[2*i][1]=(R[1][0]*f+R[1][2]*(xxx))/Z;

A[2*i][2]=(R[2][0]*f+R[2][2]*(xxx))/Z;

A[2*i][3]=(yyy)*sin(Omega)-(((xxx)/f)*

((xxx)*cos(Kappa)-(yyy)*sin(Kappa))+

f*cos(Kappa))*cos(Omega);

A[2*i][4]=-f*sin(Kappa)-((xxx)/f)*((xxx)*

sin(Kappa)+(yyy)*cos(Kappa));

A[2*i][5]=(yyy);

A[2*i+1][0]=(R[0][1]*f+R[0][2]*(yyy))/Z;

A[2*i+1][1]=(R[1][1]*f+R[1][2]*(yyy))/Z;

A[2*i+1][2]=(R[2][1]*f+R[2][2]*(yyy))/Z;

A[2*i+1][3]=-(xxx)*sin(Omega)-(((yyy)/f)*

((xxx)*cos(Kappa)-(yyy)*sin(Kappa))-

f*sin(Kappa))*cos(Omega);

A[2*i+1][4]=-f*cos(Kappa)-((yyy)/f)*((xxx)*

sin(Kappa)+(yyy)*cos(Kappa));

A[2*i+1][5]=-(xxx);

}

//求矩阵A的转置矩阵AT

for (i=0;i<2*Num;i++)

{

for (j=0;j<6;j++)

{

*(AT+j*2*Num+i)=A[i][j];

}

}

//求ATA

MatrixMul(AT,6,&A[0][0],6,2*Num,ATA);

if(InverseMatrix(ATA,6))

return 1;

MatrixMul(AT,6,L,1,2*Num,ATL);

MatrixMul(ATA,6,ATL,1,6,Xg);

Xs+=Xg[0];

Ys+=Xg[1];

Zs+=Xg[2];

Phi+=Xg[3];

Omega+=Xg[4];

Kappa+=Xg[5];

} while(fabs(Xg[0])>=PRECISION ||fabs(Xg[1])>=PRECISION || fabs(Xg[2])>=PRECISION ||fabs(Xg[3])>=PRECISION ||

fabs(Xg[4])>=PRECISION || (Xg[5])>=PRECISION);

//注:协因数阵,旋转矩阵等计算本应该使用最后外方位元素值,//由于变换很小忽略

double *Q=ATA;

double *V=new double[2*Num];

MatrixMul(&A[0][0],2*Num,Xg,1,6,V);

double VTV=0;

for(i=0;i<2*Num;i++)

{

V[i]-=L[i];

VTV+=V[i]*V[i];

}

double m0=sqrt(VTV/(2*Num-6));

double *mm=new double[6];

for (i=0;i<6;i++)

{

mm[i]=sqrt(*(Q+i*6+i))*m0;

}

OutPut(Q,mm,m0,Xs,Ys,Zs,Phi,Omega,Kappa,&R[0][0]);

delete []L;

delete []A;

delete []AT;

delete []ATA;

delete []ATL;

delete []Xg;

delete []mm;

delete []V;

return 0;

}

void swap(double &a,double &b)

{

double temp=a;

a=b;

b=temp;

}

/********************************************** *函数名:InverseMatrix

*函数介绍:求矩阵的逆(高斯-约当法)

*输入参数:(in/out)matrix(矩阵首地址),

*(in)row(矩阵阶数)

*输出参数:matrix(原矩阵的逆矩阵)

*返回值:int ,0成功,1失败

*调用函数:swap(double&,double&)

*作者:vcrs

*完成时间:09-10-4

**********************************************/ int InverseMatrix(double *matrix,const int &row) {

double *m=new double[row*row];

double *ptemp,*pt=m;

int i,j;

ptemp=matrix;

for (i=0;i

{

for (j=0;j

{

*pt=*ptemp;

ptemp++;

pt++;

}

}

int k;

int *is=new int[row],*js=new int[row];

for (k=0;k

{

double max=0;

//全选主元

//寻找最大元素

for (i=k;i

{

for (j=k;j

{

if (fabs(*(m+i*row+j))>max)

{

max=*(m+i*row+j);

is[k]=i;

js[k]=j;

}

}

}

if (0 == max)

{

return 1;

}

//行交换

if (is[k]!=k)

{

for (i=0;i

{

swap(*(m+k*row+i),*(m+is[k]*row+i)); }

}

//列交换

if (js[k]!=k)

{

for (i=0;i

{

swap(*(m+i*row+k),*(m+i*row+js[k])); }

}

*(m+k*row+k)=1/(*(m+k*row+k));

for (j=0;j

{

if (j!=k)

{

*(m+k*row+j)*=*((m+k*row+k));

}

}

for (i=0;i

{

if (i!=k)

{

for (j=0;j

{

if(j!=k)

{

*(m+i*row+j)-=*(m+i*row+k)**(m+k*row+j); }

}

}

}

for (i=0;i

{

if(i!=k)

{

*(m+i*row+k)*=-(*(m+k*row+k));

}

}

}

int r;

//恢复行列

for (r=row-1;r>=0;r--)

{

if (js[r]!=r)

{

for (j=0;j

{

swap(*(m+r*row+j),*(m+js[r]*row+j)); }

}

if (is[r]!=r)

{

for (i=0;i

{

swap(*(m+i*row+r),*(m+i*row+is[r])); }

}

}

ptemp=matrix;

pt=m;

for (i=0;i

{

for (j=0;j

{

*ptemp=*pt;

ptemp++;

pt++;

}

}

delete []is;

delete []js;

delete []m;

return 0;

}

空间后方交会的解算

空间后方交会的解算 一. 空间后方交会的目的 摄影测量主要利用摄影的方法获取地面的信息,主要是是点位信息,属性信息,因此要对此进行空间定位和建模,并首先确定模型的参数,这就是空间后方交会的目的,用以求出模型外方位元素。 二. 空间后方交会的原理 空间后方交会的原理是共线方程。 共线方程是依据相似三角形原理给出的,其形式如下 111333222333()()() ()()() ()()()()()()A S A S A S A S A S A S A S A S A S A S A S A S a X X b Y Y c Z Z x f a X X a Y Y a Z Z a X X b Y Y c Z Z y f a X X a Y Y a Z Z -+-+-=--+-+--+-+-=--+-+- 上式成为中心投影的构线方程, 我们可以根据几个已知点,来计算方程的参数,一般需要六个方程,或者要三个点,为提高精度,可存在多余观测,然后利用最小二乘求其最小二乘解。 将公式利用泰勒公式线性化,取至一次项,得到其系数矩阵A ;引入改正数(残差)V ,则可将其写成矩阵形式: V AX L =- 其中 111333222333[,]()()()()()()()()()()()()()()T x y A S A S A S x A S A S A S A S A S A S y A S A S A S L l l a X X b Y Y c Z Z l x x x f a X X a Y Y a Z Z a X X b Y Y c Z Z l y y y f a X X a Y Y a Z Z =-+-+-=-=+-+-+--+-+-=-=+-+-+- 则1()T T X A A A L -= X 为外方位元素的近似改正数, 由于采用泰勒展开取至一次项,为减少误差,要将的出的值作为近似值进行迭代,知道小于规定的误差 三. 空间后方交会解算过程 1. 已知条件 近似垂直摄影

摄影测量学复习资料

摄影测量学 第一章 1、摄影测量的定义、任务? 定义:摄影测量与遥感是从非接触成像和其他传感器系统,通过记录、量测、分析与表达等处理,获取地球及其环境和其他物体可靠信息的工艺,科学与技术。其中摄影测量侧重于提取几何信息,遥感侧重于物理信息。任务:(1)测绘各种比例尺地形图。(2)建立数字地面模型(地形数据库)。 2、摄影测量学:是对研究的对象进行摄影,根据所得的构象信息,从几何方面和物理方面 加以分析研究,从而对所摄对象的本质提供各种资料的一门学科。 3、解决的基本问题:几何定位和影像解译。 4、摄影测量的三个发展阶段及其特点。 1、航摄仪物镜的焦距与其主距有什么不同? 焦距:自物方主点S1到物方焦点F1的距离称为光学系的物方焦距f1;自像方主点S2到像方焦点F2的距离称为镜头的像方焦距f2。 主距:像主点和摄影机物镜后节点之间的距离称为摄影机主距。 2、量测摄影机与非量测摄影机的区别? (1)量测摄影机的主距是一个固定的已知值 (2)量测摄影机的承片框上具有框标,即固定不变的承片框上,四个边的中点各安置一个机械标志;框标,其目的是建立像片的直角,框标坐标系。 (3)量测摄影机的内方位元素是已知值。 3、航向重叠:摄影时飞机沿相邻影像之间必须保持一定的重叠度。一般P=50%~65%;P值最小不能小于53%。 旁向重叠:完成一条航线的摄影后,飞机进入另一条航线进行测量摄影,相邻航线影像之间也必须有一定的重叠。一般q=30%~40%,最小不得小于15%。 4、B与近景C之间这一段间隔内的所有景物,在像面上仍可获得清晰的图像,此时,近景 与远景之间的纵深度称为景深。 5、超焦点距离:当物镜向无限远物体对光时,不仅远处的物体构象清晰,而且在离开物镜 不小于某一距离H的所有物体,其构象都很清晰,这个距离H就称为超焦点距离。 第三章 1、航摄像片上特殊的点、线、面。 (1)像主点:摄影中心S在像片平面上的投影点。 (2)像底点:主垂线与像片面P的交点n称为像底点。 (3)等角点:倾角α的平分线与像片面交于点C称C点为等角点。 (4)主纵线:主垂面W与像平面P的交线称为主纵线W。 (5)等比线:过像主点平行于合线的直线称为等比线。 2、摄影测量常用的坐标系统,它们是如何定义的? (1)像平面坐标系:是以该像片的像主点为坐标原点的坐标系,用来表示像点在像片面上的位置,在实际应用中,常采用框标连线的交点为坐标原点,称为框标平面坐标系。X、y轴的方向按需要而定,常取与航线方向一致的连线为x轴,航线方向为正。 (2)像空间坐标系:以摄影中心S为坐标原点,X轴和Y轴分别与像平面直角坐标系的X轴和Y轴平行,Z轴与主光轴重合,向上为正,像点的像空间坐标系表示为(x、y、-f)。 (3)像空间辅助坐标系:其坐标原点是摄影中心S坐标轴依情况而定,通常有三种方法:a、以每一条航线的第一张像片的像空间坐标系作为像空间辅助坐标系。 b、取u、v、w轴系分别平行于地面摄影测量坐标系D-XYZ,这样同一像点a在像空间坐标系中的坐标为x、y、z=(-f),而在像空间辅助坐标系中的坐标为u、v、w。 c、以每个像片对的左片摄影中

摄影测量学后方交会matlab实习报告

摄影测量原理 单张影像后方交会实习

目录 一实习目的 (3) 二实习原理 (3) 1. 间接平差 (3) 2. 共线方程 (3) 3. 单向空间后方交会 (4) 三计算流程 (4) 1. 求解步骤 (4) 2.计算机框图 (4) 四程序实现 (5) 五结果分析 (6) 1.外方位元素 (6) 2.误差 (6) 3.旋转矩阵R (7) 六实习体会 (7) 1. 平台的选择 (7) 2.问题的解决 (7) 3.心得体会 (8) 七代码展示 (8)

一实习目的 为了增强同学们对后方交会公式的理解,培养同学们对迭代循环编程的熟悉感,本次摄影测量课间实习内容定为用C语言或其他程序编写单片空间后方交会程序,最终输出像点坐标、地面坐标、单位权中误差、外方位元素及其精度。 已知四对点的影像坐标和地面坐标如下。内方位元素fk=153.24mm,x0=y0=0。 本次实习,我使用了matlab2014进行后方交会程序实现。结果与参考答案一致,精度良好。 二实习原理 题干中有四个控制点在地面摄影测量坐标系中的坐标和对应的像点坐标,由此可列出8个误差方程,存在2个多余观测(n=2)。故可利用间接平差的最小二乘法则求解。 由于共线方程是非线性函数模型,为了方便计算,需要将其“线性化”。但如果仅取泰勒级数展开式的一次项,未知数的近似值改正是不精确的。因此必须采用迭代趋近法计算,直到外方位元素的改正值小于限差。 1.间接平差 间接平差为平差计算最常用的方法。在确定多个未知量的最或然值时,选择它们之间不存在任何条件关系的独立量作为未知量组成用未知量表达测量的函数关系、列出误差方程式,按最小二乘法原理求得未知量的最或然值的平差方法。 在一个间接平差问题中,当所选的独立参数X个数与必要观测值t个数相等时,可将每个观测值表达成这t个参数的函数,组成观测方程。 函数模型为:L = BX + d。 2.共线方程 共线方程是中心投影构像的数学基础,也是各种摄影测量处理方法的重要理论基础。 式中: x,y 为像点的像平面坐标; x0,y0,f 为影像的内方位元素; XS,YS,ZS 为摄站点的物方空间坐标; XA,YA,ZA 为物方点的物方空间坐标; ai,bi,ci (i = 1,2,3)为影像的3 个外方位角元素组成的9 个方向余弦。

全站仪后方交会法步骤和高程测量步骤

全站仪后方交会法步骤和 高程测量步骤 Revised final draft November 26, 2020

1、角度测量(angleobservation) (1)功能:可进行水平角、竖直角的测量。 (2)方法:与经纬仪相同,若要测出水平角∠AOB,则: 1)当精度要求不高时: 瞄准A点——置零(0SET)——瞄准B点,记下水平度盘HR的大小。 2)当精度要求高时:——可用测回法(methodofobservationset)。 操作步骤同用经纬仪操作一样,只是配置度盘时,按“置盘”(HSET)。 2、距离测量(distancemeasurement) PSM、PPM的设置——测距、测坐标、放样前。 1)棱镜常数(PSM)的设置。 一般:PRISM=0(原配棱镜),-30mm(国产棱镜) 2)大气改正数(PPM)(乘常数)的设置。 输入测量时的气温(TEMP)、气压(PRESS),或经计算后,输入PPM的值。 (1)功能:可测量平距HD、高差VD和斜距SD(全站仪镜点至棱镜镜点间高差及斜距) (2)方法:照准棱镜点,按“测量”(MEAS)。 3、坐标测量(coordinatemeasurement) (1)功能:可测量目标点的三维坐标(X,Y,H)。 (2)测量原理任意架仪器,先设置仪器高为0,棱镜高是多少就是多少,棱镜拿去直接放在已知点上测高差,测得的高差为棱镜头到仪器视线的高差,当然,有正有负了,然后拿出计算器用已

知点加上棱镜高,再加上或减去(因为有正有负)测得的高差就是仪器的视线高啊,因为仪器高为0,所以这个数字就是你的测站点高程,进测站点把它改成这个数字就行了,改完测站点了一般情况下都要打一下已知点复核一下。。。 若输入:方位角,测站坐标(,);测得:水平角和平距。则有: 方位角: 坐标: 若输入:测站S高程,测得:仪器高i,棱镜高v,平距,竖直角,则有: 高程: (3)方法: 输入测站S(X,Y,H),仪器高i,棱镜高v——瞄准后视点B,将水平度盘读数设置为——瞄准目标棱镜点T,按“测量”,即可显示点T的三维坐标。 4、点位放样(Layout) (1)功能:根据设计的待放样点P的坐标,在实地标出P点的平面位置及填挖高度。 (2)放样原理 1)在大致位置立棱镜,测出当前位置的坐标。 2)将当前坐标与待放样点的坐标相比较,得距离差值dD和角度差dHR或纵向差值ΔX和横向差值ΔY。 3)根据显示的dD、dHR或ΔX、ΔY,逐渐找到放样点的位置。

摄影测量学基础复习资料

名词解释 1空中三角测量:利用航摄像片与所摄目标之间的空间几何关系,根据少量像片控制点,计算待求点的平面位置、高程和像片外方位元素的测量方法。 2像点位移:由于在实际航空摄影时,在中心投影的情况下,当航摄的飞行姿态出现较大倾斜即像片有倾斜,地面有起伏时,便会导致地面点在航摄像片上构像相对于在理想情况下的构像,产生了位置的差异,这一差异称为像点位移。 3摄影基线:航线方向相邻两个摄影站点间的空间距离。 4航向重叠:同一条航线上,相邻两张像片应有一定范围的影像重叠,称为航向重叠。 5旁向重叠:相邻航线相邻两像片的重叠度 6同名核线:同一核面与左右影像相交形成的两条核线,其中核面指物方点与摄影基线所确定的平面。 7像片的内方位元素:表示摄影中心与像片之间相互位置的参数,f,x0,y0 8像片的外方位元素:表示摄影中心和像片在地面坐标系中的位置和姿态的参数。 9相对定向:根据立体像对内在的几何关系恢复两张像片之间的相对位置和姿态,使同名光线对对相交,建立与地面相似的立体模型。即确定一个立体像对两像片的相对位置。 10绝对定向元素:描述立体像对在摄影瞬间的绝对位置和姿态的参数。 11单像空间后方交会:利用至少三个已知地面控制点的坐标,与其影像上对应三个像点的影像坐标,根据共线条件方程,反求该像片的外方位元素。 12空间前方交会:由立体像对中两张像片的内、外方位元素和像点坐标来确定相应地面点的地面坐标的方法,称为空间前方交会。 13同名像点:同名光线在左右相片上的构像 填空 1、4D 产品是指 DEM 、DLG 、DRG 、DOM 。 2、摄影测量按用途可分为地形摄影测量、非地形摄影测量。 3、摄影测量学的发展经过了模拟摄影测量、解析摄影测量、数字摄影测量三个阶段。 4、模拟摄影测量是利用光学/机械投影方法实现摄影过程的反转。 5、解析摄影测量以电子计算机为主要手段,通过对摄影像片的量测和解析计算方法的交会方式来研究和确定被摄物体的形状、大小、位置、性质及其相互关系,并提供各种摄影测量产品的一门科学。 6、像点坐标的系统误差改正主要包括底片变形改正,摄影机物镜畸变差改正,大气折光改正和地球曲率改正。 7、共线方程表达的是像点、投影中心与地面点之间关系。 8、立体摄影测量基础是共面条件方程。 9、把一条航线的航摄像片根据地物影像拼接起来,各张像片的主点连线不在一条直线上,而呈现为弯弯曲曲的折线,称航线弯曲。 10、航摄像片为量测像片,有光学框标和机械框标。 11、地图是地面的正射投影,像片是地面的中心投影。 12、在像空间坐标系中,像点的z 坐标值都为-f 。 13、一张像片的外方位元素包括:三个直线元素(Xs 、Ys 、Zs ):描述摄影中心的空间坐标值;三个角元素(?、ω、κ) ) :描述像片的空间姿态。 14、相对定向的理论基础、目的、标准是两像片上同名像点的投影光线对对相交。 15、双像解析摄影测量的任务是利用解析计算方法处理立体像对,获取地面点的三维空间信息。 16、在摄影测量中,一个立体像对的同名像点在各自的像平面坐标系的x 、y 坐标之差,分别称为左右视差、上下视差。 17、解析法相对定向的理论基础是同名光线对对相交于核面内。 18、解析绝对定向需要量测 2 个平高和 1 个高程以上的控制点,一般是在模型四个角布设四个控制点。 19、解析空中三角测量按数学模型分为航带法、独立模型法、光束法。 20、像底点上不存在投影差,但存在倾斜误差。倾斜航片上等比线上点的倾斜误差等于零。 21、立体模型空间相对定向时,连续像对的相对定向元素为 ,单独像对的相对定向元素为 。 22、某像点的像平面坐标为(x,y),摄影仪主距为f ,则该点在像空间坐标系中的坐标为(x ,y ,-f )。 23、摄影测量采用的五种常用坐标系中,地面测量坐标系是左手系。 222 v w b b φωκ、、、、22211ωκ?κ?、、、、

摄影测量后方交会

单张相片后方交会

目录 ●作业任务 (3) ●解算原理 (3) ●具体过程 (4) ●算法描述及程序流程 (4) ●计算结果 (7) ●结果分析 (8) ●心得体会及建议 (8) ●参考文献 (9)

一,作业任务 已知摄影机主距f=153.24mm,四对点的像点坐标与相应地面坐标列入下表: 表1-1 计算近似垂直摄影情况下后方交会解。 二,解算原理 【关键词1】中心投影构像方程 在摄影测量学中,最重要的方程就是中心投影构像方程(图2-1)。这个方程 将地面点在地面摄影测量坐标系中的坐标(物方坐标)和地面点对应像点的像平 面坐标联系起来。在解析摄影测量与数字摄影测量中是极其有用的。在以后将要 学习到的双像摄影测量光束法、解析测图仪原理及数字影像纠正等都要用到该 式。 图2-1 在上述公式中:x和y分别为以像主点为原点的像点坐标,相应地面点坐标 为X,Y,Z,相片主距f以及外方位元素Xs,Ys,Zs,ψ,ω,κ。 而在此次作业中,就是已知四个地面控制点的坐标以及其对应的像点坐标, 通过间接平差原理来求解此张航片的外方位元素。 【关键词2】间接平差 在一个平差问题中,当所选的独立参数X的个数等于必要观测值t时,可将 每个观测值表达成这t个参数的函数,组成观测方程,然后依据最小二乘原理求 解,这种以观测方程为函数模型的平差方法,就是间接平差方法 间接平差的函数模型为: 随机模型为: 平差准则为:VtPV=min 【关键词3】单像空间后方交会 利用至少三个已知地面控制点的坐标A(Xa,Ya,Za)、B(Xb,Yb,Zb)、Z(Xc,

Yc,Zc),与其影像上对应的三个像点的影像坐标a(xa,ya)、b(xb,yb)、c(xc,yc),根据共线方程,反求该像点的外方位元素Xs,Ys,Zs,ψ,ω,κ。这种解算方法是以单张像片为基础,亦称单像空间后方交会。 在此次作业中,就是已知四个控制点在地面摄影测量坐标系中的坐标和对应的像点坐标。由此可以列出8个误差方程,存在两个多余观测数,则n=2。故可利用间接平差里,依据最小二乘法则,进行求解。由于共线条件方程是非线性函数模型,为了便于计算,需把非线性函数表达式用泰勒公式展开成现行形式,即“线性化”。而又因为仅取泰勒级数展开式的一次项,未知数的近似值改正是粗略的,所以必须计算采用逐渐趋近法,解求过程需要反复趋近,直至改正值小于限差为止。 三,具体过程 1,获取已知点数据:从摄影资料中查取像片比例尺1/m,平均航高,内方元素x0,y0,f;从外业测量成果中,获取控制点的地面测量坐标Xt,Yt,Zt,并转换成摄影测量坐标X,Y,Z。 2,量测控制点的像点坐标:将控制点标刺在像片上,利用立体坐标量测仪量测控制点的像框坐标,并经像点坐标改正,得到像点坐标x,y。 3,确定未知数的初始值:在竖直摄影测量情况下,角元素的初始值为0,及ψ=ω=κ=0; 线元素中,Zso =m*f+(Z[0]+Z[1]+Z[2]+Z[3])/4,Xso,Yso的取值可用四个角点上制点坐标的平均值,即:Xso=(X[0]+X[1]+X[2]+X[3])/4;Yso=(Y[0]+Y[1]+Y[2]+Y[3])/4;4,计算旋转矩阵R:利用角元素的近似值计算方向余弦,组成R阵。公式如下:R[0][0]=cos(ψ)*cos(k)-sin(ψ)*sin(w)*sin(k); R[0][1]=-cos(ψ)*sin(k)-sin(ψ)*sin(w)*cos(k); R[0][2]=-sin(ψ)*cos(w); R[1][0]=cos(w)*sin(k); R[1][1]=cos(w)*cos(k); R[1][2]=-sin(w); R[2][0]=sin(ψ)*cos(k)+cos(ψ)*sin(w)*sin(k); R[2][1]=-sin(ψ)*sin(k)+cos(ψ)*sin(w)*cos(k); R[2][2]=cos(ψ)*cos(w); 5,逐点计算像点坐标的近似值:利用未知数的近似值按共线方程计算控制点像点坐标的近似值(x)、(y); 6,组成误差方程式:参照教材(5-8)式、(5-9b)式、(5-4)式逐点计算误差方程的系数阵和常数项。 7,组成法方程:计算法方程的系数矩阵与常数项。 8,解求外方位元素:根据法方程,按间接平差原理解求外方位元素改正值,并与相应的近似值求和,得到外方位元素的新的近似值。 9,检查计算是否收敛:将求得的外方位元素的改正值与规定的限差比较,小于限差则计算终止,否则用新的近似值重复第4至第8步骤计算,直至满足要求为止。 四,算法描述及程序流程。 算法描述(图4-1):

摄影测量学考试复习.docx

4D 产品是指DEM、DLG、DRG、DOM。 摄影测量学:是利用光学摄影机摄取照片,通过像片来研究和确定被摄物体的形状大小位置和相互关系的一门科学技术摄影测量按远近分为航天摄影测量、航空摄影测量,地面摄影测量,近景摄影测量,显微镜摄影测量。 摄影测量按用途口J分为地形摄影测量、非地形摄影测量。 摄影测量学的发展经过了模拟摄影测量、解析摄影测量、数字摄影测量三个阶段。 2.由于立体像对选取的像空间辅助坐标系的不同分为连续邃戒与里独像对 摄影机的主距:航空摄影物镜中心至底片面的距离是固定值1?摄影比例尺:严格讲,摄影比例尺是指航摄像片上一线段为J与地向上相应线段的水干距L之比。摄影像片的影像比例尺处处均不相等 3?摄影航高:摄影机的物镜中心至该面的距离 2?绝对航高:摄影物镜相对于平均海平而的航高,指摄影物镜在摄影瞬间的真实海拔高度。 3?相对航高:摄影物镜相对于某一基准面或某一点的高度 2 ?制定航摄计划: 1.确定摄区范围; 2.选择航摄仪; 3.确定航摄仪的比例尺;4,确定摄影航高;5,需要像片数,F1期等。 5.摄影基线:航线方向相邻两摄站点间的空间距离称为摄影基线。 2?摄影资料的基本要求:1.影像的色调,2.像片的重叠,3.像片倾角,4.航线弯曲,5,像片旋角 2?像片倾角:空中摄影采用竖直摄影方式,即摄影瞬间摄影机的主光轴近似与地面垂直,它偏离铅垂线的夹角应小于3D,夹角称为像片倾角。 3?航向重叠:同一条航线内相邻像片之间的影像重叠称为航向重叠,一般要求在60%以上。目的:保 证像片立体量测与拼接 4?旁向重叠:相邻航线的重叠称为旁向重叠,重叠度要求在24%以上 5?中心投影:投影光线会聚与一点 7?像主点:摄影机主光轴在框标平面上的垂足 &像底点:主垂线与像片面的交点 2 ?摄影测量常用的坐标系统有哪些? 像平面坐标系;像空间坐标系;像空间辅助坐标系;摄影测量坐标系;地面测量坐标系 3.对于一张航摄像片其内外方位元素为内外方位元素均为常数, 8?内方位元素:内方位元素是表示摄影中心与像片之间相关位置的参数,包括三个参数。即摄影中心 到像片的垂距(主距)f及像主点o在像框标坐标系中的坐标兀。,儿 9?外方位元素:在恢复内方位元素的基础上,确定摄影光束在摄影瞬间的空间位置与姿态的参数称为外方位元素, 外方位角元素:确定像空间坐标系的三轴在地面坐标系中的方向。 14 ?像点在像空间直角坐标系与像空间辅助坐标系的变换关系: U X坷a2 a3X V=R y—久b2伏y W-f°1 C2°3-f 13?同名像点:同名光线在左右相片上的构像 14 ?摄影基线:同一航线内相邻两摄站的连线 15?核线:核面与像片的交线,核线会聚于核点 16?核面:摄影基线与地而点所作平而 17.同名像点:地面上一点在相邻两张像片上的构像

摄影测量后方交会程序

摄影测量后方交会程序(c/c++) 输入数据截图: 结果截图: 程序源代码(其中的矩阵求逆在前面已经有了,链接):

#include #include #include const double PRECISION=1e-5; typedef double DOUBLE[5]; int InputData(int &Num, DOUBLE *&Data,double &m,double &f); int Resection(const int &Num,const DOUBLE *&Data,const double &m,const double &f); int InverseMatrix(double *matrix,const int &row); int main(int argc, char* argv[]) { DOUBLE *Data=NULL; int Num; double f(0),m(0); if(InputData(Num,Data,m,f)) { if (Data!=NULL) { delete []Data; } return 1; } if(Resection(Num,Data,m,f)) { if (Data!=NULL) { delete []Data; } return 1; } if (Data!=NULL) { delete []Data;

} printf("解算完毕...\n"); do{ printf("计算结果保存于\"结果.txt\"文件中\n" "请选择操作(输入P打开结果数据,R打开原始数据,其它退出程序):"); fflush(stdin); //刷新输入流 char order=getchar(); if ('P'==order || 'p'==order) { system("结果.txt"); } else if ('R'==order || 'r'==order) { system("data.txt"); } else break; system("cls"); }while(1); system("PAUSE"); return 0; } /********************************************** *函数名:InputData *函数介绍:从文件(data.txt)中读取数据, *文件格式如下: *点数 m(未知写作0) * 内方位元素(f x0 y0) *编号 x y X Y Z *下面是一个实例: 4 0 153.24 0 0 1 -86.15 -68.99 36589.41 25273.3 2 2195.17

摄影测量学考试知识点汇总

摄影测量学习题 一、名词解释: 1、摄影测量学:是对研究的对象进行摄影,根据所获得的构像信息,从几何方面和物理方 面加以分析研究,从而对所摄对象的本质提供各种资料的一门学科。 2、光圈号数 :相对孔径的倒数 3、景深 :远景与近景之间的纵深距离称为景深 4、超焦点距离:当物镜向无限远物体对光时,不仅远处的物体构象清晰,而且在离开物镜 不小于某一距离H 的所有物体,其构象都很清晰,这个距离H 就称为超焦点距离或称为无限远起点 5、视场: 将物镜对光于无穷远,在焦面上会看到一个照度不均匀的明亮圆。这个直径为 ab 的明亮圆的范围称为视场 6、视场角 :物镜的像方主点与视场直径所张的角2α。 7、像场 :在视场面积内能获得清晰影像的区域 8、像场角; 物镜的像方主点与像场直径所张的角2β。 像主点:摄影机轴在框标平面上的垂足。 11、航向重叠 :沿飞行方向上相邻像片所摄地面的重叠区。 12、旁向重叠:两相邻航带摄区之间的重叠 主光轴 :通过诸透镜光轴的轴 主点: 主平面与光轴的交点 13、摄影基线 :相邻像片摄影站(投影中心)之间的空间连线。 15、内方位元素 确定物镜后节点和像片面相对位置的数据。 16、外方位元素 确定摄影摄影机或像片的空间位置和姿态的参数 焦点 平行光轴的投射光线经物镜后产生折射,该折射线与光轴的交点。 17、像片倾角 航摄仪光轴与通过物镜中心的铅垂线所夹的角称为像片的倾斜角 19、像片旋角 相邻像片的主点连线与像幅沿航线方向两框标连线之间的夹角称为像片的旋 偏角 20、倾斜误差 因像片倾斜引起的像点位移 节点 投射光线与成像光线与光轴的交角u 和u ′相等时,投射光线与成像光线与光轴的交点。 21、投影差 因地形起伏引起的像点位移 22、摄影比例尺 航摄相片上某一线段构成的长度与地面上相应水平距离之比。 23、像片控制点 为联系地面与相片而测定地面坐标的像点。 相对孔径 物镜焦距与有效孔径之比 25、左右视差 同名像点在各自像平面坐标系中的x 坐标之差 26、上下视差 同名像点在各自像平面坐标系中的Y 坐标之差 27、核点 基线延长线与左、右像片的交点k 1、k 2称为核点 28、核线 核面与像片的交线称为核线 29、核面 通过摄影基线S 1S 2与任一地面点A 所作的平面W A 30、投影基线 两摄站的连线 31、像片基线 指相邻两张像片主点的连线 32、解析空中三角测量 即在一条航带几十条像对覆盖的区域或由几条航带几百哥像对构成 的区域内,仅仅由外业实测几个少量的控制点,按一定的数学模型,平差 解算出摄影测量作业过程中所需的全部控制点及每张像片的外方位元素 33、空间后方交会 就是利用地面控制点的已知坐标值反求像片外方位元素 ()()()()(){} 2332233213322232332 1[]Z X Y X Y Y Y X X X Z Y X X Y Z X Y Y X Z X Y X Y =-+-+-+-+--

全站仪后方交会操作过程

全站仪放样,作为施工过程中一项重要环节,对技术员已上升为必须擅长的仪器操作内容。全站仪建站一般有两种方法,即极坐标法建站和后方交会法建站。现以尼康全站仪为例,讲述全站仪后方交会法建站、放样全过程。(其他品牌全站仪可参考进行) 一、建站 1.将仪器架于两已知点均可通视,且可完全看到放样目标点位置的高处。尽量保证视线夹角在60度左右,仪器架设高度适中,三脚架腿踩实,不可出现放样过程中架腿松动现象。(注意:整个放样过程中仪器附近不应有人来回走动,且放样人员应尽量站在一点不动,减少因人员走动导致仪器震动偏移。) 2.固定仪器,上下松动架腿大致调整圆水准器气泡基本居中,按下电源键开机,上下左右转动一下,按下“0”键,进入精平模式。 将水准管放于平行于两螺旋连线方向,关注屏幕上数值,“”过大,便同时向内或向外转动平行方向两螺旋至数值符合要求(一般数值处于5"以内即可);“”过大,便左转或右转垂直方向螺旋至数值符合要求。旋转60度,检查,若仍有些许偏差,再按上述调整。再旋转60度继续检查至完成。 3.按下“确定”键记录,按“建站”键进入建站模式,选择“后方交会法”按“确定”。①若全站仪内已有建站点坐标,可在“PT”栏输入点名(“MODE”键可切换数字与字母),按“确定”键自动跳出坐标,再输入棱镜高(本项目为1.35m和1.2m两种);②若全站仪内无建站点坐标,于“PT”处按“确定”键进入坐标输入界面,XYZ

输完后,按“确定”回到界面,再输入仪器高。 CD数值暂时不输,按“确定”跳过进而记录,进入瞄准后视点1界面,视线内横竖丝卡住棱镜头“横竖尖头”(一般要求:竖向从镜杆底部瞄起,再翻转上去;横向以卡住两边尖为准),瞄准后,点击“测量1”(一般仪器内部设置“测量1”为棱镜模式且双频,“测量2”为免棱镜模式且单频,具体设置可内部调节变动)测量,待响两声后,在不转动仪器前按“确定”键记录,重复“PT”输入点坐标和棱镜高进行后视点2的瞄准,按“测量1”测量(若发现测量时后视瞄准有移动,再瞄准再按“测量1”测量)。 4.确定无误后,按“确定”键记录,自动开始计算建站误差,一般要求建站误差在5mm以内。(考虑仪器自身状态和其他情况,计算出结果有几种不正常情况:①建站误差过大,处理办法为按一次“ESC 键”返回测量后视点2,再次瞄准,测量,再计算,若还是很大,重新建站;②出现“输入第三个点”,处理办法为检查输入点坐标是否输入有误,确定无误,再次测量,若不行,重新建站) 建站误差符合要求后,按“确定”键记录,重新输入点名,其他可按“确定”或“”键跳过,最后“确定”键完成建站。 二、放样 点击“放样”键,按“确定”或“”键跳过界面,至下一个坐标输入界面,输入坐标,瞄准,“测量1”测量,按指示告知架镜人员左右前后移动至定点位置,通知定点。 一次“ESC”键返回,再按“确定”或“”键跳过界面,进入下

摄影测量程序汇总(后方交会+前方交会+单模型光束法平差)

程序运行环境为Visual Studio2010.运行前请先将坐标数据放在debug 下。 1.单像空间后方交会 C语言程序: #include #include #include double *readdata(); void savedata(int hang,double *data,double *xishuarray,double *faxishu,double *l,int i,double xs,double ys,double zs,double fai,double oumiga,double kapa); void transpose(double *m1,double *m2,int m,int n); void inverse(double *a,int n); void multi(double *mat1,double * mat2,double * result,int a,int b,int c); void inverse(double *a,int n)/*正定矩阵求逆*/ { int i,j,k; for(k=0;k

摄影测量学考试知识点汇总

摄影测量学习题 一、名词解释: 1、摄影测量学:是对研究的对象进行摄影,根据所获得的构像信息,从几何方面和物理方 面加以分析研究,从而对所摄对象的本质提供各种资料的一门学科。 2、光圈号数?:相对孔径的倒数 3、景深 :远景与近景之间的纵深距离称为景深 ? 4、超焦点距离:当物镜向无限远物体对光时,不仅远处的物体构象清晰,而且在离开物镜不 小于某一距离H 的所有物体,其构象都很清晰,这个距离H就称为超焦点距离或称为无限远起点 5、视场:?将物镜对光于无穷远,在焦面上会看到一个照度不均匀的明亮圆。这个直径为ab 的明亮圆的范围称为视场 6、视场角 :物镜的像方主点与视场直径所张的角2α。 ? 7、像场?:在视场面积内能获得清晰影像的区域 ? 8、像场角; 物镜的像方主点与像场直径所张的角2β。 像主点:摄影机轴在框标平面上的垂足。 11、航向重叠?:沿飞行方向上相邻像片所摄地面的重叠区。 ? 12、旁向重叠:两相邻航带摄区之间的重叠? 主光轴?:通过诸透镜光轴的轴? 主点: 主平面与光轴的交点 13、摄影基线?:相邻像片摄影站(投影中心)之间的空间连线。 15、内方位元素 确定物镜后节点和像片面相对位置的数据。? 16、外方位元素 确定摄影摄影机或像片的空间位置和姿态的参数 焦点 平行光轴的投射光线经物镜后产生折射,该折射线与光轴的交点。 17、像片倾角 航摄仪光轴与通过物镜中心的铅垂线所夹的角称为像片的倾斜角 19、像片旋角 相邻像片的主点连线与像幅沿航线方向两框标连线之间的夹角称为像片的旋 偏角? 20、倾斜误差 因像片倾斜引起的像点位移 节点 投射光线与成像光线与光轴的交角u 和u ′相等时,投射光线与成像光线与光轴的交点。 21、投影差 ?因地形起伏引起的像点位移 22、摄影比例尺?航摄相片上某一线段构成的长度与地面上相应水平距离之比。 23、像片控制点? 为联系地面与相片而测定地面坐标的像点。 相对孔径 ?物镜焦距与有效孔径之比 25、左右视差 同名像点在各自像平面坐标系中的x 坐标之差 26、上下视差?同名像点在各自像平面坐标系中的Y 坐标之差 27、核点 基线延长线与左、右像片的交点k1、k 2称为核点 ? 28、核线 核面与像片的交线称为核线 29、核面?通过摄影基线S 1S 2与任一地面点A所作的平面W A?? 30、投影基线?两摄站的连线? 31、像片基线?指相邻两张像片主点的连线 32、解析空中三角测量 即在一条航带几十条像对覆盖的区域或由几条航带几百哥像对构 成的区域内,仅仅由外业实测几个少量的控制点,按一定的数学模型,平 差解算出摄影测量作业过程中所需的全部控制点及每张像片的外方位元 素 ()()()()(){}2332233213322232332 1[]Z X Y X Y Y Y X X X Z Y X X Y Z X Y Y X Z X Y X Y =-+-+-+-+--

摄影测量学空间后方交会实验报告测绘101徐斌

摄影测量学空间后方交会实验报告测绘101徐斌摄影测量学实验报告 实验一、单像空间后方交会 学院: 建测学院 班级: 测绘101 姓名: 徐斌 学号: 26 一( 实验目的 1.深入了解单像空间后方交会的计算过程; 2.加强空间后方交会基本公式和误差方程式,法线方程式的记忆; 3.通过上机调试程序加强动手能力的培养。 二(实验原理 以单幅影像为基础,从该影像所覆盖地面范围内若干控制点和相应点的像坐标量测值出发,根据共线条件方程,求解该影像在航空摄影时刻的相片外方位元素。 三(实验内容 1.程序图框图

2.实验数据 (1)已知航摄仪内方位元素f,153.24mm,Xo,Yo,0。限差0.1秒 (2)已知4对点的影像坐标和地面坐标: 影像坐标地面坐标 x(mm) y(mm) X(m) Y(m) Z(m) 1 -86.15 -68.99 36589.41 25273.32 2195.17 2 -53.40 82.21 37631.08 31324.51 728.69 3 -14.78 -76.63 39100.97 24934.98 2386.50 4 10.46 64.43 40426.54 30319.81 757.31 3.实验程序 Form1.cs 程序

using System; using System.Collections.Generic; using https://www.360docs.net/doc/0017566731.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace 后方交会1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public double f,m, Xs, Ys, Zs, a1, a2, a3, b1, b2, b3, c1, c2, c3, q, w, k; public static int N,s; public double[] x = new double[4];

全站仪后方交会法的具体操作步骤+++

全站仪后方交会法的具体操作步骤 开机后先按S.O 键,输入文件名(也可跳过),确定,再按S.O 键下翻,F2 键选择新点,再按F2 选择后方交会法,再选择一个文件,确定,自定义点名(可跳过),再F1 距离后方交会,输入仪高,确定,在No1#界面里面选择坐标,输入第一个已知点的坐标,在已知点上架好凌镜,测量,再用同样的方法进行第二个点的操作。然后再看残差大不大,不大可以进行计算,后面的就进行定位放线。 以南方全站仪为例: 放样---新点----后方交会法----输入点号---回车----输入仪高---回车---输入A 点已知坐标-----输入棱镜高---测量距离---自动保存-----输入B 点坐标---输入棱高----测量距离----自动保存----计算----记录---(完成) 说的挺多,其实挺简单的,你可以上网下一本说明书,说明书里说的很祥细.网上有很多的.希望对你有帮助. 全站仪后方交会的操作方法请告诉我全站仪后方交会法跟极坐标法的原理是一样的,都要有两个已知条件。极坐标法有两个已知坐标或者一个坐标一个方向就可以了,后方交汇要有两个坐标。步骤:在仪器里面找到后方交汇,有的叫交会测量,有的叫新点。每个仪器不同都不一样。有的一起要输入两个坐标后在测距,有的是输一个测一个。反正就是输入坐标,然后测距,然后按计算,定向就可以了,后交有条件限制的。交会角度不能小于15 度和大于165 度、

更不能再一条直线上。要不然仪器就不能计算出结果。无法交会。对交会距离也有一定限制,得慢慢摸索,总之比极坐标法好用但是精度差点,可以交会2 个坐标,也可以交会很多坐标。坐标都精度高。

摄影测量学__考前知识点整理

摄影比例尺:摄影比例尺越大,像片地面的分辨率越高,有利于影像的解译与提高成图精度 摄影航高:相对航高:绝对航高: 摄影测量生产对摄影资料的基本要求:影像的色调、像片倾角(摄影机主光轴与铅垂线的夹 角,α= 0 时为最理想的情形)像片重叠:航向重叠:同一航线内相邻像片应有一定的影 像重叠;旁向重叠:相邻航线也应有一定的重叠;航线弯曲:一条航线内各张像片的像主点 连线不在一条直线上;像片旋角:相邻两像片的主点的连线与像片沿航线方向的两框标连线 之间的夹角;像片旋角过大会减小立体相对的有效观察范围 中心投影:所有投射线或其延长线都通过一个固定点的投影 阴位:投影中心位于物和像之间。(距摄影中心f ) 阳位:投影中心位于物和像同侧。(距摄影中心f ) 像方坐标系:像平面坐标系(像主点o 为原点) 像空间坐标系(x 、y 、-f) 像空间辅助坐标系S-uvw 物方坐标系:地面测量坐标系T-XYZ (高斯平面坐标+高程)左手系 地面摄影测量坐标系D-XYZ 内方位元素: x 0,y 0,f 作用: 1、像点的框标坐标系向像空间坐标系的改化; 2、确定摄影光束的形状; 外方位元素:确定摄影光束在摄影瞬间的空间位置和姿态的参数 线元素(X S ,Y S ,Z S ) 角元素(航向倾角?、 旁向倾角ω、 像片旋角κ) 共线条件方程(摄影中心、像点、地面点) 像点位移:因像片倾斜引起的像点位移 同摄站同主距的倾斜像片和水平像片沿等比线重 合时,地面点在倾斜像片上的像点与相应水平像片上像点之间的直线移位 像点位于等比线上,无像片倾斜引起的像点位移 等比线上部的像点的像片倾斜误差方向向着等角点 等比线下部的像点的像片倾斜误差方向背向等角点 (1) 当 时, ,即等比线上的点不会因像片倾斜产生像点位移 (2)当 ,像点位移朝向等角点(一、二像限) (3)当 ,像点位移背向等角点(三、四像限) (4)当 时,主纵线上点的位移最大 像片纠正:因像片倾斜产生的影像变形改正 因地面起伏引起的像点位移(投影差):当地面有起伏时,高于或低于所选定的基准面 的地面点的像点,与该地面点在基准面上的垂直投影点的像点之间的直线移位 地形起伏像点位移的符号与该点的高差符号相同,像片上任何一点都存在像点位移 物镜畸变、大气折光、地球曲率及底片变形等一些因素均会导致像点位移 航摄像片:中心投影,平均比例尺,影像有变形,方位发生变化 地形图:正射投影,比例尺固定,图形形状与实地完全相似,方位保持不变 在表示方法上:地形图是按成图比例尺,用各种规定的符号、注记和等高线表示地物地 貌;航片则是通过影像的大小、形状和色调表示。 在表示内容上:在地形图上用相应的符号、文字、数字注记表示,在像片上这些是不存 ??? ????-+-+--+-+--=-+-+--+-+--=)Z Z (c )Y Y (b )X X (a )Z Z (c )Y Y (b )X X (a f y )Z Z (c )Y Y (b )X X (a )Z Z (c )Y Y (b )X X (a f x S S S S S S S S S S S S 333222 333111

全站仪后方交会法步骤和高程测量步骤

1、角度测量(angle observation) (1)功能:可进行水平角、竖直角的测量。 (2)方法:与经纬仪相同,若要测出水平角∠AOB ,则: 1)当精度要求不高时: 瞄准A 点——置零(0 SET )——瞄准B 点,记下水平度盘HR 的大小。 2)当精度要求高时:——可用测回法(method of observation set )。 操作步骤同用经纬仪操作一样,只是配置度盘时,按“置盘”(H SET )。 2、距离测量(distance measurement ) PSM 、PPM 的设置——测距、测坐标、放样前。 1)棱镜常数(PSM )的设置。 一般:PRISM=0 (原配棱镜),-30mm (国产棱镜) 2)大气改正数(PPM )(乘常数)的设置。 输入测量时的气温(TEMP )、气压(PRESS ),或经计算后,输入PPM 的值。(1)功能:可测量平距HD 、高差VD 和斜距SD (全站仪镜点至棱镜镜点间高差及斜距) (2)方法:照准棱镜点,按“测量”(MEAS )。 3、坐标测量(coordinate measurement ) (1)功能:可测量目标点的三维坐标(X ,Y ,H )。 (2)测量原理任意架仪器,先设置仪器高为0,棱镜高是多少就是多少,棱镜拿去直接放在已知点上测高差,测得的高差为棱镜头到仪器视线的高差,当然,有正有负了,然后拿出计算器用已知点加上棱镜高,再加上或减去(因为有正有负)测得的高差就是仪器的视线高啊,因为仪器高为0,所以这个数字就是你的测站点高程,进测站点把它改成这个数字就行了,改完测站点了一般情况下都要打一下已知点复核一下。。。 若输入:方位角,测站坐标(,);测得:水平角和平距。则有: 方位角: 坐标: 若输入:测站S 高程,测得:仪器高i ,棱镜高v ,平距,竖直角,则有: 高程: (3)方法: 输入测站S (X ,Y ,H ),仪器高i ,棱镜高v ——瞄准后视点B ,将水平度盘读数设置为——瞄准目标棱镜点T ,按“测量”,即可显示点T 的三维坐标。 4、点位放样(Layout) (1)功能:根据设计的待放样点P 的坐标,在实地标出P 点的平面位置及填挖高度。(2)放样原理 1)在大致位置立棱镜,测出当前位置的坐标。 2)将当前坐标与待放样点的坐标相比较,得距离差值dD 和角度差dHR 或纵向差值Δ X 和横向差值Δ Y 。 3)根据显示的dD 、dHR 或ΔX 、ΔY ,逐渐找到放样点的位置。 5、程序测量(programs ) (1)数据采集(data collecting) (2)坐标放样(layout) (3)对边测量(MLM)、悬高测量(REM)、面积测量(AREA)、后方交会(RESECTION) 等。

相关文档
最新文档