Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/emlid/ntripbrowser

CLI tool to easily get NTRIP caster information
https://github.com/emlid/ntripbrowser

Last synced: 10 days ago
JSON representation

CLI tool to easily get NTRIP caster information

Awesome Lists containing this project

README

        

# NTRIP Browser [![Build Status](https://travis-ci.com/emlid/ntripbrowser.svg?branch=master)](https://travis-ci.com/emlid/ntripbrowser)

A Python API for browsing NTRIP (Networked Transport of RTCM via Internet Protocol).

## Requirements
- pager
- geopy
- pycurl
- cchardet
- texttable
- Python 2.6–2.7 & 3.4–3.6

## Installation

- make sure that you have `libcurl` installed

- `pip install ntripbrowser`

- or clone and run `make install`

- If you are looking for the last Python2 version of this package, checkout onto v2.2.3 tag. Python2 support will be discontinued in future releases.

```
git checkout v2.2.3
```

#### libcurl installation hints

- installation via `apt`:

```
apt-get install libssl-dev libcurl4-openssl-dev python-dev
```

## Usage

```
ntripbrowser [-h] [-p] [-t] [-c] host

positional arguments:
host NTRIP source table host address

optional arguments:
-h, --help Show this help message and exit
-p, --port Set url port. Standard port is 2101
-t, --timeout Add timeout
-c, --coordinates Add NTRIP station distance to this coordinate
-M --maxdist Only report stations less than this number of km away
from given coordinate
```

#### CLI workflow example:

ntripbrowser cddis-caster.gsfc.nasa.gov -p 443 -t 5 -c 1.0 2.0 -M 4000

## Package API
#### Workflow example:

```python
browser = NtripBrowser(host, port=2101, timeout=5)
browser.get_mountpoints()
browser.host = another_host
browser.get_mountpoints()
```

#### Arguments:

- `host`

> NTRIP caster host.
> Standard port is 2101, use `:port` optional argument to set another one.

#### Optional arguments:

- `port`

> NTRIP caster port.

- `timeout`

> Use `timeout` to define, how long to wait for a connection to NTRIP caster.
- `coordinates`

> Use `coordinates` to pass your position coordinates in function and get distance to NTRIP station.
> Form of coordiantes must be `(x, y)` or `(x.x, y.y)` of latitude, longitude.

- `maxdist`
> Use `maxdist` to only report stations less than this number of km away from given coordinate.

#### Result

As a result you'll get a dictionary consisting of a lists of dictionaries with such structure:

- CAS stations: `"Host", "Port", "ID", "Operator", "NMEA", "Country", "Latitude", "Longitude", "FallbackHost", "FallbackPort", "Site", "Other Details", "Distance"`

- NET stations: `"ID", "Operator", "Authentication", "Fee", "Web-Net", "Web-Str", "Web-Reg", "Other Details", "Distance"`

- STR stations: `"Mountpoint", "ID", "Format", "Format-Details","Carrier", "Nav-System", "Network", "Country", "Latitude", "Longitude", "NMEA", "Solution", "Generator", "Compr-Encryp", "Authentication", "Fee", "Bitrate", "Other Details", "Distance"`

#### Exceptions

- `ntripbrowser.NtripbrowserError` - base class for all ntripbrowser exceptions.
- `ntripbrowser.UnableToConnect` - raised when ntripbrowser could not connect to the assigned url.
- `ntripbrowser.NoDataReceivedFromCaster` - raised when ntripbrowser could not find any data on the page.
- `ntripbrowser.ExceededTimeoutError` - raised when connection timeout is exceeded.

## To test

make test

#### Known Issues
Tests with `tox` may fail if python*-dev is not installed.
So, you need to install python2.7-dev and python3.6-dev:

sudo apt-get install python2.7-dev
sudo apt-get install python3.6-dev