Convert SOTA database CSV logs to ADIF. Including enrichment from SOTA API summit data.
Designed for Python >= 3.10.0, urllib3 >= 2.0.0
.
Specifically intended to produce ADIF files that can be easily uploaded to LoTW using TQSL. Contrary to what many people seem to believe, you do not need a station location in TQSL for every single summit! As long as you have not changed the default TQSL settings, the locator from the ADIF QSO will be used. The remaining caveat is your callsign must imply the DXCC entity you operated from.
⚠️ Please check the wiki for important guidance on use with LoTW / TQSL ⚠️
See also acknowledgements and the list of contributors who participated in this project.
See LICENSE.
SOTAtoADIF is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
SOTAtoADIF is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with SOTAtoADIF. If not, see https://www.gnu.org/licenses/.
If you know what you're doing with Python on Windows, adapt the Linux guide below. Otherwise, follow this guide for the simplest approach - note you will only be able to run released versions (not development or experimental branches). If you want to try out upcoming features, or modify the source code, you will have to sacrifice the easy life!
To make your life easy, when releasing a new version of SOTAtoADIF, I use pyinstaller
to produce a windows .exe
.
This way you don't need to worry about installing Python or managing a virtual environment.
- An internet connection (both for initial download and use - calls are made to the SOTA API)
- A copy of the latest released
SOTAtoADIF-v*.exe
- Download this from GitHub releases (look in 'Assets' under the newest release).
Open PowerShell (or cmd if you really want).
# go the directory where you placed the released SOTAtoADIF-v*.exe
cd \path_to_directory_with_exe\
# run SOTAtoADIF (make sure to replace * to match the real filename)
.\SOTAtoADIF-v*.exe <SOTA Database CSV filepath>
# see what options exist
.\SOTAtoADIF-v*.exe -h
If you are proficient in using Linux, this is probably easier than Windows...
- An internet connection (both for initial download and use - calls are made to the SOTA API).
git
- if not present, install with your package manager (e.g.sudo apt install git
).Python >= 3.10.0
- we will set up a venv.urllib3 >= 2.0.0
- will be automatically installed with our venv creation script.
This is linux, we're not really installing a Python script 😉!
However, these steps only need to be followed the first time.
# clone the repository (no need to grab a specific tag, main branch is stable)
git clone https://github.com/G5JDA/SOTAtoADIF.git
# enter repo directory
cd SOTAtoADIF
# run venv creation script (if this step fails, fix issues then instead follow update section below)
source venv.sh
Do this each time you want to use SOTAtoADIF.
# make sure you are in the SOTAtoADIF directory
cd /<path_to>/SOTAtoADIF
# activate the virtual environment
source venv.sh
# run SOTAtoADIF
python3 SOTAtoADIF.py <SOTA Database CSV filepath>
# see what options exist
python3 SOTAtoADIF.py --help
If it has been a while since you last used SOTAtoADIF, there may be a newer version available.
# make sure you are in the SOTAtoADIF directory
cd /<path_to>/SOTAtoADIF
# get latest changes from main branch
source update.sh
If you have a Mac, please feel free to contribute a basic how to use guide.
The steps should be somewhat similar to Linux except you might not already have Python >=3.10
and the Bash scripts might not work.
Essential:
- Develop for Python 3.10.
- Avoid non-standard imports unless you have an undeniable reason:
- Yes, even if the package can be installed with pip!
- This is to save ourselves from future dependency chaos.
urllib3
is the only exception so far due to the massive time saving it produces.
- Obey the style guide in CONTRIBUTING.md
If you'd like to contribute a new feature, be sure to create an issue offering to do so first. This will likely save much back and forth when compared to surprise PRs!
Please read CONTRIBUTING.md for details on code of conduct, and the process for submitting pull requests.
- Fork and git clone this repository to your development machine (do not just download the source zip!!).
- Follow the
venv
setup instructions for normal users (there are no special requirements for development).
- Install Python
>=3.10
, pip, and Git (or an IDE that provides these). - Fork and git clone this repository to your development machine (do not just download the source zip!!).
- Set up the
venv
for Python (from repo directory in PowerShell or IDE terminal).python -m venv .\.venv\
.\.venv\Scripts\Activate.ps1
- If this fails with
running scripts is disabled on this system
, run PowerShell as an administrator and executeSet-ExecutionPolicy -ExecutionPolicy RemoteSigned
- If this fails with
pip install -r requirements.txt
- In future, activate the
venv
in PowerShell with<repo_path>\.venv\Scripts\Activate.ps1
This project uses Semantic Versioning for versioning. For the versions available, see the tags on this repository.
- Richard M1HAX - GitHub Profile - Provided first feedback and initial publicity, thanks!
See the list of contributors who participated in this project.