資源簡(jiǎn)介
利用基站和移動(dòng)站的RINEX文件,差分計(jì)算移動(dòng)站的位置
結(jié)果輸出到output.txt
附有matlab畫(huà)出的XYZ和鐘差的變化程序
代碼片段和文件信息
//?Code?difference.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include???
using?namespace?Eigen;??
using?namespace?std;
const?double?c=299792458;?//light?speed
const?double?GM=3.986005e14;
const?double?we=7.292115e-5;?//地球自轉(zhuǎn)速度
//-------------------------------------------------------------------
typedef?vector>?Mat;
//民用時(shí)轉(zhuǎn)化為GPS時(shí)
void?gpstime(int?yearint?monthint?dayint?hour?int?minute?double?second?int?&week?double?&secofweek)
{
int?ry[12]={312931303130313130313031}fry[12]={312831303130313130313031};
if(year?>?80)?
year?=?1900?+?year;
else?
year?=?2000?+?year;
int?z=0;
for(int?i1=1980;?i1? {
if(i1%4?==?0?&&?i1%400?!=?0)
z++;????????????????????//記閏年數(shù)
}
if(year%4?==?0?&&?year%100?!=?0)
{
for(int?i2?=?0;?i2? day?+=?ry[i2];
}
else
{
for(int?i3=0;?i3? day?+=?fry[i3];
}
day?+=?(year-1980)*365?+?z?-?5;
week?=?day/7;
secofweek=?day%7*24*3600?+?hour*3600?+?minute*60?+?second?;
}
//觀測(cè)文件類(lèi)
class?ReadObsFile?//觀測(cè)文件類(lèi)
{
public:
double?X0Y0Z0;?//估計(jì)坐標(biāo)
int?epochNum;
vectorsvNum;?//衛(wèi)星個(gè)數(shù)
vector?>c1p1p2l1l2d1d2;
vector?>prn;//衛(wèi)星的prn號(hào)二維向量
int?week;
vectorsecofweek;
void?ReadObsHeader(string?ofile)
{
//用文件流讀文件
ifstream?in_o(ofile.c_str());
if(in_o)
cout<<“打開(kāi)O文件成功“< else
cerr<<“未找到O文件“< string?str;
//定位到初始坐標(biāo)
while(str.find(“APPROX?POSITION?XYZ“)?==?string::npos)
{
getline(in_ostr);
}
stringstream?ss(str); //用字符串流提取出來(lái)初始坐標(biāo)
ss>>X0>>Y0>>Z0; //初始坐標(biāo)提取
//--------------------------------------------------------------------
//定位到數(shù)據(jù)頭
while(str.find(“END?OF?HEADER“)?==?string::npos)
{
getline(in_ostr);
}
//計(jì)算歷元數(shù)
epochNum=0;
while(in_o)
{
getline(in_ostr);
for(int?i?=?0;?(size_t)i? if(str[i]?==?‘G‘)
{
epochNum++;
break;
}
}
}?//end?of?function?ReadObsHeader
void?ReadObsData(string?ofile)
{
//定位到文件頭
ifstream?in_o1(ofile.c_str());
string?str;
//定位到數(shù)據(jù)頭
while(str.find(“END?OF?HEADER“)?==?string::npos)
{
getline(in_o1str);
}
//用歷元數(shù)定義向量的列數(shù)
c1.resize(epochNum);
p1.resize(epochNum);
p2.resize(epochNum);
l1.resize(epochNum);
l2.resize(epochNum);
d1.resize(epochNum);
d2.resize(epochNum);
prn.resize(epochNum);
svNum.resize(epochNum);
secofweek.resize(epochNum);
vector?second(epochNum);
int?year?=?0month?=?0day?=?0hour?=?0minute?=?0mark?=?0;
week=0;
char?g;
for(int?i?=?0;?i? {
//week和secofweek提取
in_o1>>year>>month>>day>>hour>>minute>>second[i]>>mark;
//cout<
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????15962??2015-06-08?09:56??codeDifference\codeDifference\ba
?????文件????6219816??2015-06-08?09:56??codeDifference\codeDifference\ba
?????文件??????15254??2015-06-09?16:25??codeDifference\codeDifference\codeDifference.cpp
?????文件???????4380??2015-06-08?11:18??codeDifference\codeDifference\codeDifference.vcxproj
?????文件???????1318??2015-06-08?11:18??codeDifference\codeDifference\codeDifference.vcxproj.filters
?????文件????????143??2015-06-08?11:18??codeDifference\codeDifference\codeDifference.vcxproj.user
?????文件???????1762??2015-06-09?15:58??codeDifference\codeDifference\Debug\cl.command.1.tlog
?????文件??????35962??2015-06-09?15:58??codeDifference\codeDifference\Debug\CL.read.1.tlog
?????文件???????1034??2015-06-09?15:58??codeDifference\codeDifference\Debug\CL.write.1.tlog
?????文件????????406??2015-06-08?11:19??codeDifference\codeDifference\Debug\codeDifference.exe.em
?????文件????????472??2015-06-08?11:19??codeDifference\codeDifference\Debug\codeDifference.exe.em
?????文件????????381??2015-06-09?15:58??codeDifference\codeDifference\Debug\codeDifference.exe.intermediate.manifest
?????文件?????????66??2015-06-09?15:58??codeDifference\codeDifference\Debug\codeDifference.lastbuildstate
?????文件???????2448??2015-06-09?15:58??codeDifference\codeDifference\Debug\codeDifference.log
?????文件????2176058??2015-06-09?15:58??codeDifference\codeDifference\Debug\codeDifference.obj
?????文件????1179648??2015-06-08?11:19??codeDifference\codeDifference\Debug\codeDifference.pch
?????文件????????713??2015-06-08?11:19??codeDifference\codeDifference\Debug\codeDifference.vcxprojResolveAssemblyReference.cache
?????文件??????????0??2015-06-08?11:19??codeDifference\codeDifference\Debug\codeDifference.write.1.tlog
?????文件????????218??2015-06-08?11:19??codeDifference\codeDifference\Debug\codeDifference_manifest.rc
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
?????文件??????????2??2015-06-09?15:58??codeDifference\codeDifference\Debug\li
............此處省略69個(gè)文件信息
- 上一篇:VC++6.0從入門(mén)到精通
- 下一篇:MFC畫(huà)有角度的橢圓
評(píng)論
共有 條評(píng)論