陈超
如何实现十进制时间(年)转成年月日
2024-1-22 15:16
阅读:1397

 读取下面的GNSS时间序列数据,需要解决两个问题:(1)如何实现十进制时间(年)转换成年月日?

(2)如何实现LLH转换成ENU坐标系?

 2011.0027 YNZD  99.697985844  27.823145802  3296.9366  2.8  1.0  4.8  0.145   -0.311  -0.293 

 2011.0055 YNZD  99.697985737  27.823145852  3296.9438  1.7  0.7  3.4  0.094   -0.249  -0.315 

 2011.0082 YNZD  99.697985837  27.823145850  3296.9551  1.7  0.7  3.4  0.094   -0.254  -0.325 

 2011.0110 YNZD  99.697985750  27.823145905  3296.9418  1.7  0.7  3.4  0.068   -0.201  -0.288 

 2011.0137 YNZD  99.697985736  27.823145879  3296.9357  1.7  0.7  3.6  0.085   -0.237  -0.319 

 2011.0164 YNZD  99.697985740  27.823145857  3296.9370  1.7  0.7  3.4  0.125   -0.253  -0.319 

 2011.0192 YNZD  99.697985686  27.823145846  3296.9356  1.7  0.7  3.4  0.081   -0.245  -0.313 

解决办法:

(1)需要注意如何实现取整天?设置一个时间容差,比如,与24时比60分钟以内认为加一天!

%将十进制年拆分为年和日

[YYYY, DOY] = deal(floor(tm), (tm - floor(tm)) * 365);

%将年和日转换为 MATLAB 内部时间格式

dt = datetime(YYYY,1,1) + days(DOY);

image.png

for i =1:length(dt)

   [h,m,s]=hms(dt);

   seconds = h*60*60 + m*60 + s;

   if seconds > 23*60*60

       dt(i).Day = dt(i).Day + 1;

   end

end

1705907613118.jpg

(2)采用MATLAB自带程序lla2enu.m

enu=lla2enu(timeseries.llh',timeseries.refllh','flat');

转载本文请联系原作者获取授权,同时请注明本文来自陈超科学网博客。

链接地址:https://wap.sciencenet.cn/blog-858128-1418929.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?