GNSS时间转化(GPS时-儒略日-年月日时分秒)

2024-03-23 11:30

本文主要是介绍GNSS时间转化(GPS时-儒略日-年月日时分秒),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用python进行时间转换代码如下:

代码引用自:https://blog.csdn.net/qq_40185784/article/details/104956594

import math
def cal2mjd(cal):# cal2jd 将公历年月日时分秒转换到简化儒略日。# 输入公历时间列表,返回儒略日if (len(cal) < 6):for i in range(len(cal), 6):cal.append(0)year = cal[0]month = cal[1]day = cal[2] + (cal[3] * 3600 + cal[4] * 60 + cal[5]) / 86400;y = year + 4800m = monthif (year < 0):print('Year is wrong')return Falseif (m <= 2):# 1,2月视为前一年13,14月m = m + 12y = y - 1e = math.floor(30.6 * (m + 1))a = math.floor(y / 100)# 教皇格雷戈里十三世于1582年2月24日以教皇训令颁布,将1582年10月5日至14抹掉。1582年10月4日过完后第二天是10月15日if (year < 1582) or (year == 1582 and month < 10) or (year == 1582 and month == 10 and day < 15):b = -38else:b = math.floor((a / 4) - a)c = math.floor(365.25 * y)jd = b + c + e + day - 32167.5mjd = jd - 2400000.5return mjddef mjd2cal(mjd):# 从简化儒略日计算公历年月日时分秒# 返回的cal是年月日时分秒 列表# 公元1582年10月4日24:00点之前使用儒略历,公元1582年10月15日00:00点之后使用公历J = mjd + 2400000.5if (J < 1721423.5):# 公元1月1日0时BC = 1;else:BC = 0;if (J < 2299160.5):# 1582.10.4. 24:00 前j0 = math.floor(J + 0.5)dd = J + 0.5 - j0else:# 不是闰年的年数n1 = math.floor((J - 2342031.5) / 36524.25 / 4) + 1  # 1700.3.1.0n2 = math.floor((J - 2378555.5) / 36524.25 / 4) + 1  # 1800.3.1.0n3 = math.floor((J - 2415079.5) / 36524.25 / 4) + 1  # 1900.3.1.0j0 = n1 + n2 + n3 + J + 10dd = j0 + 0.5 - math.floor(j0 + 0.5)j0 = math.floor(j0 + 0.5)j0 = j0 + 32083year0 = math.ceil(j0 / 365.25) - 1year = year0 - 4800day = j0 - math.floor(year0 * 365.25)month = math.floor((day - 0.6) / 30.6) + 3day = day - round((month - 3) * 30.6)if (month > 12):month = month - 12year = year + 1year = year - BCsec = round(dd * 86400)hour = math.floor(sec / 3600)sec = sec - hour * 3600minute = math.floor(sec / 60)sec = sec - minute * 60return [year, month, day, hour, minute, sec]def cal2gps(cal):# cal2gps 将公历GPS时间转换到GPS周和周内的秒# 返回列表,周和周内秒mjd = cal2mjd(cal)# GPS从MJD44244开始e = mjd - 44244week = math.floor(e / 7)e = e - week * 7return [week, round(e * 86400)]def gps2cal(gpst):# gps2cal  将GPS周和周内的秒转换到公历GPS时间# 返回列表 年月日时分秒# GPS从MJD44244开始mjd = 44244 + (gpst[0] * 86400 * 7 + gpst[1]) / 86400cal = mjd2cal(mjd)return cal

测试代码如下: 

import timesystem
line=input("请输入cal:")#line为字符串
cal=[]
for n in line.split(' '):#使用空格将字符串分离cal.append(int(n)) #将字符串转换为整数并存入列表
GPStime=timesystem.cal2gps(cal)
print(GPStime)

 

 

这篇关于GNSS时间转化(GPS时-儒略日-年月日时分秒)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838183

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

MySQL中DATE_FORMAT时间函数的使用小结

《MySQL中DATE_FORMAT时间函数的使用小结》本文主要介绍了MySQL中DATE_FORMAT时间函数的使用小结,用于格式化日期/时间字段,可提取年月、统计月份数据、精确到天,对大家的学习或... 目录前言DATE_FORMAT时间函数总结前言mysql可以使用DATE_FORMAT获取日期字段

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间