Update correlation sources
Remove the stale metar.tbl and zonecatalog.curr.tar, which the USA NWS hasn't been updating for many years, and add the public domain airports.csv file from the amazing ourairports.com community. Also update to latest (2019) USA Census Bureau location data, March 2020 WX zone information, cooperative sites list from 2018 (latest), and regenerated active station and zone lists. Loss of the zonecatalog necessitates directly applying various forecast and alert URL patterns, though some which appeared unused by NWS for many years were not included. Clear out all old overrides, since the vast majority are obsoleted by refreshed data, and build fresh correlation sets from the above sources. Basically all sites have switched from HTTP to HTTPS, so update URLs for this too.
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,9 +1,8 @@
|
|||||||
*_old
|
*_old
|
||||||
*Gaz_*_national.zip
|
*Gaz_*_national.zip
|
||||||
COOP-ACT.TXT
|
COOP-ACT.TXT
|
||||||
|
airports.csv
|
||||||
bp??????.dbx
|
bp??????.dbx
|
||||||
coop-stations.txt
|
coop-stations.txt
|
||||||
metar.tbl
|
|
||||||
nsd_cccc.txt
|
nsd_cccc.txt
|
||||||
*.pyc
|
*.pyc
|
||||||
zonecatalog.curr.tar
|
|
||||||
|
|||||||
2
LICENSE
2
LICENSE
@@ -21,7 +21,7 @@ which follow.
|
|||||||
|
|
||||||
Copyright Notice
|
Copyright Notice
|
||||||
----------------
|
----------------
|
||||||
Copyright (c) 2006-2012 Jeremy Stanley <fungi@yuggoth.org>
|
Copyright (c) 2006-2020 Jeremy Stanley <fungi@yuggoth.org>
|
||||||
|
|
||||||
Permission Notice
|
Permission Notice
|
||||||
-----------------
|
-----------------
|
||||||
|
|||||||
4517
overrides.conf
4517
overrides.conf
File diff suppressed because it is too large
Load Diff
1129
overrides.log
1129
overrides.log
File diff suppressed because it is too large
Load Diff
811
qa.log
811
qa.log
@@ -1,22 +1,761 @@
|
|||||||
|
cahr: no description
|
||||||
|
cahr: no location
|
||||||
|
cerm: no description
|
||||||
|
cerm: no location
|
||||||
|
cmfm: no description
|
||||||
|
cmfm: no location
|
||||||
|
cmgb: no description
|
||||||
|
cmgb: no location
|
||||||
|
cpbt: no description
|
||||||
|
cpbt: no location
|
||||||
|
cpeh: no description
|
||||||
|
cpeh: no location
|
||||||
|
cpfi: no description
|
||||||
|
cpfi: no location
|
||||||
|
cpir: no description
|
||||||
|
cpir: no location
|
||||||
|
cpro: no description
|
||||||
|
cpro: no location
|
||||||
|
cpry: no description
|
||||||
|
cpry: no location
|
||||||
|
cpst: no description
|
||||||
|
cpst: no location
|
||||||
|
cpsv: no description
|
||||||
|
cpsv: no location
|
||||||
|
cpxl: no description
|
||||||
|
cpxl: no location
|
||||||
|
ctck: no description
|
||||||
|
ctck: no location
|
||||||
|
ctnk: no description
|
||||||
|
ctnk: no location
|
||||||
|
ctra: no description
|
||||||
|
ctra: no location
|
||||||
|
cwbu: no description
|
||||||
|
cwbu: no location
|
||||||
|
cwtt: no description
|
||||||
|
cwtt: no location
|
||||||
|
cxaf: no description
|
||||||
|
cxaf: no location
|
||||||
|
cxag: no description
|
||||||
|
cxag: no location
|
||||||
|
cxaj: no description
|
||||||
|
cxaj: no location
|
||||||
|
cxak: no description
|
||||||
|
cxak: no location
|
||||||
|
cxat: no description
|
||||||
|
cxat: no location
|
||||||
|
cxba: no description
|
||||||
|
cxba: no location
|
||||||
|
cxbi: no description
|
||||||
|
cxbi: no location
|
||||||
|
cxbr: no description
|
||||||
|
cxbr: no location
|
||||||
|
cxbw: no description
|
||||||
|
cxbw: no location
|
||||||
|
cxca: no description
|
||||||
|
cxca: no location
|
||||||
|
cxcd: no description
|
||||||
|
cxcd: no location
|
||||||
|
cxcp: no description
|
||||||
|
cxcp: no location
|
||||||
|
cxcs: no description
|
||||||
|
cxcs: no location
|
||||||
|
cxdb: no description
|
||||||
|
cxdb: no location
|
||||||
|
cxdk: no description
|
||||||
|
cxdk: no location
|
||||||
|
cxdp: no description
|
||||||
|
cxdp: no location
|
||||||
|
cxea: no description
|
||||||
|
cxea: no location
|
||||||
|
cxet: no description
|
||||||
|
cxet: no location
|
||||||
|
cxfm: no description
|
||||||
|
cxfm: no location
|
||||||
|
cxfr: no description
|
||||||
|
cxfr: no location
|
||||||
|
cxha: no description
|
||||||
|
cxha: no location
|
||||||
|
cxhd: no description
|
||||||
|
cxhd: no location
|
||||||
|
cxhm: no description
|
||||||
|
cxhm: no location
|
||||||
|
cxhp: no description
|
||||||
|
cxhp: no location
|
||||||
|
cxhr: no description
|
||||||
|
cxhr: no location
|
||||||
|
cxib: no description
|
||||||
|
cxib: no location
|
||||||
|
cxka: no description
|
||||||
|
cxka: no location
|
||||||
|
cxke: no description
|
||||||
|
cxke: no location
|
||||||
|
cxki: no description
|
||||||
|
cxki: no location
|
||||||
|
cxkm: no description
|
||||||
|
cxkm: no location
|
||||||
|
cxlb: no description
|
||||||
|
cxlb: no location
|
||||||
|
cxmg: no description
|
||||||
|
cxmg: no location
|
||||||
|
cxmo: no description
|
||||||
|
cxmo: no location
|
||||||
|
cxnp: no description
|
||||||
|
cxnp: no location
|
||||||
|
cxol: no description
|
||||||
|
cxol: no location
|
||||||
|
cxoy: no description
|
||||||
|
cxoy: no location
|
||||||
|
cxpa: no description
|
||||||
|
cxpa: no location
|
||||||
|
cxpc: no description
|
||||||
|
cxpc: no location
|
||||||
|
cxpl: no description
|
||||||
|
cxpl: no location
|
||||||
|
cxrb: no description
|
||||||
|
cxrb: no location
|
||||||
|
cxrl: no description
|
||||||
|
cxrl: no location
|
||||||
|
cxsc: no description
|
||||||
|
cxsc: no location
|
||||||
|
cxse: no description
|
||||||
|
cxse: no location
|
||||||
|
cxsl: no description
|
||||||
|
cxsl: no location
|
||||||
|
cxsp: no description
|
||||||
|
cxsp: no location
|
||||||
|
cxtd: no description
|
||||||
|
cxtd: no location
|
||||||
|
cxth: no description
|
||||||
|
cxth: no location
|
||||||
|
cxto: no description
|
||||||
|
cxto: no location
|
||||||
|
cxvm: no description
|
||||||
|
cxvm: no location
|
||||||
|
cxvn: no description
|
||||||
|
cxvn: no location
|
||||||
|
cxvw: no description
|
||||||
|
cxvw: no location
|
||||||
|
cxwb: no description
|
||||||
|
cxwb: no location
|
||||||
|
cxwm: no description
|
||||||
|
cxwm: no location
|
||||||
|
cxyh: no description
|
||||||
|
cxyh: no location
|
||||||
|
cxzc: no description
|
||||||
|
cxzc: no location
|
||||||
|
cxzv: no description
|
||||||
|
cxzv: no location
|
||||||
|
czcr: no description
|
||||||
|
czcr: no location
|
||||||
|
czdb: no description
|
||||||
|
czdb: no location
|
||||||
|
czel: no description
|
||||||
|
czel: no location
|
||||||
|
czev: no description
|
||||||
|
czev: no location
|
||||||
|
czfs: no description
|
||||||
|
czfs: no location
|
||||||
|
czhy: no description
|
||||||
|
czhy: no location
|
||||||
|
czkd: no description
|
||||||
|
czkd: no location
|
||||||
|
czmj: no description
|
||||||
|
czmj: no location
|
||||||
|
czmu: no description
|
||||||
|
czmu: no location
|
||||||
|
czol: no description
|
||||||
|
czol: no location
|
||||||
|
czps: no description
|
||||||
|
czps: no location
|
||||||
|
czsm: no description
|
||||||
|
czsm: no location
|
||||||
|
czsp: no description
|
||||||
|
czsp: no location
|
||||||
|
cztb: no description
|
||||||
|
cztb: no location
|
||||||
|
czzj: no description
|
||||||
|
czzj: no location
|
||||||
|
dnad: no description
|
||||||
|
dnad: no location
|
||||||
|
ehak: no description
|
||||||
|
ehak: no location
|
||||||
|
ehdv: no description
|
||||||
|
ehdv: no location
|
||||||
|
ehfd: no description
|
||||||
|
ehfd: no location
|
||||||
|
ehfs: no description
|
||||||
|
ehfs: no location
|
||||||
|
ehfz: no description
|
||||||
|
ehfz: no location
|
||||||
|
ehja: no description
|
||||||
|
ehja: no location
|
||||||
|
ehkv: no description
|
||||||
|
ehkv: no location
|
||||||
|
ehma: no description
|
||||||
|
ehma: no location
|
||||||
|
ehmg: no description
|
||||||
|
ehmg: no location
|
||||||
|
ehpg: no description
|
||||||
|
ehpg: no location
|
||||||
|
ehqe: no description
|
||||||
|
ehqe: no location
|
||||||
|
enhm: no description
|
||||||
|
enhm: no location
|
||||||
|
enle: no description
|
||||||
|
enle: no location
|
||||||
|
enne: no description
|
||||||
|
enne: no location
|
||||||
|
enqr: no description
|
||||||
|
enqr: no location
|
||||||
|
ense: no description
|
||||||
|
ense: no location
|
||||||
|
ensf: no description
|
||||||
|
ensf: no location
|
||||||
|
enug: no description
|
||||||
|
enug: no location
|
||||||
|
enun: no description
|
||||||
|
enun: no location
|
||||||
|
enwv: no description
|
||||||
|
enwv: no location
|
||||||
|
eqbk: no description
|
||||||
|
eqbk: no location
|
||||||
|
eqph: no description
|
||||||
|
eqph: no location
|
||||||
|
eqya: no description
|
||||||
|
eqya: no location
|
||||||
|
eqyb: no description
|
||||||
|
eqyb: no location
|
||||||
|
eqyc: no description
|
||||||
|
eqyc: no location
|
||||||
|
eqyd: no description
|
||||||
|
eqyd: no location
|
||||||
|
eqye: no description
|
||||||
|
eqye: no location
|
||||||
|
eqyf: no description
|
||||||
|
eqyf: no location
|
||||||
|
eqyk: no description
|
||||||
|
eqyk: no location
|
||||||
|
eqyl: no description
|
||||||
|
eqyl: no location
|
||||||
|
eqyt: no description
|
||||||
|
eqyt: no location
|
||||||
|
eqyv: no description
|
||||||
|
eqyv: no location
|
||||||
|
etml: no description
|
||||||
|
etml: no location
|
||||||
|
fajb: no description
|
||||||
|
fajb: no location
|
||||||
|
fdbb: no description
|
||||||
|
fdbb: no location
|
||||||
|
fdmy: no description
|
||||||
|
fdmy: no location
|
||||||
|
fdot: no description
|
||||||
|
fdot: no location
|
||||||
|
fdpp: no description
|
||||||
|
fdpp: no location
|
||||||
|
fqcl: no description
|
||||||
|
fqcl: no location
|
||||||
|
gakd: no description
|
||||||
|
gakd: no location
|
||||||
|
gmmp: no description
|
||||||
|
gmmp: no location
|
||||||
|
heis: no description
|
||||||
|
heis: no location
|
||||||
|
hesw: no description
|
||||||
|
hesw: no location
|
||||||
|
htha: no description
|
||||||
|
htha: no location
|
||||||
|
htmh: no description
|
||||||
|
htmh: no location
|
||||||
|
htsi: no description
|
||||||
|
htsi: no location
|
||||||
|
k00u: no description
|
||||||
|
k00u: no location
|
||||||
|
k04w: no description
|
||||||
|
k04w: no location
|
||||||
|
k05u: no description
|
||||||
|
k05u: no location
|
||||||
|
k06c: no description
|
||||||
|
k06c: no location
|
||||||
|
k0a0: no description
|
||||||
|
k0a0: no location
|
||||||
|
k0co: no description
|
||||||
|
k0co: no location
|
||||||
|
k0e0: no description
|
||||||
|
k0e0: no location
|
||||||
|
k18h: no description
|
||||||
|
k18h: no location
|
||||||
|
k19s: no description
|
||||||
|
k19s: no location
|
||||||
|
k1am: no description
|
||||||
|
k1am: no location
|
||||||
|
k1an: no description
|
||||||
|
k1an: no location
|
||||||
|
k1bm: no description
|
||||||
|
k1bm: no location
|
||||||
|
k1bn: no description
|
||||||
|
k1bn: no location
|
||||||
|
k1bw: no description
|
||||||
|
k1bw: no location
|
||||||
|
k1cm: no description
|
||||||
|
k1cm: no location
|
||||||
|
k1cw: no description
|
||||||
|
k1cw: no location
|
||||||
|
k1dm: no description
|
||||||
|
k1dm: no location
|
||||||
|
k1dn: no description
|
||||||
|
k1dn: no location
|
||||||
|
k1dw: no description
|
||||||
|
k1dw: no location
|
||||||
|
k1em: no description
|
||||||
|
k1em: no location
|
||||||
|
k1en: no description
|
||||||
|
k1en: no location
|
||||||
|
k1ew: no description
|
||||||
|
k1ew: no location
|
||||||
|
k1fm: no description
|
||||||
|
k1fm: no location
|
||||||
|
k1fw: no description
|
||||||
|
k1fw: no location
|
||||||
|
k1gm: no description
|
||||||
|
k1gm: no location
|
||||||
|
k1gn: no description
|
||||||
|
k1gn: no location
|
||||||
|
k1gw: no description
|
||||||
|
k1gw: no location
|
||||||
|
k1hm: no description
|
||||||
|
k1hm: no location
|
||||||
|
k1hn: no description
|
||||||
|
k1hn: no location
|
||||||
|
k1hw: no description
|
||||||
|
k1hw: no location
|
||||||
|
k1im: no description
|
||||||
|
k1im: no location
|
||||||
|
k1iw: no description
|
||||||
|
k1iw: no location
|
||||||
|
k1jm: no description
|
||||||
|
k1jm: no location
|
||||||
|
k1jn: no description
|
||||||
|
k1jn: no location
|
||||||
|
k1k1: no description
|
||||||
|
k1k1: no location
|
||||||
|
k1km: no description
|
||||||
|
k1km: no location
|
||||||
|
k1lm: no description
|
||||||
|
k1lm: no location
|
||||||
|
k1mm: no description
|
||||||
|
k1mm: no location
|
||||||
|
k1mw: no description
|
||||||
|
k1mw: no location
|
||||||
|
k1nm: no description
|
||||||
|
k1nm: no location
|
||||||
|
k1nn: no description
|
||||||
|
k1nn: no location
|
||||||
|
k1nw: no description
|
||||||
|
k1nw: no location
|
||||||
|
k1om: no description
|
||||||
|
k1om: no location
|
||||||
|
k1on: no description
|
||||||
|
k1on: no location
|
||||||
|
k1ow: no description
|
||||||
|
k1ow: no location
|
||||||
|
k1v6: no description
|
||||||
|
k1v6: no location
|
||||||
|
k27k: no description
|
||||||
|
k27k: no location
|
||||||
|
k2g4: no description
|
||||||
|
k2g4: no location
|
||||||
|
k2j9: no description
|
||||||
|
k2j9: no location
|
||||||
|
k2ls: no description
|
||||||
|
k2ls: no location
|
||||||
|
k2p2: no description
|
||||||
|
k2p2: no location
|
||||||
|
k2r9: no description
|
||||||
|
k2r9: no location
|
||||||
|
k2v6: no description
|
||||||
|
k2v6: no location
|
||||||
|
k2w6: no description
|
||||||
|
k2w6: no location
|
||||||
|
k33n: no description
|
||||||
|
k33n: no location
|
||||||
|
k3d2: no description
|
||||||
|
k3d2: no location
|
||||||
|
k3n8: no description
|
||||||
|
k3n8: no location
|
||||||
|
k3s8: no description
|
||||||
|
k3s8: no location
|
||||||
|
k41u: no description
|
||||||
|
k41u: no location
|
||||||
|
k42j: no description
|
||||||
|
k42j: no location
|
||||||
|
k48w: no description
|
||||||
|
k48w: no location
|
||||||
|
k4v0: no description
|
||||||
|
k4v0: no location
|
||||||
|
k54a: no description
|
||||||
|
k54a: no location
|
||||||
|
k59k: no description
|
||||||
|
k59k: no location
|
||||||
|
k5a6: no description
|
||||||
|
k5a6: no location
|
||||||
|
k5t9: no description
|
||||||
|
k5t9: no location
|
||||||
|
k65s: no description
|
||||||
|
k65s: no location
|
||||||
|
k66r: no description
|
||||||
|
k66r: no location
|
||||||
|
k6b0: no description
|
||||||
|
k6b0: no location
|
||||||
|
k6l4: no description
|
||||||
|
k6l4: no location
|
||||||
|
k6p9: no description
|
||||||
|
k6p9: no location
|
||||||
|
k6s2: no description
|
||||||
|
k6s2: no location
|
||||||
|
k74v: no description
|
||||||
|
k74v: no location
|
||||||
|
k7n0: no description
|
||||||
|
k7n0: no location
|
||||||
|
k7w4: no description
|
||||||
|
k7w4: no location
|
||||||
|
k82v: no description
|
||||||
|
k82v: no location
|
||||||
|
k8b0: no description
|
||||||
|
k8b0: no location
|
||||||
|
k9mn: no description
|
||||||
|
k9mn: no location
|
||||||
|
ka08: no description
|
||||||
|
ka08: no location
|
||||||
|
ka39: no description
|
||||||
|
ka39: no location
|
||||||
|
kabh: no description
|
||||||
|
kabh: no location
|
||||||
|
kalk: no description
|
||||||
|
kalk: no location
|
||||||
|
kbpc: no description
|
||||||
|
kbpc: no location
|
||||||
|
kc07: no description
|
||||||
|
kc07: no location
|
||||||
|
kc65: no description
|
||||||
|
kc65: no location
|
||||||
|
kc99: no description
|
||||||
|
kc99: no location
|
||||||
|
kcpf: no description
|
||||||
|
kcpf: no location
|
||||||
|
kcyd: no description
|
||||||
|
kcyd: no location
|
||||||
|
kd73: no description
|
||||||
|
kd73: no location
|
||||||
|
kd95: no description
|
||||||
|
kd95: no location
|
||||||
|
kdsf: no description
|
||||||
|
kdsf: no location
|
||||||
|
ke11: no description
|
||||||
|
ke11: no location
|
||||||
|
ke16: no description
|
||||||
|
ke16: no location
|
||||||
|
ke41: no description
|
||||||
|
ke41: no location
|
||||||
|
keod: no description
|
||||||
|
keod: no location
|
||||||
|
kezp: no description
|
||||||
|
kezp: no location
|
||||||
|
kf00: no description
|
||||||
|
kf00: no location
|
||||||
|
kf44: no description
|
||||||
|
kf44: no location
|
||||||
|
kf46: no description
|
||||||
|
kf46: no location
|
||||||
|
kf70: no description
|
||||||
|
kf70: no location
|
||||||
|
kfpy: no description
|
||||||
|
kfpy: no location
|
||||||
|
kfwz: no description
|
||||||
|
kfwz: no location
|
||||||
|
kgyf: no description
|
||||||
|
kgyf: no location
|
||||||
|
ki19: no description
|
||||||
|
ki19: no location
|
||||||
|
ki68: no description
|
||||||
|
ki68: no location
|
||||||
|
kjsl: no description
|
||||||
|
kjsl: no location
|
||||||
|
kky8: no description
|
||||||
|
kky8: no location
|
||||||
|
kl08: no description
|
||||||
|
kl08: no location
|
||||||
|
kl18: no description
|
||||||
|
kl18: no location
|
||||||
|
kl35: no description
|
||||||
|
kl35: no location
|
||||||
|
kl52: no description
|
||||||
|
kl52: no location
|
||||||
|
km25: no description
|
||||||
|
km25: no location
|
||||||
|
km40: no description
|
||||||
|
km40: no location
|
||||||
|
km75: no description
|
||||||
|
km75: no location
|
||||||
|
kmp1: no description
|
||||||
|
kmp1: no location
|
||||||
|
kmtk: no description
|
||||||
|
kmtk: no location
|
||||||
|
kmvh: no description
|
||||||
|
kmvh: no location
|
||||||
|
knoz: no description
|
||||||
|
knoz: no location
|
||||||
|
knxf: no description
|
||||||
|
knxf: no location
|
||||||
|
ko22: no description
|
||||||
|
ko22: no location
|
||||||
|
ko69: no description
|
||||||
|
ko69: no location
|
||||||
|
kpo1: no description
|
||||||
|
kpo1: no location
|
||||||
|
kpzz: no description
|
||||||
|
kpzz: no location
|
||||||
|
kqa5: no description
|
||||||
|
kqa5: no location
|
||||||
|
kqa8: no description
|
||||||
|
kqa8: no location
|
||||||
|
kqaj: no description
|
||||||
|
kqaj: no location
|
||||||
|
kqal: no description
|
||||||
|
kqal: no location
|
||||||
|
kqay: no description
|
||||||
|
kqay: no location
|
||||||
|
kqaz: no description
|
||||||
|
kqaz: no location
|
||||||
|
kqb4: no description
|
||||||
|
kqb4: no location
|
||||||
|
kqbd: no description
|
||||||
|
kqbd: no location
|
||||||
|
kqbg: no description
|
||||||
|
kqbg: no location
|
||||||
|
kqbl: no description
|
||||||
|
kqbl: no location
|
||||||
|
kqbr: no description
|
||||||
|
kqbr: no location
|
||||||
|
kqbt: no description
|
||||||
|
kqbt: no location
|
||||||
|
kqc7: no description
|
||||||
|
kqc7: no location
|
||||||
|
kqc8: no description
|
||||||
|
kqc8: no location
|
||||||
|
kqcl: no description
|
||||||
|
kqcl: no location
|
||||||
|
kqcp: no description
|
||||||
|
kqcp: no location
|
||||||
|
kqd3: no description
|
||||||
|
kqd3: no location
|
||||||
|
kqdg: no description
|
||||||
|
kqdg: no location
|
||||||
|
kqei: no description
|
||||||
|
kqei: no location
|
||||||
|
kqej: no description
|
||||||
|
kqej: no location
|
||||||
|
kqek: no description
|
||||||
|
kqek: no location
|
||||||
|
kqel: no description
|
||||||
|
kqel: no location
|
||||||
|
kqen: no description
|
||||||
|
kqen: no location
|
||||||
|
kqeo: no description
|
||||||
|
kqeo: no location
|
||||||
|
kqep: no description
|
||||||
|
kqep: no location
|
||||||
|
kqeq: no description
|
||||||
|
kqeq: no location
|
||||||
|
kqer: no description
|
||||||
|
kqer: no location
|
||||||
|
kqes: no description
|
||||||
|
kqes: no location
|
||||||
|
kqev: no description
|
||||||
|
kqev: no location
|
||||||
|
kqew: no description
|
||||||
|
kqew: no location
|
||||||
|
kqex: no description
|
||||||
|
kqex: no location
|
||||||
|
kqey: no description
|
||||||
|
kqey: no location
|
||||||
|
kqfb: no description
|
||||||
|
kqfb: no location
|
||||||
|
kqfl: no description
|
||||||
|
kqfl: no location
|
||||||
|
kqfs: no description
|
||||||
|
kqfs: no location
|
||||||
|
kqft: no description
|
||||||
|
kqft: no location
|
||||||
|
kqfu: no description
|
||||||
|
kqfu: no location
|
||||||
|
kqfv: no description
|
||||||
|
kqfv: no location
|
||||||
|
kqfw: no description
|
||||||
|
kqfw: no location
|
||||||
|
kqfx: no description
|
||||||
|
kqfx: no location
|
||||||
|
kqge: no description
|
||||||
|
kqge: no location
|
||||||
|
kqgx: no description
|
||||||
|
kqgx: no location
|
||||||
|
kqhb: no description
|
||||||
|
kqhb: no location
|
||||||
|
kqhc: no description
|
||||||
|
kqhc: no location
|
||||||
|
kqhk: no description
|
||||||
|
kqhk: no location
|
||||||
|
kqhy: no description
|
||||||
|
kqhy: no location
|
||||||
|
kqm2: no description
|
||||||
|
kqm2: no location
|
||||||
|
kqmk: no description
|
||||||
|
kqmk: no location
|
||||||
|
kqn3: no description
|
||||||
|
kqn3: no location
|
||||||
|
kqnd: no description
|
||||||
|
kqnd: no location
|
||||||
|
kqrd: no description
|
||||||
|
kqrd: no location
|
||||||
|
kqrh: no description
|
||||||
|
kqrh: no location
|
||||||
|
kqri: no description
|
||||||
|
kqri: no location
|
||||||
|
kqs3: no description
|
||||||
|
kqs3: no location
|
||||||
|
kqsf: no description
|
||||||
|
kqsf: no location
|
||||||
|
kqsi: no description
|
||||||
|
kqsi: no location
|
||||||
|
kqsn: no description
|
||||||
|
kqsn: no location
|
||||||
|
kqti: no description
|
||||||
|
kqti: no location
|
||||||
|
kqut: no description
|
||||||
|
kqut: no location
|
||||||
|
kqwm: no description
|
||||||
|
kqwm: no location
|
||||||
|
kqwx: no description
|
||||||
|
kqwx: no location
|
||||||
|
kqx2: no description
|
||||||
|
kqx2: no location
|
||||||
|
kqxh: no description
|
||||||
|
kqxh: no location
|
||||||
|
kqxt: no description
|
||||||
|
kqxt: no location
|
||||||
|
kqyv: no description
|
||||||
|
kqyv: no location
|
||||||
|
krga: no description
|
||||||
|
krga: no location
|
||||||
|
ks39: no description
|
||||||
|
ks39: no location
|
||||||
|
ktdr: no description
|
||||||
|
ktdr: no location
|
||||||
|
ku55: no description
|
||||||
|
ku55: no location
|
||||||
|
kvky: no description
|
||||||
|
kvky: no location
|
||||||
|
kvoa: no description
|
||||||
|
kvoa: no location
|
||||||
|
kvqt: no description
|
||||||
|
kvqt: no location
|
||||||
|
kw13: no description
|
||||||
|
kw13: no location
|
||||||
|
kw29: no description
|
||||||
|
kw29: no location
|
||||||
|
kw75: no description
|
||||||
|
kw75: no location
|
||||||
|
kw96: no description
|
||||||
|
kw96: no location
|
||||||
|
kwbf: no description
|
||||||
|
kwbf: no location
|
||||||
|
kxer: no description
|
||||||
|
kxer: no location
|
||||||
|
kxif: no description
|
||||||
|
kxif: no location
|
||||||
|
kxpy: no description
|
||||||
|
kxpy: no location
|
||||||
|
ky31: no description
|
||||||
|
ky31: no location
|
||||||
|
ky49: no description
|
||||||
|
ky49: no location
|
||||||
|
lebr: no description
|
||||||
|
lebr: no location
|
||||||
|
letu: no description
|
||||||
|
letu: no location
|
||||||
|
lirx: no description
|
||||||
|
lirx: no location
|
||||||
|
mgmt: no description
|
||||||
|
mgmt: no location
|
||||||
|
mgtu: no description
|
||||||
|
mgtu: no location
|
||||||
|
mhoc: no description
|
||||||
|
mhoc: no location
|
||||||
|
mhtr: no description
|
||||||
|
mhtr: no location
|
||||||
|
mjks: no description
|
||||||
|
mjks: no location
|
||||||
|
mslu: no description
|
||||||
|
mslu: no location
|
||||||
|
ncrk: no description
|
||||||
|
ncrk: no location
|
||||||
|
nfnf: no description
|
||||||
|
nfnf: no location
|
||||||
|
nzfx: no description
|
||||||
|
nzfx: no location
|
||||||
|
oear: no description
|
||||||
|
oear: no location
|
||||||
|
oekj: no description
|
||||||
|
oekj: no location
|
||||||
|
oicm: no description
|
||||||
|
oicm: no location
|
||||||
|
oimq: no description
|
||||||
|
oimq: no location
|
||||||
|
perr: no description
|
||||||
|
perr: no location
|
||||||
|
rrli: no description
|
||||||
|
rrli: no location
|
||||||
|
sbsy: no description
|
||||||
|
sbsy: no location
|
||||||
|
seca: no description
|
||||||
|
seca: no location
|
||||||
|
sgsj: no description
|
||||||
|
sgsj: no location
|
||||||
|
sgvr: no description
|
||||||
|
sgvr: no location
|
||||||
|
slgm: no description
|
||||||
|
slgm: no location
|
||||||
|
smae: no description
|
||||||
|
smae: no location
|
||||||
|
ugam: no description
|
||||||
|
ugam: no location
|
||||||
|
urff: no description
|
||||||
|
urff: no location
|
||||||
|
uuii: no description
|
||||||
|
uuii: no location
|
||||||
|
uwsg: no description
|
||||||
|
uwsg: no location
|
||||||
|
veko: no description
|
||||||
|
veko: no location
|
||||||
|
vepy: no description
|
||||||
|
vepy: no location
|
||||||
|
vond: no description
|
||||||
|
vond: no location
|
||||||
|
wahq: no description
|
||||||
|
wahq: no location
|
||||||
alz262: within one km of alz266
|
alz262: within one km of alz266
|
||||||
alz263: within one km of alz265
|
alz263: within one km of alz265
|
||||||
alz265: within one km of alz263
|
alz265: within one km of alz263
|
||||||
alz266: within one km of alz262
|
alz266: within one km of alz262
|
||||||
caz032: no centroid
|
|
||||||
caz101: within one km of caz103
|
caz101: within one km of caz103
|
||||||
caz102: within one km of caz101
|
caz102: within one km of caz101
|
||||||
caz103: within one km of caz101
|
caz103: within one km of caz101
|
||||||
caz104: within one km of caz101
|
caz104: within one km of caz101
|
||||||
caz105: within one km of caz101
|
caz105: within one km of caz101
|
||||||
caz106: within one km of caz101
|
caz106: within one km of caz101
|
||||||
caz107: within one km of caz110
|
caz107: within one km of caz108
|
||||||
caz108: within one km of caz110
|
caz108: within one km of caz107
|
||||||
caz110: within one km of caz108
|
|
||||||
caz111: within one km of caz112
|
|
||||||
caz112: within one km of caz113
|
|
||||||
caz113: within one km of caz112
|
|
||||||
caz549: no centroid
|
|
||||||
caz550: no centroid
|
|
||||||
flz024: within one km of flz124
|
flz024: within one km of flz124
|
||||||
flz025: within one km of flz125
|
flz025: within one km of flz125
|
||||||
flz124: within one km of flz024
|
flz124: within one km of flz024
|
||||||
@@ -27,78 +766,35 @@ flz148: within one km of flz248
|
|||||||
flz149: within one km of flz249
|
flz149: within one km of flz249
|
||||||
flz155: within one km of flz255
|
flz155: within one km of flz255
|
||||||
flz160: within one km of flz260
|
flz160: within one km of flz260
|
||||||
flz162: within one km of flz262
|
|
||||||
flz239: within one km of flz139
|
flz239: within one km of flz139
|
||||||
flz242: within one km of flz142
|
flz242: within one km of flz142
|
||||||
flz248: within one km of flz148
|
flz248: within one km of flz148
|
||||||
flz249: within one km of flz149
|
flz249: within one km of flz149
|
||||||
flz255: within one km of flz155
|
flz255: within one km of flz155
|
||||||
flz260: within one km of flz160
|
flz260: within one km of flz160
|
||||||
flz262: within one km of flz162
|
|
||||||
idz001: within one km of wyz001
|
|
||||||
laz069: no centroid
|
|
||||||
laz073: within one km of laz074
|
laz073: within one km of laz074
|
||||||
laz074: within one km of laz073
|
laz074: within one km of laz073
|
||||||
mtz001: within one km of wyz001
|
|
||||||
nmz401: no centroid
|
|
||||||
nmz403: no centroid
|
|
||||||
nmz404: no centroid
|
|
||||||
nmz405: no centroid
|
|
||||||
nmz406: no centroid
|
|
||||||
nmz407: no centroid
|
|
||||||
nmz408: no centroid
|
|
||||||
nmz409: no centroid
|
|
||||||
nmz410: no centroid
|
|
||||||
nmz411: no centroid
|
|
||||||
nmz412: no centroid
|
|
||||||
nmz413: no centroid
|
|
||||||
nmz414: no centroid
|
|
||||||
nmz415: no centroid
|
|
||||||
nmz416: no centroid
|
|
||||||
nmz417: no centroid
|
|
||||||
orz015: no centroid
|
|
||||||
orz016: no centroid
|
|
||||||
orz510: no centroid
|
|
||||||
orz511: no centroid
|
|
||||||
paz101: within one km of paz102
|
paz101: within one km of paz102
|
||||||
paz102: within one km of paz101
|
paz102: within one km of paz101
|
||||||
paz103: within one km of paz104
|
paz103: within one km of paz104
|
||||||
paz104: within one km of paz103
|
paz104: within one km of paz103
|
||||||
paz105: within one km of paz106
|
paz105: within one km of paz106
|
||||||
paz106: within one km of paz105
|
paz106: within one km of paz105
|
||||||
txz418: no centroid
|
|
||||||
txz419: no centroid
|
|
||||||
txz420: no centroid
|
|
||||||
txz421: no centroid
|
|
||||||
txz422: no centroid
|
|
||||||
txz423: no centroid
|
|
||||||
txz424: no centroid
|
|
||||||
vaz509: no centroid
|
|
||||||
vaz510: no centroid
|
|
||||||
vaz511: no centroid
|
|
||||||
vaz512: no centroid
|
|
||||||
vaz513: within one km of vaz514
|
vaz513: within one km of vaz514
|
||||||
vaz514: within one km of vaz513
|
vaz514: within one km of vaz513
|
||||||
vaz515: within one km of vaz516
|
|
||||||
vaz516: within one km of vaz515
|
|
||||||
vaz517: within one km of vaz518
|
vaz517: within one km of vaz518
|
||||||
vaz518: within one km of vaz517
|
vaz518: within one km of vaz517
|
||||||
vaz519: within one km of vaz520
|
vaz519: within one km of vaz520
|
||||||
vaz520: within one km of vaz519
|
vaz520: within one km of vaz519
|
||||||
vaz523: no centroid
|
|
||||||
vtz004: no centroid
|
|
||||||
waz045: no centroid
|
|
||||||
waz046: no centroid
|
|
||||||
waz503: within one km of waz567
|
waz503: within one km of waz567
|
||||||
waz504: within one km of waz569
|
waz507: within one km of waz568
|
||||||
waz507: within one km of waz555
|
|
||||||
waz511: within one km of waz559
|
waz511: within one km of waz559
|
||||||
waz555: within one km of waz507
|
waz555: within one km of waz568
|
||||||
waz556: within one km of waz568
|
waz556: within one km of waz569
|
||||||
waz559: within one km of waz511
|
waz559: within one km of waz511
|
||||||
waz567: within one km of waz503
|
waz567: within one km of waz503
|
||||||
waz568: within one km of waz556
|
waz568: within one km of waz507
|
||||||
waz569: within one km of waz504
|
waz569: within one km of waz556
|
||||||
wvz506: within one km of wvz507
|
wvz506: within one km of wvz507
|
||||||
wvz507: within one km of wvz506
|
wvz507: within one km of wvz506
|
||||||
wvz509: within one km of wvz510
|
wvz509: within one km of wvz510
|
||||||
@@ -107,4 +803,3 @@ wvz511: within one km of wvz512
|
|||||||
wvz512: within one km of wvz511
|
wvz512: within one km of wvz511
|
||||||
wvz513: within one km of wvz514
|
wvz513: within one km of wvz514
|
||||||
wvz514: within one km of wvz513
|
wvz514: within one km of wvz513
|
||||||
wyz001: within one km of mtz001
|
|
||||||
|
|||||||
260
weather.py
260
weather.py
@@ -1,12 +1,12 @@
|
|||||||
"""Contains various object definitions needed by the weather utility."""
|
"""Contains various object definitions needed by the weather utility."""
|
||||||
|
|
||||||
weather_copyright = """\
|
weather_copyright = """\
|
||||||
# Copyright (c) 2006-2016 Jeremy Stanley <fungi@yuggoth.org>. Permission to
|
# Copyright (c) 2006-2020 Jeremy Stanley <fungi@yuggoth.org>. Permission to
|
||||||
# use, copy, modify, and distribute this software is granted under terms
|
# use, copy, modify, and distribute this software is granted under terms
|
||||||
# provided in the LICENSE file distributed with this software.
|
# provided in the LICENSE file distributed with this software.
|
||||||
#"""
|
#"""
|
||||||
|
|
||||||
weather_version = "2.3"
|
weather_version = "2.4"
|
||||||
|
|
||||||
radian_to_km = 6372.795484
|
radian_to_km = 6372.795484
|
||||||
radian_to_mi = 3959.871528
|
radian_to_mi = 3959.871528
|
||||||
@@ -1209,25 +1209,26 @@ def gecos(formatted):
|
|||||||
return tuple(coordinates)
|
return tuple(coordinates)
|
||||||
|
|
||||||
def correlate():
|
def correlate():
|
||||||
import codecs, datetime, hashlib, os, re, sys, tarfile, time, zipfile
|
import codecs, csv, datetime, hashlib, os, re, sys, tarfile, time, zipfile
|
||||||
if pyversion("3"): import configparser
|
if pyversion("3"): import configparser
|
||||||
else: import ConfigParser as configparser
|
else: import ConfigParser as configparser
|
||||||
gcounties_an = "2015_Gaz_counties_national.zip"
|
|
||||||
gcounties_fn = "2015_Gaz_counties_national.txt"
|
|
||||||
gcousubs_an = "2015_Gaz_cousubs_national.zip"
|
|
||||||
gcousubs_fn = "2015_Gaz_cousubs_national.txt"
|
|
||||||
gplace_an = "2015_Gaz_place_national.zip"
|
|
||||||
gplace_fn = "2015_Gaz_place_national.txt"
|
|
||||||
gzcta_an = "2015_Gaz_zcta_national.zip"
|
|
||||||
gzcta_fn = "2015_Gaz_zcta_national.txt"
|
|
||||||
for filename in os.listdir("."):
|
for filename in os.listdir("."):
|
||||||
if re.match("bp[0-9][0-9][a-z][a-z][0-9][0-9].dbx$", filename):
|
if re.match("[0-9]{4}_Gaz_counties_national.zip$", filename):
|
||||||
|
gcounties_an = filename
|
||||||
|
gcounties_fn = filename[:-4] + ".txt"
|
||||||
|
elif re.match("[0-9]{4}_Gaz_cousubs_national.zip$", filename):
|
||||||
|
gcousubs_an = filename
|
||||||
|
gcousubs_fn = filename[:-4] + ".txt"
|
||||||
|
elif re.match("[0-9]{4}_Gaz_place_national.zip$", filename):
|
||||||
|
gplace_an = filename
|
||||||
|
gplace_fn = filename[:-4] + ".txt"
|
||||||
|
elif re.match("[0-9]{4}_Gaz_zcta_national.zip$", filename):
|
||||||
|
gzcta_an = filename
|
||||||
|
gzcta_fn = filename[:-4] + ".txt"
|
||||||
|
elif re.match("bp[0-9]{2}[a-z]{2}[0-9]{2}.dbx$", filename):
|
||||||
cpfzcf_fn = filename
|
cpfzcf_fn = filename
|
||||||
break
|
|
||||||
nsdcccc_fn = "nsd_cccc.txt"
|
nsdcccc_fn = "nsd_cccc.txt"
|
||||||
zcatalog_an = "zonecatalog.curr.tar"
|
ourairports_fn = "airports.csv"
|
||||||
metartbl_fn = "metar.tbl"
|
|
||||||
coopstn_fn = "coop-stations.txt"
|
|
||||||
overrides_fn = "overrides.conf"
|
overrides_fn = "overrides.conf"
|
||||||
overrideslog_fn = "overrides.log"
|
overrideslog_fn = "overrides.log"
|
||||||
slist_fn = "slist"
|
slist_fn = "slist"
|
||||||
@@ -1242,25 +1243,19 @@ def correlate():
|
|||||||
%s
|
%s
|
||||||
# generated by %s on %s from these public domain sources:
|
# generated by %s on %s from these public domain sources:
|
||||||
#
|
#
|
||||||
# http://www.census.gov/geo/maps-data/data/gazetteer2015.html
|
# https://www.census.gov/geographies/reference-files/time-series/geo/gazetteer-files.html
|
||||||
# %s %s %s
|
# %s %s %s
|
||||||
# %s %s %s
|
# %s %s %s
|
||||||
# %s %s %s
|
# %s %s %s
|
||||||
# %s %s %s
|
# %s %s %s
|
||||||
#
|
#
|
||||||
# http://www.weather.gov/geodata/catalog/wsom/html/cntyzone.htm
|
# https://www.weather.gov/gis/ZoneCounty/
|
||||||
# %s %s %s
|
# %s %s %s
|
||||||
#
|
#
|
||||||
# http://tgftp.nws.noaa.gov/data/nsd_cccc.txt
|
# https://tgftp.nws.noaa.gov/data/
|
||||||
# %s %s %s
|
# %s %s %s
|
||||||
#
|
#
|
||||||
# http://tgftp.nws.noaa.gov/data/zonecatalog.curr.tar
|
# https://ourairports.com/data/
|
||||||
# %s %s %s
|
|
||||||
#
|
|
||||||
# http://www.nco.ncep.noaa.gov/pmb/codes/nwprod/dictionaries/metar.tbl
|
|
||||||
# %s %s %s
|
|
||||||
#
|
|
||||||
# http://www.ncdc.noaa.gov/homr/reports
|
|
||||||
# %s %s %s
|
# %s %s %s
|
||||||
#
|
#
|
||||||
# ...and these manually-generated or hand-compiled adjustments:
|
# ...and these manually-generated or hand-compiled adjustments:
|
||||||
@@ -1303,21 +1298,11 @@ def correlate():
|
|||||||
datetime.datetime.fromtimestamp( os.path.getmtime(nsdcccc_fn) )
|
datetime.datetime.fromtimestamp( os.path.getmtime(nsdcccc_fn) )
|
||||||
),
|
),
|
||||||
nsdcccc_fn,
|
nsdcccc_fn,
|
||||||
hashlib.md5( open(zcatalog_an, "rb").read() ).hexdigest(),
|
hashlib.md5( open(ourairports_fn, "rb").read() ).hexdigest(),
|
||||||
datetime.date.isoformat(
|
datetime.date.isoformat(
|
||||||
datetime.datetime.fromtimestamp( os.path.getmtime(zcatalog_an) )
|
datetime.datetime.fromtimestamp( os.path.getmtime(ourairports_fn) )
|
||||||
),
|
),
|
||||||
zcatalog_an,
|
ourairports_fn,
|
||||||
hashlib.md5( open(metartbl_fn, "rb").read() ).hexdigest(),
|
|
||||||
datetime.date.isoformat(
|
|
||||||
datetime.datetime.fromtimestamp( os.path.getmtime(metartbl_fn) )
|
|
||||||
),
|
|
||||||
metartbl_fn,
|
|
||||||
hashlib.md5( open(coopstn_fn, "rb").read() ).hexdigest(),
|
|
||||||
datetime.date.isoformat(
|
|
||||||
datetime.datetime.fromtimestamp( os.path.getmtime(coopstn_fn) )
|
|
||||||
),
|
|
||||||
coopstn_fn,
|
|
||||||
hashlib.md5( open(overrides_fn, "rb").read() ).hexdigest(),
|
hashlib.md5( open(overrides_fn, "rb").read() ).hexdigest(),
|
||||||
datetime.date.isoformat(
|
datetime.date.isoformat(
|
||||||
datetime.datetime.fromtimestamp( os.path.getmtime(overrides_fn) )
|
datetime.datetime.fromtimestamp( os.path.getmtime(overrides_fn) )
|
||||||
@@ -1344,9 +1329,9 @@ def correlate():
|
|||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
gcounties = zipfile.ZipFile(gcounties_an).open(gcounties_fn, "rU")
|
gcounties = zipfile.ZipFile(gcounties_an).open(gcounties_fn, "rU")
|
||||||
columns = gcounties.readline().decode("latin1").strip().split("\t")
|
columns = gcounties.readline().decode("utf-8").strip().split("\t")
|
||||||
for line in gcounties:
|
for line in gcounties:
|
||||||
fields = line.decode("latin1").strip().split("\t")
|
fields = line.decode("utf-8").strip().split("\t")
|
||||||
f_geoid = fields[ columns.index("GEOID") ].strip()
|
f_geoid = fields[ columns.index("GEOID") ].strip()
|
||||||
f_name = fields[ columns.index("NAME") ].strip()
|
f_name = fields[ columns.index("NAME") ].strip()
|
||||||
f_usps = fields[ columns.index("USPS") ].strip()
|
f_usps = fields[ columns.index("USPS") ].strip()
|
||||||
@@ -1367,9 +1352,9 @@ def correlate():
|
|||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
gcousubs = zipfile.ZipFile(gcousubs_an).open(gcousubs_fn, "rU")
|
gcousubs = zipfile.ZipFile(gcousubs_an).open(gcousubs_fn, "rU")
|
||||||
columns = gcousubs.readline().decode("latin1").strip().split("\t")
|
columns = gcousubs.readline().decode("utf-8").strip().split("\t")
|
||||||
for line in gcousubs:
|
for line in gcousubs:
|
||||||
fields = line.decode("latin1").strip().split("\t")
|
fields = line.decode("utf-8").strip().split("\t")
|
||||||
f_geoid = fields[ columns.index("GEOID") ].strip()
|
f_geoid = fields[ columns.index("GEOID") ].strip()
|
||||||
f_name = fields[ columns.index("NAME") ].strip()
|
f_name = fields[ columns.index("NAME") ].strip()
|
||||||
f_usps = fields[ columns.index("USPS") ].strip()
|
f_usps = fields[ columns.index("USPS") ].strip()
|
||||||
@@ -1390,9 +1375,9 @@ def correlate():
|
|||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
gplace = zipfile.ZipFile(gplace_an).open(gplace_fn, "rU")
|
gplace = zipfile.ZipFile(gplace_an).open(gplace_fn, "rU")
|
||||||
columns = gplace.readline().decode("latin1").strip().split("\t")
|
columns = gplace.readline().decode("utf-8").strip().split("\t")
|
||||||
for line in gplace:
|
for line in gplace:
|
||||||
fields = line.decode("latin1").strip().split("\t")
|
fields = line.decode("utf-8").strip().split("\t")
|
||||||
f_geoid = fields[ columns.index("GEOID") ].strip()
|
f_geoid = fields[ columns.index("GEOID") ].strip()
|
||||||
f_name = fields[ columns.index("NAME") ].strip()
|
f_name = fields[ columns.index("NAME") ].strip()
|
||||||
f_usps = fields[ columns.index("USPS") ].strip()
|
f_usps = fields[ columns.index("USPS") ].strip()
|
||||||
@@ -1412,51 +1397,22 @@ def correlate():
|
|||||||
sys.stdout.write(message)
|
sys.stdout.write(message)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
slist = codecs.open(slist_fn, "rU")
|
slist = codecs.open(slist_fn, "rU", "utf-8")
|
||||||
for line in slist:
|
for line in slist:
|
||||||
icao = line.split("#")[0].strip()
|
icao = line.split("#")[0].strip()
|
||||||
if icao:
|
if icao:
|
||||||
stations[icao] = {
|
stations[icao] = {
|
||||||
"metar": "http://tgftp.nws.noaa.gov/data/observations/"\
|
"metar": "https://tgftp.nws.noaa.gov/data/observations/"\
|
||||||
+ "metar/decoded/%s.TXT" % icao.upper()
|
+ "metar/decoded/%s.TXT" % icao.upper()
|
||||||
}
|
}
|
||||||
count += 1
|
count += 1
|
||||||
slist.close()
|
slist.close()
|
||||||
print("done (%s lines)." % count)
|
print("done (%s lines)." % count)
|
||||||
message = "Reading %s..." % metartbl_fn
|
|
||||||
sys.stdout.write(message)
|
|
||||||
sys.stdout.flush()
|
|
||||||
count = 0
|
|
||||||
metartbl = codecs.open(metartbl_fn, "rU")
|
|
||||||
for line in metartbl:
|
|
||||||
icao = line[:4].strip().lower()
|
|
||||||
if icao in stations:
|
|
||||||
description = []
|
|
||||||
name = " ".join(
|
|
||||||
line[16:48].replace("_", " ").strip().title().split()
|
|
||||||
)
|
|
||||||
if name: description.append(name)
|
|
||||||
st = line[49:51].strip()
|
|
||||||
if st: description.append(st)
|
|
||||||
cn = line[52:54].strip()
|
|
||||||
if cn: description.append(cn)
|
|
||||||
if description:
|
|
||||||
stations[icao]["description"] = ", ".join(description)
|
|
||||||
lat = line[55:60].strip()
|
|
||||||
if lat:
|
|
||||||
lat = int(lat)/100.0
|
|
||||||
lon = line[61:67].strip()
|
|
||||||
if lon:
|
|
||||||
lon = int(lon)/100.0
|
|
||||||
stations[icao]["location"] = gecos( "%s,%s" % (lat, lon) )
|
|
||||||
count += 1
|
|
||||||
metartbl.close()
|
|
||||||
print("done (%s lines)." % count)
|
|
||||||
message = "Reading %s..." % nsdcccc_fn
|
message = "Reading %s..." % nsdcccc_fn
|
||||||
sys.stdout.write(message)
|
sys.stdout.write(message)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
nsdcccc = codecs.open(nsdcccc_fn, "rU", "latin1")
|
nsdcccc = codecs.open(nsdcccc_fn, "rU", "utf-8")
|
||||||
for line in nsdcccc:
|
for line in nsdcccc:
|
||||||
line = str(line)
|
line = str(line)
|
||||||
fields = line.split(";")
|
fields = line.split(";")
|
||||||
@@ -1481,44 +1437,49 @@ def correlate():
|
|||||||
count += 1
|
count += 1
|
||||||
nsdcccc.close()
|
nsdcccc.close()
|
||||||
print("done (%s lines)." % count)
|
print("done (%s lines)." % count)
|
||||||
message = "Reading %s..." % coopstn_fn
|
message = "Reading %s..." % ourairports_fn
|
||||||
sys.stdout.write(message)
|
sys.stdout.write(message)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
coopstn = open(coopstn_fn)
|
ourairports = open(ourairports_fn, "rU")
|
||||||
for line in coopstn:
|
for row in csv.reader(ourairports):
|
||||||
icao = line[33:37].strip().lower()
|
icao = row[12].decode('utf-8').lower()
|
||||||
if icao in stations:
|
if icao in stations:
|
||||||
iata = line[22:26].strip().lower()
|
iata = row[13].decode('utf-8').lower()
|
||||||
if len(iata) == 3: airports[iata] = { "station": icao }
|
if len(iata) == 3: airports[iata] = { "station": icao }
|
||||||
if "description" not in stations[icao]:
|
if "description" not in stations[icao]:
|
||||||
description = []
|
description = []
|
||||||
name = " ".join( line[99:129].strip().title().split() )
|
name = row[3].decode('utf-8')
|
||||||
if name: description.append(name)
|
if name: description.append(name)
|
||||||
st = line[59:61].strip()
|
municipality = row[10].decode('utf-8')
|
||||||
if st: description.append(st)
|
if municipality: description.append(municipality)
|
||||||
country = " ".join( line[38:58].strip().title().split() )
|
region = row[9].decode('utf-8')
|
||||||
if country: description.append(country)
|
country = row[8].decode('utf-8')
|
||||||
|
if region:
|
||||||
|
if "-" in region:
|
||||||
|
c,r = region.split("-", 1)
|
||||||
|
if c == country: region = r
|
||||||
|
description.append(region)
|
||||||
|
if country:
|
||||||
|
description.append(country)
|
||||||
if description:
|
if description:
|
||||||
stations[icao]["description"] = ", ".join(description)
|
stations[icao]["description"] = ", ".join(description)
|
||||||
if "location" not in stations[icao]:
|
if "location" not in stations[icao]:
|
||||||
lat = line[130:139].strip()
|
lat = row[4].decode('utf-8')
|
||||||
if lat:
|
if lat:
|
||||||
lat = lat.replace(" ", "-")
|
lon = row[5].decode('utf-8')
|
||||||
lon = line[140:150].strip()
|
|
||||||
if lon:
|
if lon:
|
||||||
lon = lon.replace(" ", "-")
|
|
||||||
stations[icao]["location"] = gecos(
|
stations[icao]["location"] = gecos(
|
||||||
"%s,%s" % (lat, lon)
|
"%s,%s" % (lat, lon)
|
||||||
)
|
)
|
||||||
count += 1
|
count += 1
|
||||||
coopstn.close()
|
ourairports.close()
|
||||||
print("done (%s lines)." % count)
|
print("done (%s lines)." % count)
|
||||||
message = "Reading %s..." % zlist_fn
|
message = "Reading %s..." % zlist_fn
|
||||||
sys.stdout.write(message)
|
sys.stdout.write(message)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
zlist = codecs.open(zlist_fn, "rU")
|
zlist = codecs.open(zlist_fn, "rU", "utf-8")
|
||||||
for line in zlist:
|
for line in zlist:
|
||||||
line = line.split("#")[0].strip()
|
line = line.split("#")[0].strip()
|
||||||
if line:
|
if line:
|
||||||
@@ -1526,69 +1487,76 @@ def correlate():
|
|||||||
count += 1
|
count += 1
|
||||||
zlist.close()
|
zlist.close()
|
||||||
print("done (%s lines)." % count)
|
print("done (%s lines)." % count)
|
||||||
message = "Reading %s:*..." % zcatalog_an
|
|
||||||
sys.stdout.write(message)
|
|
||||||
sys.stdout.flush()
|
|
||||||
count = 0
|
|
||||||
zcatalog = tarfile.open(zcatalog_an)
|
|
||||||
for entry in zcatalog.getmembers():
|
|
||||||
if entry.isfile():
|
|
||||||
fnmatch = re.match(
|
|
||||||
r"([a-z]+z[0-9]+)\.txt$",
|
|
||||||
os.path.basename(entry.name)
|
|
||||||
)
|
|
||||||
if fnmatch:
|
|
||||||
zone = fnmatch.group(1)
|
|
||||||
if zone in zones:
|
|
||||||
data = zcatalog.extractfile(entry).readlines()
|
|
||||||
description = data[0].decode("ascii").strip()
|
|
||||||
zones[zone]["description"] = description
|
|
||||||
for line in data[1:]:
|
|
||||||
line = line.decode("latin1").strip()
|
|
||||||
urimatch = re.match("/webdocs/pub/(.+):(.+) for ",
|
|
||||||
line)
|
|
||||||
if urimatch:
|
|
||||||
uritype = urimatch.group(2).lower().replace(" ","_")
|
|
||||||
zones[zone][uritype] = (
|
|
||||||
"http://tgftp.nws.noaa.gov/%s"
|
|
||||||
% urimatch.group(1))
|
|
||||||
count += 1
|
|
||||||
zcatalog.close()
|
|
||||||
print("done (%s files)." % count)
|
|
||||||
message = "Reading %s..." % cpfzcf_fn
|
message = "Reading %s..." % cpfzcf_fn
|
||||||
sys.stdout.write(message)
|
sys.stdout.write(message)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
cpfz = {}
|
cpfz = {}
|
||||||
cpfzcf = open(cpfzcf_fn)
|
cpfzcf = codecs.open(cpfzcf_fn, "rU", "utf-8")
|
||||||
for line in cpfzcf:
|
for line in cpfzcf:
|
||||||
fields = line.strip().split("|")
|
fields = line.strip().split("|")
|
||||||
if len(fields) == 11 \
|
if len(fields) == 11 \
|
||||||
and fields[0] and fields[1] and fields[9] and fields[10]:
|
and fields[0] and fields[1] and fields[9] and fields[10]:
|
||||||
zone = "z".join( fields[:2] ).lower()
|
zone = "z".join( fields[:2] ).lower()
|
||||||
if zone in zones:
|
if zone in zones:
|
||||||
zones[zone]["centroid"] = gecos( ",".join( fields[9:11] ) )
|
|
||||||
elif fields[6]:
|
|
||||||
state = fields[0]
|
state = fields[0]
|
||||||
description = fields[3]
|
if state:
|
||||||
county = fields[5]
|
zones[zone]["coastal_flood_statement"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"flood/coastal/%s/%s.txt" % (state.lower(), zone))
|
||||||
|
zones[zone]["flash_flood_statement"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"flash_flood/statement/%s/%s.txt"
|
||||||
|
% (state.lower(), zone))
|
||||||
|
zones[zone]["flash_flood_warning"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"flash_flood/warning/%s/%s.txt"
|
||||||
|
% (state.lower(), zone))
|
||||||
|
zones[zone]["flash_flood_watch"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"flash_flood/watch/%s/%s.txt" % (state.lower(), zone))
|
||||||
|
zones[zone]["flood_statement"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"flood/statement/%s/%s.txt" % (state.lower(), zone))
|
||||||
|
zones[zone]["flood_warning"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"flood/warning/%s/%s.txt" % (state.lower(), zone))
|
||||||
|
zones[zone]["severe_thunderstorm_warning"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"thunderstorm/%s/%s.txt" % (state.lower(), zone))
|
||||||
|
zones[zone]["severe_weather_statement"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"severe_weather_stmt/%s/%s.txt"
|
||||||
|
% (state.lower(), zone))
|
||||||
|
zones[zone]["short_term_forecast"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/forecasts/nowcast/"
|
||||||
|
"%s/%s.txt" % (state.lower(), zone))
|
||||||
|
zones[zone]["special_weather_statement"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"special_weather_stmt/%s/%s.txt"
|
||||||
|
% (state.lower(), zone))
|
||||||
|
zones[zone]["state_forecast"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/forecasts/state/"
|
||||||
|
"%s/%s.txt" % (state.lower(), zone))
|
||||||
|
zones[zone]["urgent_weather_message"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/watches_warnings/"
|
||||||
|
"non_precip/%s/%s.txt" % (state.lower(), zone))
|
||||||
|
zones[zone]["zone_forecast"] = (
|
||||||
|
"https://tgftp.nws.noaa.gov/data/forecasts/zone/"
|
||||||
|
"%s/%s.txt" % (state.lower(), zone))
|
||||||
|
description = fields[3].strip()
|
||||||
fips = "fips%s"%fields[6]
|
fips = "fips%s"%fields[6]
|
||||||
possible = [
|
county = fields[5]
|
||||||
"%s, %s" % (county, state),
|
if county:
|
||||||
"%s County, %s" % (county, state),
|
if description.endswith(county):
|
||||||
]
|
description += " County"
|
||||||
if description.endswith(" Counties"):
|
else:
|
||||||
description = description[:-9]
|
description += ", %s County" % county
|
||||||
for addition in description.split(" and "):
|
description += ", %s, US" % state
|
||||||
possible.append( "%s, %s" % (addition, state) )
|
zones[zone]["description"] = description
|
||||||
possible.append( "%s County, %s" % (addition, state) )
|
zones[zone]["centroid"] = gecos( ",".join( fields[9:11] ) )
|
||||||
if fips in places and "centroid" in places[fips]:
|
if fips in places and not zones[zone]["centroid"]:
|
||||||
for candidate in zones:
|
zones[zone]["centroid"] = places[fips]["centroid"]
|
||||||
if "centroid" not in zones[candidate] and \
|
|
||||||
"description" in zones[candidate] and \
|
|
||||||
zones[candidate]["description"] in possible:
|
|
||||||
zones[candidate]["centroid"] = \
|
|
||||||
places[fips]["centroid"]
|
|
||||||
count += 1
|
count += 1
|
||||||
cpfzcf.close()
|
cpfzcf.close()
|
||||||
print("done (%s lines)." % count)
|
print("done (%s lines)." % count)
|
||||||
@@ -1597,9 +1565,9 @@ def correlate():
|
|||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
count = 0
|
count = 0
|
||||||
gzcta = zipfile.ZipFile(gzcta_an).open(gzcta_fn, "rU")
|
gzcta = zipfile.ZipFile(gzcta_an).open(gzcta_fn, "rU")
|
||||||
columns = gzcta.readline().decode("latin1").strip().split("\t")
|
columns = gzcta.readline().decode("utf-8").strip().split("\t")
|
||||||
for line in gzcta:
|
for line in gzcta:
|
||||||
fields = line.decode("latin1").strip().split("\t")
|
fields = line.decode("utf-8").strip().split("\t")
|
||||||
f_geoid = fields[ columns.index("GEOID") ].strip()
|
f_geoid = fields[ columns.index("GEOID") ].strip()
|
||||||
f_intptlat = fields[ columns.index("INTPTLAT") ].strip()
|
f_intptlat = fields[ columns.index("INTPTLAT") ].strip()
|
||||||
f_intptlong = fields[ columns.index("INTPTLONG") ].strip()
|
f_intptlong = fields[ columns.index("INTPTLONG") ].strip()
|
||||||
@@ -1967,7 +1935,7 @@ def correlate():
|
|||||||
count = 0
|
count = 0
|
||||||
if os.path.exists(stations_fn):
|
if os.path.exists(stations_fn):
|
||||||
os.rename(stations_fn, "%s_old"%stations_fn)
|
os.rename(stations_fn, "%s_old"%stations_fn)
|
||||||
stations_fd = codecs.open(stations_fn, "w", "utf8")
|
stations_fd = codecs.open(stations_fn, "w", "utf-8")
|
||||||
stations_fd.write(header)
|
stations_fd.write(header)
|
||||||
for station in sorted( stations.keys() ):
|
for station in sorted( stations.keys() ):
|
||||||
stations_fd.write("\n\n[%s]" % station)
|
stations_fd.write("\n\n[%s]" % station)
|
||||||
|
|||||||
358
zlist
358
zlist
@@ -1,15 +1,15 @@
|
|||||||
# Copyright (c) 2006-2016 Jeremy Stanley <fungi@yuggoth.org>. Permission to
|
# Copyright (c) 2006-2020 Jeremy Stanley <fungi@yuggoth.org>. Permission to
|
||||||
# use, copy, modify, and distribute this software is granted under terms
|
# use, copy, modify, and distribute this software is granted under terms
|
||||||
# provided in the LICENSE file distributed with this software.
|
# provided in the LICENSE file distributed with this software.
|
||||||
#
|
#
|
||||||
# generated on 2016-10-04 by running:
|
# generated on 2020-05-24 by running:
|
||||||
#
|
#
|
||||||
# for area in $(
|
# for area in $(
|
||||||
# wget -qO- http://tgftp.nws.noaa.gov/data/forecasts/zone/ \
|
# wget -qO- https://tgftp.nws.noaa.gov/data/forecasts/zone/ \
|
||||||
# | grep '<a href="[^/]*/">' \
|
# | grep '<a href="[^/]*/">' \
|
||||||
# | sed 's,.*<a href="\([^/]*\)/">.*,\1,'
|
# | sed 's,.*<a href="\([^/]*\)/">.*,\1,'
|
||||||
# ) ; do
|
# ) ; do
|
||||||
# wget -qO- http://tgftp.nws.noaa.gov/data/forecasts/zone/$area \
|
# wget -qO- https://tgftp.nws.noaa.gov/data/forecasts/zone/$area \
|
||||||
# | grep '<a href="[^\.]*\.txt">.*-'$( date +%b-%Y )' ' \
|
# | grep '<a href="[^\.]*\.txt">.*-'$( date +%b-%Y )' ' \
|
||||||
# | sed 's,.*<a href="\([^\.]*\)\.txt">.*,\1,'
|
# | sed 's,.*<a href="\([^\.]*\)\.txt">.*,\1,'
|
||||||
# sleep 1
|
# sleep 1
|
||||||
@@ -239,15 +239,6 @@ azz015
|
|||||||
azz016
|
azz016
|
||||||
azz017
|
azz017
|
||||||
azz018
|
azz018
|
||||||
azz020
|
|
||||||
azz021
|
|
||||||
azz022
|
|
||||||
azz023
|
|
||||||
azz024
|
|
||||||
azz025
|
|
||||||
azz026
|
|
||||||
azz027
|
|
||||||
azz028
|
|
||||||
azz036
|
azz036
|
||||||
azz037
|
azz037
|
||||||
azz038
|
azz038
|
||||||
@@ -268,6 +259,40 @@ azz512
|
|||||||
azz513
|
azz513
|
||||||
azz514
|
azz514
|
||||||
azz515
|
azz515
|
||||||
|
azz530
|
||||||
|
azz531
|
||||||
|
azz532
|
||||||
|
azz533
|
||||||
|
azz534
|
||||||
|
azz535
|
||||||
|
azz536
|
||||||
|
azz537
|
||||||
|
azz538
|
||||||
|
azz539
|
||||||
|
azz540
|
||||||
|
azz541
|
||||||
|
azz542
|
||||||
|
azz543
|
||||||
|
azz544
|
||||||
|
azz545
|
||||||
|
azz546
|
||||||
|
azz547
|
||||||
|
azz548
|
||||||
|
azz549
|
||||||
|
azz550
|
||||||
|
azz551
|
||||||
|
azz552
|
||||||
|
azz553
|
||||||
|
azz554
|
||||||
|
azz555
|
||||||
|
azz556
|
||||||
|
azz557
|
||||||
|
azz558
|
||||||
|
azz559
|
||||||
|
azz560
|
||||||
|
azz561
|
||||||
|
azz562
|
||||||
|
azz563
|
||||||
caz006
|
caz006
|
||||||
caz013
|
caz013
|
||||||
caz014
|
caz014
|
||||||
@@ -276,10 +301,6 @@ caz016
|
|||||||
caz017
|
caz017
|
||||||
caz018
|
caz018
|
||||||
caz019
|
caz019
|
||||||
caz030
|
|
||||||
caz031
|
|
||||||
caz032
|
|
||||||
caz033
|
|
||||||
caz034
|
caz034
|
||||||
caz035
|
caz035
|
||||||
caz036
|
caz036
|
||||||
@@ -307,7 +328,6 @@ caz060
|
|||||||
caz061
|
caz061
|
||||||
caz062
|
caz062
|
||||||
caz063
|
caz063
|
||||||
caz064
|
|
||||||
caz065
|
caz065
|
||||||
caz066
|
caz066
|
||||||
caz067
|
caz067
|
||||||
@@ -325,17 +345,6 @@ caz084
|
|||||||
caz085
|
caz085
|
||||||
caz087
|
caz087
|
||||||
caz088
|
caz088
|
||||||
caz089
|
|
||||||
caz090
|
|
||||||
caz091
|
|
||||||
caz092
|
|
||||||
caz093
|
|
||||||
caz094
|
|
||||||
caz095
|
|
||||||
caz096
|
|
||||||
caz097
|
|
||||||
caz098
|
|
||||||
caz099
|
|
||||||
caz101
|
caz101
|
||||||
caz102
|
caz102
|
||||||
caz103
|
caz103
|
||||||
@@ -349,6 +358,29 @@ caz110
|
|||||||
caz111
|
caz111
|
||||||
caz112
|
caz112
|
||||||
caz113
|
caz113
|
||||||
|
caz114
|
||||||
|
caz115
|
||||||
|
caz179
|
||||||
|
caz180
|
||||||
|
caz181
|
||||||
|
caz182
|
||||||
|
caz183
|
||||||
|
caz184
|
||||||
|
caz185
|
||||||
|
caz186
|
||||||
|
caz187
|
||||||
|
caz188
|
||||||
|
caz189
|
||||||
|
caz190
|
||||||
|
caz191
|
||||||
|
caz192
|
||||||
|
caz193
|
||||||
|
caz194
|
||||||
|
caz195
|
||||||
|
caz196
|
||||||
|
caz197
|
||||||
|
caz198
|
||||||
|
caz199
|
||||||
caz505
|
caz505
|
||||||
caz506
|
caz506
|
||||||
caz507
|
caz507
|
||||||
@@ -379,6 +411,17 @@ caz549
|
|||||||
caz550
|
caz550
|
||||||
caz552
|
caz552
|
||||||
caz554
|
caz554
|
||||||
|
caz560
|
||||||
|
caz561
|
||||||
|
caz562
|
||||||
|
caz563
|
||||||
|
caz564
|
||||||
|
caz565
|
||||||
|
caz566
|
||||||
|
caz567
|
||||||
|
caz568
|
||||||
|
caz569
|
||||||
|
caz570
|
||||||
coz001
|
coz001
|
||||||
coz002
|
coz002
|
||||||
coz003
|
coz003
|
||||||
@@ -497,7 +540,6 @@ flz018
|
|||||||
flz019
|
flz019
|
||||||
flz020
|
flz020
|
||||||
flz021
|
flz021
|
||||||
flz022
|
|
||||||
flz023
|
flz023
|
||||||
flz024
|
flz024
|
||||||
flz025
|
flz025
|
||||||
@@ -511,10 +553,8 @@ flz032
|
|||||||
flz033
|
flz033
|
||||||
flz034
|
flz034
|
||||||
flz035
|
flz035
|
||||||
flz036
|
|
||||||
flz037
|
flz037
|
||||||
flz038
|
flz038
|
||||||
flz040
|
|
||||||
flz041
|
flz041
|
||||||
flz043
|
flz043
|
||||||
flz044
|
flz044
|
||||||
@@ -550,12 +590,17 @@ flz112
|
|||||||
flz114
|
flz114
|
||||||
flz115
|
flz115
|
||||||
flz118
|
flz118
|
||||||
|
flz122
|
||||||
flz124
|
flz124
|
||||||
flz125
|
flz125
|
||||||
flz127
|
flz127
|
||||||
flz128
|
flz128
|
||||||
|
flz133
|
||||||
flz134
|
flz134
|
||||||
|
flz136
|
||||||
|
flz138
|
||||||
flz139
|
flz139
|
||||||
|
flz140
|
||||||
flz141
|
flz141
|
||||||
flz142
|
flz142
|
||||||
flz144
|
flz144
|
||||||
@@ -577,7 +622,10 @@ flz203
|
|||||||
flz204
|
flz204
|
||||||
flz205
|
flz205
|
||||||
flz206
|
flz206
|
||||||
|
flz222
|
||||||
|
flz236
|
||||||
flz239
|
flz239
|
||||||
|
flz240
|
||||||
flz242
|
flz242
|
||||||
flz248
|
flz248
|
||||||
flz249
|
flz249
|
||||||
@@ -586,6 +634,7 @@ flz255
|
|||||||
flz260
|
flz260
|
||||||
flz262
|
flz262
|
||||||
flz265
|
flz265
|
||||||
|
flz340
|
||||||
gaz001
|
gaz001
|
||||||
gaz002
|
gaz002
|
||||||
gaz003
|
gaz003
|
||||||
@@ -735,7 +784,6 @@ gaz146
|
|||||||
gaz147
|
gaz147
|
||||||
gaz148
|
gaz148
|
||||||
gaz149
|
gaz149
|
||||||
gaz150
|
|
||||||
gaz151
|
gaz151
|
||||||
gaz152
|
gaz152
|
||||||
gaz153
|
gaz153
|
||||||
@@ -749,13 +797,12 @@ gaz160
|
|||||||
gaz161
|
gaz161
|
||||||
gaz162
|
gaz162
|
||||||
gaz163
|
gaz163
|
||||||
gaz164
|
|
||||||
gaz165
|
gaz165
|
||||||
gaz166
|
gaz166
|
||||||
guz001
|
gaz250
|
||||||
guz002
|
gaz264
|
||||||
guz003
|
gaz350
|
||||||
guz004
|
gaz364
|
||||||
hiz001
|
hiz001
|
||||||
hiz002
|
hiz002
|
||||||
hiz003
|
hiz003
|
||||||
@@ -899,23 +946,37 @@ idz013
|
|||||||
idz014
|
idz014
|
||||||
idz015
|
idz015
|
||||||
idz016
|
idz016
|
||||||
idz017
|
|
||||||
idz018
|
|
||||||
idz019
|
|
||||||
idz020
|
|
||||||
idz021
|
|
||||||
idz022
|
|
||||||
idz023
|
|
||||||
idz024
|
|
||||||
idz025
|
|
||||||
idz026
|
idz026
|
||||||
idz027
|
idz027
|
||||||
idz028
|
idz028
|
||||||
idz029
|
idz029
|
||||||
idz030
|
idz030
|
||||||
idz031
|
|
||||||
idz032
|
|
||||||
idz033
|
idz033
|
||||||
|
idz051
|
||||||
|
idz052
|
||||||
|
idz053
|
||||||
|
idz054
|
||||||
|
idz055
|
||||||
|
idz056
|
||||||
|
idz057
|
||||||
|
idz058
|
||||||
|
idz059
|
||||||
|
idz060
|
||||||
|
idz061
|
||||||
|
idz062
|
||||||
|
idz063
|
||||||
|
idz064
|
||||||
|
idz065
|
||||||
|
idz066
|
||||||
|
idz067
|
||||||
|
idz068
|
||||||
|
idz069
|
||||||
|
idz070
|
||||||
|
idz071
|
||||||
|
idz072
|
||||||
|
idz073
|
||||||
|
idz074
|
||||||
|
idz075
|
||||||
ilz001
|
ilz001
|
||||||
ilz002
|
ilz002
|
||||||
ilz003
|
ilz003
|
||||||
@@ -929,7 +990,6 @@ ilz010
|
|||||||
ilz011
|
ilz011
|
||||||
ilz012
|
ilz012
|
||||||
ilz013
|
ilz013
|
||||||
ilz014
|
|
||||||
ilz015
|
ilz015
|
||||||
ilz016
|
ilz016
|
||||||
ilz017
|
ilz017
|
||||||
@@ -937,7 +997,6 @@ ilz018
|
|||||||
ilz019
|
ilz019
|
||||||
ilz020
|
ilz020
|
||||||
ilz021
|
ilz021
|
||||||
ilz022
|
|
||||||
ilz023
|
ilz023
|
||||||
ilz024
|
ilz024
|
||||||
ilz025
|
ilz025
|
||||||
@@ -1018,6 +1077,12 @@ ilz099
|
|||||||
ilz100
|
ilz100
|
||||||
ilz101
|
ilz101
|
||||||
ilz102
|
ilz102
|
||||||
|
ilz103
|
||||||
|
ilz104
|
||||||
|
ilz105
|
||||||
|
ilz106
|
||||||
|
ilz107
|
||||||
|
ilz108
|
||||||
inz001
|
inz001
|
||||||
inz002
|
inz002
|
||||||
inz003
|
inz003
|
||||||
@@ -1494,6 +1559,7 @@ mez029
|
|||||||
mez030
|
mez030
|
||||||
mez031
|
mez031
|
||||||
mez032
|
mez032
|
||||||
|
mez033
|
||||||
miz001
|
miz001
|
||||||
miz002
|
miz002
|
||||||
miz003
|
miz003
|
||||||
@@ -1501,18 +1567,15 @@ miz004
|
|||||||
miz005
|
miz005
|
||||||
miz006
|
miz006
|
||||||
miz007
|
miz007
|
||||||
miz008
|
|
||||||
miz009
|
miz009
|
||||||
miz010
|
miz010
|
||||||
miz011
|
miz011
|
||||||
miz012
|
miz012
|
||||||
miz013
|
miz013
|
||||||
miz014
|
miz014
|
||||||
miz015
|
|
||||||
miz016
|
miz016
|
||||||
miz017
|
miz017
|
||||||
miz018
|
miz018
|
||||||
miz019
|
|
||||||
miz020
|
miz020
|
||||||
miz021
|
miz021
|
||||||
miz022
|
miz022
|
||||||
@@ -1579,6 +1642,14 @@ miz082
|
|||||||
miz083
|
miz083
|
||||||
miz084
|
miz084
|
||||||
miz085
|
miz085
|
||||||
|
miz086
|
||||||
|
miz087
|
||||||
|
miz088
|
||||||
|
miz095
|
||||||
|
miz096
|
||||||
|
miz097
|
||||||
|
miz098
|
||||||
|
miz099
|
||||||
mnz001
|
mnz001
|
||||||
mnz002
|
mnz002
|
||||||
mnz003
|
mnz003
|
||||||
@@ -1901,20 +1972,15 @@ mtz024
|
|||||||
mtz025
|
mtz025
|
||||||
mtz026
|
mtz026
|
||||||
mtz027
|
mtz027
|
||||||
mtz028
|
|
||||||
mtz029
|
mtz029
|
||||||
mtz030
|
mtz030
|
||||||
mtz031
|
mtz031
|
||||||
mtz032
|
mtz032
|
||||||
mtz033
|
mtz033
|
||||||
mtz034
|
mtz034
|
||||||
mtz035
|
|
||||||
mtz036
|
mtz036
|
||||||
mtz037
|
mtz037
|
||||||
mtz038
|
|
||||||
mtz039
|
|
||||||
mtz040
|
mtz040
|
||||||
mtz041
|
|
||||||
mtz042
|
mtz042
|
||||||
mtz043
|
mtz043
|
||||||
mtz044
|
mtz044
|
||||||
@@ -1942,6 +2008,16 @@ mtz065
|
|||||||
mtz066
|
mtz066
|
||||||
mtz067
|
mtz067
|
||||||
mtz068
|
mtz068
|
||||||
|
mtz138
|
||||||
|
mtz139
|
||||||
|
mtz141
|
||||||
|
mtz169
|
||||||
|
mtz170
|
||||||
|
mtz171
|
||||||
|
mtz172
|
||||||
|
mtz173
|
||||||
|
mtz228
|
||||||
|
mtz235
|
||||||
ncz001
|
ncz001
|
||||||
ncz002
|
ncz002
|
||||||
ncz003
|
ncz003
|
||||||
@@ -2029,21 +2105,25 @@ ncz089
|
|||||||
ncz090
|
ncz090
|
||||||
ncz091
|
ncz091
|
||||||
ncz092
|
ncz092
|
||||||
ncz093
|
|
||||||
ncz094
|
ncz094
|
||||||
ncz095
|
|
||||||
ncz096
|
ncz096
|
||||||
ncz098
|
|
||||||
ncz099
|
ncz099
|
||||||
ncz102
|
ncz102
|
||||||
ncz103
|
|
||||||
ncz104
|
|
||||||
ncz105
|
ncz105
|
||||||
ncz106
|
ncz106
|
||||||
ncz107
|
ncz107
|
||||||
ncz108
|
ncz108
|
||||||
ncz109
|
ncz109
|
||||||
ncz110
|
ncz110
|
||||||
|
ncz193
|
||||||
|
ncz194
|
||||||
|
ncz195
|
||||||
|
ncz196
|
||||||
|
ncz198
|
||||||
|
ncz199
|
||||||
|
ncz203
|
||||||
|
ncz204
|
||||||
|
ncz205
|
||||||
ncz501
|
ncz501
|
||||||
ncz502
|
ncz502
|
||||||
ncz503
|
ncz503
|
||||||
@@ -2253,6 +2333,47 @@ nmz028
|
|||||||
nmz029
|
nmz029
|
||||||
nmz033
|
nmz033
|
||||||
nmz034
|
nmz034
|
||||||
|
nmz201
|
||||||
|
nmz202
|
||||||
|
nmz203
|
||||||
|
nmz204
|
||||||
|
nmz205
|
||||||
|
nmz206
|
||||||
|
nmz207
|
||||||
|
nmz208
|
||||||
|
nmz209
|
||||||
|
nmz210
|
||||||
|
nmz211
|
||||||
|
nmz212
|
||||||
|
nmz213
|
||||||
|
nmz214
|
||||||
|
nmz215
|
||||||
|
nmz216
|
||||||
|
nmz217
|
||||||
|
nmz218
|
||||||
|
nmz219
|
||||||
|
nmz220
|
||||||
|
nmz221
|
||||||
|
nmz222
|
||||||
|
nmz223
|
||||||
|
nmz224
|
||||||
|
nmz225
|
||||||
|
nmz226
|
||||||
|
nmz227
|
||||||
|
nmz228
|
||||||
|
nmz229
|
||||||
|
nmz230
|
||||||
|
nmz231
|
||||||
|
nmz232
|
||||||
|
nmz233
|
||||||
|
nmz234
|
||||||
|
nmz235
|
||||||
|
nmz236
|
||||||
|
nmz237
|
||||||
|
nmz238
|
||||||
|
nmz239
|
||||||
|
nmz240
|
||||||
|
nmz241
|
||||||
nmz401
|
nmz401
|
||||||
nmz402
|
nmz402
|
||||||
nmz403
|
nmz403
|
||||||
@@ -2270,46 +2391,6 @@ nmz414
|
|||||||
nmz415
|
nmz415
|
||||||
nmz416
|
nmz416
|
||||||
nmz417
|
nmz417
|
||||||
nmz501
|
|
||||||
nmz502
|
|
||||||
nmz503
|
|
||||||
nmz504
|
|
||||||
nmz505
|
|
||||||
nmz506
|
|
||||||
nmz507
|
|
||||||
nmz508
|
|
||||||
nmz509
|
|
||||||
nmz510
|
|
||||||
nmz511
|
|
||||||
nmz512
|
|
||||||
nmz513
|
|
||||||
nmz514
|
|
||||||
nmz515
|
|
||||||
nmz516
|
|
||||||
nmz517
|
|
||||||
nmz518
|
|
||||||
nmz519
|
|
||||||
nmz520
|
|
||||||
nmz521
|
|
||||||
nmz522
|
|
||||||
nmz523
|
|
||||||
nmz524
|
|
||||||
nmz525
|
|
||||||
nmz526
|
|
||||||
nmz527
|
|
||||||
nmz528
|
|
||||||
nmz529
|
|
||||||
nmz530
|
|
||||||
nmz531
|
|
||||||
nmz532
|
|
||||||
nmz533
|
|
||||||
nmz534
|
|
||||||
nmz535
|
|
||||||
nmz536
|
|
||||||
nmz537
|
|
||||||
nmz538
|
|
||||||
nmz539
|
|
||||||
nmz540
|
|
||||||
nvz001
|
nvz001
|
||||||
nvz002
|
nvz002
|
||||||
nvz003
|
nvz003
|
||||||
@@ -2744,7 +2825,6 @@ scz011
|
|||||||
scz012
|
scz012
|
||||||
scz013
|
scz013
|
||||||
scz014
|
scz014
|
||||||
scz015
|
|
||||||
scz016
|
scz016
|
||||||
scz017
|
scz017
|
||||||
scz018
|
scz018
|
||||||
@@ -2780,10 +2860,13 @@ scz049
|
|||||||
scz050
|
scz050
|
||||||
scz051
|
scz051
|
||||||
scz052
|
scz052
|
||||||
scz053
|
|
||||||
scz054
|
scz054
|
||||||
scz055
|
scz055
|
||||||
scz056
|
scz056
|
||||||
|
scz058
|
||||||
|
scz059
|
||||||
|
scz115
|
||||||
|
scz116
|
||||||
sdz001
|
sdz001
|
||||||
sdz002
|
sdz002
|
||||||
sdz003
|
sdz003
|
||||||
@@ -3014,8 +3097,6 @@ txz051
|
|||||||
txz052
|
txz052
|
||||||
txz053
|
txz053
|
||||||
txz054
|
txz054
|
||||||
txz057
|
|
||||||
txz058
|
|
||||||
txz059
|
txz059
|
||||||
txz060
|
txz060
|
||||||
txz061
|
txz061
|
||||||
@@ -3031,14 +3112,10 @@ txz070
|
|||||||
txz071
|
txz071
|
||||||
txz072
|
txz072
|
||||||
txz073
|
txz073
|
||||||
txz074
|
|
||||||
txz075
|
txz075
|
||||||
txz076
|
txz076
|
||||||
txz077
|
txz077
|
||||||
txz078
|
txz078
|
||||||
txz079
|
|
||||||
txz080
|
|
||||||
txz081
|
|
||||||
txz082
|
txz082
|
||||||
txz083
|
txz083
|
||||||
txz084
|
txz084
|
||||||
@@ -3213,11 +3290,38 @@ txz254
|
|||||||
txz255
|
txz255
|
||||||
txz256
|
txz256
|
||||||
txz257
|
txz257
|
||||||
txz258
|
|
||||||
txz259
|
txz259
|
||||||
txz260
|
txz260
|
||||||
txz261
|
txz261
|
||||||
txz262
|
txz262
|
||||||
|
txz270
|
||||||
|
txz271
|
||||||
|
txz272
|
||||||
|
txz273
|
||||||
|
txz274
|
||||||
|
txz275
|
||||||
|
txz276
|
||||||
|
txz277
|
||||||
|
txz278
|
||||||
|
txz279
|
||||||
|
txz280
|
||||||
|
txz281
|
||||||
|
txz282
|
||||||
|
txz300
|
||||||
|
txz313
|
||||||
|
txz317
|
||||||
|
txz335
|
||||||
|
txz336
|
||||||
|
txz337
|
||||||
|
txz338
|
||||||
|
txz342
|
||||||
|
txz343
|
||||||
|
txz344
|
||||||
|
txz345
|
||||||
|
txz346
|
||||||
|
txz347
|
||||||
|
txz351
|
||||||
|
txz353
|
||||||
txz418
|
txz418
|
||||||
txz419
|
txz419
|
||||||
txz420
|
txz420
|
||||||
@@ -3225,6 +3329,12 @@ txz421
|
|||||||
txz422
|
txz422
|
||||||
txz423
|
txz423
|
||||||
txz424
|
txz424
|
||||||
|
txz436
|
||||||
|
txz437
|
||||||
|
txz438
|
||||||
|
txz442
|
||||||
|
txz443
|
||||||
|
txz447
|
||||||
utz001
|
utz001
|
||||||
utz002
|
utz002
|
||||||
utz003
|
utz003
|
||||||
@@ -3542,17 +3652,11 @@ wvz031
|
|||||||
wvz032
|
wvz032
|
||||||
wvz033
|
wvz033
|
||||||
wvz034
|
wvz034
|
||||||
wvz035
|
|
||||||
wvz036
|
|
||||||
wvz037
|
|
||||||
wvz038
|
|
||||||
wvz039
|
wvz039
|
||||||
wvz040
|
wvz040
|
||||||
wvz042
|
wvz042
|
||||||
wvz043
|
wvz043
|
||||||
wvz044
|
wvz044
|
||||||
wvz046
|
|
||||||
wvz047
|
|
||||||
wvz050
|
wvz050
|
||||||
wvz051
|
wvz051
|
||||||
wvz052
|
wvz052
|
||||||
@@ -3572,6 +3676,18 @@ wvz511
|
|||||||
wvz512
|
wvz512
|
||||||
wvz513
|
wvz513
|
||||||
wvz514
|
wvz514
|
||||||
|
wvz515
|
||||||
|
wvz516
|
||||||
|
wvz517
|
||||||
|
wvz518
|
||||||
|
wvz519
|
||||||
|
wvz520
|
||||||
|
wvz521
|
||||||
|
wvz522
|
||||||
|
wvz523
|
||||||
|
wvz524
|
||||||
|
wvz525
|
||||||
|
wvz526
|
||||||
wyz001
|
wyz001
|
||||||
wyz002
|
wyz002
|
||||||
wyz003
|
wyz003
|
||||||
@@ -3608,8 +3724,6 @@ wyz056
|
|||||||
wyz057
|
wyz057
|
||||||
wyz058
|
wyz058
|
||||||
wyz071
|
wyz071
|
||||||
wyz098
|
|
||||||
wyz099
|
|
||||||
wyz101
|
wyz101
|
||||||
wyz102
|
wyz102
|
||||||
wyz103
|
wyz103
|
||||||
@@ -3629,3 +3743,5 @@ wyz116
|
|||||||
wyz117
|
wyz117
|
||||||
wyz118
|
wyz118
|
||||||
wyz119
|
wyz119
|
||||||
|
wyz198
|
||||||
|
wyz199
|
||||||
|
|||||||
Reference in New Issue
Block a user