ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:97.23KB ,
资源ID:4444508      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4444508.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(空间大地测量与GPS导航定位时间系统相互转换格里高利时通用时儒略日GPS时年积日相互转换的源代码程序Word格式文档下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

空间大地测量与GPS导航定位时间系统相互转换格里高利时通用时儒略日GPS时年积日相互转换的源代码程序Word格式文档下载.docx

1、其中如果M2,则y=Y-1,m=M+12如果M2,则y=Y,m=MJD为儒略日,Y为年,M为月,D为日,UT为世界时。2.1.2由儒略日转换到通用时(JulianDayToCommonTime( pjd, pct)2.2通用时与GPS时间间的相互转换2.2.1由通用时转换到GPS时间(CommonTimeToGPSTime( pct, pgt)主要分两步进行:第一步:计算GPS周第二步:计算一周内的秒数2.2.2由GPS时间转换到通用时(GPSTimeToCommonTime( pgt, pct)由GPS时间转换到儒略日由儒略日转换到通用时2.3儒略日与年积日之间的相互转换2.3.1由儒略日转

2、换到年积日(JulianDayToDOY (pjd, pdoy)主要分三步进行:计算出通用时计算出当年1月1日的儒略日第三步:两个儒略日求差加1,得出年积日2.3.2年积日转换到儒略日(DOYToJulianDay ( pdoy, pjd)主要分一下两步进行:计算出当年1月1日的儒略日JD1年积日加JD1减1得儒略日2.4GPS时与年积日间的相互转换参照儒略日与年积日之间转换方法进行就可以得到结果。GPS时转换到年积日(GPSTimeToDOY ( pgt, pdoy)年积日转换到GPS时(DOYToGPSTime (pdoy, pgt)3.算例及结果通过在VC+6.0环境下编写了各个坐标系统

3、的相互转换,并得到了转换的结果,在试验中使用的已知数据是即使数据,取的时间是当时时间2011年1月7日19时38分45.26秒,用这个已知数据代入函数中,分别求得各个时间系统的GPS时、儒略时、年积日时,并通过各个时间系统的各自相互转换,最后输出的结果如下图所示通过上图我们可以看出,得到的结果还是非常满意的,程序基本完成了各个时间系统的相互转换,从各个时间相互转换后得到的时间结果,并还原成转换前的数据,得到的结果都是完全符合,由此可见我们的计算结果是正确的,4.心得体会这次编程试验,虽说这次试验比较简单,但还是花了较长的时间,修修改改的,以前看到过类似程序,觉得自己应该没啥问题,应该很简单,自

4、己能轻易拿下,可真做起来并不是这么一回事,总是出现一些小bug,不知道问题出在那里,明明感觉公式输入对的,语法也没啥问题,偏偏结果不对,与期望的值差别很大,最后经过调试总算解决了这些问题,比如有次明明记得公式输入是正确的,最后发现还是不小心输错了,结果导致错误。经过这次编程,这次试验,使自己的编程水平有了较大的提高,以前很多的时候都是只看程序,感觉很简单,并不自己动手,其实其中很多问题,只有自己亲自经历才知道一些简单的东西也会出问题,卡住思维,最后经过努力解决了问题,心里还是蛮开心的,有一定的成就感。经过这次试验,学到了很多东西,有比较深的感触,对VC+不像以前那么排斥了,不像以前总感觉有点儿

5、惧怕它,现在总算不抵触他了,希望在以后的学习中能够喜欢上它。5.附录(程序中的源代码)#includeusing namespace std;typedef struct tagCOMMONTIME int year; int month; int day; int hour; int minute; double second;COMMONTIME;/通用时typedef COMMONTIME *PCOMMONTIME;typedef struct tagTOD long sn; /秒数的整数部分 double tos;/秒数的小数部分TOD;typedef TOD *PTOD;typede

6、f struct long day; /整数天数 TOD tod; /一天内的秒数JULIANDAY;/儒略日typedef JULIANDAY *PJULIANDAY;typedef struct tagMJULIANDAYMJULIANDAY;/新儒略日typedef MJULIANDAY *PMJIANDAY;typedef struct tagTOW/秒整数部分/秒小数部分TOW;typedef TOW *PTOW;typedef struct tagGPSTIME int wn; /周数 TOW tow;/一周内的秒数GPSTIME;/GPS时typedef GPSTIME *PGP

7、STIME;typedef struct tagDOY unsigned short year; unsigned short day;DOY;/年积日typedef DOY *PDOY;double FRAC(double morigin) return morigin-long(morigin);/ 取小数部分void CommonTimeToJulianDay(PCOMMONTIME pct,PJULIANDAY pjd) /通用时到儒略日的转换 if(pct-year80) pct-year+=2000; else pct-year+=1900; double ut=pct-hour

8、+ pct-minute/60.0 + pct-second/3600.0;monthday=int(365.25*pct-year)+int(30.6001*(pct-month+1)+pct-day+int(ut/24+1720981.5);tod.sn= (pct-hour+12)%24)*3600+pct-minute*60+(int)pct-second;/秒的整数部分tod.tos=pct-second-(int)pct-/秒的小数部分 void JulianDayToCommonTime(PJULIANDAY pjd,PCOMMONTIME pct)/儒略日到通用时的转换 dou

9、ble x=pjd-day+(pjd-tod.sn+pjd-tod.tos)/(60.0*60.0*24); int a=int(x+0.5); int b=a+1537; int c=int(b-122.1)/365.25); int d=int(365.25*c); int e=int(b-d)/30.6001); pct-day=b-d-int(30.6001*e);month=e-1-12*int(e/14);year=c-4715-int(7+pct-month)/10);hour=(pjd-tod.sn/3600+12)%24;minute=(pjd-tod.sn%3600)/60

10、;second=pjd-tod.sn%60+pjd-tod.tos; int N=a%7;void JulianDayToGPSTime(PJULIANDAY pjd,PGPSTIME pgt)/儒略日到GPS时的转换 pgt-wn=int(x-2444244.5)/7);tow.sn=int(pjd-day-2444244)%7+(pjd-tod.sn/(60.0*60.0*24)-0.5)*86400);tow.tos=pjd-void GPSTimeToJulianDay(PGPSTIME pgt,PJULIANDAY pjd)/GPS时到儒略日的转换day=int(pgt-wn*7+d

11、ouble(pgt-tow.sn)/86400.0+2444244.5);tod.sn=(pgt-tow.sn+43200)%86400;tod.tos=pgt-tow.tos;void CommonTimeToGPSTime(PCOMMONTIME pct,PGPSTIME pgt)/通用时到GPS时的转换 PJULIANDAY pjd=new JULIANDAY; CommonTimeToJulianDay(pct,pjd); JulianDayToGPSTime(pjd,pgt);void GPSTimeToCommonTime(PGPSTIME pgt,PCOMMONTIME pct)

12、/GPS时到通用时的转换 GPSTimeToJulianDay(pgt,pjd); JulianDayToCommonTime(pjd,pct);void CommonTimeToDOY (PCOMMONTIME pct, PDOY pdoy) PCOMMONTIME pcto=new COMMONTIME; pcto-year=pct-year;month=1;day=1;hour=0;minute=0;second=0; PJULIANDAY pjdo=new JULIANDAY; double JD,JDO; CommonTimeToJulianDay(pcto,pjdo); JDO=p

13、jdo-day+(pjdo-tod.sn+pjdo-tod.tos)/86400; JD=pjd- pdoy-day=short(JD-JDO+1);tod.sn=long(pct-hour*3600 +pct-minute*60+pct-second);second-int(pct- /*pct-second-pdoy-tod.sn;*/void DOYToCommonTime (PDOY pdoy, PCOMMONTIME pct)year=pdoy- JD=JDO+pdoy-day+(pdoy-tod.sn+pdoy-tod.tos)/86400-1; long a,b,c,d,e; a

14、=(long)(JD+0.5); b=a+1537; c=(long)(b-122.1)/365.25); d=(long)(365.25*c); e=(long)(b-d)/30.6001);day=short(b-d-(long)(30.6001*e)+FRAC(JD+0.5);month=short(e-1-12*(long)(e/14);year=short(c-4715-(long)(7+pct-month)/10);hour=short(pdoy-tod.tos)/3600);minute=short(pdoy-tod.tos -pct-hour*3600)/60);second=

15、pdoy-hour*3600-pct-minute*60;void GPSTimeToDOY (PGPSTIME pgt, PDOY pdoy) GPSTimeToJulianDay (pgt, pjd); PCOMMONTIME pct=new COMMONTIME; JulianDayToCommonTime (pjd,pct); CommonTimeToDOY (pct,pdoy);void DOYToGPSTime (PDOY pdoy, PGPSTIME pgt) DOYToCommonTime (pdoy,pct); CommonTimeToGPSTime (pct, pgt);v

16、oid JulianDayToDOY (PJULIANDAY pjd, PDOY pdoy) JulianDayToCommonTime (pjd, pct);void DOYToJulianDay (PDOY pdoy, PJULIANDAY pjd)void main() PJULIANDAY pjd=new JULIANDAY; PDOY pdoy=new DOY; PGPSTIME pgt= new GPSTIME;year=2011;day=6;hour=19;minute=38;second=45.26; cout转换之前的通用时(当地时间):; cout dayhour:minu

17、tesecond儒略日的转换通用时-儒略日的转换:pjd-tod.sntod.tos通用时的转换儒略日-通用时的转换: JulianDayToGPSTime( pjd, pgt);GPS时的转换GPS时的转换:pgt-wntow.sntow.tosGPS时- CommonTimeToGPSTime( pct, pgt); GPSTimeToCommonTime( pgt, pct); CommonTimeToDOY ( pct, pdoy);年积日年积日:pdoy- DOYToCommonTime (pdoy, pct);/年积日-通用时年积日-通用时: GPSTimeToDOY ( pgt, pdoy); DOYToGPSTime (pdoy, pgt);GPS时GPS时: JulianDayToDOY (pjd, pdoy); DOYToJulianDay ( pdoy, pjd);儒略日儒略日:经过各种转换后还原得到的通用时:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2