Package: call-to-dxcc
Find DXCC from call sign.For radio amateur purposes, the land on the earth's surfaces has been
compartmentalized into "DXCC regions".  Given a radio amateur's
officially assigned call sign, it is possible to find out to which
DXCC region that call sign belongs.  This is what this software does.Or, more precisely, strives to do.  Read on.Legal situation: Owned by ARRLBut before explaining the known bugs, let me touch another
unpleasent subject: The legal situation.The list of all DXCC regions is under ARRL copyright.  It can be
downloaded from the ARRL web page, but I have no license to
redistribute this material.  See the ARRLpublication on
copyrightto learn more.I'm not a layer, but my impression is that the ARRL, through its
pertinentpage, allows
personal use without obtaining (further) permission of the copyrighted
list of all DXCC regions.So, if you figured out a way to be allowed to use the ARRL list, I'm
entitled to provide software to you that helps you do that.  (I
actually asked the ARRL to make sure.)This is that software.  It will download the DXCC list (as a text
file) from the ARRL web site on first use, to the current directory,
and use the copy thus obtained from there on to analyze callsigns
you feed it.LimitationsThat ARRL list is an unwieldly beast to be tamed.  The list's format
is not well specified (I wish they had used regular expressions), so
it's some guesswork.Now I'm not much of a DXer myself, which does not really help.  So
there are some details in the DXCC list which I do not presently
understand.For starters, I do not understand which call signs belong to "Spratly
Is.".Also, I do not know how to distinguish which "CE9"-calls belong to
Antarctica and which to South Shetland.  So this software lumps all
"CE9" to South Shetland.Other notes I do not understand:FT/G,TO for Glorioso Is.FT/J,E,TO for Juan de Nova, EuropaFT/T,TO for Tromelin I.FT/W for Crozet I.FT/X for Kerguelen Is.FT/Z for Amsterdam & St. Paul Is.R1/F for Franz Josef LandSV/A for Mount AthosPresent limitationsHere is what is presently implemented, even some of this
is clearly incorrect:All calls starting with "FT" belong to France in
Europe.All SV calls belong to Greece.All KC0, .. KC3 and KC5 .. KC9 calls belong to USA / NA.(The "," after T8 is considered a typo.)4U_ITU is meant to represent 4U0ITU through 4UZITU.4U_UN is meant to represent 4U0UN through 4UZUNR1 through R7 and RA1 through RZ7 belong where UA1 through UA7 go.R8, R9, R0 and RA8 through RZ0 all belong where UA8 though UA0 go.PP0-PY0F and PP0-PY0S and PP0-PY0T are not comprehensible for me
right now, so they are lumped with plain Brazil.Stuff collected elsewhere, with a decent dose of guesswork thrown in:CT8 and CR2Y - calls belong to the Azores in EU, DXCC 149CR3 and CT9 - calls belong to Madeira in AF, DXCC 256TM - calls belong to France in EU, DXCC 2273Z - calls belong to Poland in EU, DXCC 2694U1A belongs to the United Nations in Vienna, EU, DXCC 117If I find time, I may try to clean up this mess.  In the meantime,
if you have better information, tell me.Example usageimport call_to_dxcc

country, continent, dxcc_number = call_to_dxcc.data_for_call("DJ3EI")Theimportwill download the DXCC list to the working directory,
unless that file is already present there.  It will use the
information from that file.You can then ask for data for an amateur radio call sign.  In the
example given above,countrywill contain "Federal Republic of
Germany",continentwill contain "EU", anddxcc_numberwill
contain the number 230.If you want to proceed when the DXCC for a callsign cannot be found,
catchcall_to_dxcc.DxccUnknownException.