geocompy


Namegeocompy JSON
Version 0.9.0 PyPI version JSON
download
home_pageNone
SummarySurveying instrument automation through GeoCom and other protocols.
upload_time2025-08-01 11:35:30
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords automation geocom gsi leica monitoring surveying totalstation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">
<img src="https://raw.githubusercontent.com/mrclock8163/geocompy/main/docs/geocompy_logo.png" alt="GeoComPy logo" width="300">
</h1><br>

[![PyPI - Version](https://img.shields.io/pypi/v/geocompy)](https://pypi.org/project/geocompy/)
[![Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FMrClock8163%2FGeoComPy%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://pypi.org/project/geocompy/)
[![MIT](https://img.shields.io/github/license/mrclock8163/geocompy)](https://opensource.org/license/mit)
[![Tests status](https://img.shields.io/github/actions/workflow/status/mrclock8163/geocompy/run-tests.yml?label=tests)](https://github.com/MrClock8163/GeoComPy)
[![Docs status](https://app.readthedocs.org/projects/geocompy/badge/?version=latest)](https://geocompy.readthedocs.io/latest/)
[![Typed](https://img.shields.io/pypi/types/geocompy)](https://pypi.org/project/geocompy/)

GeoComPy is a Python library providing wrapper functions for serial
communication protocols of Leica surveying instruments.

The package is mainly built around the GeoCom ASCII protocol, supported by
a number of total stations and other instruments running TPS1000, 1100, 1200
and other firmware. For some older instruments that do not support GeoCom,
the GSI Online command set is used for communication.

- **Download:** https://pypi.org/project/geocompy/
- **Documentation:** https://geocompy.readthedocs.io/
- **Source:** https://github.com/MrClock8163/GeoComPy
- **Bug reports:** https://github.com/MrClock8163/GeoComPy/issues

>[!TIP]
>Command line applications using GeoComPy are available as a separate
>complimentary package called
>[Instrumentman](https://github.com/MrClock8163/Instrumentman).

## Main features

- Pure Python implementation
- Support for type checkers
- Primitives for relevant data
- Command building and parsing through function calls
- Multiple supported protocols (e.g. GeoCom, GSI Online)

## Requirements

To use the package, Python 3.11 or higher is required.

For the platform independent serial communication, GeoComPy relies on the
[pySerial](https://pypi.org/project/pyserial/) package to provide the
necessary abstractions.

## Installation

The preferred method to install GeoComPy is through PyPI, where both wheel
and source distributions are made available.

```shell
python -m pip install geocompy
```

If not yet published changes/fixes are needed, that are only available in
source, GeoComPy can also be installed locally from source, without any
external tools. Once the repository is cloned to a directory, it can be
installed with pip.

```shell
git clone https://github.com/MrClock8163/GeoComPy.git
cd GeoComPy
python -m pip install .
```

## Short example

The below example demonstrates how to connect to a GeoCom capable instrument
through a serial connection. Once the connection is up and running, the
total station is instructed to turn to horizontal 0, and position the
telescope parallel to the ground.

```py
from geocompy import (
    Angle,
    open_serial,
    GeoCom
)


with open_serial("COM1") as comm:
    tps = GeoCom(comm)
    tps.aut.turn_to(Angle(0), Angle(90, 'DEG'))
```

## License

GeoComPy is free and open source software, and it is distributed under the terms of the
[MIT License](https://opensource.org/license/mit).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "geocompy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "automation, geocom, gsi, leica, monitoring, surveying, totalstation",
    "author": null,
    "author_email": "MrClock <mrclock8163@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/cf/ce/360279b4bb06b90e1f853d4009f50a3e83b9e1a4cdd2672cd945e26d3e78/geocompy-0.9.0.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">\n<img src=\"https://raw.githubusercontent.com/mrclock8163/geocompy/main/docs/geocompy_logo.png\" alt=\"GeoComPy logo\" width=\"300\">\n</h1><br>\n\n[![PyPI - Version](https://img.shields.io/pypi/v/geocompy)](https://pypi.org/project/geocompy/)\n[![Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2FMrClock8163%2FGeoComPy%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://pypi.org/project/geocompy/)\n[![MIT](https://img.shields.io/github/license/mrclock8163/geocompy)](https://opensource.org/license/mit)\n[![Tests status](https://img.shields.io/github/actions/workflow/status/mrclock8163/geocompy/run-tests.yml?label=tests)](https://github.com/MrClock8163/GeoComPy)\n[![Docs status](https://app.readthedocs.org/projects/geocompy/badge/?version=latest)](https://geocompy.readthedocs.io/latest/)\n[![Typed](https://img.shields.io/pypi/types/geocompy)](https://pypi.org/project/geocompy/)\n\nGeoComPy is a Python library providing wrapper functions for serial\ncommunication protocols of Leica surveying instruments.\n\nThe package is mainly built around the GeoCom ASCII protocol, supported by\na number of total stations and other instruments running TPS1000, 1100, 1200\nand other firmware. For some older instruments that do not support GeoCom,\nthe GSI Online command set is used for communication.\n\n- **Download:** https://pypi.org/project/geocompy/\n- **Documentation:** https://geocompy.readthedocs.io/\n- **Source:** https://github.com/MrClock8163/GeoComPy\n- **Bug reports:** https://github.com/MrClock8163/GeoComPy/issues\n\n>[!TIP]\n>Command line applications using GeoComPy are available as a separate\n>complimentary package called\n>[Instrumentman](https://github.com/MrClock8163/Instrumentman).\n\n## Main features\n\n- Pure Python implementation\n- Support for type checkers\n- Primitives for relevant data\n- Command building and parsing through function calls\n- Multiple supported protocols (e.g. GeoCom, GSI Online)\n\n## Requirements\n\nTo use the package, Python 3.11 or higher is required.\n\nFor the platform independent serial communication, GeoComPy relies on the\n[pySerial](https://pypi.org/project/pyserial/) package to provide the\nnecessary abstractions.\n\n## Installation\n\nThe preferred method to install GeoComPy is through PyPI, where both wheel\nand source distributions are made available.\n\n```shell\npython -m pip install geocompy\n```\n\nIf not yet published changes/fixes are needed, that are only available in\nsource, GeoComPy can also be installed locally from source, without any\nexternal tools. Once the repository is cloned to a directory, it can be\ninstalled with pip.\n\n```shell\ngit clone https://github.com/MrClock8163/GeoComPy.git\ncd GeoComPy\npython -m pip install .\n```\n\n## Short example\n\nThe below example demonstrates how to connect to a GeoCom capable instrument\nthrough a serial connection. Once the connection is up and running, the\ntotal station is instructed to turn to horizontal 0, and position the\ntelescope parallel to the ground.\n\n```py\nfrom geocompy import (\n    Angle,\n    open_serial,\n    GeoCom\n)\n\n\nwith open_serial(\"COM1\") as comm:\n    tps = GeoCom(comm)\n    tps.aut.turn_to(Angle(0), Angle(90, 'DEG'))\n```\n\n## License\n\nGeoComPy is free and open source software, and it is distributed under the terms of the\n[MIT License](https://opensource.org/license/mit).\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Surveying instrument automation through GeoCom and other protocols.",
    "version": "0.9.0",
    "project_urls": {
        "Changelog": "https://geocompy.readthedocs.io/latest/changelog",
        "Documentation": "https://geocompy.readthedocs.io",
        "Issues": "https://github.com/MrClock8163/geocompy/issues",
        "Repository": "https://github.com/MrClock8163/geocompy"
    },
    "split_keywords": [
        "automation",
        " geocom",
        " gsi",
        " leica",
        " monitoring",
        " surveying",
        " totalstation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d19b7857cb54e40c48809ef655f54dbc80f1d17e9af6ddf40d59525b60c0f7f8",
                "md5": "dfa5ed28168b7e1729c06bb5f264f78b",
                "sha256": "61e91a8fdc73509c9fe099c0b30e59267e716763aa1578a39453c4838d6f7443"
            },
            "downloads": -1,
            "filename": "geocompy-0.9.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dfa5ed28168b7e1729c06bb5f264f78b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 84806,
            "upload_time": "2025-08-01T11:35:29",
            "upload_time_iso_8601": "2025-08-01T11:35:29.400554Z",
            "url": "https://files.pythonhosted.org/packages/d1/9b/7857cb54e40c48809ef655f54dbc80f1d17e9af6ddf40d59525b60c0f7f8/geocompy-0.9.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cfce360279b4bb06b90e1f853d4009f50a3e83b9e1a4cdd2672cd945e26d3e78",
                "md5": "de3497127b55a307c2d8f2bf59cf0256",
                "sha256": "7cf49a087ef05ed37fc510408665095032846934a1cfecd4f6171bb7f015e1ef"
            },
            "downloads": -1,
            "filename": "geocompy-0.9.0.tar.gz",
            "has_sig": false,
            "md5_digest": "de3497127b55a307c2d8f2bf59cf0256",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 576840,
            "upload_time": "2025-08-01T11:35:30",
            "upload_time_iso_8601": "2025-08-01T11:35:30.938853Z",
            "url": "https://files.pythonhosted.org/packages/cf/ce/360279b4bb06b90e1f853d4009f50a3e83b9e1a4cdd2672cd945e26d3e78/geocompy-0.9.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-01 11:35:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "MrClock8163",
    "github_project": "geocompy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "geocompy"
}
        
Elapsed time: 1.35725s