Created
August 6, 2014 09:20
-
-
Save terrycojones/741ebcd228e0d29dd595 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package AC::Location; | |
use strict; | |
use Carp; | |
# The keys in this array should have nothing but A-Z (and maybe 0-9). | |
# The values give the canonical display names of places. | |
# | |
# Make sure that if you have a value with a hyphen (or other punc) | |
# that you also have that value without the hyphen as a key (that | |
# also leads to that value). That makes sure that if we're given | |
# the preferred value it also leads to itself. | |
# | |
# The rule to follow here is to put a single hyphen between components | |
# in the values. Don't use any other punc. | |
# | |
my %preferredLocation = ( | |
'ANGTHONG' => 'ANG-THONG', | |
'AYTTHAYA' => 'AYATTHAYA', | |
'BADENWURTTEMBERG' => 'BADEN-WURTTEMBERG', | |
'BADENWURTTEMBURG' => 'BADEN-WURTTEMBERG', | |
'BADENWURTTENBERG' => 'BADEN-WURTTEMBERG', | |
'BADENWURTTENBURG' => 'BADEN-WURTTEMBERG', | |
'BAGKOK' => 'BANGKOK', | |
'BAGKOKI' => 'BANGKOK', | |
'BANGKOKI' => 'BANGKOK', | |
'BEIIJNG' => 'BEIJING', | |
'BEIJINGXUANWU' => 'BEIJING', | |
'BEIJINXUANWU' => 'BEIJING', | |
'BEIJNG' => 'BEIJING', | |
'BURIRUM' => 'BURIRAM', | |
'CA' => 'CALIFORNIA', | |
'CANADASYLIKE' => 'CANADA', | |
'CERAA' => 'CEARA', | |
'CHANTABURI' => 'CHANTHABURI', | |
'CHIBAC' => 'CHIBA', | |
'CHILE' => 'SANTIAGO', | |
'CHINACNIC' => 'CHINA', | |
'CONGQING' => 'CHONGQING', | |
'COSTARICA' => 'COSTA-RICA', | |
'EKATEZINBURG' => 'EKATERINBURG', | |
'EXTREMAD' => 'EXTREMADURA', | |
'FIRENZE' => 'FLORENCE', | |
'FUKUOKAC' => 'FUKUOKA', | |
'FUOKA' => 'FUKUOKA', | |
'GERONA' => 'GIRONA', | |
'GIFUC' => 'GIFU', | |
'GOTEBURG' => 'GOTEBORG', | |
'GOTENBORG' => 'GOTEBORG', | |
'GUALDALAGARA' => 'GUADALAJARA', | |
'GTEBORG' => 'GOTEBORG', | |
'HAMAMATSUC' => 'HAMAMATSU', | |
'HAMAMATUC' => 'HAMAMATU', | |
'HIROSHIMAC' => 'HIROSHIMA', | |
'HK' => 'HONG-KONG', | |
'HONGKONGK' => 'HONG-KONG', | |
'HONGKONG' => 'HONG-KONG', | |
'KITAKYUSYU' => 'KITAKYUSHU', | |
'KUMAMOTOC' => 'KUMAMOTO', | |
'KWANGJIN' => 'KWANGJU', | |
'KYOTOC' => 'KYOTO', | |
'KYUNGBUK' => 'KYONGBUK', | |
'LAREUNION' => 'REUNION', | |
'LAMOANG' => 'LAMPANG', | |
'LINNKOPING' => 'LINKOPING', | |
'LIPETZK' => 'LIPETSK', | |
'LOBBURI' => 'LOP-BURI', | |
'LOPBURI' => 'LOP-BURI', | |
'LYONCHU' => 'LYON', | |
'LYONTRS' => 'LYON', | |
'MACU' => 'MACAU', | |
'MAEHONGSORN' => 'MAE-HONG-SON', | |
'MAEHONGSON' => 'MAE-HONG-SON', | |
'MASSACHUSETS' => 'MASSACHUSETTS', | |
'NAKHONNAYOK' => 'NAKHON-NAYOK', | |
'NAKONNAYOK' => 'NAKHON-NAYOK', | |
'NAPAL' => 'NEPAL', | |
'NEWYORK' => 'NEW-YORK', | |
'NIGATA' => 'NIIGATA', | |
'NIIGATAC' => 'NIIGATA', | |
'NORDRHEINWESTFALEN' => 'NORDRHEIN', | |
'NORTHDAKOTA' => 'NORTH-DAKOTA', | |
'NRW' => 'NORDRHEIN', | |
'NY' => 'NEW-YORK', | |
'OSAKAC' => 'OSAKA', | |
'OTAGA' => 'OTAGO', | |
'PATHUMTHANI' => 'PATHUM-THANI', | |
'PHILIPINES' => 'PHILIPPINES', | |
'PHILLIPINES' => 'PHILIPPINES', | |
'POL' => 'POLAND', | |
'PRABCHINBURI' => 'PRACHIN-BURI', | |
'PRACHINBURI' => 'PRACHIN-BURI', | |
'PRACHINMURI' => 'PRACHIN-BURI', | |
'PRACHUAPKHIRIKHAN' => 'PRACHUAP-KHIRI-KHAN', | |
'PRACHUAPKHIRIKKAN' => 'PRACHUAP-KHIRI-KHAN', | |
'ROMA' => 'ROME', | |
'ROSTOVONDON' => 'ROSTOVDON', | |
'RU' => 'RUSSIA', | |
'SAMUTPRAKAN' => 'SAMUT-PRAKAN', | |
'SAMUTPRAKHAN' => 'SAMUT-PRAKAN', | |
'SANTIAGAO' => 'SANTIAGO', | |
'SENDAIH' => 'SENDAI', | |
'SHIZUOKAC' => 'SHIZUOKA', | |
'SHIZUOKAC' => 'SHIZUOKA', | |
'SOUTHDAKOTA' => 'SOUTH-DAKOTA', | |
'SPAIN' => 'MADRID', | |
'STPETERSBURG' => 'ST-PETERSBURG', | |
'STETIENNE' => 'ST-ETIENNE', | |
'SUPHANBURI' => 'SUPHAN-BURI', | |
'TENNESEE' => 'TENNESSEE', | |
'THESSALONIKA' => 'THESSALONIKI', | |
'UBONRATCHATHANI' => 'UBON-RATCHATHANI', | |
'UK' => 'UK', | |
'UME' => 'UMEA', | |
'UNITEDKINGDOM' => 'UK', | |
'URAGUAY' => 'URUGUAY', | |
'URUAGUAY' => 'URUGUAY', | |
'USSRRUSSIA' => 'RUSSIA', | |
'WESTVIRGINIA' => 'WEST-VIRGINIA', | |
'WY' => 'WYOMING', | |
'YAMANASHII' => 'YAMANASHI', | |
'YAMANESHI' => 'YAMANASHI', | |
'YARYSLAVL' => 'YAROSLAVL', | |
'ZARAGOSSA' => 'ZARAGOZA', | |
); | |
# | |
# These abbreviations are used in matching sera abbreviations | |
# found in HI tables against strain names. | |
# | |
my %locationAbbr = ( | |
'AFGHANISTAN' => 'JN', | |
'AGADIR' => 'DP', | |
'AICHI' => 'AC', | |
'AKITA' => 'AK', | |
'ALABAMA' => 'AB', | |
'ALASKA' => 'AX', | |
'ALBANIA' => 'AD', | |
'ALGERIA' => 'AE', | |
'ALICESPRINGS' => 'AS', | |
'AMSTERDAM' => 'AM', | |
'ANG-THONG' => 'AQ', | |
'ANGTHONG' => 'EB', | |
'ANHUI' => 'AN', | |
'ANNARBOR' => 'AA', | |
'ANNECY' => 'FF', | |
'ANTALYA' => 'JE', | |
'AOMORI' => 'AO', | |
'ARAGON' => 'RG', | |
'ARGENTINA' => 'AG', | |
'ARIZONA' => 'AR', | |
'ARKANSAS' => 'QD', | |
'ARVAIKHEER' => 'RV', | |
'ASTRAKHAN' => 'FY', | |
'ASTURIAS' => 'AI', | |
'ATHENS' => 'DQ', | |
'ATLANTA' => 'AT', | |
'AUCKLAND' => 'AU', | |
'AUSTRALIA' => 'AL', | |
'AUSTRIA' => 'AH', | |
'AVILA' => 'VV', | |
'AYATTHAYA' => 'AZ', | |
'AYTTHAYA' => 'AY', | |
'AZERBAIJAN' => 'ZB', | |
'BADEN-WURTTEMBERG' => 'BD', | |
'BAGKOK' => 'BT', | |
'BALEARES' => 'BF', | |
'BANGKOK' => 'BA', | |
'BANGKOKI' => 'BK', | |
'BANGLADESH' => 'QB', | |
'BARCELONA' => 'BO', | |
'BAYERN' => 'BY', | |
'BEIIJNG' => 'BJ', | |
'BEIJING' => 'BE', | |
'BEIJINGXUANWU' => 'IJ', | |
'BEIJINXUANWU' => 'IX', | |
'BELEM' => 'BL', | |
'BELGIUM' => 'BG', | |
'BELGRADE' => 'BH', | |
'BENELUX' => 'UX', | |
'BERLIN' => 'BN', | |
'BILBAO' => 'BB', | |
'BILTHOVEN' => 'BI', | |
'BOLIVIA' => 'OJ', | |
'BORDEAUX' => 'QZ', | |
'BRANDENBURG' => 'JB', | |
'BRANDYS' => 'DY', | |
'BRASOV' => 'BS', | |
'BRATISLAVA' => 'RL', | |
'BRAZIL' => 'BZ', | |
'BREMEN' => 'BM', | |
'BRISBANE' => 'BR', | |
'BUCHAREST' => 'BC', | |
'BURGOS' => 'RS', | |
'BURIRAM' => 'BX', | |
'BURIRUM' => 'BP', | |
'BURSA' => 'JC', | |
'BUSAN' => 'BU', | |
'BYDGOSZCZ' => 'YD', | |
'CA' => 'DC', | |
'CAEN' => 'CI', | |
'CALARASI' => 'CS', | |
'CALIFORNIA' => 'CF', | |
'CAMBODIA' => 'FP', | |
'CANADA' => 'CA', | |
'CANARIAS' => 'CQ', | |
'CANBERRA' => 'CA', | |
'CARTAGENA' => 'CV', | |
'CASABLANCA' => 'DL', | |
'CASTILLA' => 'LL', | |
'CEARA' => 'CR', | |
'CERAA' => 'CR', | |
'CHACHOENGSAO' => 'EO', | |
'CHAIYAPUM' => 'IY', | |
'CHANGWON' => 'CW', | |
'CHANTABURI' => 'CU', | |
'CHANTHABURI' => 'HY', | |
'CHEJU' => 'CJ', | |
'CHENGMEI' => 'CM', | |
'CHEONBUK' => 'CK', | |
'CHEONNAM' => 'CE', | |
'CHIANGMAI' => 'CM', | |
'CHIANGRAI' => 'CR', | |
'CHIANGMAI' => 'AP', | |
'CHIBA' => 'CB', | |
'CHIBA' => 'CH', | |
'CHILE' => 'CL', | |
'CHINA' => 'CH', | |
'CHITA' => 'CT', | |
'CHOIBALSAN' => 'OL', | |
'CHONGQING' => 'OQ', | |
'CHRISTCHURCH' => 'CC', | |
'CHUNGBUK' => 'ZX', | |
'CHUNGNAM' => 'CG', | |
'CLERMONTFERRAND' => 'MF', | |
'CLUJ' => 'CP', | |
'COLLINDALE' => 'CD', | |
'COLOMBIA' => 'QF', | |
'COLORADO' => 'CO', | |
'CONGQING' => 'QQ', | |
'CONNECTICUT' => 'CN', | |
'COOK-ISLAND' => 'VF', | |
'CORDOBA' => 'QC', | |
'COSTA-RICA' => 'VC', | |
'COSTARICA' => 'VC', | |
'CX-ROUSSE' => 'XX', | |
'CZECHOSLOVAKIA' => 'CZ', | |
'DAEGU' => 'DA', | |
'DAEJEON' => 'DJ', | |
'DAKAR' => 'DK', | |
'DARWIN' => 'DW', | |
'DELFT' => 'DE', | |
'DENMARK' => 'DN', | |
'DESGENETTES' => 'DS', | |
'DEVA' => 'DV', | |
'DISTRICT-OF-COLUMBIA' => '-O', | |
'DUBAI' => 'FT', | |
'DUNDIN' => 'DD', | |
'DUNEDIN' => 'DU', | |
'ECUADOR' => 'EC', | |
'EDIRNE' => 'JD', | |
'EGYPT' => 'EG', | |
'EHIME' => 'EH', | |
'EINDHOVEN' => 'EI', | |
'EKATERINBURG' => 'EK', | |
'EKATEZINBURG' => 'EZ', | |
'EL-SALVADOR' => 'EL', | |
'ENGLAND' => 'EN', | |
'ENSCHEDE' => 'ES', | |
'EQUADOR' => 'EQ', | |
'EUSKADI' => 'EU', | |
'EXTREMAD' => 'ET', | |
'EXTREMADURA' => 'EX', | |
'FATICK' => 'FA', | |
'FES' => 'FD', | |
'FIJI' => 'FJ', | |
'FINLAND' => 'FI', | |
'FIRENZE' => 'FE', | |
'FLORENCE' => 'FO', | |
'FLORIDA' => 'FL', | |
'FOSHAN' => 'FH', | |
'FRANCE' => 'FR', | |
'FRENCH-GUIANA' => '-G', | |
'FUJIAN' => 'FU', | |
'FUKUI' => 'FB', | |
'FUKUOKA' => 'FK', | |
'FUKUOKA-C' => 'FC', | |
'FUKUOKAC' => 'QP', | |
'FUKUSHIMA' => 'FS', | |
'FUOKA' => 'FK', | |
'FUZHOU' => 'FZ', | |
'GALICIA' => 'GQ', | |
'GANGWON' => 'WO', | |
'GANSU' => 'GS', | |
'GANSUCHENGGUAN' => 'FV', | |
'GENEVA' => 'GE', | |
'GENOA' => 'GB', | |
'GEORGIA' => 'GG', | |
'GERMANY' => 'GY', | |
'GERONA' => 'QN', | |
'GIFU' => 'GI', | |
'GIFU-C' => 'GP', | |
'GIFUC' => 'QR', | |
'GIRONA' => 'GH', | |
'GOTEBORG' => 'GT', | |
'GOTEBURG' => 'GK', | |
'GOTENBORG' => 'GO', | |
'GRANADA' => 'GN', | |
'GREECE' => 'GC', | |
'GRONINGEN' => 'GR', | |
'GUADALAJARA' => 'GJ', | |
'GUADELOUPE' => 'OP', | |
'GUALDALAGARA' => 'GL', | |
'GUAM' => 'GA', | |
'GUANGDONG' => 'GD', | |
'GUANGXI' => 'GX', | |
'GUANGZHOU' => 'GZ', | |
'GUATEMALA' => 'VJ', | |
'GUIDLFORD' => 'GF', | |
'GUIZHOU' => 'GU', | |
'GUMMA' => 'GM', | |
'GUNMA' => 'GW', | |
'GUYANE' => 'UY', | |
'GWANGJU' => 'WG', | |
'GYEONGNAM' => 'YE', | |
'GöTEBORG' => 'öT', | |
'HAINAN' => 'HQ', | |
'HAMAMATSU-C' => 'HT', | |
'HAMAMATU-C' => 'HT', | |
'HAMBURG' => 'IZ', | |
'HANNOVER' => 'HV', | |
'HARBIN' => 'HB', | |
'HAWAII' => 'HA', | |
'HEBEI' => 'HE', | |
'HENAN' => 'HM', | |
'HESSEN' => 'QM', | |
'HIME' => 'HL', | |
'HIROSHIMA' => 'HF', | |
'HIROSHIMA-C' => 'HS', | |
'HIROSHIMAC' => 'QS', | |
'HK' => 'HK', | |
'HOKKAIDO' => 'HD', | |
'HOLLAND' => 'FQ', | |
'HONDURAS' => 'FW', | |
'HONG-KONG' => 'HK', | |
'HONG-KONGK' => 'HP', | |
'HONGKONG' => 'HK', | |
'HOUSTON' => 'HO', | |
'HUBEI' => 'HI', | |
'HUNAN' => 'HN', | |
'HUNGARY' => 'HG', | |
'HUNTINGTON' => 'HU', | |
'HYOGO' => 'HJ', | |
'IASI' => 'IA', | |
'IBARAKI' => 'IB', | |
'ICELAND' => 'IE', | |
'IDAHO' => 'IH', | |
'ILLINOIS' => 'IL', | |
'INCHEON' => 'IC', | |
'INDIA' => 'II', | |
'INDIANA' => 'IN', | |
'INDONESIA' => 'ID', | |
'INVERNESS' => 'IV', | |
'IOWA' => 'JZ', | |
'IRAN' => 'IF', | |
'IRELAND' => 'IR', | |
'ISHIKAWA' => 'IK', | |
'ISRAEL' => 'IS', | |
'ISTANBUL' => 'IU', | |
'ITALY' => 'IT', | |
'IVORY-COAST' => 'VY', | |
'IWATE' => 'IW', | |
'IZMIR' => 'ZI', | |
'JAMAICA' => 'QG', | |
'JAPAN' => 'JP', | |
'JEJU' => 'JJ', | |
'JEONBUK' => 'VH', | |
'JHB' => 'JH', | |
'JIANGSU' => 'JS', | |
'JIANGXI' => 'JA', | |
'JIANGXIDONGHU' => 'JX', | |
'JILIN' => 'JI', | |
'JOHANNESBURG' => 'JO', | |
'KAGAWA' => 'KB', | |
'KAGOSHIMA' => 'KG', | |
'KALASIN' => 'EF', | |
'KALININGRAD' => 'FX', | |
'KAMPHAENG-PHET' => 'KQ', | |
'KANAGAWA' => 'KD', | |
'KANCHANABURI' => 'KV', | |
'KANGWON' => 'KN', | |
'KANSAS' => 'JW', | |
'KASAULI' => 'KA', | |
'KAWASAKI' => 'KS', | |
'KENTUCKY' => 'JR', | |
'KENYA' => 'VP', | |
'KHABAROVSK' => 'KH', | |
'KHON-KAEN' => 'KL', | |
'KHOVD' => 'JF', | |
'KIEV' => 'QI', | |
'KITAKYUSHU' => 'KY', | |
'KITAKYUSYU' => 'KU', | |
'KOBE' => 'KO', | |
'KOCHI' => 'KC', | |
'KOREA' => 'KR', | |
'KRASNOYARSK' => 'RY', | |
'KUM' => 'KF', | |
'KUMAMOTO' => 'KM', | |
'KUMAMOTO-C' => 'KE', | |
'KUMAMOTOC' => 'QV', | |
'KWANGJIN' => 'KW', | |
'KWANGJU' => 'KJ', | |
'KYONGBUK' => 'KK', | |
'KYONGGI' => 'KI', | |
'KYONGNAM' => 'KZ', | |
'KYOTO' => 'EY', | |
'KYOTO-C' => 'KT', | |
'KYUNGBUK' => 'YN', | |
'KYUNGGI' => 'DF', | |
'KYUNGNAM' => 'KX', | |
'LA-REUNION' => 'LR', | |
'LAMOANG' => 'LK', | |
'LAMPANG' => 'LJ', | |
'LATVIA' => 'LT', | |
'LAUSANNE' => 'LA', | |
'LEICESTERSHIRE' => 'LX', | |
'LENINGRAD' => 'LE', | |
'LEON' => 'LN', | |
'LIAONING' => 'LG', | |
'LIMOGES' => 'LM', | |
'LINCOLN' => 'LZ', | |
'LINNKOPING' => 'LI', | |
'LIPETSK' => 'LP', | |
'LIPETZK' => 'LP', | |
'LISBON' => 'LS', | |
'LOBBURI' => 'LF', | |
'LOEI' => 'LQ', | |
'LOP-BURI' => 'LC', | |
'LOPBURI' => 'LB', | |
'LOSANGELES' => 'LO', | |
'LOUISIANA' => 'LU', | |
'LYON' => 'LY', | |
'LYON-CHU' => 'LH', | |
'LYON-TRS' => 'LD', | |
'MACAU' => 'MQ', | |
'MACU' => 'FG', | |
'MAD' => 'MD', | |
'MADAGASCAR' => 'MR', | |
'MADRID' => 'MA', | |
'MAE-HONG-SON' => 'MN', | |
'MAE-HONG-SORN' => 'MH', | |
'MAINE' => 'OX', | |
'MALAYSIA' => 'ML', | |
'MALMO' => 'MM', | |
'MALY' => 'ML', | |
'MARRAKECH' => 'DO', | |
'MARSEILLE' => 'QY', | |
'MARTINIQUE' => 'QE', | |
'MARYLAND' => 'YL', | |
'MASSACHUSETS' => 'MZ', | |
'MASSACHUSETTS' => 'JV', | |
'MAURITIUS' => 'QO', | |
'MAYOCLINIC' => 'MY', | |
'MECKLENBURG-VORPO.' => '-V', | |
'MEKNES' => 'DM', | |
'MEMPHIS' => 'ME', | |
'MEXICO' => 'MX', | |
'MICHIGAN' => 'MC', | |
'MIE' => 'MJ', | |
'MILAN' => 'DH', | |
'MINNESOTA' => 'MS', | |
'MISSISSIPPI' => 'MI', | |
'MISSOURI' => 'MO', | |
'MIYAGI' => 'MG', | |
'MIYAZAKI' => 'MK', | |
'MONGOLIA' => 'MV', | |
'MONTANA' => 'JY', | |
'MONTPELLIER' => 'MP', | |
'MOROCCO' => 'MB', | |
'MOSCOW' => 'MW', | |
'MURMANSK' => 'IP', | |
'NAGANO' => 'NK', | |
'NAGASAKI' => 'NS', | |
'NAGOYA' => 'NM', | |
'NAKHON-PATHOM' => 'KP', | |
'NAKHON-RATCHASIMA' => 'NZ', | |
'NAKHON-SAWAN' => 'HW', | |
'NAKHONNAYOK' => 'YY', | |
'NAKONNAYOK' => 'OO', | |
'NANCHANG' => 'NA', | |
'NAPAL' => 'NQ', | |
'NARA' => 'NH', | |
'NARATHIWAT' => 'RW', | |
'NEBRASKA' => 'NB', | |
'NEPAL' => 'EE', | |
'NETHERLANDS' => 'NL', | |
'NEVADA' => 'NV', | |
'NEW-CALEDONIA' => 'NW', | |
'NEW-HAMPSHIRE' => 'EP', | |
'NEW-JERSEY' => 'NJ', | |
'NEW-MEXICO' => 'WX', | |
'NEW-YORK' => 'NY', | |
'NEWCASTLE' => 'NC', | |
'NEWMARKET' => 'WW', | |
'NEWYORK' => 'JG', | |
'NICE' => 'NE', | |
'NIEDERSACHSEN' => 'ED', | |
'NIGATA' => 'NP', | |
'NIGERIA' => 'JQ', | |
'NIIGATA' => 'NG', | |
'NIIGATA-C' => 'NT', | |
'NIIGATAC' => 'QW', | |
'NIJMEGEN' => 'NI', | |
'NINGBO' => 'NN', | |
'NINGXIA' => 'NX', | |
'NONTHABURI' => 'NU', | |
'NORDRHEIN' => 'OD', | |
'NORDRHEIN-WESTFALEN' => '-D', | |
'NORTH-CAROLINA' => 'NO', | |
'NORTH-DAKOTA' => 'ND', | |
'NORWAY' => 'OW', | |
'NOUACKCHOTT' => 'QL', | |
'NOVGOROD' => 'JK', | |
'NOVOSIBIRSK' => 'NR', | |
'NOVY-BYDZOV' => 'OB', | |
'NRW' => 'NF', | |
'NY' => 'DB', | |
'ODESSA' => 'QJ', | |
'OHIO' => 'OH', | |
'OITA' => 'OI', | |
'OKAYAMA' => 'OY', | |
'OKINAWA' => 'ON', | |
'OKLAHOMA' => 'OK', | |
'OMSK' => 'OM', | |
'ORADEA' => 'OR', | |
'OREGON' => 'OG', | |
'OREL' => 'OF', | |
'ORENSE' => 'OE', | |
'OSAKA' => 'OA', | |
'OSAKA-C' => 'OA', | |
'OSLO' => 'OS', | |
'OTAGA' => 'OC', | |
'OTAGO' => 'OT', | |
'OUJDA' => 'OU', | |
'OVIEDO' => 'OV', | |
'PALENCIA' => 'QK', | |
'PANAMA' => 'PM', | |
'PARAGUAY' => 'PY', | |
'PARIS' => 'PA', | |
'PARMA' => 'PB', | |
'PATHUM-THANI' => 'PT', | |
'PATHUMTHANI' => 'PQ', | |
'PATTANI' => 'BQ', | |
'PAU' => 'DG', | |
'PENNSYLVANIA' => 'PS', | |
'PERTH' => 'PE', | |
'PERU' => 'PU', | |
'PERUGIA' => 'PG', | |
'PHARE' => 'BV', | |
'PHATTHALUNG' => 'PF', | |
'PHETCHABUN' => 'PX', | |
'PHICHIT' => 'BW', | |
'PHILIPPINES' => 'PH', | |
'PHILLIPINES' => 'PV', | |
'PHITSANULOK' => 'EJ', | |
'PHUKET' => 'PK', | |
'PILSEN' => 'PL', | |
'POITIERS' => 'PI', | |
'POL' => 'QH', | |
'POLAND' => 'PD', | |
'PONTEVEORA' => 'EV', | |
'PORT-CHALMERS' => 'PC', | |
'PRABCHINBURI' => 'PZ', | |
'PRACHINBURI' => 'PW', | |
'PRACHINMURI' => 'RC', | |
'PRACHUAP-KHIRI-KHAN' => 'PP', | |
'PRACHUAPKHIRIKHAN' => 'RP', | |
'PRACHUAPKHIRIKKAN' => 'EM', | |
'PRAGUE' => 'PR', | |
'PRAJIANBURI' => 'PJ', | |
'PUERTO-MONTT' => '-M', | |
'PUERTO-RICO' => 'PO', | |
'PUSAN' => 'PN', | |
'QINGDAO' => 'QT', | |
'QUANZHOU' => 'QA', | |
'QUEENSLAND' => 'QU', | |
'RABAT' => 'RF', | |
'RATCHABURI' => 'RT', | |
'REUNION' => 'RE', | |
'RHEINLAND-PFALZ' => 'RH', | |
'RHODE-ISLAND' => '-I', | |
'RIO-DE-JANEIRO' => 'RJ', | |
'ROI-ET' => 'RB', | |
'ROMA' => 'RO', | |
'ROMANIA' => 'RM', | |
'ROME' => 'RA', | |
'ROSTOV-ON-DON' => 'RQ', | |
'ROSTOVDON' => 'RX', | |
'ROTTERDAM' => 'RD', | |
'RU' => 'RU', | |
'RUSSIA' => 'OZ', | |
'RYAZAN' => 'ZN', | |
'SA-KAEO' => '-K', | |
'SACHSEN' => 'HC', | |
'SACHSEN-ANHALT' => 'SQ', | |
'SAGA' => 'SB', | |
'SAINSHAND' => 'FN', | |
'SAITAMA' => 'ZY', | |
'SAKAI' => 'AJ', | |
'SAKON-NAKHON' => '-N', | |
'SALAMANCA' => 'DI', | |
'SAMARA' => 'SM', | |
'SAMUT-PRAKAN' => 'MU', | |
'SAMUT-SAKHON' => 'MT', | |
'SAMUTPRAKAN' => 'UP', | |
'SAMUTPRAKHAN' => 'RK', | |
'SAN-ANTONIO' => '-T', | |
'SAN-SEBASTIAN' => '-S', | |
'SANTANDER' => 'DR', | |
'SANTIAGAO' => 'AV', | |
'SANTIAGO' => 'SZ', | |
'SAPPORO' => 'SR', | |
'SARABURI' => 'RR', | |
'SAUDI-ARABIA' => '-A', | |
'SCHLESWIG-HOLSTEIN' => 'LW', | |
'SCOTLAND' => 'SL', | |
'SEGOVIA' => 'GV', | |
'SENDAI' => 'SE', | |
'SENDAI-H' => 'SE', | |
'SENDAIH' => 'QX', | |
'SENDI-H' => '-H', | |
'SEOUL' => 'SU', | |
'SHAANXI' => 'HX', | |
'SHANGDONG' => 'SD', | |
'SHANGHAI' => 'SH', | |
'SHANTOU' => 'SV', | |
'SHENZHEN' => 'SW', | |
'SHIGA' => 'SG', | |
'SHIMANE' => 'IM', | |
'SHIZUOKA' => 'HH', | |
'SHIZUOKA-C' => 'HZ', | |
'SHIZUOKAC' => 'ZU', | |
'SICHUAN' => 'SI', | |
'SIENA' => 'EA', | |
'SING' => 'VQ', | |
'SINGAPORE' => 'SP', | |
'SLOVAKIA' => 'VK', | |
'SLOVENIA' => 'LV', | |
'SOFIA' => 'SF', | |
'SOLOMON-ISLANDS' => 'IO', | |
'SOPHIA' => 'SX', | |
'SORIA' => 'RI', | |
'SOUTH-AFRICA' => 'AF', | |
'SOUTH-AUSTRALIA' => 'SA', | |
'SOUTH-CAROLINA' => 'SC', | |
'SOUTH-DAKOTA' => 'SO', | |
'SPAIN' => 'SJ', | |
'SRI-LANKA' => '-L', | |
'ST-ETIENNE' => 'SN', | |
'ST-PETERSBURG' => '-P', | |
'ST.-ETIENNE' => 'SK', | |
'ST.-PETERSBURG' => 'SS', | |
'STAVROPOL' => 'VR', | |
'STOCKHOLM' => 'ST', | |
'STPETERSBURG' => 'IQ', | |
'SUCEAVA' => 'UV', | |
'SUDAN' => 'JM', | |
'SUKHBAATAR' => 'FM', | |
'SUKHOTHAI' => 'UO', | |
'SUPHAN-BURI' => '-B', | |
'SUPHANBURI' => 'UH', | |
'SURIN' => 'RN', | |
'SW' => 'SW', | |
'SWITZERLAND' => 'WZ', | |
'SYDNEY' => 'SY', | |
'TAIWAN' => 'TA', | |
'TAK' => 'TK', | |
'TALCAHUANO' => 'JT', | |
'TANGER' => 'TZ', | |
'TARRAGONA' => 'TF', | |
'TASMANIA' => 'TM', | |
'TEHRAN' => 'TR', | |
'TENNESEE' => 'DX', | |
'TENNESSEE' => 'TW', | |
'TEXAS' => 'TE', | |
'THAILAND' => 'TL', | |
'THESSALONIKA' => 'TH', | |
'THESSALONIKI' => 'TH', | |
'THURINGEN' => 'TB', | |
'TIANJIN' => 'TJ', | |
'TILBURG' => 'TI', | |
'TOCHIGI' => 'TC', | |
'TOKUSHIMA' => 'TQ', | |
'TOKYO' => 'TY', | |
'TOMSK' => 'ER', | |
'TONGA' => 'TG', | |
'TOTTORI' => 'TT', | |
'TOULON' => 'TN', | |
'TOULOUSE' => 'TO', | |
'TOWNSVILLE' => 'TV', | |
'TOYAMA' => 'TP', | |
'TRABZON' => 'RZ', | |
'TRANG' => 'DZ', | |
'TRENTO' => 'TD', | |
'TRIESTE' => 'TS', | |
'TULA' => 'TU', | |
'TURKEY' => 'JL', | |
'TX' => 'TX', | |
'U.K.' => 'UA', | |
'UBON-RATCHATHANI' => 'UE', | |
'UBONRATCHATHANI' => 'UF', | |
'UD' => 'UC', | |
'UDORN' => 'UD', | |
'UK' => 'UK', | |
'UKRAINE' => 'UZ', | |
'ULAANBAATAR' => 'UW', | |
'ULAN-UDE' => 'UU', | |
'ULSAN' => 'UL', | |
'UMEA' => 'UM', | |
'UMEå' => 'UQ', | |
'UNITED-KINGDOM' => 'UI', | |
'UNITEDKINGDOM' => 'UN', | |
'URUAGUAY' => 'UG', | |
'URUGUAY' => 'UR', | |
'USSR/RUSSIA' => 'US', | |
'UTAH' => 'JU', | |
'UTHAI-THANI' => 'UJ', | |
'UTRECHT' => 'UT', | |
'UTTARADIT' => 'UB', | |
'VALENCIA' => 'VA', | |
'VALLADOLID' => 'VD', | |
'VENEZUELA' => 'VZ', | |
'VERMONT' => 'VT', | |
'VICTORIA' => 'VI', | |
'VIENNA' => 'VN', | |
'VIETNAM' => 'VE', | |
'VINA-DEL-MAR' => 'VB', | |
'VIRGINIA' => 'VG', | |
'VLADIMIR' => 'VM', | |
'VOLGOGRAD' => 'VL', | |
'VORONEZH' => 'VO', | |
'WAIKATO' => 'WK', | |
'WAKAYAMA' => 'WM', | |
'WARSAW' => 'WR', | |
'WASHINGTON' => 'WA', | |
'WELLINGTON' => 'WE', | |
'WEST-VIRGINIA' => 'WS', | |
'WESTVIRGINIA' => 'WV', | |
'WISCONSIN' => 'WN', | |
'WUHAN' => 'WU', | |
'WUZHOU' => 'WH', | |
'WY--' => 'WB', | |
'WYOMING' => 'WY', | |
'XIAMEN' => 'XM', | |
'XINJIANG-HUTUBI' => 'XJ', | |
'XINJIANGCHANGJI' => 'XI', | |
'XINJIANGHUTUBI' => 'XN', | |
'YAMAGA' => 'YA', | |
'YAMAGATA' => 'YT', | |
'YAMAGUCHI' => 'YG', | |
'YAMANASHI' => 'YM', | |
'YAMANASHII' => 'YI', | |
'YAMANESHI' => 'YI', | |
'YAROSLAVL' => 'YS', | |
'YARYSLAVL' => 'YR', | |
'YOKOHAMA' => 'YO', | |
'YOKOSUKA' => 'YK', | |
'YUNAN' => 'YB', | |
'YUNGNAM' => 'YZ', | |
'YUNNAN' => 'YU', | |
'ZAGREB' => 'ZE', | |
'ZAMBIA' => 'ZA', | |
'ZAMORA' => 'ZM', | |
'ZARAGOSSA' => 'ZG', | |
'ZARAGOZA' => 'ZR', | |
'ZHEJIANG' => 'ZH', | |
'ZLIN' => 'ZL' | |
); | |
sub lookup_location($){ | |
my ($location) = @_; | |
$location = uc($location); | |
return uc($locationAbbr{$location}) if exists $locationAbbr{$location}; | |
$location = canonicalizeLocation($location); | |
return uc($locationAbbr{$location}) if exists $locationAbbr{$location}; | |
$location; | |
} | |
sub canonicalizeLocation($){ | |
my ($location) = @_; | |
$location = uc($location); | |
$location =~ s/[^0-9A-Z]//g; | |
$location = uc($preferredLocation{$location}) if exists $preferredLocation{$location}; | |
$location; | |
} | |
1; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment