QRZ carries <iota> only for the operators who filled it in, and most have not. But for 99 entities the reference follows from the entity alone — a station in Ascension is on AF-003 whatever its callbook record says — and the entity is known for every callsign from cty.dat, with no callbook at all. So this reaches the operator with no QRZ subscription and the station that has never touched a callbook, and it lands before the contact is logged, which is when a reference is worth having. Filled ONLY when the callbook gave nothing: an operator who typed a reference knows something a table cannot — an IOTA-heavy entity, a rare island being activated — and that still wins, as does one picked by hand on the entry. The table is the IOTA programme's own dxcc_matches_one_iota.json, which lists exactly the entities that map to ONE reference. France is not among them: a French station is usually on the mainland and on no island, and guessing would put a reference on hundreds of contacts that earn none. Held as a table rather than a download — 3.5 kB that changes when an entity appears, so fetching it daily would buy nothing and would fail exactly where a portable station usually is. The header says where it came from and how to refresh it. Follows747c2b9andeab11db, which read the callbook's own tag.
130 lines
4.8 KiB
Go
130 lines
4.8 KiB
Go
package awardref
|
|
|
|
// One-IOTA DXCC entities: a table of the entities that ARE a single IOTA group.
|
|
//
|
|
// WHY IT EXISTS. QRZ.com carries <iota> for an operator who fills it in, and
|
|
// most do not. But for a great many entities the island reference follows from
|
|
// the entity alone — a station in Ascension Island is on AF-003, there is
|
|
// nothing else it could be — and the entity is known for every callsign, from
|
|
// cty.dat, without any callbook at all. So the reference can be filled for an
|
|
// operator with no QRZ subscription, on a station that has never touched a
|
|
// callbook, before the contact is logged.
|
|
//
|
|
// Only entities that map to EXACTLY ONE reference are here. France is not: a
|
|
// French station is usually on the mainland and on no island at all, and
|
|
// guessing would put a reference on hundreds of contacts that earn none.
|
|
//
|
|
// SOURCE: dxcc_matches_one_iota.json from the IOTA programme
|
|
// (www.iota-world.org/islands-on-the-air/downloads/), fetched 2026-08-17,
|
|
// 99 entities. It changes only when an entity appears or IOTA re-maps one, so
|
|
// it is a table here rather than a download: it then works offline, which is
|
|
// where a portable station usually is. To refresh, fetch that file again and
|
|
// re-emit this map, sorted by entity number.
|
|
//
|
|
// Entity names are comments only, joined from internal/dxcc for readability.
|
|
var iotaByDXCC = map[int]string{
|
|
5: "EU-002", // Aland Islands
|
|
10: "AF-002", // Amsterdam & St. Paul Is.
|
|
12: "NA-022", // Anguilla
|
|
17: "NA-020", // Aves Island
|
|
20: "OC-089", // Baker & Howland Islands
|
|
21: "EU-004", // Balearic Islands
|
|
24: "AN-002", // Bouvet
|
|
29: "AF-004", // Canary Islands
|
|
34: "OC-038", // Chatham Islands
|
|
35: "OC-002", // Christmas Island
|
|
36: "NA-011", // Clipperton Island
|
|
37: "NA-012", // Cocos Island
|
|
38: "OC-003", // Cocos (Keeling) Islands
|
|
41: "AF-008", // Crozet Island
|
|
43: "NA-095", // Desecheo Island
|
|
45: "EU-001", // Dodecanese
|
|
62: "NA-021", // Barbados
|
|
64: "NA-005", // Bermuda
|
|
65: "NA-023", // British Virgin Islands
|
|
69: "NA-016", // Cayman Islands
|
|
71: "SA-004", // Galapagos Islands
|
|
82: "NA-097", // Jamaica
|
|
84: "NA-107", // Martinique
|
|
91: "SA-036", // Aruba
|
|
94: "NA-100", // Antigua & Barbuda
|
|
95: "NA-101", // Dominica
|
|
96: "NA-103", // Montserrat
|
|
97: "NA-108", // St. Lucia
|
|
99: "AF-011", // Glorioso Islands
|
|
103: "OC-026", // Guam
|
|
105: "NA-015", // Guantanamo Bay
|
|
106: "EU-114", // Guernsey
|
|
111: "AN-003", // Heard Island
|
|
114: "EU-116", // Isle Of Man
|
|
118: "EU-022", // Jan Mayen
|
|
123: "OC-023", // Johnston Island
|
|
131: "AF-048", // Kerguelen Islands
|
|
133: "OC-039", // Kermadec Islands
|
|
138: "OC-020", // Kure Island
|
|
141: "SA-002", // Falkland Islands
|
|
147: "OC-004", // Lord Howe Island
|
|
153: "AN-005", // Macquarie Island
|
|
157: "OC-031", // Nauru
|
|
159: "AS-013", // Maldives
|
|
161: "SA-007", // Malpelo Island
|
|
165: "AF-049", // Mauritius
|
|
166: "OC-086", // Mariana Islands
|
|
167: "EU-053", // Market Reef
|
|
169: "AF-027", // Mayotte
|
|
171: "OC-072", // Mellish Reef
|
|
174: "OC-030", // Midway Island
|
|
177: "OC-073", // Minami Torishima
|
|
182: "NA-098", // Navassa Island
|
|
188: "OC-040", // Niue
|
|
189: "OC-005", // Norfolk Island
|
|
190: "OC-097", // Samoa
|
|
195: "AF-039", // Annobon Island
|
|
199: "AN-004", // Peter 1 Island
|
|
201: "AF-021", // Pr. Edward & Marion Is.
|
|
205: "AF-003", // Ascension Island
|
|
207: "AF-017", // Rodriguez Island
|
|
211: "NA-063", // Sable Island
|
|
217: "SA-013", // San Felix & San Ambrosio
|
|
222: "EU-018", // Faroe Islands
|
|
238: "AN-008", // South Orkney Islands
|
|
240: "AN-009", // South Sandwich Islands
|
|
241: "AN-010", // South Shetland Islands
|
|
247: "AS-051", // Spratly Islands
|
|
249: "NA-104", // St. Kitts & Nevis
|
|
250: "AF-022", // St. Helena
|
|
252: "NA-094", // St. Paul Island
|
|
253: "SA-014", // St. Peter & St. Paul
|
|
257: "EU-023", // Malta
|
|
270: "OC-048", // Tokelau Islands
|
|
273: "SA-010", // Trindade & Martim Vaz
|
|
276: "AF-031", // Tromelin Island
|
|
277: "NA-032", // St. Pierre & Miquelon
|
|
282: "OC-015", // Tuvalu
|
|
283: "AS-004", // Uk Base Areas On Cyprus
|
|
285: "NA-106", // Us Virgin Islands
|
|
297: "OC-053", // Wake Island
|
|
301: "OC-017", // Western Kiribati
|
|
303: "OC-007", // Willis Island
|
|
381: "AS-019", // Singapore
|
|
411: "AF-007", // Comoros
|
|
453: "AF-016", // Reunion Island
|
|
460: "OC-060", // Rotuma Island
|
|
489: "OC-112", // Conway Reef
|
|
490: "OC-018", // Banaba Island
|
|
505: "AS-110", // Pratas Island
|
|
506: "AS-116", // Scarborough Reef
|
|
509: "OC-027", // Marquesas Islands
|
|
512: "OC-176", // Chesterfield Islands
|
|
513: "OC-182", // Ducie Island
|
|
515: "OC-200", // Swains Island
|
|
516: "NA-146", // St. Barthelemy
|
|
517: "SA-099", // Curacao
|
|
519: "NA-145", // Saba & St. Eustatius
|
|
520: "SA-006", // Bonaire
|
|
}
|
|
|
|
// IOTAForDXCC returns the island reference of a DXCC entity that is a single
|
|
// IOTA group, or "" for an entity that holds several islands or none.
|
|
func IOTAForDXCC(dxcc int) string { return iotaByDXCC[dxcc] }
|