Python GPS date/time management package
Project description
gpsdatetime - Python GPS date/time management package
This is a python library for GNSS date/time transformations
Usage
Initialize gpsdatetime object
import gpsdatetime as gpst
- init from current computer date/time
t = gpst.gpsdatetime()
- init from modified julian date
t=gpst.gpsdatetime(mjd=54605.678)
- init from GPS week and second of week
t=gpst.gpsdatetime(wk=1400, wsec=600700)
- init from usual time elements
t=gpst.gpsdatetime(yyyy=2016, mon=1, dd=7, h=3, min=5, sec=5)
- init from SINEX time string
t=gpst.gpsdatetime('16:004:46888')
- init from sinex date elements
t=gpst.gpsdatetime(yyyy=2016, doy=004, dsec=45677)
- init from iso time string
t=gpst.gpsdatetime('16:01:04T03:05:05Z')
- init from RINEX time string
t=gpst.gpsdatetime('18 10 9 12 20 45.00000')
or
t=gpst.gpsdatetime('2018 10 9 12 20 45.00000')
Update date/time
Several functions are provided in order to update date/time.
Function | Parameters | Purpose |
---|---|---|
just_now | update from current date/time | |
ymdhms_t | year, month, day+[hour/minute/second] | update with date |
yyyyddds_t | year, day-of-year, second-of-day | |
gpswkd_t | GPS week, day of week | |
gpswks_t | GPS week, second of week | |
mjd_t | modified julian day | |
jd_t | Julian day | |
snx_t | '20:123:43200' | update with Sinex time string |
rinex_t | '2018 10 9 12 20 45.00000' | update with Rinex time string |
iso_t | '16:01:04T03:05:05Z' | update with iso time string |
timestamp_t | '10/Aug/2023:09:33:43 +0000' | update with timestamp time string |
Time calculations
- add 5 seconds (or substract 2s) to gpsdatetime object t
t += 5
t -= 2
- add x days, hour, seconds to current object
t.add_day(x)
t.add_h(y)
t.add_s(z)
- test wether t is before t1 or not
if t < t1:
print('t before t1')
- duration between two time objects
t1 = gpst.gpsdatetime()
t2 = gpst.gpsdatetime()
Delta_t = t2 - t1 # result in seconds
- set t object to current date at 0h00
t.day00()
- set t object to current week on sunday morning 0h00
t.wk00()
- set t object to beginning of current hour
t.h00()
- set t object to beginning of current minute
t.m00()
Get attributes
Attribute | Description | Unit |
---|---|---|
s1970 | seconds from 01-01-1970 à 0h00Z | second |
mjd | Modified Julian Date (MJD = JD – 2400000.5) | decimal days |
jd | Julian Date | decimal days |
jd50 | Julian Date from J1950 | decimal days |
wk | GPS week | week I4 |
wsec | seconds in GPS week | float [0..604800] |
yyyy | year (4 digits) | year I4 [1902..2079] |
yy | year (2 digits) | year (I2) |
mon | month number | I2 [1..12] |
dd | day of month | I2 [1..31] |
hh | hour | I2 [0..24] |
min | minute | I2 [0..60] |
sec | second | I2 [0..60] |
doy | day of year (DOY) | I3 [1..366] |
wd | day of week (DOW) | I1 [0..6] |
dsec | second of day | float [0..86400] |
dy | decimal year | float [0..366] |
GMST | Greenwich Mean Sidereal Time | decimal hours |
EQEQ | Equation of equinoxes | decimal hours |
GAST | Greenwich Aparent Sidereal Time | decimal hours |
y = t.yyyy
# y = 2020
Print time strings
- Return iso time string :
iso_t = t.st_iso_epoch()
# 2020-10-01T12:00:26Z
or
iso_t = t.st_iso_epoch(2)
# 2020-10-01T12:00:26.00Z
- Return Ephem (https://pypi.org/project/ephem/) time string : 2020/10/01 12:00:26.0
s = t.st_pyephem_epoch()
- Return Rinex time string : 2020 10 01 12 00 26.0000000
s = t.st_rinex_epoch()
- Return Sinex time string : 20:010:43226
s = t.st_snx_epoch()
- Return time stamp
s = t.st_timestamp_epoch()
- Print all date/time elements
print(t)
"""
gpsdatetime (version 1.0.38)
-----------------------------------------------------------------
s1970 : 1677283200.000000
YYYY_MM_DD : 2023/02/25
HH:MM:SS : 00:00:00.000000000
GPS week : 2250
Day of week : 6 (SAT)
Second of week : 518400.000000000
Second of day : 0.000000000
session : a
Modified Julian Date : 60000.000000
Julian Date : 2460000.500000
YYYY : 2023 DOY : 056
GMST (dec. hour) : 10.306795
GAST (dec. hour) : 10.306635
Eq. of Equinoxes (dec. hour) : -0.000160
-----------------------------------------------------------------
"""
Installation
Installation is accomplished from the command line.
- From pypi
user@desktop$pip3 install gpsdatetime
- From package source directory
user@desktop:~/gpsdatetime$ python3 setup.py install
licence
Copyright (C) 2014-2023, Jacques Beilin / ENSG-Geomatique
Distributed under terms of the CECILL-C licence.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gpsdatetime-1.0.41.tar.gz
(19.3 kB
view details)
File details
Details for the file gpsdatetime-1.0.41.tar.gz
.
File metadata
- Download URL: gpsdatetime-1.0.41.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/7.1.0 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.31.0 rfc3986/1.5.0 tqdm/4.66.2 urllib3/1.26.5 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1aa3979940134965bfe98646de614d23634a040f40c6b6959a67c3c9e08b512 |
|
MD5 | 151af617dd3a602a9fdaec7eea7aa219 |
|
BLAKE2b-256 | f9460ebb51ca38eb504da604a78bad78a7271879a250112b37dfebb600eeba1d |