Friday, December 26, 2008

The Repeater Footprint Project, Revisited

The Repeater Footprint Project is largely an excuse for me to play with Splat!, but I have a feeling it might be useful, too. It came out of discussions with various people on IRC, as well as listening to various hams on the DuPage Amateur Radio Club VHF machine.

Apparently there's a UK club that has a site that lists each of the repeaters in their area (possibly the whole country) with maps showing where one can expect to be able to reach the repeater. This seems as if it would be a useful thing. The group on the W9DUP repeater also seemed to think so and were opening wondering on the air how one would go about doing that. Now, I happen to know how to go about doing it, but I wasn't able to get a word in edgewise in the ragchew (gotta love VHF ragchewers), so instead I decided just to go ahead and do it.

I started out by creating pages on my ham wiki for each repeater in K5EHX's database, but that proved to be largely unhelpful and I am now looking for an easy way to delete them; in the meantime I suggest you ignore them as they're not being maintained. The bulk of the project is right now in a database, which is accumulating coverage data (by grid square) for each repeater in K5EHX's listings. Along the way I've written an extensive set of validation tests for Tom's database. Here's a list of all the tests currently done:
  • Trustee callsign is a valid ham callsign, using cty.dat to derive callsign validation regexps.
  • If the callsign is a US callsign, the callsign is checked to ensure that it is in ULS and is listed as active.
    • If the callsign is in ULS and was cancelled because the licensee changed callsign, Tom's database is automatically updated with the new callsign if the new callsign is still active.
  • The repeater type field is checked for odd values; people often put strange values in this field.
  • The output frequency is checked against a list of authorized frequencies. Currently this uses US authorizations; a future version will use the country listed in the database to choose the correct list of frequencies.
  • The offset and shift values are parsed against the output frequency to derive an input frequency, which is also validated against authorized bandplans.
    • The US repeater plan is used to try to infer input frequencies when the offset or shift values are left unspecified; when incomplete or discrepant data is found and a corrected value can be inferred, Tom's database is updated automatically.
    • Common errors that are corrected include entering offsets in kHz or 100 kHz steps and entering an absolute frequency insteaed of an offset.
  • Repeaters at zero latitude and longitude are flagged as errors (these are typically due to an entry using a location name that cannot be georesolved).
Entries that pass validation are merged into my repeater database, which is not currently being published, because I haven't figured out how I want to do it yet. Maybe I should offer XML dumps.

Future plans include merging in the IRLP node list, and developing a way to merge in other random repeater listings found on the Internet. I could really use some good ETL software for this, but I haven't found any that I can afford yet. Adding more validation tests is also high on the priority list.

Meanwhile, I have a script running that generates splats (coverage maps) for each repeater in my database, storing for each location and frequency pair (coverage varies by frequency) the least expected path loss from the transceiver location to any point within each gridsquare reachable from that transceiver. This takes about 30 minutes per location/frequency pair, and will complete in about 15 months unless I dedicate more hardware to the project.

Once this is done, I should be able to easily generate a list of every repeater that one could hear, and could work, from any given gridsquare. I used to have a barebones webpage that generated such lists (give it a gridsquare and it would tell you what systems you could work) but I haven't updated it since I refactored the database. I can also generate lists of repeater pairs that might potentially interfere with one another.

The coverage database, once complete, would be of great benefit to anyone who travels and, I would think, also be of significant value to coordinators. I assume most coordinators have similar information, although from what I've heard most coordinators use rule-of-thumb methods to anticipate interference and relatively few have Longley-Rice simulation software or terrain mappers.

(This is a slightly edited copy of an article that appears on my ham wiki, which I recently updated due to attention created by a post on the QRZ forums.)