All Projects → dh1tw → pyhamtools

dh1tw / pyhamtools

Licence: MIT license
A Library with Amateur Radio specific Functions and Methods

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pyhamtools

aprs-weather-submit
Manually submit weather station information to the APRS-IS network.
Stars: ✭ 17 (-76.06%)
Mutual labels:  ham-radio, amateur-radio, hamradio
CubeSatSim
CubeSatSim, the AMSAT CubeSat Simulator
Stars: ✭ 201 (+183.1%)
Mutual labels:  ham-radio, hamradio
chirp
A mirror of the popular ham radio software from http://chirp.danplanet.com/projects/chirp/repository
Stars: ✭ 24 (-66.2%)
Mutual labels:  ham-radio, amateur-radio
FAPRS
This repo is obsolete. Please use Chickadee
Stars: ✭ 16 (-77.46%)
Mutual labels:  ham-radio, amateur-radio
Faraday-Software
Faraday node software
Stars: ✭ 41 (-42.25%)
Mutual labels:  ham-radio, amateur-radio
hftrx
Embedded firmware for ham radio transceivers
Stars: ✭ 27 (-61.97%)
Mutual labels:  ham-radio, hamradio
pyqso
PyQSO is a contact logging tool for amateur radio operators.
Stars: ✭ 75 (+5.63%)
Mutual labels:  ham-radio, amateur-radio
aprscot
aprscot - APRS to Cursor On Target Gateway.
Stars: ✭ 25 (-64.79%)
Mutual labels:  ham-radio, hamradio
1bitSDR
Minimal SDR with Lattice MachXO2 FPGA. And a port to Cyclone3 by Steven Groom
Stars: ✭ 53 (-25.35%)
Mutual labels:  ham-radio, amateur-radio
remoteAudio
Audio streaming application for Amateur Radio purposes
Stars: ✭ 121 (+70.42%)
Mutual labels:  amateur-radio, hamradio
klog
KLog is a multiplatform free hamradio logger. It runs natively on Linux, macOS and Windows.
Stars: ✭ 31 (-56.34%)
Mutual labels:  amateur-radio, hamradio
codec2 talkie
Turn your Android phone into Codec2 Walkie-Talkie (Bluetooth/USB/TCPIP KISS modem client for DV digital voice communication)
Stars: ✭ 65 (-8.45%)
Mutual labels:  ham-radio, amateur-radio
remoteRotator
remoteRotator lets you expose a local antenna rotator (azimuth / elevation) to the network
Stars: ✭ 32 (-54.93%)
Mutual labels:  amateur-radio, hamradio
MasterFrequencyList
Erics Master Frequency lists for RF tuning
Stars: ✭ 43 (-39.44%)
Mutual labels:  ham-radio, amateur-radio
go-dmr
Digital Mobile Radio
Stars: ✭ 53 (-25.35%)
Mutual labels:  ham-radio
kochmorse
A simple morse tutor using the Koch method.
Stars: ✭ 56 (-21.13%)
Mutual labels:  ham-radio
qdmr
A GUI application for configuring and programming cheap DMR radios under Linux and MacOS X.
Stars: ✭ 72 (+1.41%)
Mutual labels:  ham-radio
gnuradio ham
Basic example of using GNU Radio Companion for amateur (ham) radio communications
Stars: ✭ 19 (-73.24%)
Mutual labels:  amateur-radio
tlf
TLF - a console based ham radio contest logger
Stars: ✭ 41 (-42.25%)
Mutual labels:  ham-radio
df-aggregator
Networked DFing software that can handle multiple DOA receivers.
Stars: ✭ 47 (-33.8%)
Mutual labels:  ham-radio

pyhamtools

Build Status Build status codecov PyPI version

Pyhamtools is a set of functions and classes for Amateur Radio purpose. Currently, the core part is the Callsign Lookup which decodes any amateur radio callsign string and provides the corresponding information (Country, DXCC entity, CQ Zone...etc). This basic functionality is needed for Logbooks, DX-Clusters or Log Checking. This and additional convenience features are provided for the following sources:

Currently,

Other modules include location-based calculations (e.g. distance, heading between Maidenhead locators) or frequency-based calculations (e.g. frequency to band).

References

This Library is used in production at the DXHeat.com DX Cluster, performing several thousand lookups and calculations per day.

Compatibility

Pyhamtools is since version 0.6.0 compatible with > Python 2.7 and > python 3.3. We check compatibility on OSX, Windows, and Linux with the following Python versions:

  • Python 2.7
  • Python 3.4 (will be deprecated in 2022)
  • Python 3.5 (will be deprecated in 2022)
  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9
  • pypy2 (Python 2)

Documentation

Check out the full documentation including the changelog at: pyhamtools.readthedocs.org

License

Pyhamtools is published under the permissive MIT License. You can find a good comparison of Open Source Software licenses, including the MIT license at choosealicense.com

Installation

The easiest way to install pyhamtools is through the packet manager pip:

$ pip install pyhamtools

Example: How to use pyhamtools

>>> from pyhamtools.locator import calculate_heading
>>> calculate_heading("JN48QM", "QF67bf")
74.3136


>>> from pyhamtools import LookupLib, Callinfo
>>> my_lookuplib = LookupLib(lookuptype="countryfile")
>>> cic = Callinfo(my_lookuplib)
>>> cic.get_all("DH1TW")
    {
        'country': 'Fed. Rep. of Germany',
        'adif': 230,
        'continent': 'EU',
        'latitude': 51.0,
        'longitude': 10.0,
        'cqz': 14,
        'ituz': 28
    }

Testing

An extensive set of unit tests has been created for all Classes & Methods. To be able to perform all tests, you need a QRZ.com account and a Clublog API key.

pyhamtools rely on the pytest testing framework. To install it with all the needed dependencies run:

$ pip install -r requirements-pytest.txt

The QRZ.com credentials and the Clublog API key have to be set in the environment variables:

$ export CLUBLOG_APIKEY="<your API key>"
$ export QRZ_USERNAME="<your qrz.com username>"
$ export QRZ_PWD="<your qrz.com password>"

To perform the tests related to the redis key/value store, a Redis server has to be up & running.

$ sudo apt install redis-server
$ redis-server

To run the tests, simply execute:

$ pytest --cov pyhamtools

Generate the documentation

You can generate the documentation of pyhamtools with the following commands:

$ pip install -r requirements-docs.txt
$ cd docs
$ make html
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].