vk6flab / contest-logger

Cross platform amateur radio contest logging tool.
https://vk6flab.github.io/contest-logger/
GNU General Public License v3.0
8 stars 1 forks source link

Show name/location when entering a callsign #20

Open flwyd opened 1 year ago

flwyd commented 1 year ago

When working weak stations or in noisy band conditions, having additional context to verify the callsign you thought you heard can be useful. Some loggers do this with a qrz.com lookup. It would be nice to enter a callsign and see the owner's name, location, and license class. The person using the logger can then say "Was that WT0RJ, Trevor in Colorado?" and I can then be sure they got my callsign right, even if it was hard to tell if they got all the letters right. Showing the license class is helpful in the U.S. (and probably other countries): if you're on an HF band and the callsign shows as a Technician license you'll want to double-check the callsign, since that station probably isn't allowed to transmit on this frequency.

As a bonus, it would be great if this callsign data were available for offline operation, periodically updated from a cloud server when the app is online.

flwyd commented 1 year ago

Name and location details for POTA, SOTA, IOTA, WWFF, etc. would similarly be helpful, and can be cached from a periodic query to the relevant coordinating organization API.

vk6flab commented 1 year ago

Where would this data come from?

flwyd commented 1 year ago

In the U.S., amateur radio licensee data can be downloaded via FTP from the FCC, and there are a variety of websites which do so and present it in various ways. I don't know details about how other countries make this data available, but it seems that callsigns and names (at least) for all hams should be available in digital form from most countries.

There should be a central cloud-based system which keeps a database of this callsign data up to date; the logging app would then sync with that service. (This cloud system would be a separate project, and multiple tools could use it.) I don't know if qrz.com or other existing services allows an offline-download capability, but if there is an existing offering this could be an easy path. hamcall.dev (GitHub repo) provides open lookup of US callsign details; I don't know if that project would be open to (a) expanding to other countries and (b) providing a bulk sync/changelog feature.

For non-callsign lookups, we'd want to speak with program administrators on appropriate API usage, but this data is likely already available from existing APIs. For example, api.pota.app/program/parks/K returns JSON with reference number, name, and location for all POTA parks in the USA. Users could have a "Download POTA reference data" action in a menu which iterates through approximately 220 entity codes and downloads each park list. If this system load (with proper client timing behavior) is unacceptable, we could speak with them about offering a changelog feed or serving a static "all parks" JSON file which is updated daily. (We could also be smart by querying /programs/locations and comparing the parks value to the number of stored parks for that program.) The SOTA website also has a JSON API with similar data, though their data model is more deeply nested. I know the SOTA Spotter mobile app does a periodic update of a cached summits database.

vk6flab commented 1 year ago

Very interesting. I hadn't heard of hamcall.dev and I can see how I could convert the VK data stored by the ACMA into such a thing. That's two countries, now we need a few more :-)

NoseyNick commented 1 year ago

I was going to say Canadian VE/VA calls can be queried from the official source at https://apc-cap.ic.gc.ca/pls/apc_anon/query_amat_cs$.startup - it's not exactly set up for download, but you just search for "v" to see Records 1 to 25 of 87146 :shrug:

... then I found https://ised-isde.canada.ca/site/amateur-radio-operator-certificate-services/en/downloads - oh my! :three: countries and counting :grinning:

Could collect a GLOBAL but fairly small subset of calls from APRS.

I am also interested in helping with the cloud service. Would prefer to collaborate with hamcall.dev rather than duplicate effort - see https://github.com/pcunning/hamcall/issues/19 - but if @pcunning didn't wanna host "a more global hamcall.net", I'd offer... :shrug:

pcunning commented 1 year ago

I am more than willing to host a more global collection of callsigns. My priorities in hamcall.dev are

Additionally for my own use the program I wrote will even produce a sql-lite database. That database could also be distributed for easy offline use.

vk6flab commented 1 year ago

The VK database is provided as a downloadable .zip file at:

It's a dump of a relational database as a set of .CSV files.

To date I've only parsed it using sed, grep and awk with cobbled together bash scripts, but I can see a need to actually import it into sqlite and create a view that will export json records as required.

The ACMA database contains all registered licenses, so it has Telco's and Marine licenses to name two, as well. There is a field with type, so it can be filtered.

Licenses appear prior to being assigned, so in my understanding they're "allocated" but not "assigned" - I'm guessing that's due to not yet being invoiced or paid.

I haven't looked at your code-base yet, so I'm not familiar with how you currently construct the dataset. I'm in awe of the distribution of it though, very elegant!