gtimes


Namegtimes JSON
Version 0.4.1 PyPI version JSON
download
home_pageNone
SummaryHigh-precision GPS time conversion and processing library for GNSS applications
upload_time2025-09-03 08:21:23
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords conversion coordinate-systems gamit geodesy geophysics globk gnss gps leap-seconds positioning rinex satellite-navigation surveying time
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # GTimes - High-Precision GPS Time Processing Library

[![PyPI version](https://badge.fury.io/py/gtimes.svg)](https://badge.fury.io/py/gtimes)
[![Python versions](https://img.shields.io/pypi/pyversions/gtimes.svg)](https://pypi.org/project/gtimes/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![CI/CD](https://github.com/bennigo/gtimes/actions/workflows/ci.yml/badge.svg)](https://github.com/bennigo/gtimes/actions/workflows/ci.yml)
[![Quality](https://github.com/bennigo/gtimes/actions/workflows/quality-checks.yml/badge.svg)](https://github.com/bennigo/gtimes/actions/workflows/quality-checks.yml)
[![codecov](https://codecov.io/gh/bennigo/gtimes/branch/main/graph/badge.svg)](https://codecov.io/gh/bennigo/gtimes)
[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://bennigo.github.io/gtimes)

**GTimes** is a high-precision GPS time conversion and processing library designed for GNSS applications, geodetic research, and scientific computing. It provides microsecond-accurate conversions between GPS time and UTC, handles leap seconds correctly, and offers comprehensive tools for time-related calculations in GPS data processing workflows.

## 🚀 Key Features

- **High-Precision GPS Time Conversions**: Microsecond-accurate GPS ↔ UTC conversions
- **Leap Second Management**: Automatic handling of leap seconds with up-to-date leap second data
- **RINEX Processing Support**: Time formatting and file organization for RINEX workflows
- **GAMIT/GLOBK Integration**: Fractional year conversions for GAMIT time series analysis
- **Command-Line Interface**: Powerful `timecalc` tool for shell scripting and automation
- **Scientific Validation**: Comprehensive testing against known GPS time standards
- **Cross-Platform**: Works on Linux, Windows, and macOS with Python 3.8+

## 📦 Installation

### From PyPI (Recommended)

```bash
pip install gtimes
```

### Development Installation

```bash
git clone https://github.com/bennigo/gtimes.git
cd gtimes
pip install -e .[dev]
```

### With Documentation

```bash
pip install gtimes[docs]
mkdocs serve  # View documentation locally
```

## 🏃 Quick Start

### Basic GPS Time Conversions

```python
from gtimes.gpstime import gpsFromUTC, UTCFromGps
import datetime

# Convert current time to GPS
now = datetime.datetime.utcnow()
gps_week, sow, gps_day, sod = gpsFromUTC(
    now.year, now.month, now.day,
    now.hour, now.minute, now.second
)

print(f"Current GPS time: Week {gps_week}, SOW {sow:.3f}")

# Convert GPS time back to UTC
utc_datetime = UTCFromGps(gps_week, sow, dtimeObj=True)
print(f"Back to UTC: {utc_datetime}")
```

### GAMIT Fractional Year Processing

```python
from gtimes.timefunc import TimefromYearf, dTimetoYearf
import datetime

# Convert GAMIT fractional year to datetime
gamit_time = 2024.0411  # ~Feb 15, 2024
dt = TimefromYearf(gamit_time)
print(f"GAMIT {gamit_time:.4f} = {dt.strftime('%Y-%m-%d %H:%M:%S')}")

# Convert datetime to fractional year
date = datetime.datetime(2024, 6, 15, 12, 0, 0)
yearf = dTimetoYearf(date)
print(f"{date} = {yearf:.6f}")
```

### Command-Line Usage

```bash
# Get GPS week and day for today
timecalc -wd

# GPS time for specific date
timecalc -wd -d "2024-01-15"

# Generate RINEX filenames
timecalc -l "REYK%j0.%yO" "7D" -d "2024-01-15"

# Get fractional year for GAMIT
timecalc -yf -d "2024-06-15"
```

## 📊 Real-World Applications

### GPS Network Processing

```python
from gtimes.gpstime import gpsFromUTC
from gtimes.timefunc import datepathlist
import datetime

# Process GPS station data
stations = ['REYK', 'HOFN', 'AKUR', 'VMEY']
start_date = datetime.datetime(2024, 1, 15)

for station in stations:
    # Generate RINEX observation files
    obs_files = datepathlist(f"{station}%j0.%yO", "7D", start_date, 
                            start_date + datetime.timedelta(days=7))
    
    print(f"{station} files: {len(obs_files)} files")
    for obs_file in obs_files[:3]:  # Show first 3
        print(f"  {obs_file}")
```

### RINEX File Organization

```python
from gtimes.timefunc import datepathlist
import datetime

# Create processing directory structure
start = datetime.datetime(2024, 1, 1)
end = datetime.datetime(2024, 2, 1)

# Daily processing directories
daily_dirs = datepathlist("/gps_proc/%Y/%j/", "1D", start, end)
print("Daily processing directories:")
for directory in daily_dirs[:5]:
    print(f"  {directory}")

# Weekly GPS processing
weekly_dirs = datepathlist("/gps_proc/week_%U/", "7D", start, end)
print("Weekly processing directories:")
for directory in weekly_dirs:
    print(f"  {directory}")
```

## 🛠️ Advanced Usage

### High-Precision Time Series

```python
from gtimes.gpstime import gpsFromUTC, UTCFromGps
import datetime

# Process time series with microsecond precision
timestamps = [
    datetime.datetime(2024, 1, 15, 12, 30, 45, 123456),
    datetime.datetime(2024, 1, 15, 12, 30, 46, 234567),
    datetime.datetime(2024, 1, 15, 12, 30, 47, 345678),
]

gps_times = []
for ts in timestamps:
    # Convert with microsecond precision
    week, sow, day, sod = gpsFromUTC(
        ts.year, ts.month, ts.day, ts.hour, ts.minute,
        ts.second + ts.microsecond / 1e6
    )
    gps_times.append((week, sow))
    
    # Verify round-trip accuracy
    utc_back = UTCFromGps(week, sow, dtimeObj=True)
    diff = abs((utc_back - ts).total_seconds())
    print(f"GPS: Week {week}, SOW {sow:.6f}, Round-trip error: {diff:.6f}s")
```

### Leap Second Analysis

```python
from gtimes.gpstime import getleapSecs, leapSecDict
import datetime

# Analyze leap second history
leap_dict = leapSecDict()
print(f"Total leap seconds in database: {len(leap_dict)}")

# Check leap seconds for different epochs
important_dates = [
    ("GPS Epoch", datetime.datetime(1980, 1, 6)),
    ("Y2K", datetime.datetime(2000, 1, 1)),
    ("Recent", datetime.datetime(2024, 1, 1)),
]

for label, date in important_dates:
    gps_leap = getleapSecs(date, gpst=True)
    utc_leap = getleapSecs(date, gpst=False)
    print(f"{label}: GPS={gps_leap}, UTC={utc_leap} leap seconds")
```

## 🔧 Development

### Setting Up Development Environment

```bash
# Clone repository
git clone https://github.com/bennigo/gtimes.git
cd gtimes

# Install development dependencies
pip install -e .[dev,test,docs,quality]

# Run tests
pytest tests/ -v

# Run quality checks
ruff check src/ tests/
mypy src/gtimes/

# Build documentation
mkdocs build
mkdocs serve
```

### Running Benchmarks

```bash
# Performance benchmarks
pytest tests/benchmark/ --benchmark-only

# Scientific validation
python tests/validate_leap_seconds.py

# Documentation link checking
python tests/check_docs_links.py
```

## 📚 Documentation

- **[Full Documentation](https://bennigo.github.io/gtimes)**: Complete API reference and tutorials
- **[Installation Guide](https://bennigo.github.io/gtimes/guides/installation/)**: Detailed installation instructions
- **[Quick Start Tutorial](https://bennigo.github.io/gtimes/guides/quickstart/)**: Get started quickly
- **[API Reference](https://bennigo.github.io/gtimes/api/)**: Complete function documentation
- **[Examples](https://bennigo.github.io/gtimes/examples/)**: Real-world usage examples
- **[Contributing Guide](https://bennigo.github.io/gtimes/development/contributing/)**: How to contribute

## 🧪 Testing & Quality

GTimes maintains high standards for accuracy and reliability:

- **✅ Comprehensive Test Suite**: 200+ tests covering all functionality
- **✅ Scientific Validation**: GPS time accuracy verified against known standards
- **✅ Multi-Platform Testing**: Linux, Windows, macOS compatibility
- **✅ Performance Benchmarks**: >1000 GPS conversions/second
- **✅ Code Quality**: 90%+ test coverage, strict linting, type checking
- **✅ Documentation**: Complete API documentation with examples

### Accuracy Guarantees

- **Microsecond Precision**: GPS ↔ UTC conversions accurate to microseconds
- **Leap Second Handling**: Up-to-date leap second data (18 leap seconds as of 2024)
- **GPS Epoch Compliance**: Correct handling of GPS epoch (January 6, 1980)
- **Round-Trip Accuracy**: UTC → GPS → UTC conversions within 1μs

## 🌍 Applications

GTimes is used in various scientific and engineering applications:

- **GNSS Data Processing**: RINEX file processing and GPS network analysis
- **Geodetic Research**: Coordinate time series and plate motion studies  
- **Seismology**: GPS station monitoring and earthquake research
- **Meteorology**: GPS meteorology and atmospheric studies
- **Surveying**: High-precision positioning and coordinate systems
- **Satellite Navigation**: GPS receiver testing and algorithm development

## 🏢 Institutional Use

GTimes is developed and maintained by researchers at:

- **Veðurstofan Íslands** (Icelandic Met Office): Operational GPS network monitoring
- **GPS Research Community**: GAMIT/GLOBK processing workflows
- **Scientific Institutions**: Geodetic research and GNSS applications

## 🤝 Contributing

We welcome contributions! Please see our [Contributing Guide](https://bennigo.github.io/gtimes/development/contributing/) for details.

### Quick Contribution Steps

```bash
# Fork the repository on GitHub
git clone https://github.com/your-username/gtimes.git
cd gtimes

# Install development environment
pip install -e .[dev,test]

# Make changes and test
pytest tests/ -v
ruff check src/ tests/

# Submit pull request
```

## 📄 License

GTimes is released under the [MIT License](LICENSE). See LICENSE file for details.

## 🙏 Acknowledgments

- **IGS Community**: For GPS time standards and RINEX specifications
- **GAMIT/GLOBK Team**: For fractional year time representations
- **Scientific Python Community**: For the excellent ecosystem
- **Veðurstofan Íslands**: For supporting open-source GPS research tools

## 📞 Support & Contact

- **📖 Documentation**: [https://bennigo.github.io/gtimes](https://bennigo.github.io/gtimes)
- **🐛 Bug Reports**: [GitHub Issues](https://github.com/bennigo/gtimes/issues)
- **💬 Discussions**: [GitHub Discussions](https://github.com/bennigo/gtimes/discussions)
- **📧 Email**: [bgo@vedur.is](mailto:bgo@vedur.is)

---

**GTimes** - Precision GPS time processing for scientific applications 🛰️⏰🔬

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "gtimes",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Benedikt Gunnar \u00d3feigsson <bgo@vedur.is>",
    "keywords": "conversion, coordinate-systems, gamit, geodesy, geophysics, globk, gnss, gps, leap-seconds, positioning, rinex, satellite-navigation, surveying, time",
    "author": null,
    "author_email": "Benedikt Gunnar \u00d3feigsson <bgo@vedur.is>, Maria Fernanda Gonzalez <mariagr@vedur.is>",
    "download_url": "https://files.pythonhosted.org/packages/0b/a1/eeeabf537c30b62b9dba1e56a571a1abd91e290ddb90574906827d5b7d2c/gtimes-0.4.1.tar.gz",
    "platform": null,
    "description": "# GTimes - High-Precision GPS Time Processing Library\n\n[![PyPI version](https://badge.fury.io/py/gtimes.svg)](https://badge.fury.io/py/gtimes)\n[![Python versions](https://img.shields.io/pypi/pyversions/gtimes.svg)](https://pypi.org/project/gtimes/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![CI/CD](https://github.com/bennigo/gtimes/actions/workflows/ci.yml/badge.svg)](https://github.com/bennigo/gtimes/actions/workflows/ci.yml)\n[![Quality](https://github.com/bennigo/gtimes/actions/workflows/quality-checks.yml/badge.svg)](https://github.com/bennigo/gtimes/actions/workflows/quality-checks.yml)\n[![codecov](https://codecov.io/gh/bennigo/gtimes/branch/main/graph/badge.svg)](https://codecov.io/gh/bennigo/gtimes)\n[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://bennigo.github.io/gtimes)\n\n**GTimes** is a high-precision GPS time conversion and processing library designed for GNSS applications, geodetic research, and scientific computing. It provides microsecond-accurate conversions between GPS time and UTC, handles leap seconds correctly, and offers comprehensive tools for time-related calculations in GPS data processing workflows.\n\n## \ud83d\ude80 Key Features\n\n- **High-Precision GPS Time Conversions**: Microsecond-accurate GPS \u2194 UTC conversions\n- **Leap Second Management**: Automatic handling of leap seconds with up-to-date leap second data\n- **RINEX Processing Support**: Time formatting and file organization for RINEX workflows\n- **GAMIT/GLOBK Integration**: Fractional year conversions for GAMIT time series analysis\n- **Command-Line Interface**: Powerful `timecalc` tool for shell scripting and automation\n- **Scientific Validation**: Comprehensive testing against known GPS time standards\n- **Cross-Platform**: Works on Linux, Windows, and macOS with Python 3.8+\n\n## \ud83d\udce6 Installation\n\n### From PyPI (Recommended)\n\n```bash\npip install gtimes\n```\n\n### Development Installation\n\n```bash\ngit clone https://github.com/bennigo/gtimes.git\ncd gtimes\npip install -e .[dev]\n```\n\n### With Documentation\n\n```bash\npip install gtimes[docs]\nmkdocs serve  # View documentation locally\n```\n\n## \ud83c\udfc3 Quick Start\n\n### Basic GPS Time Conversions\n\n```python\nfrom gtimes.gpstime import gpsFromUTC, UTCFromGps\nimport datetime\n\n# Convert current time to GPS\nnow = datetime.datetime.utcnow()\ngps_week, sow, gps_day, sod = gpsFromUTC(\n    now.year, now.month, now.day,\n    now.hour, now.minute, now.second\n)\n\nprint(f\"Current GPS time: Week {gps_week}, SOW {sow:.3f}\")\n\n# Convert GPS time back to UTC\nutc_datetime = UTCFromGps(gps_week, sow, dtimeObj=True)\nprint(f\"Back to UTC: {utc_datetime}\")\n```\n\n### GAMIT Fractional Year Processing\n\n```python\nfrom gtimes.timefunc import TimefromYearf, dTimetoYearf\nimport datetime\n\n# Convert GAMIT fractional year to datetime\ngamit_time = 2024.0411  # ~Feb 15, 2024\ndt = TimefromYearf(gamit_time)\nprint(f\"GAMIT {gamit_time:.4f} = {dt.strftime('%Y-%m-%d %H:%M:%S')}\")\n\n# Convert datetime to fractional year\ndate = datetime.datetime(2024, 6, 15, 12, 0, 0)\nyearf = dTimetoYearf(date)\nprint(f\"{date} = {yearf:.6f}\")\n```\n\n### Command-Line Usage\n\n```bash\n# Get GPS week and day for today\ntimecalc -wd\n\n# GPS time for specific date\ntimecalc -wd -d \"2024-01-15\"\n\n# Generate RINEX filenames\ntimecalc -l \"REYK%j0.%yO\" \"7D\" -d \"2024-01-15\"\n\n# Get fractional year for GAMIT\ntimecalc -yf -d \"2024-06-15\"\n```\n\n## \ud83d\udcca Real-World Applications\n\n### GPS Network Processing\n\n```python\nfrom gtimes.gpstime import gpsFromUTC\nfrom gtimes.timefunc import datepathlist\nimport datetime\n\n# Process GPS station data\nstations = ['REYK', 'HOFN', 'AKUR', 'VMEY']\nstart_date = datetime.datetime(2024, 1, 15)\n\nfor station in stations:\n    # Generate RINEX observation files\n    obs_files = datepathlist(f\"{station}%j0.%yO\", \"7D\", start_date, \n                            start_date + datetime.timedelta(days=7))\n    \n    print(f\"{station} files: {len(obs_files)} files\")\n    for obs_file in obs_files[:3]:  # Show first 3\n        print(f\"  {obs_file}\")\n```\n\n### RINEX File Organization\n\n```python\nfrom gtimes.timefunc import datepathlist\nimport datetime\n\n# Create processing directory structure\nstart = datetime.datetime(2024, 1, 1)\nend = datetime.datetime(2024, 2, 1)\n\n# Daily processing directories\ndaily_dirs = datepathlist(\"/gps_proc/%Y/%j/\", \"1D\", start, end)\nprint(\"Daily processing directories:\")\nfor directory in daily_dirs[:5]:\n    print(f\"  {directory}\")\n\n# Weekly GPS processing\nweekly_dirs = datepathlist(\"/gps_proc/week_%U/\", \"7D\", start, end)\nprint(\"Weekly processing directories:\")\nfor directory in weekly_dirs:\n    print(f\"  {directory}\")\n```\n\n## \ud83d\udee0\ufe0f Advanced Usage\n\n### High-Precision Time Series\n\n```python\nfrom gtimes.gpstime import gpsFromUTC, UTCFromGps\nimport datetime\n\n# Process time series with microsecond precision\ntimestamps = [\n    datetime.datetime(2024, 1, 15, 12, 30, 45, 123456),\n    datetime.datetime(2024, 1, 15, 12, 30, 46, 234567),\n    datetime.datetime(2024, 1, 15, 12, 30, 47, 345678),\n]\n\ngps_times = []\nfor ts in timestamps:\n    # Convert with microsecond precision\n    week, sow, day, sod = gpsFromUTC(\n        ts.year, ts.month, ts.day, ts.hour, ts.minute,\n        ts.second + ts.microsecond / 1e6\n    )\n    gps_times.append((week, sow))\n    \n    # Verify round-trip accuracy\n    utc_back = UTCFromGps(week, sow, dtimeObj=True)\n    diff = abs((utc_back - ts).total_seconds())\n    print(f\"GPS: Week {week}, SOW {sow:.6f}, Round-trip error: {diff:.6f}s\")\n```\n\n### Leap Second Analysis\n\n```python\nfrom gtimes.gpstime import getleapSecs, leapSecDict\nimport datetime\n\n# Analyze leap second history\nleap_dict = leapSecDict()\nprint(f\"Total leap seconds in database: {len(leap_dict)}\")\n\n# Check leap seconds for different epochs\nimportant_dates = [\n    (\"GPS Epoch\", datetime.datetime(1980, 1, 6)),\n    (\"Y2K\", datetime.datetime(2000, 1, 1)),\n    (\"Recent\", datetime.datetime(2024, 1, 1)),\n]\n\nfor label, date in important_dates:\n    gps_leap = getleapSecs(date, gpst=True)\n    utc_leap = getleapSecs(date, gpst=False)\n    print(f\"{label}: GPS={gps_leap}, UTC={utc_leap} leap seconds\")\n```\n\n## \ud83d\udd27 Development\n\n### Setting Up Development Environment\n\n```bash\n# Clone repository\ngit clone https://github.com/bennigo/gtimes.git\ncd gtimes\n\n# Install development dependencies\npip install -e .[dev,test,docs,quality]\n\n# Run tests\npytest tests/ -v\n\n# Run quality checks\nruff check src/ tests/\nmypy src/gtimes/\n\n# Build documentation\nmkdocs build\nmkdocs serve\n```\n\n### Running Benchmarks\n\n```bash\n# Performance benchmarks\npytest tests/benchmark/ --benchmark-only\n\n# Scientific validation\npython tests/validate_leap_seconds.py\n\n# Documentation link checking\npython tests/check_docs_links.py\n```\n\n## \ud83d\udcda Documentation\n\n- **[Full Documentation](https://bennigo.github.io/gtimes)**: Complete API reference and tutorials\n- **[Installation Guide](https://bennigo.github.io/gtimes/guides/installation/)**: Detailed installation instructions\n- **[Quick Start Tutorial](https://bennigo.github.io/gtimes/guides/quickstart/)**: Get started quickly\n- **[API Reference](https://bennigo.github.io/gtimes/api/)**: Complete function documentation\n- **[Examples](https://bennigo.github.io/gtimes/examples/)**: Real-world usage examples\n- **[Contributing Guide](https://bennigo.github.io/gtimes/development/contributing/)**: How to contribute\n\n## \ud83e\uddea Testing & Quality\n\nGTimes maintains high standards for accuracy and reliability:\n\n- **\u2705 Comprehensive Test Suite**: 200+ tests covering all functionality\n- **\u2705 Scientific Validation**: GPS time accuracy verified against known standards\n- **\u2705 Multi-Platform Testing**: Linux, Windows, macOS compatibility\n- **\u2705 Performance Benchmarks**: >1000 GPS conversions/second\n- **\u2705 Code Quality**: 90%+ test coverage, strict linting, type checking\n- **\u2705 Documentation**: Complete API documentation with examples\n\n### Accuracy Guarantees\n\n- **Microsecond Precision**: GPS \u2194 UTC conversions accurate to microseconds\n- **Leap Second Handling**: Up-to-date leap second data (18 leap seconds as of 2024)\n- **GPS Epoch Compliance**: Correct handling of GPS epoch (January 6, 1980)\n- **Round-Trip Accuracy**: UTC \u2192 GPS \u2192 UTC conversions within 1\u03bcs\n\n## \ud83c\udf0d Applications\n\nGTimes is used in various scientific and engineering applications:\n\n- **GNSS Data Processing**: RINEX file processing and GPS network analysis\n- **Geodetic Research**: Coordinate time series and plate motion studies  \n- **Seismology**: GPS station monitoring and earthquake research\n- **Meteorology**: GPS meteorology and atmospheric studies\n- **Surveying**: High-precision positioning and coordinate systems\n- **Satellite Navigation**: GPS receiver testing and algorithm development\n\n## \ud83c\udfe2 Institutional Use\n\nGTimes is developed and maintained by researchers at:\n\n- **Ve\u00f0urstofan \u00cdslands** (Icelandic Met Office): Operational GPS network monitoring\n- **GPS Research Community**: GAMIT/GLOBK processing workflows\n- **Scientific Institutions**: Geodetic research and GNSS applications\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](https://bennigo.github.io/gtimes/development/contributing/) for details.\n\n### Quick Contribution Steps\n\n```bash\n# Fork the repository on GitHub\ngit clone https://github.com/your-username/gtimes.git\ncd gtimes\n\n# Install development environment\npip install -e .[dev,test]\n\n# Make changes and test\npytest tests/ -v\nruff check src/ tests/\n\n# Submit pull request\n```\n\n## \ud83d\udcc4 License\n\nGTimes is released under the [MIT License](LICENSE). See LICENSE file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- **IGS Community**: For GPS time standards and RINEX specifications\n- **GAMIT/GLOBK Team**: For fractional year time representations\n- **Scientific Python Community**: For the excellent ecosystem\n- **Ve\u00f0urstofan \u00cdslands**: For supporting open-source GPS research tools\n\n## \ud83d\udcde Support & Contact\n\n- **\ud83d\udcd6 Documentation**: [https://bennigo.github.io/gtimes](https://bennigo.github.io/gtimes)\n- **\ud83d\udc1b Bug Reports**: [GitHub Issues](https://github.com/bennigo/gtimes/issues)\n- **\ud83d\udcac Discussions**: [GitHub Discussions](https://github.com/bennigo/gtimes/discussions)\n- **\ud83d\udce7 Email**: [bgo@vedur.is](mailto:bgo@vedur.is)\n\n---\n\n**GTimes** - Precision GPS time processing for scientific applications \ud83d\udef0\ufe0f\u23f0\ud83d\udd2c\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "High-precision GPS time conversion and processing library for GNSS applications",
    "version": "0.4.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/bennigo/gtimes/issues",
        "CI/CD": "https://github.com/bennigo/gtimes/actions",
        "Changelog": "https://github.com/bennigo/gtimes/blob/main/CHANGELOG.md",
        "Coverage": "https://codecov.io/gh/bennigo/gtimes",
        "Documentation": "https://bennigo.github.io/gtimes",
        "Homepage": "https://github.com/bennigo/gtimes",
        "Issues": "https://github.com/bennigo/gtimes/issues",
        "Repository": "https://github.com/bennigo/gtimes",
        "Source Code": "https://github.com/bennigo/gtimes"
    },
    "split_keywords": [
        "conversion",
        " coordinate-systems",
        " gamit",
        " geodesy",
        " geophysics",
        " globk",
        " gnss",
        " gps",
        " leap-seconds",
        " positioning",
        " rinex",
        " satellite-navigation",
        " surveying",
        " time"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "945e7c4bcd6b0850858570a4551f7b954ab744ed47a3952ab3d1002f7844470f",
                "md5": "924d5bd9408dcce0750464fc54983bb1",
                "sha256": "324d5dbb79bd20d542f89c8e60feedbc1dc08765c7a536910fc1c48d784f0a5c"
            },
            "downloads": -1,
            "filename": "gtimes-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "924d5bd9408dcce0750464fc54983bb1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 27930,
            "upload_time": "2025-09-03T08:21:20",
            "upload_time_iso_8601": "2025-09-03T08:21:20.482297Z",
            "url": "https://files.pythonhosted.org/packages/94/5e/7c4bcd6b0850858570a4551f7b954ab744ed47a3952ab3d1002f7844470f/gtimes-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0ba1eeeabf537c30b62b9dba1e56a571a1abd91e290ddb90574906827d5b7d2c",
                "md5": "e3a7d04ba8856d839835236ce4a1b165",
                "sha256": "7848d5fa2e6c60f2e443cc54a82556c7ecdb87210047658b76e6e48e1cb6867f"
            },
            "downloads": -1,
            "filename": "gtimes-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e3a7d04ba8856d839835236ce4a1b165",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 160659,
            "upload_time": "2025-09-03T08:21:23",
            "upload_time_iso_8601": "2025-09-03T08:21:23.378878Z",
            "url": "https://files.pythonhosted.org/packages/0b/a1/eeeabf537c30b62b9dba1e56a571a1abd91e290ddb90574906827d5b7d2c/gtimes-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-03 08:21:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bennigo",
    "github_project": "gtimes",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "gtimes"
}
        
Elapsed time: 1.56924s