全球导航卫星系统日历(GPS&BDS)的转换器日期。
gnsscal的Python项目详细描述
本模块包含在公历日期、年份和GNSS日历之间进行转换的功能,现在支持GPS和BDS的GNSS日历。
在公历日期和年份日期(DOY)之间有3个转换函数:
date2doy(date)date2yrdoy(date)yrdoy2date(year,doy)
像这样使用它们:
>>>fromdatetimeimportdate>>>date2doy(date(2017,5,17))137>>>date2yrdoy(date(2017,5,17))(2017,137)>>>yrdoy2date(2017,137)datetime.date(2017,5,17)
在公历日期和GNSS日历(GPS或BDS)之间有4个转换函数:
date2gpswd(date)date2bdswd(date)gpswd2date(gpsweek,dayofweek)bdswd2date(bdsweek,dayofweek)
像这样使用它们:
>>>fromdatetimeimportdate>>>date2gpswd(date(2017,5,17))(1949,3)>>>date2bdswd(date(2017,5,17))(593,3)>>>gpswd2date(1949,3)datetime.date(2017,5,17)>>>bdswd2date(593,3)datetime.date(2017,5,17)
年、日(DOY)和GNSS日历(GPS或BDS)之间有4个转换功能:
yrdoy2gpswd(year,doy)yrdoy2bdswd(year,doy)gpswd2yrdoy(gpsweek,dayofweek)bdswd2yrdoy(bdsweek,dayofweek)
像这样使用它们:
>>>yrdoy2gpswd(2017,137)(1949,3)>>>yrdoy2bdswd(2017,137)(593,3)>>>gpswd2yrdoy(1949,3)(2017,137)>>>bdswd2yrdoy(593,3)(2017,137)
GPS日历和BDS日历之间还有两个转换功能:
gpsw2bdsw(gpsweek)bdsw2gpsw(bdsweek)
像这样使用它们:
>>>gpsw2bdsw(1949)593>>>bdsw2gpsw(593)1949
其中日期的类型是datetime.date,其他类型是int或int的元组。
在公历日期,gps和bds的零点也作为模块级常量给出。
示例
importgnsscalfromdatetimeimportdate# Convert Gregorian date to GPS calendartoday=date.today()gpsweek,days=gnsscal.date2gpswd(today)# Convert GPS week to BDS weekgpsweek=1812bdsweek=gnsscal.gpsw2bdsw(gpsweek)# Get zero point of GPS and BDS calendargps_zero=gnsscal.GPS_START_DATEbds_zero=gnsscal.BDS_START_DATE
cli模式
您还可以在cli模式下使用gnsscal:
$ python -m gnsscal [options]
使用可选参数设置输入日期:
-h, --help show this help message and exit -v, --version show program's version number and exit -date <year> <month> <day> year, month, day -ydoy <year> <doy> year, day of year -gpswd <GPS week> <day of week> GPS week, day of week -bdswd <BDS week> <day of week> BDS week, day of week
例如,在终端中键入此命令:
$ python -m gnsscal -date 2017 5 17
然后它将打印:
Gregorian date: 2017-05-17 year, doy: 2017, 137 GPS week: 1949, 3 BDS week: 0593, 3
安装
可以使用pip安装模块:
$ pip install gnsscal
测试
使用命令测试gnsscal.py:
$ python test_gnsscal.py
许可证
根据BSD发布,请参阅许可证以了解更多详细信息。
如有意见和建议,请发送电子邮件至:jiangyingming(at)live.com