From 64ace51e02790bf88e162a15236c5ac2af865c5e Mon Sep 17 00:00:00 2001 From: marc tobias Date: Wed, 1 Jul 2020 17:38:44 +0200 Subject: [PATCH] move data-sources/ directory in new git repos --- data-sources/country-grid/README.md | 77 - data-sources/country-grid/country_grid.sql | 33 - data-sources/country-grid/mexico.quad.png | Bin 327203 -> 0 bytes data-sources/gb-postcodes/README.md | 56 - .../gb-postcodes/convert_codepoint.php | 37 - data-sources/us-tiger/README.md | 26 - data-sources/us-tiger/convert.sh | 48 - .../us-tiger/tiger_address_convert.py | 620 ---- data-sources/us-tiger/tiger_county_fips.json | 3237 ----------------- data-sources/wikipedia-wikidata/README.md | 58 - .../wikipedia-wikidata/import_wikidata.sh | 274 -- .../wikipedia-wikidata/import_wikipedia.sh | 297 -- data-sources/wikipedia-wikidata/languages.txt | 39 - .../wikipedia-wikidata/mysql2pgsql.perl | 951 ----- .../wikidata_place_type_levels.csv | 199 - .../wikidata_place_types.txt | 195 - .../wikipedia-wikidata/wikidata_places.md | 200 - docs/CMakeLists.txt | 16 - docs/admin/Import.md | 2 +- docs/data-sources/overview.md | 30 + docs/mkdocs.yml | 4 - 21 files changed, 31 insertions(+), 6368 deletions(-) delete mode 100644 data-sources/country-grid/README.md delete mode 100644 data-sources/country-grid/country_grid.sql delete mode 100644 data-sources/country-grid/mexico.quad.png delete mode 100644 data-sources/gb-postcodes/README.md delete mode 100755 data-sources/gb-postcodes/convert_codepoint.php delete mode 100644 data-sources/us-tiger/README.md delete mode 100755 data-sources/us-tiger/convert.sh delete mode 100755 data-sources/us-tiger/tiger_address_convert.py delete mode 100644 data-sources/us-tiger/tiger_county_fips.json delete mode 100644 data-sources/wikipedia-wikidata/README.md delete mode 100755 data-sources/wikipedia-wikidata/import_wikidata.sh delete mode 100755 data-sources/wikipedia-wikidata/import_wikipedia.sh delete mode 100644 data-sources/wikipedia-wikidata/languages.txt delete mode 100755 data-sources/wikipedia-wikidata/mysql2pgsql.perl delete mode 100644 data-sources/wikipedia-wikidata/wikidata_place_type_levels.csv delete mode 100644 data-sources/wikipedia-wikidata/wikidata_place_types.txt delete mode 100644 data-sources/wikipedia-wikidata/wikidata_places.md diff --git a/data-sources/country-grid/README.md b/data-sources/country-grid/README.md deleted file mode 100644 index 5c036bac..00000000 --- a/data-sources/country-grid/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# Fallback Country Boundaries - -Each place is assigned a `country_code` and partition. Partitions derive from `country_code`. - -Nominatim imports two pre-generated files - - * `data/country_name.sql` (country code, name, default language, partition) - * `data/country_osm_grid.sql` (country code, geometry) - -before creating places in the database. This helps with fast lookups and missing data (e.g. if the data the user wants to import doesn't contain any country places). - -The number of countries in the world can change (South Sudan created 2011, Germany reunification), so can their boundaries. This document explain how the pre-generated files can be updated. - - - -## Country code - -Each place is assigned a two letter country_code based on its location, e.g. `gb` for Great Britain. Or `NULL` if no suitable country is found (usually it's in open water then). - -In `sql/functions.sql: get_country_code(geometry)` the place's center is checked against - - 1. country places already imported from the user's data file. Places are imported by rank low-to-high. Lowest rank 2 is countries so most places should be matched. Still the data file might be incomplete. - 2. if unmatched: OSM grid boundaries - 3. if still unmatched: OSM grid boundaries, but allow a small distance - - - -## Partitions - -Each place is assigned partition, which is a number 0..250. 0 is fallback/other. - -During place indexing (`sql/functions.sql: placex_insert()`) a place is assigned the partition based on its country code (`sql/functions.sql: get_partition(country_code)`). It checks in the `country_name` table. - -Most countries have their own partition, some share a partition. Thus partition counts vary greatly. - -Several database tables are split by partition to allow queries to run against less indices and improve caching. - - * `location_area_large_` - * `search_name_` - * `location_road_` - - - - - -## Data files - -### data/country_name.sql - -Export from existing database table plus manual changes. `country_default_language_code` most taken from [https://wiki.openstreetmap.org/wiki/Nominatim/Country_Codes](), see `utils/country_languages.php`. - - - -### data/country_osm_grid.sql - -`country_grid.sql` merges territories by country. Then uses `function.sql: quad_split_geometry` to split each country into multiple [Quadtree](https://en.wikipedia.org/wiki/Quadtree) polygons for faster point-in-polygon lookups. - -To visualize one country as geojson feature collection, e.g. for loading into [geojson.io](http://geojson.io/): - -``` --- http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html - -SELECT row_to_json(fc) -FROM ( - SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features - FROM ( - SELECT 'Feature' As type, - ST_AsGeoJSON(lg.geometry)::json As geometry, - row_to_json((country_code, area)) As properties - FROM country_osm_grid As lg where country_code='mx' - ) As f -) As fc; -``` - -`cat /tmp/query.sql | psql -At nominatim > /tmp/mexico.quad.geojson` - -![mexico](mexico.quad.png) diff --git a/data-sources/country-grid/country_grid.sql b/data-sources/country-grid/country_grid.sql deleted file mode 100644 index 08957cb7..00000000 --- a/data-sources/country-grid/country_grid.sql +++ /dev/null @@ -1,33 +0,0 @@ --- Script to build a calculated country grid from existing tables -DROP TABLE IF EXISTS tmp_country_osm_grid; -CREATE TABLE tmp_country_osm_grid as select country_name.country_code,st_union(placex.geometry) as geometry from country_name, - placex - where (lower(placex.country_code) = country_name.country_code) - and placex.rank_search < 16 and st_area(placex.geometry) > 0 - group by country_name.country_code; -ALTER TABLE tmp_country_osm_grid add column area double precision; -UPDATE tmp_country_osm_grid set area = st_area(geometry::geography); - --- compare old and new -select country_code, round, round(log(area)) from (select distinct country_code,round(log(area)) from country_osm_grid order by country_code) as x - left outer join tmp_country_osm_grid using (country_code) where area is null or round(log(area)) != round; - -DROP TABLE IF EXISTS new_country_osm_grid; -CREATE TABLE new_country_osm_grid as select country_code,area,quad_split_geometry(geometry,0.5,20) as geometry from tmp_country_osm_grid; -CREATE INDEX new_idx_country_osm_grid_geometry ON new_country_osm_grid USING GIST (geometry); - --- Sometimes there are problems calculating area due to invalid data - optionally recalc -UPDATE new_country_osm_grid set area = sum from (select country_code,sum(case when st_area(geometry::geography) = 'NaN' THEN 0 ELSE st_area(geometry::geography) END) - from new_country_osm_grid group by country_code) as x where x.country_code = new_country_osm_grid.country_code; - --- compare old and new -select country_code, x.round, y.round from (select distinct country_code,round(log(area)) from country_osm_grid order by country_code) as x - left outer join (select distinct country_code,round(log(area)) from new_country_osm_grid order by country_code) as y - using (country_code) where x.round != y.round; - --- Flip the new table in -BEGIN; -DROP TABLE IF EXISTS country_osm_grid; -ALTER TABLE new_country_osm_grid rename to country_osm_grid; -ALTER INDEX new_idx_country_osm_grid_geometry RENAME TO idx_country_osm_grid_geometry; -COMMIT; diff --git a/data-sources/country-grid/mexico.quad.png b/data-sources/country-grid/mexico.quad.png deleted file mode 100644 index 61c128026951807c85c3c9add3275f93f451269c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327203 zcmZ^}1yEd3vo1QgTX1)G1_%u9?gV#tcMCqjA$aiM2^QRKu;3OnxD4*DFaJ6B-FvF; zd%J2^t=-*U+p6l-wR*>>tIA=ZlAr6u8{TFV5{Q(cD%8Q8ID(>YW!RH13u1^|RZGg`W^$Pbp1 z>UFdcw0asieLUYIXiyUol7CSZ>Jj0wEisN17RE;)uvLsBL~~uQ2b@>8EP{?hd^dvM z8m9DZYnwO$c*43g3gAD05o}vUTG(J>_e&J?zd&(VY$^b#Ztu$KgN~mclep8>qZ(;9 zc!0)d)kpbwqvu^$3yNkX3@CJqOnu-nLF_M2x%|eMVgnlrihNMXuu&X(VCm;&{z}!K zG%R2pjx;P_pF4AKnN@+z-@gLb{B2ajivXx+-nO;6)WjyQr|iG8=$4P?y29-AljNW@ zw=(7up|!juV#RJ&e#%iD72{1!`)1@4`<3yI$Hh-9MfvOG#G6>s&Syi}_8<=oPpjmp z*+S%91-Z$SkdM z6#`m$Op+-oZpP|q(mjDGXo7qnjr^l4|88C=AQn+!bBXiHBV~)Dwjv|J?3US}W+bd> z^qR2!&WP2F%tj~Bw1!2L8*j*&bZhiAgXPj`z}4Med%ZM>Ja}L(7^eW-t9;So*)tS} z+ib)J;IF4mbs{s%eE>|L2)FS%_J7n-1;Bj~$DavE|O+K_#owBhtP=05*b^lc>vHxd4Eo_LD7R~pVJ!Jzan4f6_kZ63u~gD4hp{NhoKKNX1DtVjHcVI<Ym@^TH#A6JRL;42HHMx|yAG0i! z5%$sddGLPW=S^ z)RJ&p3`Ln-lG=<0*dj3+1KQgL7AU{I`DH(3JtRug5U2i?_f(*nCDBAVgg<1d%(;oF zl4xdV_rC>zV|pY6~Z(Hb2a z&mBH5m>)bGmmE6HRnGZ;k6UP3$otu$?OSkWy%uKQXiqWcH-}o5mwTsz*w$>+G|*2?0_Gu6)P=~wHW8k~MQb(|jf6#2CIc>C1aW=+ax{c@H) zj(5GAygR%DpHK?g3BU{Of_Mcwy&HXY1v3QK-McW2+{RZceK zEed@U{Os-Sozkw|antdwouU2A{nTPMYim4V{HF`iN7I%+F3`WCZ5^$)?FC-%5Xb`U z#7>3W23wqdxIWnC){i96Lj=o@rIW}c#zf4Ixig`&ZGCTjDo8o#K@?w<|n~z8T=sh@CvIYk+LaMZ|kAqVH#^YdY2Yb z)KaG>KxGl9DC4Rbp?O~(B9Epdl*|8(BF7{(Y)XDyfOP@8JjRfKl+C2MRmy_)cP3Lt zE9Y{Xl{yJcb+SY~Lj996$t+pZZ}z>7-yIE|^`rHo90~dX4%tsUm-Wp~$0r!eoF1?q zAx4QNlZNY!{dR*Z_-m~CtXNgyI`q{J2F~>$SMT$0y?k;D9~R51U+EV`TbS-&+n2mC z{Ga?CuL8Q!UTRoO=}o_FG_6~{zMao(#C5xFY&M$TN4p}tgda!UMGZ!o@?Y_rZ0y!m zTFo8o?@pW=8a1D+#;&of2e{_kH`B@-$q34btlGNPuJtWx)a|@Z$_UlsPqD4{#I-7Q zD`|W%(Ck_Dx?fl`Rg5b29Sa(BxH~vqu7g5M-qt6BMW27%AD?sneSbun!MewSr>J26 z$jK@CMI_7n;;|@8s#=Wab5+%JHB;3?fL@TEJKeUtQmLc$o<>)(;g3xg|4;9~9*14X z?}bcEoehHvqfNB@U~`iT{2sNo)$UcJbDcng!k>ayPHysn^FV|qb!VSbv%ET04NB7u zcm4+_tq3_tcEM?gXwc+=(X#)^nD$jLrUJwA7!>wqYxm(R#?}Vm72RYGAweJM)@{X|%dTu?| z$JTYf>e9kJ_WXSBhBoaT&wYM)nc*k;xb!UhWOH*m?wHcwr2`DICLAj7y*YT zfhd!LEJ7S!$(|nvM`k%&Iq6NSyZM9A9`F2kExok+(>;a_Veoi1cdY>H6o{c8umHCN zfB}D8k=s@Y+;^BA_%~d&o3)*NSO5*ecTyN4#~IAGKeIn*&bLGX(vN_p-wJ|nJo@#i zJCOvHnD#2Ma&jBgue6h>p|!@v#kAhV#ip#uR+O;Q0>U$6N!c)0rrb#YD#w;donpRC z(-SrLOU#T{G2ee3Eda$$Uf&Y{AfW%x3!|V(ck!?9MYPw}^U_mM23fi~bC_GXT3B=V zIlKLn1^|TpK>wD`)?VgRe$GxVo*+LFn*Wjj{agQs%t=G_Um{+PA~bp`>Qqv$9@bQR z9K0M{G@__fR8+zqRyH6_Y1#h;|Mw+AW9Q}N2IA!O_4VcO1#-B0*m80U3JP*^@o@6+ zu>X@__w;x1GWTP5@udB4CI7D;X=_hQ4|_K+dsi2#|L8ThaP{^Qp`rPYq5u8-x1ZL2 z_W#F{i|79e>tBGJ|KV_Qb8vC~f5E)$ZT^2?|Ka>M?7!mrZ*#)`Q3g`C_p^4=m$rAd zcJch@nkYB$BaiTZ+4;X%|Hsq+0oD5-P=0>?{|Wsctp5T1k1rrK4}0r>Y5GqxM7f1I z|1aAAk{9OuPp1Ay=KgzI{)_r=Uqn%bIsf+_i=xU`4@Cd~;s6C{32i@^_%8iqt7ZQU z-ybaZU3XpgXNSvNaOk1bfbdO@uQc{65@R&hW6f4kFS~?Y0#4urx5$VsB&B9Zt%X3JBw+CI@# zCh0hhRm?@+9^oP&B8br>$?jAmLj0}ErlRG(-)tTe8gV#Hi4NI+igKIx$Br(4I_qEUZP~1Hu@cJ zfnt;<17Scp#BJU&a@mPFH{TZW=TF_H-!F^{yR{nnb%YwsP$g27X z*r-gLRCOErat?{WosxzA;=KOjK;+d>WHb)0JiK<(6GLzM8zfJt264at;wejApa9ke zk;_6E&6`_4@DsR3emoCmy*u6AWy?((GWUEm$ok0!oSZZF@*xR`@L6*GixDwrB7A=G z694NPX7?Qt$rvP$-iHOsrF)|@RE!fM2TA5nR z*JmC5^UW)#`>R@%lY1;b85s3SdjvnL1KXo*nTw3SpV-rQWNM~X+0Xg;Hd)FPjd=J? zIPtru&F3H$?sCr{v4Wr6Shq~Il+B0W&(}i1UKa7)wq?W&HN#O4lU`X0nQcQxFOp=} zPTVCkV4rhj5vfdpkC}NGmXl&G=R@a{=^0Xpd7z5($YKaYor%_RM{6Z5cJc8bH?!eU z;0{=+DX{wtnPGk%EhLQMvJ!nRkKocZ!6?0onm#}K{&B8oSp>8C491e1@@kpIGk^r@ zz-Q-S`;xEC}3jmq!VJpVAV!pfdB2) z$7$Fu4RhJcY+NpPM8I6EG44-4+r0vqVo|%Uv;5vO@jLl8+3+cRwwPt^cBh*SUnUmu z+1@K7xZqYbdIk|cdxIkQfNf8jiCdGS*SULiS8b4mmL~xmRj>fs&J3E2l%o}8a7OnjFdn6ExaIm7A{_{{54;9K zTw3ccJ`)!gWnG@Ez#GrpYzlr8ut_&=&(mME~ zcClKl&M)FR;Ui`@+ekJfp5P-ErTr|#vc1{)a;eCzn$2ZuvbpZRvY|=$E0ulS5ar&q zhtk2b!Th~Xb*VFiT6u9&^1hF$^XBE+yt^5jBKRui;AivsI*QnnmKc5rv?T->bmduq zLdao?G8KILlRBaM>~9BQjff90=meJ%>;1|19bso3^O&$U%Fwl&BL8t5+TSEciSqfX zloPD!%ztBWTIc>~(duOh?0o84ys$5J^QxoF(9P^`D0u#L(IobU+WvL_b&g9+j57b_ z0pkUNxx>?IQq;1H%FjgEoVbpr6a^cshq?ThMwGB4mt&ij49gZ%|DYf$BBHDAmpe?` zH%$BeT`NEAmDAI@jlU?Qtd!7|)sZJ^=(XV08i<%n_UIAsx{D}SBc}%~=;N?3rSF|o zL>m!s|9Vidwf;tW$?>mc$ni@8);DIZZrd+@qVpYr2j)qF%0Zor!h`#@lg2VS0Y&S} zTlpwD)9-9L{E{w+Yef7J{Hk49oa|8^HDna?=TW6?$6JN|VqO8y<}jwN1<)TkBTFdl zLGX92q@zpnmr)=s_G)v;jJua3rGC|QyJ(=GQ9og~2h?!Hkb^Dl_W5;svtfDLNiVO9 z$cA_>5UX2h_3GiGlFPIUJ6NN|_sgW0WZ?AH`m$a5(W}eBc4p({9}9N8sr~+O+xJPa zr|-Da0>oflOjSryRW2A-ymAU2Q&lL4rq>J^XV#)w8Ht-fE4zY>v6vcev1}%y0-HHL zhDrfJ*x>}sqnITjp34=M(l17GTWp@w=ZF3rm`j?K98&R-6sK2v%o<&j`-FT=hMS9m zNlLJ1z}sW%_i@2@DRk__4H!!Fg=bY5Y~mUr2wi?IR`%b+icp}PM$1ML;yQmo zMV0Z2$i#-yp5inU7H{{B;czg2K4uPDQuJ-qPvpKqb=NhFwRQf&A`%3aiPt%!p7mo7 zN^&CcFN+>1mU4#ph1|U=<-co*ns&R_bLQ-53*dNcS<|QO$bk!h0SRO@PqZSTA3)9U zH2d656w4%P1^3ev*#3qoI)0)VZ9Cr%b4uGep*5%pV^I`fZ6!E+k#+^^Z%Hu4-Jd|z z?fTGa-l3mDL{v+Rm%d^JWchP)zf`;Ivn2YGVc;Ddo*eFOqJ`z%5I5PcM6xlNX54+MRG2-m*b0IcM5znL?z1z(C0FtL}bCHzA54PiZ z;*}6+vk~R}3M3OZ+>L^V9AK-`&+T&qy8OjE49&?As?F!&!xtAQ(Fk=oJc4_f{*^3; zPFE-2ZMxaH9Xo+eUk8Sy?b_&s(wuR=&zAGEH@5Ip6BfA~wWerjf70uO1H-0faIM6+ zC2w9EC+N8};YmOj9Kpg#JV`a*H(_I8dzA~1Ur_JhgMmO2?vsyT@e`z%lA4<$=;a2$#yDNZ!K9fma_9xaX8abv_$F(L zkw#NdhC%COoaCdL=OHplp7@9fC>%CIsaq9rjHFvZI+f!!8SnP^Mi!s#8K;P)-R6zA;4)ntr55VXfLrzZ5r%4u43r{Co9JRh`{7jN;7%ZT=lv9y;fVDVQ3{m>i zbg}tBP-wvqxj@+}S`FMP|GWo@fO>vvtYmh?`Ciwcb!d}ZU1MnCDQ(0= zC@CX0j1hOw6NF4$iE6bluX+pH7=(r|4owae9RAeX;?pNiKirABf8DuA%=`V+k$Ukr zA1XWpdH2rA;S?1Jxv{bD0}g5ys7rGdxzq_pP+0aO@;r)-!%|Z5q>0`AJuO#3Y3G$baR4tqD6~%4xfW*f24*IIZfX^&rPWu=>0|SB!oV;k^>b#X3zZx^tA@=? zSf4q%MPs^d2IbBxx<{O`ICiFO?e{>&t+ncN*_;j7an_t8*mb@q2Itn0R@g6&jo&(- zFPJtvy3}(JC-8#bz%;E+P;1~%nLjj5zC8uBio{S;tU5u?)GZ8^UXD)?5&l44}XfHGRj6d+cxzd zZkXt}@w!NOCZo{rK+TK1FEG7BOw>vhf+Sn$*lY>$n7>6Gt3EwxB6yjcN1pJeh(Iaa zRY(gE^hO;Hg=dKp9PAV2&CwtQ63OZ}HaVU=Oj6nUc*tds-7`8Ce%|A6!2a9y^{K$I zlDt{p(~NOb)UJ~(jc%I$7N!O%sumH?D#u@S1^EqnEF~3r729qhuBxDEd zD?iSQD5TqR<;Q_8-i0Z4sC*b079>S2x)@jp}c20z$8hVW1 z`S3l$gUrf@4DB-~p2xu?Z#0sdvl^M0n23}v0KxU|tLzfh*ZkTE_j9dorTO|gioD!S zuL36d{n2J!bFqCzR%xjQ0nTSCOTaZ%U|-e-ignL7e0-p8y#%g}o}!9KtxusuQGC{3%lNf%xguO!5B5dd|5<%h(M$ zq7|pI*uKAC*y2GO2xM6HfpDR;dMJ&bpat?oRBT#t(VEj`+Y+PZn?vvj&s%+FNjY$v z$?0uDG3IPMQ~e=f_B`F?0;t2<`&Q$*%2vOp5X!IU$ zM7W$PRSb16hv^cP;-m=*4S}n6p3fq@W>JWU3O6&z!5`Ff^YZ${dq^_~DWDB`$QSU` zcjKa{{5zd2%gzbjdjWwZw}sP8}{`A5I!U3H8{_0IYqaT9uu2B$Ii z@uyDN8aE&X4gYp~>AFO@)1xXrJB;_9t+xy}&Q?3kTs*35lXU=I6Z6U_=#e^*6-S@Y=-Kh0%y_uvfQ$F@XcY--hI$*eHk~3Tg@cXK!P5jgz>Wh`s)a>^&WGl8IMb)%5#_7xBSa-^pRKJcHEv zdk7W)(IEfj%+7J#4WVJ*l3&!H!VhWKV%ZchO!X&!f5pAAcDz9%9rsI2&ir5|o|nJ( z!tAt%w=2i+De-DrlwB&+3H-+af!xG)ay54qsc!N^#bR+T9`Jf;T~?35kEP%3Bg&Vi z<#k6Gv&xfyEuY7OF;LX zX!JGOoHcAsOaBg`=pfOD-Vc8Gm%)Q49LiP*_Thsz>$WKU*KOuYqJF@WzMAy5<}kTD zyzmeSpQl1d>y>MBBN33izM$*w6rOAbDb0*!yc9r%9KQdKrvp7YN-bRQ<)$iWa;syH zPazi>^rr+8u`?WBZ4bHu(X5wfKZS={X`-a(B8jlT-}}0TNjG$!mq;Sh3X+o{zI~Jp zjetpGMvvkRporv`YFs_Nmn_F%p-=%6goDJ?;L*N)@;^K43j3v?iKK;owHKvCgheJm zo)LDyU051KTx=Yx;gl({dJg+d-3i07x6*75y8fLwStLFQ0j z8ibM3Y-J2W0BX^EGT&pOtYx)!#Ci@^IyEfJ!_oC4dTh;gWrT17@>q!uJpQ^ENi5SF zavToNqN<9u`x%%i2#HpRazkx$f&macCpPw__j@jc}VP^^9+CSlBT^@XXk2UN*jVa5&#TEl+?hqFt4@>TGrAh(nUq?71E z%}Hnlqw$r{Hi-hQWo6X9Z)=xGdj>5quqZLEdBBzp|J^b&oi1Eq`J16B6jW#Joi zjFASQ#k3zh=i_Fx_ zI~Qk@WA5X^rXNKZJ76ys#jD1R6U7o!hWh!B=G&#KztH@cvE76{D<&m=qXy0hX3E)x~ZuFWs1bH$=!b zxP8nTWag*x7rE$UPNqOcqUWZ;a(ke%_%Y^Ual#G#QEQK9VsMJe3AR4k2!c^! z0YHmEcJt$=(C^ksfDJGg&akTJn&j`#ut}Xq^41T_g{aLh=w?no*pT$jv&!=Q$%2iF zf{n@0m9YXWG9=cHHvzbT$t8=8XlR2DoxVI}>x_}!Sp-T%v+$^8iMQN{Rm|c;L>FyH zKY2ky`+wbAn{VWoqR3||1vAlIoK8RV4LNdl;f0*(z89&=Wjj_P46$~QDSepJy;J+(FJc&rs%aEd4xT$D*KEu zt8lv^lscc$am2yfUyQng*o{8#+B}>s_TZSjzA2d}@Fe+k;JhttydrI_SNlRT&)!1d z#g%?uZ@IqOzT5jfBZ(n@e%j*%zi*zu@bEW?k3u~v%;Qi28={5Qj_2Nb3)F8`WLm>d z?A|vgK@7qIC;emvQT-JplV7gd^Mv5{o!2LQt+gwjc$`oRKY6(4p zA>?jie~DqC3>>=fkM$?;U5?xoj9k$O$l#w#7WkUDA)kzxb(-1yI0@Vf_9pRj6Z`lxgU(~ z0Dhizp9C6B;NB|}gd-G&_+2SqLhoS0fk5~}G-`DDwK3s>EmH(7+E8A=!P#9P3=S-7 zFR$eyOE&#eF07u*pqB*|(OLc(cFDIp&S6Rh!C?qHK$}>HR$x#C?

WJnej4|tGAyz`_VH!UlM|tN*6_TFOSto9f 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 qX+_5u^cSGX#FNZpH`vVDJ|R-N?2=6()lv! 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�cFE4LiWp{+xR?S*F=A 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 z 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 U?OM|k diff --git a/data-sources/gb-postcodes/README.md b/data-sources/gb-postcodes/README.md deleted file mode 100644 index b5a0b9d8..00000000 --- a/data-sources/gb-postcodes/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# GB Postcodes - - -The server [importing instructions](https://www.nominatim.org/release-docs/latest/admin/Import-and-Update/) allow optionally download [`gb_postcode_data.sql.gz`](https://www.nominatim.org/data/gb_postcode_data.sql.gz). This document explains how the file got created. - -## GB vs UK - -GB (Great Britain) is more correct as the Ordnance Survey dataset doesn't contain postcodes from Northern Ireland. - -## Importing separately after the initial import - -If you forgot to download the file, or have a new version, you can import it separately: - -1. Import the downloaded `gb_postcode_data.sql.gz` file. - -2. Run the SQL query `SELECT count(getorcreate_postcode_id(postcode)) FROM gb_postcode;`. This will update the search index. - -3. Run `utils/setup.php --calculate-postcodes` from the build directory. This will copy data form the `gb_postcode` table to the `location_postcodes` table. - - - -## Converting Code-Point Open data - -1. Download from [Code-Point® Open](https://www.ordnancesurvey.co.uk/business-and-government/products/code-point-open.html). It requires an email address where a download link will be send to. - -2. `unzip codepo_gb.zip` - - Unpacked you'll see a directory of CSV files. - - $ more codepo_gb/Data/CSV/n.csv - "N1 0AA",10,530626,183961,"E92000001","E19000003","E18000007","","E09000019","E05000368" - "N1 0AB",10,530559,183978,"E92000001","E19000003","E18000007","","E09000019","E05000368" - - The coordinates are "Northings" and "Eastings" in [OSGB 1936](http://epsg.io/1314) projection. They can be projected to WGS84 like this - - SELECT ST_AsText(ST_Transform(ST_SetSRID('POINT(530626 183961)'::geometry,27700), 4326)); - POINT(-0.117872733220225 51.5394424719303) - - [-0.117872733220225 51.5394424719303 on OSM map](https://www.openstreetmap.org/?mlon=-0.117872733220225&mlat=51.5394424719303&zoom=16) - - - -3. Create database, import CSV files, add geometry column, dump into file - - DBNAME=create_gb_postcode_file - createdb $DBNAME - echo 'CREATE EXTENSION postgis' | psql $DBNAME - - cat data/gb_postcode_table.sql | psql $DBNAME - cat codepo_gb/Data/CSV/*.csv | ./data-sources/gb-postcodes/convert_codepoint.php | psql $DBNAME - cat codepo_gb/Doc/licence.txt | iconv -f iso-8859-1 -t utf-8 | dos2unix | sed 's/^/-- /g' > gb_postcode_data.sql - pg_dump -a -t gb_postcode $DBNAME | grep -v '^--' >> gb_postcode_data.sql - - gzip -9 -f gb_postcode_data.sql - ls -lah gb_postcode_data.* - # dropdb $DBNAME diff --git a/data-sources/gb-postcodes/convert_codepoint.php b/data-sources/gb-postcodes/convert_codepoint.php deleted file mode 100755 index 12f2c674..00000000 --- a/data-sources/gb-postcodes/convert_codepoint.php +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env php - - - 4. Maybe: package the created files - - tar -czf tiger2019-nominatim-preprocessed.tar.gz tiger diff --git a/data-sources/us-tiger/convert.sh b/data-sources/us-tiger/convert.sh deleted file mode 100755 index b94017ea..00000000 --- a/data-sources/us-tiger/convert.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -INPATH=$1 -OUTPATH=$2 - -if [[ ! -d "$INPATH" ]]; then - echo "input path does not exist" - exit 1 -fi - -if [[ ! -d "$OUTPATH" ]]; then - echo "output path does not exist" - exit 1 -fi - -INREGEX='_([0-9]{5})_edges.zip' -WORKPATH="$OUTPATH/tmp-workdir/" -mkdir -p "$WORKPATH" - - - -INFILES=($INPATH/*.zip) -echo "Found ${#INFILES[*]} files." - -for F in ${INFILES[*]}; do - # echo $F - - if [[ "$F" =~ $INREGEX ]]; then - COUNTYID=${BASH_REMATCH[1]} - SHAPEFILE="$WORKPATH/$(basename $F '.zip').shp" - SQLFILE="$OUTPATH/$COUNTYID.sql" - - unzip -o -q -d "$WORKPATH" "$F" - if [[ ! -e "$SHAPEFILE" ]]; then - echo "Unzip failed. $SHAPEFILE not found." - exit 1 - fi - - ./tiger_address_convert.py "$SHAPEFILE" "$SQLFILE" - - rm $WORKPATH/* - fi -done - -OUTFILES=($OUTPATH/*.sql) -echo "Wrote ${#OUTFILES[*]} files." - -rmdir $WORKPATH diff --git a/data-sources/us-tiger/tiger_address_convert.py b/data-sources/us-tiger/tiger_address_convert.py deleted file mode 100755 index ebe265ed..00000000 --- a/data-sources/us-tiger/tiger_address_convert.py +++ /dev/null @@ -1,620 +0,0 @@ -#!/usr/bin/python3 -# Tiger road data to OSM conversion script -# Creates Karlsruhe-style address ways beside the main way -# based on the Massachusetts GIS script by christopher schmidt - -#BUGS: -# On very tight curves, a loop may be generated in the address way. -# It would be nice if the ends of the address ways were not pulled back from dead ends - - -# Ways that include these mtfccs should not be uploaded -# H1100 Connector -# H3010 Stream/River -# H3013 Braided Stream -# H3020 Canal, Ditch or Aqueduct -# L4130 Point-to-Point Line -# L4140 Property/Parcel Line (Including PLSS) -# P0001 Nonvisible Linear Legal/Statistical Boundary -# P0002 Perennial Shoreline -# P0003 Intermittent Shoreline -# P0004 Other non-visible bounding Edge (e.g., Census water boundary, boundary of an areal feature) -ignoremtfcc = [ "H1100", "H3010", "H3013", "H3020", "L4130", "L4140", "P0001", "P0002", "P0003", "P0004" ] - -# Sets the distance that the address ways should be from the main way, in feet. -address_distance = 30 - -# Sets the distance that the ends of the address ways should be pulled back from the ends of the main way, in feet -address_pullback = 45 - -import sys, os.path, json -try: - from osgeo import ogr - from osgeo import osr -except: - import ogr - import osr - -# https://www.census.gov/geo/reference/codes/cou.html -# tiger_county_fips.json was generated from the following: -# wget https://www2.census.gov/geo/docs/reference/codes/files/national_county.txt -# cat national_county.txt | perl -F, -naE'($F[0] ne 'AS') && $F[3] =~ s/ ((city|City|County|District|Borough|City and Borough|Municipio|Municipality|Parish|Island|Census Area)(?:, |\Z))+//; say qq( "$F[1]$F[2]": "$F[3], $F[0]",)' -json_fh = open(os.path.dirname(sys.argv[0]) + "/tiger_county_fips.json") -county_fips_data = json.load(json_fh) - -def parse_shp_for_geom_and_tags( filename ): - #ogr.RegisterAll() - - dr = ogr.GetDriverByName("ESRI Shapefile") - poDS = dr.Open( filename ) - - if poDS == None: - raise "Open failed." - - poLayer = poDS.GetLayer( 0 ) - - fieldNameList = [] - layerDefinition = poLayer.GetLayerDefn() - for i in range(layerDefinition.GetFieldCount()): - fieldNameList.append(layerDefinition.GetFieldDefn(i).GetName()) - # sys.stderr.write(",".join(fieldNameList)) - - poLayer.ResetReading() - - ret = [] - - poFeature = poLayer.GetNextFeature() - while poFeature: - tags = {} - - # WAY ID - tags["tiger:way_id"] = int( poFeature.GetField("TLID") ) - - # FEATURE IDENTIFICATION - mtfcc = poFeature.GetField("MTFCC"); - if mtfcc != None: - - if mtfcc == "L4010": #Pipeline - tags["man_made"] = "pipeline" - if mtfcc == "L4020": #Powerline - tags["power"] = "line" - if mtfcc == "L4031": #Aerial Tramway/Ski Lift - tags["aerialway"] = "cable_car" - if mtfcc == "L4110": #Fence Line - tags["barrier"] = "fence" - if mtfcc == "L4125": #Cliff/Escarpment - tags["natural"] = "cliff" - if mtfcc == "L4165": #Ferry Crossing - tags["route"] = "ferry" - if mtfcc == "R1011": #Railroad Feature (Main, Spur, or Yard) - tags["railway"] = "rail" - ttyp = poFeature.GetField("TTYP") - if ttyp != None: - if ttyp == "S": - tags["service"] = "spur" - if ttyp == "Y": - tags["service"] = "yard" - tags["tiger:ttyp"] = ttyp - if mtfcc == "R1051": #Carline, Streetcar Track, Monorail, Other Mass Transit Rail) - tags["railway"] = "light_rail" - if mtfcc == "R1052": #Cog Rail Line, Incline Rail Line, Tram - tags["railway"] = "incline" - if mtfcc == "S1100": - tags["highway"] = "primary" - if mtfcc == "S1200": - tags["highway"] = "secondary" - if mtfcc == "S1400": - tags["highway"] = "residential" - if mtfcc == "S1500": - tags["highway"] = "track" - if mtfcc == "S1630": #Ramp - tags["highway"] = "motorway_link" - if mtfcc == "S1640": #Service Drive usually along a limited access highway - tags["highway"] = "service" - if mtfcc == "S1710": #Walkway/Pedestrian Trail - tags["highway"] = "path" - if mtfcc == "S1720": - tags["highway"] = "steps" - if mtfcc == "S1730": #Alley - tags["highway"] = "service" - tags["service"] = "alley" - if mtfcc == "S1740": #Private Road for service vehicles (logging, oil, fields, ranches, etc.) - tags["highway"] = "service" - tags["access"] = "private" - if mtfcc == "S1750": #Private Driveway - tags["highway"] = "service" - tags["access"] = "private" - tags["service"] = "driveway" - if mtfcc == "S1780": #Parking Lot Road - tags["highway"] = "service" - tags["service"] = "parking_aisle" - if mtfcc == "S1820": #Bike Path or Trail - tags["highway"] = "cycleway" - if mtfcc == "S1830": #Bridle Path - tags["highway"] = "bridleway" - tags["tiger:mtfcc"] = mtfcc - - # FEATURE NAME - if poFeature.GetField("FULLNAME"): - #capitalizes the first letter of each word - name = poFeature.GetField( "FULLNAME" ) - tags["name"] = name - - #Attempt to guess highway grade - if name[0:2] == "I-": - tags["highway"] = "motorway" - if name[0:3] == "US ": - tags["highway"] = "primary" - if name[0:3] == "US-": - tags["highway"] = "primary" - if name[0:3] == "Hwy": - if tags["highway"] != "primary": - tags["highway"] = "secondary" - - # TIGER 2017 no longer contains this field - if 'DIVROAD' in fieldNameList: - divroad = poFeature.GetField("DIVROAD") - if divroad != None: - if divroad == "Y" and "highway" in tags and tags["highway"] == "residential": - tags["highway"] = "tertiary" - tags["tiger:separated"] = divroad - - statefp = poFeature.GetField("STATEFP") - countyfp = poFeature.GetField("COUNTYFP") - if (statefp != None) and (countyfp != None): - county_name = county_fips_data.get(statefp + '' + countyfp) - if county_name: - tags["tiger:county"] = county_name - - # tlid = poFeature.GetField("TLID") - # if tlid != None: - # tags["tiger:tlid"] = tlid - - lfromadd = poFeature.GetField("LFROMADD") - if lfromadd != None: - tags["tiger:lfromadd"] = lfromadd - - rfromadd = poFeature.GetField("RFROMADD") - if rfromadd != None: - tags["tiger:rfromadd"] = rfromadd - - ltoadd = poFeature.GetField("LTOADD") - if ltoadd != None: - tags["tiger:ltoadd"] = ltoadd - - rtoadd = poFeature.GetField("RTOADD") - if rtoadd != None: - tags["tiger:rtoadd"] = rtoadd - - zipl = poFeature.GetField("ZIPL") - if zipl != None: - tags["tiger:zip_left"] = zipl - - zipr = poFeature.GetField("ZIPR") - if zipr != None: - tags["tiger:zip_right"] = zipr - - if mtfcc not in ignoremtfcc: - # COPY DOWN THE GEOMETRY - geom = [] - - rawgeom = poFeature.GetGeometryRef() - for i in range( rawgeom.GetPointCount() ): - geom.append( (rawgeom.GetX(i), rawgeom.GetY(i)) ) - - ret.append( (geom, tags) ) - poFeature = poLayer.GetNextFeature() - - return ret - - -# ==================================== -# to do read .prj file for this data -# Change the Projcs_wkt to match your datas prj file. -# ==================================== -projcs_wkt = \ -"""GEOGCS["GCS_North_American_1983", - DATUM["D_North_American_1983", - SPHEROID["GRS_1980",6378137,298.257222101]], - PRIMEM["Greenwich",0], - UNIT["Degree",0.017453292519943295]]""" - -from_proj = osr.SpatialReference() -from_proj.ImportFromWkt( projcs_wkt ) - -# output to WGS84 -to_proj = osr.SpatialReference() -to_proj.SetWellKnownGeogCS( "EPSG:4326" ) - -tr = osr.CoordinateTransformation( from_proj, to_proj ) - -import math -def length(segment, nodelist): - '''Returns the length (in feet) of a segment''' - first = True - distance = 0 - lat_feet = 364613 #The approximate number of feet in one degree of latitude - for point in segment: - pointid, (lat, lon) = nodelist[ round_point( point ) ] - if first: - first = False - else: - #The approximate number of feet in one degree of longitute - lrad = math.radians(lat) - lon_feet = 365527.822 * math.cos(lrad) - 306.75853 * math.cos(3 * lrad) + 0.3937 * math.cos(5 * lrad) - distance += math.sqrt(((lat - previous[0])*lat_feet)**2 + ((lon - previous[1])*lon_feet)**2) - previous = (lat, lon) - return distance - -def addressways(waylist, nodelist, first_id): - id = first_id - lat_feet = 364613 #The approximate number of feet in one degree of latitude - distance = float(address_distance) - ret = [] - - for waykey, segments in waylist.items(): - waykey = dict(waykey) - rsegments = [] - lsegments = [] - for segment in segments: - lsegment = [] - rsegment = [] - lastpoint = None - - # Don't pull back the ends of very short ways too much - seglength = length(segment, nodelist) - if seglength < float(address_pullback) * 3.0: - pullback = seglength / 3.0 - else: - pullback = float(address_pullback) - if "tiger:lfromadd" in waykey: - lfromadd = waykey["tiger:lfromadd"] - else: - lfromadd = None - if "tiger:ltoadd" in waykey: - ltoadd = waykey["tiger:ltoadd"] - else: - ltoadd = None - if "tiger:rfromadd" in waykey: - rfromadd = waykey["tiger:rfromadd"] - else: - rfromadd = None - if "tiger:rtoadd" in waykey: - rtoadd = waykey["tiger:rtoadd"] - else: - rtoadd = None - if rfromadd != None and rtoadd != None: - right = True - else: - right = False - if lfromadd != None and ltoadd != None: - left = True - else: - left = False - if left or right: - first = True - firstpointid, firstpoint = nodelist[ round_point( segment[0] ) ] - - finalpointid, finalpoint = nodelist[ round_point( segment[len(segment) - 1] ) ] - for point in segment: - pointid, (lat, lon) = nodelist[ round_point( point ) ] - - #The approximate number of feet in one degree of longitute - lrad = math.radians(lat) - lon_feet = 365527.822 * math.cos(lrad) - 306.75853 * math.cos(3 * lrad) + 0.3937 * math.cos(5 * lrad) - -#Calculate the points of the offset ways - if lastpoint != None: - #Skip points too close to start - if math.sqrt((lat * lat_feet - firstpoint[0] * lat_feet)**2 + (lon * lon_feet - firstpoint[1] * lon_feet)**2) < pullback: - #Preserve very short ways (but will be rendered backwards) - if pointid != finalpointid: - continue - #Skip points too close to end - if math.sqrt((lat * lat_feet - finalpoint[0] * lat_feet)**2 + (lon * lon_feet - finalpoint[1] * lon_feet)**2) < pullback: - #Preserve very short ways (but will be rendered backwards) - if (pointid != firstpointid) and (pointid != finalpointid): - continue - - X = (lon - lastpoint[1]) * lon_feet - Y = (lat - lastpoint[0]) * lat_feet - if Y != 0: - theta = math.pi/2 - math.atan( X / Y) - Xp = math.sin(theta) * distance - Yp = math.cos(theta) * distance - else: - Xp = 0 - if X > 0: - Yp = -distance - else: - Yp = distance - - if Y > 0: - Xp = -Xp - else: - Yp = -Yp - - if first: - first = False - dX = - (Yp * (pullback / distance)) / lon_feet #Pull back the first point - dY = (Xp * (pullback / distance)) / lat_feet - if left: - lpoint = (lastpoint[0] + (Yp / lat_feet) - dY, lastpoint[1] + (Xp / lon_feet) - dX) - lsegment.append( (id, lpoint) ) - id += 1 - if right: - rpoint = (lastpoint[0] - (Yp / lat_feet) - dY, lastpoint[1] - (Xp / lon_feet) - dX) - rsegment.append( (id, rpoint) ) - id += 1 - - else: - #round the curves - if delta[1] != 0: - theta = abs(math.atan(delta[0] / delta[1])) - else: - theta = math.pi / 2 - if Xp != 0: - theta = theta - abs(math.atan(Yp / Xp)) - else: theta = theta - math.pi / 2 - r = 1 + abs(math.tan(theta/2)) - if left: - lpoint = (lastpoint[0] + (Yp + delta[0]) * r / (lat_feet * 2), lastpoint[1] + (Xp + delta[1]) * r / (lon_feet * 2)) - lsegment.append( (id, lpoint) ) - id += 1 - if right: - rpoint = (lastpoint[0] - (Yp + delta[0]) * r / (lat_feet * 2), lastpoint[1] - (Xp + delta[1]) * r / (lon_feet * 2)) - - rsegment.append( (id, rpoint) ) - id += 1 - - delta = (Yp, Xp) - - lastpoint = (lat, lon) - - -#Add in the last node - dX = - (Yp * (pullback / distance)) / lon_feet - dY = (Xp * (pullback / distance)) / lat_feet - if left: - lpoint = (lastpoint[0] + (Yp + delta[0]) / (lat_feet * 2) + dY, lastpoint[1] + (Xp + delta[1]) / (lon_feet * 2) + dX ) - lsegment.append( (id, lpoint) ) - id += 1 - if right: - rpoint = (lastpoint[0] - Yp / lat_feet + dY, lastpoint[1] - Xp / lon_feet + dX) - rsegment.append( (id, rpoint) ) - id += 1 - -#Generate the tags for ways and nodes - zipr = '' - zipl = '' - name = '' - county = '' - if "tiger:zip_right" in waykey: - zipr = waykey["tiger:zip_right"] - if "tiger:zip_left" in waykey: - zipl = waykey["tiger:zip_left"] - if "name" in waykey: - name = waykey["name"] - if "tiger:county" in waykey: - county = waykey["tiger:county"] - if "tiger:separated" in waykey: # No longer set in Tiger-2017 - separated = waykey["tiger:separated"] - else: - separated = "N" - -#Write the nodes of the offset ways - if right: - rlinestring = []; - for i, point in rsegment: - rlinestring.append( "%f %f" % (point[1], point[0]) ) - if left: - llinestring = []; - for i, point in lsegment: - llinestring.append( "%f %f" % (point[1], point[0]) ) - if right: - rsegments.append( rsegment ) - if left: - lsegments.append( lsegment ) - rtofromint = right #Do the addresses convert to integers? - ltofromint = left #Do the addresses convert to integers? - if right: - try: rfromint = int(rfromadd) - except: - print("Non integer address: %s" % rfromadd) - rtofromint = False - try: rtoint = int(rtoadd) - except: - print("Non integer address: %s" % rtoadd) - rtofromint = False - if left: - try: lfromint = int(lfromadd) - except: - print("Non integer address: %s" % lfromadd) - ltofromint = False - try: ltoint = int(ltoadd) - except: - print("Non integer address: %s" % ltoadd) - ltofromint = False - if right: - id += 1 - - interpolationtype = "all"; - if rtofromint: - if (rfromint % 2) == 0 and (rtoint % 2) == 0: - if separated == "Y": #Doesn't matter if there is another side - interpolationtype = "even"; - elif ltofromint and (lfromint % 2) == 1 and (ltoint % 2) == 1: - interpolationtype = "even"; - elif (rfromint % 2) == 1 and (rtoint % 2) == 1: - if separated == "Y": #Doesn't matter if there is another side - interpolationtype = "odd"; - elif ltofromint and (lfromint % 2) == 0 and (ltoint % 2) == 0: - interpolationtype = "odd"; - - ret.append( "SELECT tiger_line_import(ST_GeomFromText('LINESTRING(%s)',4326), %s, %s, %s, %s, %s, %s);" % - ( ",".join(rlinestring), sql_quote(rfromadd), sql_quote(rtoadd), sql_quote(interpolationtype), sql_quote(name), sql_quote(county), sql_quote(zipr) ) ) - - if left: - id += 1 - - interpolationtype = "all"; - if ltofromint: - if (lfromint % 2) == 0 and (ltoint % 2) == 0: - if separated == "Y": - interpolationtype = "even"; - elif rtofromint and (rfromint % 2) == 1 and (rtoint % 2) == 1: - interpolationtype = "even"; - elif (lfromint % 2) == 1 and (ltoint % 2) == 1: - if separated == "Y": - interpolationtype = "odd"; - elif rtofromint and (rfromint %2 ) == 0 and (rtoint % 2) == 0: - interpolationtype = "odd"; - - ret.append( "SELECT tiger_line_import(ST_GeomFromText('LINESTRING(%s)',4326), %s, %s, %s, %s, %s, %s);" % - ( ",".join(llinestring), sql_quote(lfromadd), sql_quote(ltoadd), sql_quote(interpolationtype), sql_quote(name), sql_quote(county), sql_quote(zipl) ) ) - - return ret - -def sql_quote( string ): - return "'" + string.replace("'", "''") + "'" - -def unproject( point ): - pt = tr.TransformPoint( point[0], point[1] ) - return (pt[1], pt[0]) - -def round_point( point, accuracy=8 ): - return tuple( [ round(x,accuracy) for x in point ] ) - -def compile_nodelist( parsed_gisdata, first_id=1 ): - nodelist = {} - - i = first_id - for geom, tags in parsed_gisdata: - if len( geom )==0: - continue - - for point in geom: - r_point = round_point( point ) - if r_point not in nodelist: - nodelist[ r_point ] = (i, unproject( point )) - i += 1 - - return (i, nodelist) - -def adjacent( left, right ): - left_left = round_point(left[0]) - left_right = round_point(left[-1]) - right_left = round_point(right[0]) - right_right = round_point(right[-1]) - - return ( left_left == right_left or - left_left == right_right or - left_right == right_left or - left_right == right_right ) - -def glom( left, right ): - left = list( left ) - right = list( right ) - - left_left = round_point(left[0]) - left_right = round_point(left[-1]) - right_left = round_point(right[0]) - right_right = round_point(right[-1]) - - if left_left == right_left: - left.reverse() - return left[0:-1] + right - - if left_left == right_right: - return right[0:-1] + left - - if left_right == right_left: - return left[0:-1] + right - - if left_right == right_right: - right.reverse() - return left[0:-1] + right - - raise 'segments are not adjacent' - -def glom_once( segments ): - if len(segments)==0: - return segments - - unsorted = list( segments ) - x = unsorted.pop(0) - - while len( unsorted ) > 0: - n = len( unsorted ) - - for i in range(0, n): - y = unsorted[i] - if adjacent( x, y ): - y = unsorted.pop(i) - x = glom( x, y ) - break - - # Sorted and unsorted lists have no adjacent segments - if len( unsorted ) == n: - break - - return x, unsorted - -def glom_all( segments ): - unsorted = segments - chunks = [] - - while unsorted != []: - chunk, unsorted = glom_once( unsorted ) - chunks.append( chunk ) - - return chunks - - - -def compile_waylist( parsed_gisdata ): - waylist = {} - - #Group by tiger:way_id - for geom, tags in parsed_gisdata: - way_key = tags.copy() - way_key = ( way_key['tiger:way_id'], tuple( [(k,v) for k,v in way_key.items()] ) ) - - if way_key not in waylist: - waylist[way_key] = [] - - waylist[way_key].append( geom ) - - ret = {} - for (way_id, way_key), segments in waylist.items(): - ret[way_key] = glom_all( segments ) - return ret - - -def shape_to_sql( shp_filename, sql_filename ): - - print("parsing shpfile %s" % shp_filename) - parsed_features = parse_shp_for_geom_and_tags( shp_filename ) - - print("compiling nodelist") - i, nodelist = compile_nodelist( parsed_features ) - - print("compiling waylist") - waylist = compile_waylist( parsed_features ) - - print("preparing address ways") - sql_lines = addressways(waylist, nodelist, i) - - print("writing %s" % sql_filename) - fp = open( sql_filename, "w" ) - fp.write( "\n".join( sql_lines ) ) - fp.close() - -if __name__ == '__main__': - import sys, os.path - if len(sys.argv) < 3: - print("%s input.shp output.sql" % sys.argv[0]) - sys.exit() - shp_filename = sys.argv[1] - sql_filename = sys.argv[2] - shape_to_sql(shp_filename, sql_filename) diff --git a/data-sources/us-tiger/tiger_county_fips.json b/data-sources/us-tiger/tiger_county_fips.json deleted file mode 100644 index 16d7015d..00000000 --- a/data-sources/us-tiger/tiger_county_fips.json +++ /dev/null @@ -1,3237 +0,0 @@ -{ - "01001": "Autauga, AL", - "01003": "Baldwin, AL", - "01005": "Barbour, AL", - "01007": "Bibb, AL", - "01009": "Blount, AL", - "01011": "Bullock, AL", - "01013": "Butler, AL", - "01015": "Calhoun, AL", - "01017": "Chambers, AL", - "01019": "Cherokee, AL", - "01021": "Chilton, AL", - "01023": "Choctaw, AL", - "01025": "Clarke, AL", - "01027": "Clay, AL", - "01029": "Cleburne, AL", - "01031": "Coffee, AL", - "01033": "Colbert, AL", - "01035": "Conecuh, AL", - "01037": "Coosa, AL", - "01039": "Covington, AL", - "01041": "Crenshaw, AL", - "01043": "Cullman, AL", - "01045": "Dale, AL", - "01047": "Dallas, AL", - "01049": "DeKalb, AL", - "01051": "Elmore, AL", - "01053": "Escambia, AL", - "01055": "Etowah, AL", - "01057": "Fayette, AL", - "01059": "Franklin, AL", - "01061": "Geneva, AL", - "01063": "Greene, AL", - "01065": "Hale, AL", - "01067": "Henry, AL", - "01069": "Houston, AL", - "01071": "Jackson, AL", - "01073": "Jefferson, AL", - "01075": "Lamar, AL", - "01077": "Lauderdale, AL", - "01079": "Lawrence, AL", - "01081": "Lee, AL", - "01083": "Limestone, AL", - "01085": "Lowndes, AL", - "01087": "Macon, AL", - "01089": "Madison, AL", - "01091": "Marengo, AL", - "01093": "Marion, AL", - "01095": "Marshall, AL", - "01097": "Mobile, AL", - "01099": "Monroe, AL", - "01101": "Montgomery, AL", - "01103": "Morgan, AL", - "01105": "Perry, AL", - "01107": "Pickens, AL", - "01109": "Pike, AL", - "01111": "Randolph, AL", - "01113": "Russell, AL", - "01115": "St. Clair, AL", - "01117": "Shelby, AL", - "01119": "Sumter, AL", - "01121": "Talladega, AL", - "01123": "Tallapoosa, AL", - "01125": "Tuscaloosa, AL", - "01127": "Walker, AL", - "01129": "Washington, AL", - "01131": "Wilcox, AL", - "01133": "Winston, AL", - "02013": "Aleutians East, AK", - "02016": "Aleutians West, AK", - "02020": "Anchorage, AK", - "02050": "Bethel, AK", - "02060": "Bristol Bay, AK", - "02068": "Denali, AK", - "02070": "Dillingham, AK", - "02090": "Fairbanks North Star, AK", - "02100": "Haines, AK", - "02105": "Hoonah-Angoon, AK", - "02110": "Juneau, AK", - "02122": "Kenai Peninsula, AK", - "02130": "Ketchikan Gateway, AK", - "02150": "Kodiak Island, AK", - "02164": "Lake and Peninsula, AK", - "02170": "Matanuska-Susitna, AK", - "02180": "Nome, AK", - "02185": "North Slope, AK", - "02188": "Northwest Arctic, AK", - "02195": "Petersburg, AK", - "02198": "Prince of Wales-Hyder, AK", - "02220": "Sitka, AK", - "02230": "Skagway, AK", - "02240": "Southeast Fairbanks, AK", - "02261": "Valdez-Cordova, AK", - "02270": "Wade Hampton, AK", - "02275": "Wrangell, AK", - "02282": "Yakutat, AK", - "02290": "Yukon-Koyukuk, AK", - "04001": "Apache, AZ", - "04003": "Cochise, AZ", - "04005": "Coconino, AZ", - "04007": "Gila, AZ", - "04009": "Graham, AZ", - "04011": "Greenlee, AZ", - "04012": "La Paz, AZ", - "04013": "Maricopa, AZ", - "04015": "Mohave, AZ", - "04017": "Navajo, AZ", - "04019": "Pima, AZ", - "04021": "Pinal, AZ", - "04023": "Santa Cruz, AZ", - "04025": "Yavapai, AZ", - "04027": "Yuma, AZ", - "05001": "Arkansas, AR", - "05003": "Ashley, AR", - "05005": "Baxter, AR", - "05007": "Benton, AR", - "05009": "Boone, AR", - "05011": "Bradley, AR", - "05013": "Calhoun, AR", - "05015": "Carroll, AR", - "05017": "Chicot, AR", - "05019": "Clark, AR", - "05021": "Clay, AR", - "05023": "Cleburne, AR", - "05025": "Cleveland, AR", - "05027": "Columbia, AR", - "05029": "Conway, AR", - "05031": "Craighead, AR", - "05033": "Crawford, AR", - "05035": "Crittenden, AR", - "05037": "Cross, AR", - "05039": "Dallas, AR", - "05041": "Desha, AR", - "05043": "Drew, AR", - "05045": "Faulkner, AR", - "05047": "Franklin, AR", - "05049": "Fulton, AR", - "05051": "Garland, AR", - "05053": "Grant, AR", - "05055": "Greene, AR", - "05057": "Hempstead, AR", - "05059": "Hot Spring, AR", - "05061": "Howard, AR", - "05063": "Independence, AR", - "05065": "Izard, AR", - "05067": "Jackson, AR", - "05069": "Jefferson, AR", - "05071": "Johnson, AR", - "05073": "Lafayette, AR", - "05075": "Lawrence, AR", - "05077": "Lee, AR", - "05079": "Lincoln, AR", - "05081": "Little River, AR", - "05083": "Logan, AR", - "05085": "Lonoke, AR", - "05087": "Madison, AR", - "05089": "Marion, AR", - "05091": "Miller, AR", - "05093": "Mississippi, AR", - "05095": "Monroe, AR", - "05097": "Montgomery, AR", - "05099": "Nevada, AR", - "05101": "Newton, AR", - "05103": "Ouachita, AR", - "05105": "Perry, AR", - "05107": "Phillips, AR", - "05109": "Pike, AR", - "05111": "Poinsett, AR", - "05113": "Polk, AR", - "05115": "Pope, AR", - "05117": "Prairie, AR", - "05119": "Pulaski, AR", - "05121": "Randolph, AR", - "05123": "St. Francis, AR", - "05125": "Saline, AR", - "05127": "Scott, AR", - "05129": "Searcy, AR", - "05131": "Sebastian, AR", - "05133": "Sevier, AR", - "05135": "Sharp, AR", - "05137": "Stone, AR", - "05139": "Union, AR", - "05141": "Van Buren, AR", - "05143": "Washington, AR", - "05145": "White, AR", - "05147": "Woodruff, AR", - "05149": "Yell, AR", - "06001": "Alameda, CA", - "06003": "Alpine, CA", - "06005": "Amador, CA", - "06007": "Butte, CA", - "06009": "Calaveras, CA", - "06011": "Colusa, CA", - "06013": "Contra Costa, CA", - "06015": "Del Norte, CA", - "06017": "El Dorado, CA", - "06019": "Fresno, CA", - "06021": "Glenn, CA", - "06023": "Humboldt, CA", - "06025": "Imperial, CA", - "06027": "Inyo, CA", - "06029": "Kern, CA", - "06031": "Kings, CA", - "06033": "Lake, CA", - "06035": "Lassen, CA", - "06037": "Los Angeles, CA", - "06039": "Madera, CA", - "06041": "Marin, CA", - "06043": "Mariposa, CA", - "06045": "Mendocino, CA", - "06047": "Merced, CA", - "06049": "Modoc, CA", - "06051": "Mono, CA", - "06053": "Monterey, CA", - "06055": "Napa, CA", - "06057": "Nevada, CA", - "06059": "Orange, CA", - "06061": "Placer, CA", - "06063": "Plumas, CA", - "06065": "Riverside, CA", - "06067": "Sacramento, CA", - "06069": "San Benito, CA", - "06071": "San Bernardino, CA", - "06073": "San Diego, CA", - "06075": "San Francisco, CA", - "06077": "San Joaquin, CA", - "06079": "San Luis Obispo, CA", - "06081": "San Mateo, CA", - "06083": "Santa Barbara, CA", - "06085": "Santa Clara, CA", - "06087": "Santa Cruz, CA", - "06089": "Shasta, CA", - "06091": "Sierra, CA", - "06093": "Siskiyou, CA", - "06095": "Solano, CA", - "06097": "Sonoma, CA", - "06099": "Stanislaus, CA", - "06101": "Sutter, CA", - "06103": "Tehama, CA", - "06105": "Trinity, CA", - "06107": "Tulare, CA", - "06109": "Tuolumne, CA", - "06111": "Ventura, CA", - "06113": "Yolo, CA", - "06115": "Yuba, CA", - "08001": "Adams, CO", - "08003": "Alamosa, CO", - "08005": "Arapahoe, CO", - "08007": "Archuleta, CO", - "08009": "Baca, CO", - "08011": "Bent, CO", - "08013": "Boulder, CO", - "08014": "Broomfield, CO", - "08015": "Chaffee, CO", - "08017": "Cheyenne, CO", - "08019": "Clear Creek, CO", - "08021": "Conejos, CO", - "08023": "Costilla, CO", - "08025": "Crowley, CO", - "08027": "Custer, CO", - "08029": "Delta, CO", - "08031": "Denver, CO", - "08033": "Dolores, CO", - "08035": "Douglas, CO", - "08037": "Eagle, CO", - "08039": "Elbert, CO", - "08041": "El Paso, CO", - "08043": "Fremont, CO", - "08045": "Garfield, CO", - "08047": "Gilpin, CO", - "08049": "Grand, CO", - "08051": "Gunnison, CO", - "08053": "Hinsdale, CO", - "08055": "Huerfano, CO", - "08057": "Jackson, CO", - "08059": "Jefferson, CO", - "08061": "Kiowa, CO", - "08063": "Kit Carson, CO", - "08065": "Lake, CO", - "08067": "La Plata, CO", - "08069": "Larimer, CO", - "08071": "Las Animas, CO", - "08073": "Lincoln, CO", - "08075": "Logan, CO", - "08077": "Mesa, CO", - "08079": "Mineral, CO", - "08081": "Moffat, CO", - "08083": "Montezuma, CO", - "08085": "Montrose, CO", - "08087": "Morgan, CO", - "08089": "Otero, CO", - "08091": "Ouray, CO", - "08093": "Park, CO", - "08095": "Phillips, CO", - "08097": "Pitkin, CO", - "08099": "Prowers, CO", - "08101": "Pueblo, CO", - "08103": "Rio Blanco, CO", - "08105": "Rio Grande, CO", - "08107": "Routt, CO", - "08109": "Saguache, CO", - "08111": "San Juan, CO", - "08113": "San Miguel, CO", - "08115": "Sedgwick, CO", - "08117": "Summit, CO", - "08119": "Teller, CO", - "08121": "Washington, CO", - "08123": "Weld, CO", - "08125": "Yuma, CO", - "09001": "Fairfield, CT", - "09003": "Hartford, CT", - "09005": "Litchfield, CT", - "09007": "Middlesex, CT", - "09009": "New Haven, CT", - "09011": "New London, CT", - "09013": "Tolland, CT", - "09015": "Windham, CT", - "10001": "Kent, DE", - "10003": "New Castle, DE", - "10005": "Sussex, DE", - "11001": "District of Columbia, DC", - "12001": "Alachua, FL", - "12003": "Baker, FL", - "12005": "Bay, FL", - "12007": "Bradford, FL", - "12009": "Brevard, FL", - "12011": "Broward, FL", - "12013": "Calhoun, FL", - "12015": "Charlotte, FL", - "12017": "Citrus, FL", - "12019": "Clay, FL", - "12021": "Collier, FL", - "12023": "Columbia, FL", - "12027": "DeSoto, FL", - "12029": "Dixie, FL", - "12031": "Duval, FL", - "12033": "Escambia, FL", - "12035": "Flagler, FL", - "12037": "Franklin, FL", - "12039": "Gadsden, FL", - "12041": "Gilchrist, FL", - "12043": "Glades, FL", - "12045": "Gulf, FL", - "12047": "Hamilton, FL", - "12049": "Hardee, FL", - "12051": "Hendry, FL", - "12053": "Hernando, FL", - "12055": "Highlands, FL", - "12057": "Hillsborough, FL", - "12059": "Holmes, FL", - "12061": "Indian River, FL", - "12063": "Jackson, FL", - "12065": "Jefferson, FL", - "12067": "Lafayette, FL", - "12069": "Lake, FL", - "12071": "Lee, FL", - "12073": "Leon, FL", - "12075": "Levy, FL", - "12077": "Liberty, FL", - "12079": "Madison, FL", - "12081": "Manatee, FL", - "12083": "Marion, FL", - "12085": "Martin, FL", - "12086": "Miami-Dade, FL", - "12087": "Monroe, FL", - "12089": "Nassau, FL", - "12091": "Okaloosa, FL", - "12093": "Okeechobee, FL", - "12095": "Orange, FL", - "12097": "Osceola, FL", - "12099": "Palm Beach, FL", - "12101": "Pasco, FL", - "12103": "Pinellas, FL", - "12105": "Polk, FL", - "12107": "Putnam, FL", - "12109": "St. Johns, FL", - "12111": "St. Lucie, FL", - "12113": "Santa Rosa, FL", - "12115": "Sarasota, FL", - "12117": "Seminole, FL", - "12119": "Sumter, FL", - "12121": "Suwannee, FL", - "12123": "Taylor, FL", - "12125": "Union, FL", - "12127": "Volusia, FL", - "12129": "Wakulla, FL", - "12131": "Walton, FL", - "12133": "Washington, FL", - "13001": "Appling, GA", - "13003": "Atkinson, GA", - "13005": "Bacon, GA", - "13007": "Baker, GA", - "13009": "Baldwin, GA", - "13011": "Banks, GA", - "13013": "Barrow, GA", - "13015": "Bartow, GA", - "13017": "Ben Hill, GA", - "13019": "Berrien, GA", - "13021": "Bibb, GA", - "13023": "Bleckley, GA", - "13025": "Brantley, GA", - "13027": "Brooks, GA", - "13029": "Bryan, GA", - "13031": "Bulloch, GA", - "13033": "Burke, GA", - "13035": "Butts, GA", - "13037": "Calhoun, GA", - "13039": "Camden, GA", - "13043": "Candler, GA", - "13045": "Carroll, GA", - "13047": "Catoosa, GA", - "13049": "Charlton, GA", - "13051": "Chatham, GA", - "13053": "Chattahoochee, GA", - "13055": "Chattooga, GA", - "13057": "Cherokee, GA", - "13059": "Clarke, GA", - "13061": "Clay, GA", - "13063": "Clayton, GA", - "13065": "Clinch, GA", - "13067": "Cobb, GA", - "13069": "Coffee, GA", - "13071": "Colquitt, GA", - "13073": "Columbia, GA", - "13075": "Cook, GA", - "13077": "Coweta, GA", - "13079": "Crawford, GA", - "13081": "Crisp, GA", - "13083": "Dade, GA", - "13085": "Dawson, GA", - "13087": "Decatur, GA", - "13089": "DeKalb, GA", - "13091": "Dodge, GA", - "13093": "Dooly, GA", - "13095": "Dougherty, GA", - "13097": "Douglas, GA", - "13099": "Early, GA", - "13101": "Echols, GA", - "13103": "Effingham, GA", - "13105": "Elbert, GA", - "13107": "Emanuel, GA", - "13109": "Evans, GA", - "13111": "Fannin, GA", - "13113": "Fayette, GA", - "13115": "Floyd, GA", - "13117": "Forsyth, GA", - "13119": "Franklin, GA", - "13121": "Fulton, GA", - "13123": "Gilmer, GA", - "13125": "Glascock, GA", - "13127": "Glynn, GA", - "13129": "Gordon, GA", - "13131": "Grady, GA", - "13133": "Greene, GA", - "13135": "Gwinnett, GA", - "13137": "Habersham, GA", - "13139": "Hall, GA", - "13141": "Hancock, GA", - "13143": "Haralson, GA", - "13145": "Harris, GA", - "13147": "Hart, GA", - "13149": "Heard, GA", - "13151": "Henry, GA", - "13153": "Houston, GA", - "13155": "Irwin, GA", - "13157": "Jackson, GA", - "13159": "Jasper, GA", - "13161": "Jeff Davis, GA", - "13163": "Jefferson, GA", - "13165": "Jenkins, GA", - "13167": "Johnson, GA", - "13169": "Jones, GA", - "13171": "Lamar, GA", - "13173": "Lanier, GA", - "13175": "Laurens, GA", - "13177": "Lee, GA", - "13179": "Liberty, GA", - "13181": "Lincoln, GA", - "13183": "Long, GA", - "13185": "Lowndes, GA", - "13187": "Lumpkin, GA", - "13189": "McDuffie, GA", - "13191": "McIntosh, GA", - "13193": "Macon, GA", - "13195": "Madison, GA", - "13197": "Marion, GA", - "13199": "Meriwether, GA", - "13201": "Miller, GA", - "13205": "Mitchell, GA", - "13207": "Monroe, GA", - "13209": "Montgomery, GA", - "13211": "Morgan, GA", - "13213": "Murray, GA", - "13215": "Muscogee, GA", - "13217": "Newton, GA", - "13219": "Oconee, GA", - "13221": "Oglethorpe, GA", - "13223": "Paulding, GA", - "13225": "Peach, GA", - "13227": "Pickens, GA", - "13229": "Pierce, GA", - "13231": "Pike, GA", - "13233": "Polk, GA", - "13235": "Pulaski, GA", - "13237": "Putnam, GA", - "13239": "Quitman, GA", - "13241": "Rabun, GA", - "13243": "Randolph, GA", - "13245": "Richmond, GA", - "13247": "Rockdale, GA", - "13249": "Schley, GA", - "13251": "Screven, GA", - "13253": "Seminole, GA", - "13255": "Spalding, GA", - "13257": "Stephens, GA", - "13259": "Stewart, GA", - "13261": "Sumter, GA", - "13263": "Talbot, GA", - "13265": "Taliaferro, GA", - "13267": "Tattnall, GA", - "13269": "Taylor, GA", - "13271": "Telfair, GA", - "13273": "Terrell, GA", - "13275": "Thomas, GA", - "13277": "Tift, GA", - "13279": "Toombs, GA", - "13281": "Towns, GA", - "13283": "Treutlen, GA", - "13285": "Troup, GA", - "13287": "Turner, GA", - "13289": "Twiggs, GA", - "13291": "Union, GA", - "13293": "Upson, GA", - "13295": "Walker, GA", - "13297": "Walton, GA", - "13299": "Ware, GA", - "13301": "Warren, GA", - "13303": "Washington, GA", - "13305": "Wayne, GA", - "13307": "Webster, GA", - "13309": "Wheeler, GA", - "13311": "White, GA", - "13313": "Whitfield, GA", - "13315": "Wilcox, GA", - "13317": "Wilkes, GA", - "13319": "Wilkinson, GA", - "13321": "Worth, GA", - "15001": "Hawaii, HI", - "15003": "Honolulu, HI", - "15005": "Kalawao, HI", - "15007": "Kauai, HI", - "15009": "Maui, HI", - "16001": "Ada, ID", - "16003": "Adams, ID", - "16005": "Bannock, ID", - "16007": "Bear Lake, ID", - "16009": "Benewah, ID", - "16011": "Bingham, ID", - "16013": "Blaine, ID", - "16015": "Boise, ID", - "16017": "Bonner, ID", - "16019": "Bonneville, ID", - "16021": "Boundary, ID", - "16023": "Butte, ID", - "16025": "Camas, ID", - "16027": "Canyon, ID", - "16029": "Caribou, ID", - "16031": "Cassia, ID", - "16033": "Clark, ID", - "16035": "Clearwater, ID", - "16037": "Custer, ID", - "16039": "Elmore, ID", - "16041": "Franklin, ID", - "16043": "Fremont, ID", - "16045": "Gem, ID", - "16047": "Gooding, ID", - "16049": "Idaho, ID", - "16051": "Jefferson, ID", - "16053": "Jerome, ID", - "16055": "Kootenai, ID", - "16057": "Latah, ID", - "16059": "Lemhi, ID", - "16061": "Lewis, ID", - "16063": "Lincoln, ID", - "16065": "Madison, ID", - "16067": "Minidoka, ID", - "16069": "Nez Perce, ID", - "16071": "Oneida, ID", - "16073": "Owyhee, ID", - "16075": "Payette, ID", - "16077": "Power, ID", - "16079": "Shoshone, ID", - "16081": "Teton, ID", - "16083": "Twin Falls, ID", - "16085": "Valley, ID", - "16087": "Washington, ID", - "17001": "Adams, IL", - "17003": "Alexander, IL", - "17005": "Bond, IL", - "17007": "Boone, IL", - "17009": "Brown, IL", - "17011": "Bureau, IL", - "17013": "Calhoun, IL", - "17015": "Carroll, IL", - "17017": "Cass, IL", - "17019": "Champaign, IL", - "17021": "Christian, IL", - "17023": "Clark, IL", - "17025": "Clay, IL", - "17027": "Clinton, IL", - "17029": "Coles, IL", - "17031": "Cook, IL", - "17033": "Crawford, IL", - "17035": "Cumberland, IL", - "17037": "DeKalb, IL", - "17039": "De Witt, IL", - "17041": "Douglas, IL", - "17043": "DuPage, IL", - "17045": "Edgar, IL", - "17047": "Edwards, IL", - "17049": "Effingham, IL", - "17051": "Fayette, IL", - "17053": "Ford, IL", - "17055": "Franklin, IL", - "17057": "Fulton, IL", - "17059": "Gallatin, IL", - "17061": "Greene, IL", - "17063": "Grundy, IL", - "17065": "Hamilton, IL", - "17067": "Hancock, IL", - "17069": "Hardin, IL", - "17071": "Henderson, IL", - "17073": "Henry, IL", - "17075": "Iroquois, IL", - "17077": "Jackson, IL", - "17079": "Jasper, IL", - "17081": "Jefferson, IL", - "17083": "Jersey, IL", - "17085": "Jo Daviess, IL", - "17087": "Johnson, IL", - "17089": "Kane, IL", - "17091": "Kankakee, IL", - "17093": "Kendall, IL", - "17095": "Knox, IL", - "17097": "Lake, IL", - "17099": "LaSalle, IL", - "17101": "Lawrence, IL", - "17103": "Lee, IL", - "17105": "Livingston, IL", - "17107": "Logan, IL", - "17109": "McDonough, IL", - "17111": "McHenry, IL", - "17113": "McLean, IL", - "17115": "Macon, IL", - "17117": "Macoupin, IL", - "17119": "Madison, IL", - "17121": "Marion, IL", - "17123": "Marshall, IL", - "17125": "Mason, IL", - "17127": "Massac, IL", - "17129": "Menard, IL", - "17131": "Mercer, IL", - "17133": "Monroe, IL", - "17135": "Montgomery, IL", - "17137": "Morgan, IL", - "17139": "Moultrie, IL", - "17141": "Ogle, IL", - "17143": "Peoria, IL", - "17145": "Perry, IL", - "17147": "Piatt, IL", - "17149": "Pike, IL", - "17151": "Pope, IL", - "17153": "Pulaski, IL", - "17155": "Putnam, IL", - "17157": "Randolph, IL", - "17159": "Richland, IL", - "17161": "Rock Island, IL", - "17163": "St. Clair, IL", - "17165": "Saline, IL", - "17167": "Sangamon, IL", - "17169": "Schuyler, IL", - "17171": "Scott, IL", - "17173": "Shelby, IL", - "17175": "Stark, IL", - "17177": "Stephenson, IL", - "17179": "Tazewell, IL", - "17181": "Union, IL", - "17183": "Vermilion, IL", - "17185": "Wabash, IL", - "17187": "Warren, IL", - "17189": "Washington, IL", - "17191": "Wayne, IL", - "17193": "White, IL", - "17195": "Whiteside, IL", - "17197": "Will, IL", - "17199": "Williamson, IL", - "17201": "Winnebago, IL", - "17203": "Woodford, IL", - "18001": "Adams, IN", - "18003": "Allen, IN", - "18005": "Bartholomew, IN", - "18007": "Benton, IN", - "18009": "Blackford, IN", - "18011": "Boone, IN", - "18013": "Brown, IN", - "18015": "Carroll, IN", - "18017": "Cass, IN", - "18019": "Clark, IN", - "18021": "Clay, IN", - "18023": "Clinton, IN", - "18025": "Crawford, IN", - "18027": "Daviess, IN", - "18029": "Dearborn, IN", - "18031": "Decatur, IN", - "18033": "DeKalb, IN", - "18035": "Delaware, IN", - "18037": "Dubois, IN", - "18039": "Elkhart, IN", - "18041": "Fayette, IN", - "18043": "Floyd, IN", - "18045": "Fountain, IN", - "18047": "Franklin, IN", - "18049": "Fulton, IN", - "18051": "Gibson, IN", - "18053": "Grant, IN", - "18055": "Greene, IN", - "18057": "Hamilton, IN", - "18059": "Hancock, IN", - "18061": "Harrison, IN", - "18063": "Hendricks, IN", - "18065": "Henry, IN", - "18067": "Howard, IN", - "18069": "Huntington, IN", - "18071": "Jackson, IN", - "18073": "Jasper, IN", - "18075": "Jay, IN", - "18077": "Jefferson, IN", - "18079": "Jennings, IN", - "18081": "Johnson, IN", - "18083": "Knox, IN", - "18085": "Kosciusko, IN", - "18087": "LaGrange, IN", - "18089": "Lake, IN", - "18091": "LaPorte, IN", - "18093": "Lawrence, IN", - "18095": "Madison, IN", - "18097": "Marion, IN", - "18099": "Marshall, IN", - "18101": "Martin, IN", - "18103": "Miami, IN", - "18105": "Monroe, IN", - "18107": "Montgomery, IN", - "18109": "Morgan, IN", - "18111": "Newton, IN", - "18113": "Noble, IN", - "18115": "Ohio, IN", - "18117": "Orange, IN", - "18119": "Owen, IN", - "18121": "Parke, IN", - "18123": "Perry, IN", - "18125": "Pike, IN", - "18127": "Porter, IN", - "18129": "Posey, IN", - "18131": "Pulaski, IN", - "18133": "Putnam, IN", - "18135": "Randolph, IN", - "18137": "Ripley, IN", - "18139": "Rush, IN", - "18141": "St. Joseph, IN", - "18143": "Scott, IN", - "18145": "Shelby, IN", - "18147": "Spencer, IN", - "18149": "Starke, IN", - "18151": "Steuben, IN", - "18153": "Sullivan, IN", - "18155": "Switzerland, IN", - "18157": "Tippecanoe, IN", - "18159": "Tipton, IN", - "18161": "Union, IN", - "18163": "Vanderburgh, IN", - "18165": "Vermillion, IN", - "18167": "Vigo, IN", - "18169": "Wabash, IN", - "18171": "Warren, IN", - "18173": "Warrick, IN", - "18175": "Washington, IN", - "18177": "Wayne, IN", - "18179": "Wells, IN", - "18181": "White, IN", - "18183": "Whitley, IN", - "19001": "Adair, IA", - "19003": "Adams, IA", - "19005": "Allamakee, IA", - "19007": "Appanoose, IA", - "19009": "Audubon, IA", - "19011": "Benton, IA", - "19013": "Black Hawk, IA", - "19015": "Boone, IA", - "19017": "Bremer, IA", - "19019": "Buchanan, IA", - "19021": "Buena Vista, IA", - "19023": "Butler, IA", - "19025": "Calhoun, IA", - "19027": "Carroll, IA", - "19029": "Cass, IA", - "19031": "Cedar, IA", - "19033": "Cerro Gordo, IA", - "19035": "Cherokee, IA", - "19037": "Chickasaw, IA", - "19039": "Clarke, IA", - "19041": "Clay, IA", - "19043": "Clayton, IA", - "19045": "Clinton, IA", - "19047": "Crawford, IA", - "19049": "Dallas, IA", - "19051": "Davis, IA", - "19053": "Decatur, IA", - "19055": "Delaware, IA", - "19057": "Des Moines, IA", - "19059": "Dickinson, IA", - "19061": "Dubuque, IA", - "19063": "Emmet, IA", - "19065": "Fayette, IA", - "19067": "Floyd, IA", - "19069": "Franklin, IA", - "19071": "Fremont, IA", - "19073": "Greene, IA", - "19075": "Grundy, IA", - "19077": "Guthrie, IA", - "19079": "Hamilton, IA", - "19081": "Hancock, IA", - "19083": "Hardin, IA", - "19085": "Harrison, IA", - "19087": "Henry, IA", - "19089": "Howard, IA", - "19091": "Humboldt, IA", - "19093": "Ida, IA", - "19095": "Iowa, IA", - "19097": "Jackson, IA", - "19099": "Jasper, IA", - "19101": "Jefferson, IA", - "19103": "Johnson, IA", - "19105": "Jones, IA", - "19107": "Keokuk, IA", - "19109": "Kossuth, IA", - "19111": "Lee, IA", - "19113": "Linn, IA", - "19115": "Louisa, IA", - "19117": "Lucas, IA", - "19119": "Lyon, IA", - "19121": "Madison, IA", - "19123": "Mahaska, IA", - "19125": "Marion, IA", - "19127": "Marshall, IA", - "19129": "Mills, IA", - "19131": "Mitchell, IA", - "19133": "Monona, IA", - "19135": "Monroe, IA", - "19137": "Montgomery, IA", - "19139": "Muscatine, IA", - "19141": "O'Brien, IA", - "19143": "Osceola, IA", - "19145": "Page, IA", - "19147": "Palo Alto, IA", - "19149": "Plymouth, IA", - "19151": "Pocahontas, IA", - "19153": "Polk, IA", - "19155": "Pottawattamie, IA", - "19157": "Poweshiek, IA", - "19159": "Ringgold, IA", - "19161": "Sac, IA", - "19163": "Scott, IA", - "19165": "Shelby, IA", - "19167": "Sioux, IA", - "19169": "Story, IA", - "19171": "Tama, IA", - "19173": "Taylor, IA", - "19175": "Union, IA", - "19177": "Van Buren, IA", - "19179": "Wapello, IA", - "19181": "Warren, IA", - "19183": "Washington, IA", - "19185": "Wayne, IA", - "19187": "Webster, IA", - "19189": "Winnebago, IA", - "19191": "Winneshiek, IA", - "19193": "Woodbury, IA", - "19195": "Worth, IA", - "19197": "Wright, IA", - "20001": "Allen, KS", - "20003": "Anderson, KS", - "20005": "Atchison, KS", - "20007": "Barber, KS", - "20009": "Barton, KS", - "20011": "Bourbon, KS", - "20013": "Brown, KS", - "20015": "Butler, KS", - "20017": "Chase, KS", - "20019": "Chautauqua, KS", - "20021": "Cherokee, KS", - "20023": "Cheyenne, KS", - "20025": "Clark, KS", - "20027": "Clay, KS", - "20029": "Cloud, KS", - "20031": "Coffey, KS", - "20033": "Comanche, KS", - "20035": "Cowley, KS", - "20037": "Crawford, KS", - "20039": "Decatur, KS", - "20041": "Dickinson, KS", - "20043": "Doniphan, KS", - "20045": "Douglas, KS", - "20047": "Edwards, KS", - "20049": "Elk, KS", - "20051": "Ellis, KS", - "20053": "Ellsworth, KS", - "20055": "Finney, KS", - "20057": "Ford, KS", - "20059": "Franklin, KS", - "20061": "Geary, KS", - "20063": "Gove, KS", - "20065": "Graham, KS", - "20067": "Grant, KS", - "20069": "Gray, KS", - "20071": "Greeley, KS", - "20073": "Greenwood, KS", - "20075": "Hamilton, KS", - "20077": "Harper, KS", - "20079": "Harvey, KS", - "20081": "Haskell, KS", - "20083": "Hodgeman, KS", - "20085": "Jackson, KS", - "20087": "Jefferson, KS", - "20089": "Jewell, KS", - "20091": "Johnson, KS", - "20093": "Kearny, KS", - "20095": "Kingman, KS", - "20097": "Kiowa, KS", - "20099": "Labette, KS", - "20101": "Lane, KS", - "20103": "Leavenworth, KS", - "20105": "Lincoln, KS", - "20107": "Linn, KS", - "20109": "Logan, KS", - "20111": "Lyon, KS", - "20113": "McPherson, KS", - "20115": "Marion, KS", - "20117": "Marshall, KS", - "20119": "Meade, KS", - "20121": "Miami, KS", - "20123": "Mitchell, KS", - "20125": "Montgomery, KS", - "20127": "Morris, KS", - "20129": "Morton, KS", - "20131": "Nemaha, KS", - "20133": "Neosho, KS", - "20135": "Ness, KS", - "20137": "Norton, KS", - "20139": "Osage, KS", - "20141": "Osborne, KS", - "20143": "Ottawa, KS", - "20145": "Pawnee, KS", - "20147": "Phillips, KS", - "20149": "Pottawatomie, KS", - "20151": "Pratt, KS", - "20153": "Rawlins, KS", - "20155": "Reno, KS", - "20157": "Republic, KS", - "20159": "Rice, KS", - "20161": "Riley, KS", - "20163": "Rooks, KS", - "20165": "Rush, KS", - "20167": "Russell, KS", - "20169": "Saline, KS", - "20171": "Scott, KS", - "20173": "Sedgwick, KS", - "20175": "Seward, KS", - "20177": "Shawnee, KS", - "20179": "Sheridan, KS", - "20181": "Sherman, KS", - "20183": "Smith, KS", - "20185": "Stafford, KS", - "20187": "Stanton, KS", - "20189": "Stevens, KS", - "20191": "Sumner, KS", - "20193": "Thomas, KS", - "20195": "Trego, KS", - "20197": "Wabaunsee, KS", - "20199": "Wallace, KS", - "20201": "Washington, KS", - "20203": "Wichita, KS", - "20205": "Wilson, KS", - "20207": "Woodson, KS", - "20209": "Wyandotte, KS", - "21001": "Adair, KY", - "21003": "Allen, KY", - "21005": "Anderson, KY", - "21007": "Ballard, KY", - "21009": "Barren, KY", - "21011": "Bath, KY", - "21013": "Bell, KY", - "21015": "Boone, KY", - "21017": "Bourbon, KY", - "21019": "Boyd, KY", - "21021": "Boyle, KY", - "21023": "Bracken, KY", - "21025": "Breathitt, KY", - "21027": "Breckinridge, KY", - "21029": "Bullitt, KY", - "21031": "Butler, KY", - "21033": "Caldwell, KY", - "21035": "Calloway, KY", - "21037": "Campbell, KY", - "21039": "Carlisle, KY", - "21041": "Carroll, KY", - "21043": "Carter, KY", - "21045": "Casey, KY", - "21047": "Christian, KY", - "21049": "Clark, KY", - "21051": "Clay, KY", - "21053": "Clinton, KY", - "21055": "Crittenden, KY", - "21057": "Cumberland, KY", - "21059": "Daviess, KY", - "21061": "Edmonson, KY", - "21063": "Elliott, KY", - "21065": "Estill, KY", - "21067": "Fayette, KY", - "21069": "Fleming, KY", - "21071": "Floyd, KY", - "21073": "Franklin, KY", - "21075": "Fulton, KY", - "21077": "Gallatin, KY", - "21079": "Garrard, KY", - "21081": "Grant, KY", - "21083": "Graves, KY", - "21085": "Grayson, KY", - "21087": "Green, KY", - "21089": "Greenup, KY", - "21091": "Hancock, KY", - "21093": "Hardin, KY", - "21095": "Harlan, KY", - "21097": "Harrison, KY", - "21099": "Hart, KY", - "21101": "Henderson, KY", - "21103": "Henry, KY", - "21105": "Hickman, KY", - "21107": "Hopkins, KY", - "21109": "Jackson, KY", - "21111": "Jefferson, KY", - "21113": "Jessamine, KY", - "21115": "Johnson, KY", - "21117": "Kenton, KY", - "21119": "Knott, KY", - "21121": "Knox, KY", - "21123": "Larue, KY", - "21125": "Laurel, KY", - "21127": "Lawrence, KY", - "21129": "Lee, KY", - "21131": "Leslie, KY", - "21133": "Letcher, KY", - "21135": "Lewis, KY", - "21137": "Lincoln, KY", - "21139": "Livingston, KY", - "21141": "Logan, KY", - "21143": "Lyon, KY", - "21145": "McCracken, KY", - "21147": "McCreary, KY", - "21149": "McLean, KY", - "21151": "Madison, KY", - "21153": "Magoffin, KY", - "21155": "Marion, KY", - "21157": "Marshall, KY", - "21159": "Martin, KY", - "21161": "Mason, KY", - "21163": "Meade, KY", - "21165": "Menifee, KY", - "21167": "Mercer, KY", - "21169": "Metcalfe, KY", - "21171": "Monroe, KY", - "21173": "Montgomery, KY", - "21175": "Morgan, KY", - "21177": "Muhlenberg, KY", - "21179": "Nelson, KY", - "21181": "Nicholas, KY", - "21183": "Ohio, KY", - "21185": "Oldham, KY", - "21187": "Owen, KY", - "21189": "Owsley, KY", - "21191": "Pendleton, KY", - "21193": "Perry, KY", - "21195": "Pike, KY", - "21197": "Powell, KY", - "21199": "Pulaski, KY", - "21201": "Robertson, KY", - "21203": "Rockcastle, KY", - "21205": "Rowan, KY", - "21207": "Russell, KY", - "21209": "Scott, KY", - "21211": "Shelby, KY", - "21213": "Simpson, KY", - "21215": "Spencer, KY", - "21217": "Taylor, KY", - "21219": "Todd, KY", - "21221": "Trigg, KY", - "21223": "Trimble, KY", - "21225": "Union, KY", - "21227": "Warren, KY", - "21229": "Washington, KY", - "21231": "Wayne, KY", - "21233": "Webster, KY", - "21235": "Whitley, KY", - "21237": "Wolfe, KY", - "21239": "Woodford, KY", - "22001": "Acadia, LA", - "22003": "Allen, LA", - "22005": "Ascension, LA", - "22007": "Assumption, LA", - "22009": "Avoyelles, LA", - "22011": "Beauregard, LA", - "22013": "Bienville, LA", - "22015": "Bossier, LA", - "22017": "Caddo, LA", - "22019": "Calcasieu, LA", - "22021": "Caldwell, LA", - "22023": "Cameron, LA", - "22025": "Catahoula, LA", - "22027": "Claiborne, LA", - "22029": "Concordia, LA", - "22031": "De Soto, LA", - "22033": "East Baton Rouge, LA", - "22035": "East Carroll, LA", - "22037": "East Feliciana, LA", - "22039": "Evangeline, LA", - "22041": "Franklin, LA", - "22043": "Grant, LA", - "22045": "Iberia, LA", - "22047": "Iberville, LA", - "22049": "Jackson, LA", - "22051": "Jefferson, LA", - "22053": "Jefferson Davis, LA", - "22055": "Lafayette, LA", - "22057": "Lafourche, LA", - "22059": "La Salle, LA", - "22061": "Lincoln, LA", - "22063": "Livingston, LA", - "22065": "Madison, LA", - "22067": "Morehouse, LA", - "22069": "Natchitoches, LA", - "22071": "Orleans, LA", - "22073": "Ouachita, LA", - "22075": "Plaquemines, LA", - "22077": "Pointe Coupee, LA", - "22079": "Rapides, LA", - "22081": "Red River, LA", - "22083": "Richland, LA", - "22085": "Sabine, LA", - "22087": "St. Bernard, LA", - "22089": "St. Charles, LA", - "22091": "St. Helena, LA", - "22093": "St. James, LA", - "22095": "St. John the Baptist, LA", - "22097": "St. Landry, LA", - "22099": "St. Martin, LA", - "22101": "St. Mary, LA", - "22103": "St. Tammany, LA", - "22105": "Tangipahoa, LA", - "22107": "Tensas, LA", - "22109": "Terrebonne, LA", - "22111": "Union, LA", - "22113": "Vermilion, LA", - "22115": "Vernon, LA", - "22117": "Washington, LA", - "22119": "Webster, LA", - "22121": "West Baton Rouge, LA", - "22123": "West Carroll, LA", - "22125": "West Feliciana, LA", - "22127": "Winn, LA", - "23001": "Androscoggin, ME", - "23003": "Aroostook, ME", - "23005": "Cumberland, ME", - "23007": "Franklin, ME", - "23009": "Hancock, ME", - "23011": "Kennebec, ME", - "23013": "Knox, ME", - "23015": "Lincoln, ME", - "23017": "Oxford, ME", - "23019": "Penobscot, ME", - "23021": "Piscataquis, ME", - "23023": "Sagadahoc, ME", - "23025": "Somerset, ME", - "23027": "Waldo, ME", - "23029": "Washington, ME", - "23031": "York, ME", - "24001": "Allegany, MD", - "24003": "Anne Arundel, MD", - "24005": "Baltimore, MD", - "24009": "Calvert, MD", - "24011": "Caroline, MD", - "24013": "Carroll, MD", - "24015": "Cecil, MD", - "24017": "Charles, MD", - "24019": "Dorchester, MD", - "24021": "Frederick, MD", - "24023": "Garrett, MD", - "24025": "Harford, MD", - "24027": "Howard, MD", - "24029": "Kent, MD", - "24031": "Montgomery, MD", - "24033": "Prince George's, MD", - "24035": "Queen Anne's, MD", - "24037": "St. Mary's, MD", - "24039": "Somerset, MD", - "24041": "Talbot, MD", - "24043": "Washington, MD", - "24045": "Wicomico, MD", - "24047": "Worcester, MD", - "24510": "Baltimore, MD", - "25001": "Barnstable, MA", - "25003": "Berkshire, MA", - "25005": "Bristol, MA", - "25007": "Dukes, MA", - "25009": "Essex, MA", - "25011": "Franklin, MA", - "25013": "Hampden, MA", - "25015": "Hampshire, MA", - "25017": "Middlesex, MA", - "25019": "Nantucket, MA", - "25021": "Norfolk, MA", - "25023": "Plymouth, MA", - "25025": "Suffolk, MA", - "25027": "Worcester, MA", - "26001": "Alcona, MI", - "26003": "Alger, MI", - "26005": "Allegan, MI", - "26007": "Alpena, MI", - "26009": "Antrim, MI", - "26011": "Arenac, MI", - "26013": "Baraga, MI", - "26015": "Barry, MI", - "26017": "Bay, MI", - "26019": "Benzie, MI", - "26021": "Berrien, MI", - "26023": "Branch, MI", - "26025": "Calhoun, MI", - "26027": "Cass, MI", - "26029": "Charlevoix, MI", - "26031": "Cheboygan, MI", - "26033": "Chippewa, MI", - "26035": "Clare, MI", - "26037": "Clinton, MI", - "26039": "Crawford, MI", - "26041": "Delta, MI", - "26043": "Dickinson, MI", - "26045": "Eaton, MI", - "26047": "Emmet, MI", - "26049": "Genesee, MI", - "26051": "Gladwin, MI", - "26053": "Gogebic, MI", - "26055": "Grand Traverse, MI", - "26057": "Gratiot, MI", - "26059": "Hillsdale, MI", - "26061": "Houghton, MI", - "26063": "Huron, MI", - "26065": "Ingham, MI", - "26067": "Ionia, MI", - "26069": "Iosco, MI", - "26071": "Iron, MI", - "26073": "Isabella, MI", - "26075": "Jackson, MI", - "26077": "Kalamazoo, MI", - "26079": "Kalkaska, MI", - "26081": "Kent, MI", - "26083": "Keweenaw, MI", - "26085": "Lake, MI", - "26087": "Lapeer, MI", - "26089": "Leelanau, MI", - "26091": "Lenawee, MI", - "26093": "Livingston, MI", - "26095": "Luce, MI", - "26097": "Mackinac, MI", - "26099": "Macomb, MI", - "26101": "Manistee, MI", - "26103": "Marquette, MI", - "26105": "Mason, MI", - "26107": "Mecosta, MI", - "26109": "Menominee, MI", - "26111": "Midland, MI", - "26113": "Missaukee, MI", - "26115": "Monroe, MI", - "26117": "Montcalm, MI", - "26119": "Montmorency, MI", - "26121": "Muskegon, MI", - "26123": "Newaygo, MI", - "26125": "Oakland, MI", - "26127": "Oceana, MI", - "26129": "Ogemaw, MI", - "26131": "Ontonagon, MI", - "26133": "Osceola, MI", - "26135": "Oscoda, MI", - "26137": "Otsego, MI", - "26139": "Ottawa, MI", - "26141": "Presque Isle, MI", - "26143": "Roscommon, MI", - "26145": "Saginaw, MI", - "26147": "St. Clair, MI", - "26149": "St. Joseph, MI", - "26151": "Sanilac, MI", - "26153": "Schoolcraft, MI", - "26155": "Shiawassee, MI", - "26157": "Tuscola, MI", - "26159": "Van Buren, MI", - "26161": "Washtenaw, MI", - "26163": "Wayne, MI", - "26165": "Wexford, MI", - "27001": "Aitkin, MN", - "27003": "Anoka, MN", - "27005": "Becker, MN", - "27007": "Beltrami, MN", - "27009": "Benton, MN", - "27011": "Big Stone, MN", - "27013": "Blue Earth, MN", - "27015": "Brown, MN", - "27017": "Carlton, MN", - "27019": "Carver, MN", - "27021": "Cass, MN", - "27023": "Chippewa, MN", - "27025": "Chisago, MN", - "27027": "Clay, MN", - "27029": "Clearwater, MN", - "27031": "Cook, MN", - "27033": "Cottonwood, MN", - "27035": "Crow Wing, MN", - "27037": "Dakota, MN", - "27039": "Dodge, MN", - "27041": "Douglas, MN", - "27043": "Faribault, MN", - "27045": "Fillmore, MN", - "27047": "Freeborn, MN", - "27049": "Goodhue, MN", - "27051": "Grant, MN", - "27053": "Hennepin, MN", - "27055": "Houston, MN", - "27057": "Hubbard, MN", - "27059": "Isanti, MN", - "27061": "Itasca, MN", - "27063": "Jackson, MN", - "27065": "Kanabec, MN", - "27067": "Kandiyohi, MN", - "27069": "Kittson, MN", - "27071": "Koochiching, MN", - "27073": "Lac qui Parle, MN", - "27075": "Lake, MN", - "27077": "Lake of the Woods, MN", - "27079": "Le Sueur, MN", - "27081": "Lincoln, MN", - "27083": "Lyon, MN", - "27085": "McLeod, MN", - "27087": "Mahnomen, MN", - "27089": "Marshall, MN", - "27091": "Martin, MN", - "27093": "Meeker, MN", - "27095": "Mille Lacs, MN", - "27097": "Morrison, MN", - "27099": "Mower, MN", - "27101": "Murray, MN", - "27103": "Nicollet, MN", - "27105": "Nobles, MN", - "27107": "Norman, MN", - "27109": "Olmsted, MN", - "27111": "Otter Tail, MN", - "27113": "Pennington, MN", - "27115": "Pine, MN", - "27117": "Pipestone, MN", - "27119": "Polk, MN", - "27121": "Pope, MN", - "27123": "Ramsey, MN", - "27125": "Red Lake, MN", - "27127": "Redwood, MN", - "27129": "Renville, MN", - "27131": "Rice, MN", - "27133": "Rock, MN", - "27135": "Roseau, MN", - "27137": "St. Louis, MN", - "27139": "Scott, MN", - "27141": "Sherburne, MN", - "27143": "Sibley, MN", - "27145": "Stearns, MN", - "27147": "Steele, MN", - "27149": "Stevens, MN", - "27151": "Swift, MN", - "27153": "Todd, MN", - "27155": "Traverse, MN", - "27157": "Wabasha, MN", - "27159": "Wadena, MN", - "27161": "Waseca, MN", - "27163": "Washington, MN", - "27165": "Watonwan, MN", - "27167": "Wilkin, MN", - "27169": "Winona, MN", - "27171": "Wright, MN", - "27173": "Yellow Medicine, MN", - "28001": "Adams, MS", - "28003": "Alcorn, MS", - "28005": "Amite, MS", - "28007": "Attala, MS", - "28009": "Benton, MS", - "28011": "Bolivar, MS", - "28013": "Calhoun, MS", - "28015": "Carroll, MS", - "28017": "Chickasaw, MS", - "28019": "Choctaw, MS", - "28021": "Claiborne, MS", - "28023": "Clarke, MS", - "28025": "Clay, MS", - "28027": "Coahoma, MS", - "28029": "Copiah, MS", - "28031": "Covington, MS", - "28033": "DeSoto, MS", - "28035": "Forrest, MS", - "28037": "Franklin, MS", - "28039": "George, MS", - "28041": "Greene, MS", - "28043": "Grenada, MS", - "28045": "Hancock, MS", - "28047": "Harrison, MS", - "28049": "Hinds, MS", - "28051": "Holmes, MS", - "28053": "Humphreys, MS", - "28055": "Issaquena, MS", - "28057": "Itawamba, MS", - "28059": "Jackson, MS", - "28061": "Jasper, MS", - "28063": "Jefferson, MS", - "28065": "Jefferson Davis, MS", - "28067": "Jones, MS", - "28069": "Kemper, MS", - "28071": "Lafayette, MS", - "28073": "Lamar, MS", - "28075": "Lauderdale, MS", - "28077": "Lawrence, MS", - "28079": "Leake, MS", - "28081": "Lee, MS", - "28083": "Leflore, MS", - "28085": "Lincoln, MS", - "28087": "Lowndes, MS", - "28089": "Madison, MS", - "28091": "Marion, MS", - "28093": "Marshall, MS", - "28095": "Monroe, MS", - "28097": "Montgomery, MS", - "28099": "Neshoba, MS", - "28101": "Newton, MS", - "28103": "Noxubee, MS", - "28105": "Oktibbeha, MS", - "28107": "Panola, MS", - "28109": "Pearl River, MS", - "28111": "Perry, MS", - "28113": "Pike, MS", - "28115": "Pontotoc, MS", - "28117": "Prentiss, MS", - "28119": "Quitman, MS", - "28121": "Rankin, MS", - "28123": "Scott, MS", - "28125": "Sharkey, MS", - "28127": "Simpson, MS", - "28129": "Smith, MS", - "28131": "Stone, MS", - "28133": "Sunflower, MS", - "28135": "Tallahatchie, MS", - "28137": "Tate, MS", - "28139": "Tippah, MS", - "28141": "Tishomingo, MS", - "28143": "Tunica, MS", - "28145": "Union, MS", - "28147": "Walthall, MS", - "28149": "Warren, MS", - "28151": "Washington, MS", - "28153": "Wayne, MS", - "28155": "Webster, MS", - "28157": "Wilkinson, MS", - "28159": "Winston, MS", - "28161": "Yalobusha, MS", - "28163": "Yazoo, MS", - "29001": "Adair, MO", - "29003": "Andrew, MO", - "29005": "Atchison, MO", - "29007": "Audrain, MO", - "29009": "Barry, MO", - "29011": "Barton, MO", - "29013": "Bates, MO", - "29015": "Benton, MO", - "29017": "Bollinger, MO", - "29019": "Boone, MO", - "29021": "Buchanan, MO", - "29023": "Butler, MO", - "29025": "Caldwell, MO", - "29027": "Callaway, MO", - "29029": "Camden, MO", - "29031": "Cape Girardeau, MO", - "29033": "Carroll, MO", - "29035": "Carter, MO", - "29037": "Cass, MO", - "29039": "Cedar, MO", - "29041": "Chariton, MO", - "29043": "Christian, MO", - "29045": "Clark, MO", - "29047": "Clay, MO", - "29049": "Clinton, MO", - "29051": "Cole, MO", - "29053": "Cooper, MO", - "29055": "Crawford, MO", - "29057": "Dade, MO", - "29059": "Dallas, MO", - "29061": "Daviess, MO", - "29063": "DeKalb, MO", - "29065": "Dent, MO", - "29067": "Douglas, MO", - "29069": "Dunklin, MO", - "29071": "Franklin, MO", - "29073": "Gasconade, MO", - "29075": "Gentry, MO", - "29077": "Greene, MO", - "29079": "Grundy, MO", - "29081": "Harrison, MO", - "29083": "Henry, MO", - "29085": "Hickory, MO", - "29087": "Holt, MO", - "29089": "Howard, MO", - "29091": "Howell, MO", - "29093": "Iron, MO", - "29095": "Jackson, MO", - "29097": "Jasper, MO", - "29099": "Jefferson, MO", - "29101": "Johnson, MO", - "29103": "Knox, MO", - "29105": "Laclede, MO", - "29107": "Lafayette, MO", - "29109": "Lawrence, MO", - "29111": "Lewis, MO", - "29113": "Lincoln, MO", - "29115": "Linn, MO", - "29117": "Livingston, MO", - "29119": "McDonald, MO", - "29121": "Macon, MO", - "29123": "Madison, MO", - "29125": "Maries, MO", - "29127": "Marion, MO", - "29129": "Mercer, MO", - "29131": "Miller, MO", - "29133": "Mississippi, MO", - "29135": "Moniteau, MO", - "29137": "Monroe, MO", - "29139": "Montgomery, MO", - "29141": "Morgan, MO", - "29143": "New Madrid, MO", - "29145": "Newton, MO", - "29147": "Nodaway, MO", - "29149": "Oregon, MO", - "29151": "Osage, MO", - "29153": "Ozark, MO", - "29155": "Pemiscot, MO", - "29157": "Perry, MO", - "29159": "Pettis, MO", - "29161": "Phelps, MO", - "29163": "Pike, MO", - "29165": "Platte, MO", - "29167": "Polk, MO", - "29169": "Pulaski, MO", - "29171": "Putnam, MO", - "29173": "Ralls, MO", - "29175": "Randolph, MO", - "29177": "Ray, MO", - "29179": "Reynolds, MO", - "29181": "Ripley, MO", - "29183": "St. Charles, MO", - "29185": "St. Clair, MO", - "29186": "Ste. Genevieve, MO", - "29187": "St. Francois, MO", - "29189": "St. Louis, MO", - "29195": "Saline, MO", - "29197": "Schuyler, MO", - "29199": "Scotland, MO", - "29201": "Scott, MO", - "29203": "Shannon, MO", - "29205": "Shelby, MO", - "29207": "Stoddard, MO", - "29209": "Stone, MO", - "29211": "Sullivan, MO", - "29213": "Taney, MO", - "29215": "Texas, MO", - "29217": "Vernon, MO", - "29219": "Warren, MO", - "29221": "Washington, MO", - "29223": "Wayne, MO", - "29225": "Webster, MO", - "29227": "Worth, MO", - "29229": "Wright, MO", - "29510": "St. Louis, MO", - "30001": "Beaverhead, MT", - "30003": "Big Horn, MT", - "30005": "Blaine, MT", - "30007": "Broadwater, MT", - "30009": "Carbon, MT", - "30011": "Carter, MT", - "30013": "Cascade, MT", - "30015": "Chouteau, MT", - "30017": "Custer, MT", - "30019": "Daniels, MT", - "30021": "Dawson, MT", - "30023": "Deer Lodge, MT", - "30025": "Fallon, MT", - "30027": "Fergus, MT", - "30029": "Flathead, MT", - "30031": "Gallatin, MT", - "30033": "Garfield, MT", - "30035": "Glacier, MT", - "30037": "Golden Valley, MT", - "30039": "Granite, MT", - "30041": "Hill, MT", - "30043": "Jefferson, MT", - "30045": "Judith Basin, MT", - "30047": "Lake, MT", - "30049": "Lewis and Clark, MT", - "30051": "Liberty, MT", - "30053": "Lincoln, MT", - "30055": "McCone, MT", - "30057": "Madison, MT", - "30059": "Meagher, MT", - "30061": "Mineral, MT", - "30063": "Missoula, MT", - "30065": "Musselshell, MT", - "30067": "Park, MT", - "30069": "Petroleum, MT", - "30071": "Phillips, MT", - "30073": "Pondera, MT", - "30075": "Powder River, MT", - "30077": "Powell, MT", - "30079": "Prairie, MT", - "30081": "Ravalli, MT", - "30083": "Richland, MT", - "30085": "Roosevelt, MT", - "30087": "Rosebud, MT", - "30089": "Sanders, MT", - "30091": "Sheridan, MT", - "30093": "Silver Bow, MT", - "30095": "Stillwater, MT", - "30097": "Sweet Grass, MT", - "30099": "Teton, MT", - "30101": "Toole, MT", - "30103": "Treasure, MT", - "30105": "Valley, MT", - "30107": "Wheatland, MT", - "30109": "Wibaux, MT", - "30111": "Yellowstone, MT", - "31001": "Adams, NE", - "31003": "Antelope, NE", - "31005": "Arthur, NE", - "31007": "Banner, NE", - "31009": "Blaine, NE", - "31011": "Boone, NE", - "31013": "Box Butte, NE", - "31015": "Boyd, NE", - "31017": "Brown, NE", - "31019": "Buffalo, NE", - "31021": "Burt, NE", - "31023": "Butler, NE", - "31025": "Cass, NE", - "31027": "Cedar, NE", - "31029": "Chase, NE", - "31031": "Cherry, NE", - "31033": "Cheyenne, NE", - "31035": "Clay, NE", - "31037": "Colfax, NE", - "31039": "Cuming, NE", - "31041": "Custer, NE", - "31043": "Dakota, NE", - "31045": "Dawes, NE", - "31047": "Dawson, NE", - "31049": "Deuel, NE", - "31051": "Dixon, NE", - "31053": "Dodge, NE", - "31055": "Douglas, NE", - "31057": "Dundy, NE", - "31059": "Fillmore, NE", - "31061": "Franklin, NE", - "31063": "Frontier, NE", - "31065": "Furnas, NE", - "31067": "Gage, NE", - "31069": "Garden, NE", - "31071": "Garfield, NE", - "31073": "Gosper, NE", - "31075": "Grant, NE", - "31077": "Greeley, NE", - "31079": "Hall, NE", - "31081": "Hamilton, NE", - "31083": "Harlan, NE", - "31085": "Hayes, NE", - "31087": "Hitchcock, NE", - "31089": "Holt, NE", - "31091": "Hooker, NE", - "31093": "Howard, NE", - "31095": "Jefferson, NE", - "31097": "Johnson, NE", - "31099": "Kearney, NE", - "31101": "Keith, NE", - "31103": "Keya Paha, NE", - "31105": "Kimball, NE", - "31107": "Knox, NE", - "31109": "Lancaster, NE", - "31111": "Lincoln, NE", - "31113": "Logan, NE", - "31115": "Loup, NE", - "31117": "McPherson, NE", - "31119": "Madison, NE", - "31121": "Merrick, NE", - "31123": "Morrill, NE", - "31125": "Nance, NE", - "31127": "Nemaha, NE", - "31129": "Nuckolls, NE", - "31131": "Otoe, NE", - "31133": "Pawnee, NE", - "31135": "Perkins, NE", - "31137": "Phelps, NE", - "31139": "Pierce, NE", - "31141": "Platte, NE", - "31143": "Polk, NE", - "31145": "Red Willow, NE", - "31147": "Richardson, NE", - "31149": "Rock, NE", - "31151": "Saline, NE", - "31153": "Sarpy, NE", - "31155": "Saunders, NE", - "31157": "Scotts Bluff, NE", - "31159": "Seward, NE", - "31161": "Sheridan, NE", - "31163": "Sherman, NE", - "31165": "Sioux, NE", - "31167": "Stanton, NE", - "31169": "Thayer, NE", - "31171": "Thomas, NE", - "31173": "Thurston, NE", - "31175": "Valley, NE", - "31177": "Washington, NE", - "31179": "Wayne, NE", - "31181": "Webster, NE", - "31183": "Wheeler, NE", - "31185": "York, NE", - "32001": "Churchill, NV", - "32003": "Clark, NV", - "32005": "Douglas, NV", - "32007": "Elko, NV", - "32009": "Esmeralda, NV", - "32011": "Eureka, NV", - "32013": "Humboldt, NV", - "32015": "Lander, NV", - "32017": "Lincoln, NV", - "32019": "Lyon, NV", - "32021": "Mineral, NV", - "32023": "Nye, NV", - "32027": "Pershing, NV", - "32029": "Storey, NV", - "32031": "Washoe, NV", - "32033": "White Pine, NV", - "32510": "Carson, NV", - "33001": "Belknap, NH", - "33003": "Carroll, NH", - "33005": "Cheshire, NH", - "33007": "Coos, NH", - "33009": "Grafton, NH", - "33011": "Hillsborough, NH", - "33013": "Merrimack, NH", - "33015": "Rockingham, NH", - "33017": "Strafford, NH", - "33019": "Sullivan, NH", - "34001": "Atlantic, NJ", - "34003": "Bergen, NJ", - "34005": "Burlington, NJ", - "34007": "Camden, NJ", - "34009": "Cape May, NJ", - "34011": "Cumberland, NJ", - "34013": "Essex, NJ", - "34015": "Gloucester, NJ", - "34017": "Hudson, NJ", - "34019": "Hunterdon, NJ", - "34021": "Mercer, NJ", - "34023": "Middlesex, NJ", - "34025": "Monmouth, NJ", - "34027": "Morris, NJ", - "34029": "Ocean, NJ", - "34031": "Passaic, NJ", - "34033": "Salem, NJ", - "34035": "Somerset, NJ", - "34037": "Sussex, NJ", - "34039": "Union, NJ", - "34041": "Warren, NJ", - "35001": "Bernalillo, NM", - "35003": "Catron, NM", - "35005": "Chaves, NM", - "35006": "Cibola, NM", - "35007": "Colfax, NM", - "35009": "Curry, NM", - "35011": "De Baca, NM", - "35013": "Dona Ana, NM", - "35015": "Eddy, NM", - "35017": "Grant, NM", - "35019": "Guadalupe, NM", - "35021": "Harding, NM", - "35023": "Hidalgo, NM", - "35025": "Lea, NM", - "35027": "Lincoln, NM", - "35028": "Los Alamos, NM", - "35029": "Luna, NM", - "35031": "McKinley, NM", - "35033": "Mora, NM", - "35035": "Otero, NM", - "35037": "Quay, NM", - "35039": "Rio Arriba, NM", - "35041": "Roosevelt, NM", - "35043": "Sandoval, NM", - "35045": "San Juan, NM", - "35047": "San Miguel, NM", - "35049": "Santa Fe, NM", - "35051": "Sierra, NM", - "35053": "Socorro, NM", - "35055": "Taos, NM", - "35057": "Torrance, NM", - "35059": "Union, NM", - "35061": "Valencia, NM", - "36001": "Albany, NY", - "36003": "Allegany, NY", - "36005": "Bronx, NY", - "36007": "Broome, NY", - "36009": "Cattaraugus, NY", - "36011": "Cayuga, NY", - "36013": "Chautauqua, NY", - "36015": "Chemung, NY", - "36017": "Chenango, NY", - "36019": "Clinton, NY", - "36021": "Columbia, NY", - "36023": "Cortland, NY", - "36025": "Delaware, NY", - "36027": "Dutchess, NY", - "36029": "Erie, NY", - "36031": "Essex, NY", - "36033": "Franklin, NY", - "36035": "Fulton, NY", - "36037": "Genesee, NY", - "36039": "Greene, NY", - "36041": "Hamilton, NY", - "36043": "Herkimer, NY", - "36045": "Jefferson, NY", - "36047": "Kings, NY", - "36049": "Lewis, NY", - "36051": "Livingston, NY", - "36053": "Madison, NY", - "36055": "Monroe, NY", - "36057": "Montgomery, NY", - "36059": "Nassau, NY", - "36061": "New York, NY", - "36063": "Niagara, NY", - "36065": "Oneida, NY", - "36067": "Onondaga, NY", - "36069": "Ontario, NY", - "36071": "Orange, NY", - "36073": "Orleans, NY", - "36075": "Oswego, NY", - "36077": "Otsego, NY", - "36079": "Putnam, NY", - "36081": "Queens, NY", - "36083": "Rensselaer, NY", - "36085": "Richmond, NY", - "36087": "Rockland, NY", - "36089": "St. Lawrence, NY", - "36091": "Saratoga, NY", - "36093": "Schenectady, NY", - "36095": "Schoharie, NY", - "36097": "Schuyler, NY", - "36099": "Seneca, NY", - "36101": "Steuben, NY", - "36103": "Suffolk, NY", - "36105": "Sullivan, NY", - "36107": "Tioga, NY", - "36109": "Tompkins, NY", - "36111": "Ulster, NY", - "36113": "Warren, NY", - "36115": "Washington, NY", - "36117": "Wayne, NY", - "36119": "Westchester, NY", - "36121": "Wyoming, NY", - "36123": "Yates, NY", - "37001": "Alamance, NC", - "37003": "Alexander, NC", - "37005": "Alleghany, NC", - "37007": "Anson, NC", - "37009": "Ashe, NC", - "37011": "Avery, NC", - "37013": "Beaufort, NC", - "37015": "Bertie, NC", - "37017": "Bladen, NC", - "37019": "Brunswick, NC", - "37021": "Buncombe, NC", - "37023": "Burke, NC", - "37025": "Cabarrus, NC", - "37027": "Caldwell, NC", - "37029": "Camden, NC", - "37031": "Carteret, NC", - "37033": "Caswell, NC", - "37035": "Catawba, NC", - "37037": "Chatham, NC", - "37039": "Cherokee, NC", - "37041": "Chowan, NC", - "37043": "Clay, NC", - "37045": "Cleveland, NC", - "37047": "Columbus, NC", - "37049": "Craven, NC", - "37051": "Cumberland, NC", - "37053": "Currituck, NC", - "37055": "Dare, NC", - "37057": "Davidson, NC", - "37059": "Davie, NC", - "37061": "Duplin, NC", - "37063": "Durham, NC", - "37065": "Edgecombe, NC", - "37067": "Forsyth, NC", - "37069": "Franklin, NC", - "37071": "Gaston, NC", - "37073": "Gates, NC", - "37075": "Graham, NC", - "37077": "Granville, NC", - "37079": "Greene, NC", - "37081": "Guilford, NC", - "37083": "Halifax, NC", - "37085": "Harnett, NC", - "37087": "Haywood, NC", - "37089": "Henderson, NC", - "37091": "Hertford, NC", - "37093": "Hoke, NC", - "37095": "Hyde, NC", - "37097": "Iredell, NC", - "37099": "Jackson, NC", - "37101": "Johnston, NC", - "37103": "Jones, NC", - "37105": "Lee, NC", - "37107": "Lenoir, NC", - "37109": "Lincoln, NC", - "37111": "McDowell, NC", - "37113": "Macon, NC", - "37115": "Madison, NC", - "37117": "Martin, NC", - "37119": "Mecklenburg, NC", - "37121": "Mitchell, NC", - "37123": "Montgomery, NC", - "37125": "Moore, NC", - "37127": "Nash, NC", - "37129": "New Hanover, NC", - "37131": "Northampton, NC", - "37133": "Onslow, NC", - "37135": "Orange, NC", - "37137": "Pamlico, NC", - "37139": "Pasquotank, NC", - "37141": "Pender, NC", - "37143": "Perquimans, NC", - "37145": "Person, NC", - "37147": "Pitt, NC", - "37149": "Polk, NC", - "37151": "Randolph, NC", - "37153": "Richmond, NC", - "37155": "Robeson, NC", - "37157": "Rockingham, NC", - "37159": "Rowan, NC", - "37161": "Rutherford, NC", - "37163": "Sampson, NC", - "37165": "Scotland, NC", - "37167": "Stanly, NC", - "37169": "Stokes, NC", - "37171": "Surry, NC", - "37173": "Swain, NC", - "37175": "Transylvania, NC", - "37177": "Tyrrell, NC", - "37179": "Union, NC", - "37181": "Vance, NC", - "37183": "Wake, NC", - "37185": "Warren, NC", - "37187": "Washington, NC", - "37189": "Watauga, NC", - "37191": "Wayne, NC", - "37193": "Wilkes, NC", - "37195": "Wilson, NC", - "37197": "Yadkin, NC", - "37199": "Yancey, NC", - "38001": "Adams, ND", - "38003": "Barnes, ND", - "38005": "Benson, ND", - "38007": "Billings, ND", - "38009": "Bottineau, ND", - "38011": "Bowman, ND", - "38013": "Burke, ND", - "38015": "Burleigh, ND", - "38017": "Cass, ND", - "38019": "Cavalier, ND", - "38021": "Dickey, ND", - "38023": "Divide, ND", - "38025": "Dunn, ND", - "38027": "Eddy, ND", - "38029": "Emmons, ND", - "38031": "Foster, ND", - "38033": "Golden Valley, ND", - "38035": "Grand Forks, ND", - "38037": "Grant, ND", - "38039": "Griggs, ND", - "38041": "Hettinger, ND", - "38043": "Kidder, ND", - "38045": "LaMoure, ND", - "38047": "Logan, ND", - "38049": "McHenry, ND", - "38051": "McIntosh, ND", - "38053": "McKenzie, ND", - "38055": "McLean, ND", - "38057": "Mercer, ND", - "38059": "Morton, ND", - "38061": "Mountrail, ND", - "38063": "Nelson, ND", - "38065": "Oliver, ND", - "38067": "Pembina, ND", - "38069": "Pierce, ND", - "38071": "Ramsey, ND", - "38073": "Ransom, ND", - "38075": "Renville, ND", - "38077": "Richland, ND", - "38079": "Rolette, ND", - "38081": "Sargent, ND", - "38083": "Sheridan, ND", - "38085": "Sioux, ND", - "38087": "Slope, ND", - "38089": "Stark, ND", - "38091": "Steele, ND", - "38093": "Stutsman, ND", - "38095": "Towner, ND", - "38097": "Traill, ND", - "38099": "Walsh, ND", - "38101": "Ward, ND", - "38103": "Wells, ND", - "38105": "Williams, ND", - "39001": "Adams, OH", - "39003": "Allen, OH", - "39005": "Ashland, OH", - "39007": "Ashtabula, OH", - "39009": "Athens, OH", - "39011": "Auglaize, OH", - "39013": "Belmont, OH", - "39015": "Brown, OH", - "39017": "Butler, OH", - "39019": "Carroll, OH", - "39021": "Champaign, OH", - "39023": "Clark, OH", - "39025": "Clermont, OH", - "39027": "Clinton, OH", - "39029": "Columbiana, OH", - "39031": "Coshocton, OH", - "39033": "Crawford, OH", - "39035": "Cuyahoga, OH", - "39037": "Darke, OH", - "39039": "Defiance, OH", - "39041": "Delaware, OH", - "39043": "Erie, OH", - "39045": "Fairfield, OH", - "39047": "Fayette, OH", - "39049": "Franklin, OH", - "39051": "Fulton, OH", - "39053": "Gallia, OH", - "39055": "Geauga, OH", - "39057": "Greene, OH", - "39059": "Guernsey, OH", - "39061": "Hamilton, OH", - "39063": "Hancock, OH", - "39065": "Hardin, OH", - "39067": "Harrison, OH", - "39069": "Henry, OH", - "39071": "Highland, OH", - "39073": "Hocking, OH", - "39075": "Holmes, OH", - "39077": "Huron, OH", - "39079": "Jackson, OH", - "39081": "Jefferson, OH", - "39083": "Knox, OH", - "39085": "Lake, OH", - "39087": "Lawrence, OH", - "39089": "Licking, OH", - "39091": "Logan, OH", - "39093": "Lorain, OH", - "39095": "Lucas, OH", - "39097": "Madison, OH", - "39099": "Mahoning, OH", - "39101": "Marion, OH", - "39103": "Medina, OH", - "39105": "Meigs, OH", - "39107": "Mercer, OH", - "39109": "Miami, OH", - "39111": "Monroe, OH", - "39113": "Montgomery, OH", - "39115": "Morgan, OH", - "39117": "Morrow, OH", - "39119": "Muskingum, OH", - "39121": "Noble, OH", - "39123": "Ottawa, OH", - "39125": "Paulding, OH", - "39127": "Perry, OH", - "39129": "Pickaway, OH", - "39131": "Pike, OH", - "39133": "Portage, OH", - "39135": "Preble, OH", - "39137": "Putnam, OH", - "39139": "Richland, OH", - "39141": "Ross, OH", - "39143": "Sandusky, OH", - "39145": "Scioto, OH", - "39147": "Seneca, OH", - "39149": "Shelby, OH", - "39151": "Stark, OH", - "39153": "Summit, OH", - "39155": "Trumbull, OH", - "39157": "Tuscarawas, OH", - "39159": "Union, OH", - "39161": "Van Wert, OH", - "39163": "Vinton, OH", - "39165": "Warren, OH", - "39167": "Washington, OH", - "39169": "Wayne, OH", - "39171": "Williams, OH", - "39173": "Wood, OH", - "39175": "Wyandot, OH", - "40001": "Adair, OK", - "40003": "Alfalfa, OK", - "40005": "Atoka, OK", - "40007": "Beaver, OK", - "40009": "Beckham, OK", - "40011": "Blaine, OK", - "40013": "Bryan, OK", - "40015": "Caddo, OK", - "40017": "Canadian, OK", - "40019": "Carter, OK", - "40021": "Cherokee, OK", - "40023": "Choctaw, OK", - "40025": "Cimarron, OK", - "40027": "Cleveland, OK", - "40029": "Coal, OK", - "40031": "Comanche, OK", - "40033": "Cotton, OK", - "40035": "Craig, OK", - "40037": "Creek, OK", - "40039": "Custer, OK", - "40041": "Delaware, OK", - "40043": "Dewey, OK", - "40045": "Ellis, OK", - "40047": "Garfield, OK", - "40049": "Garvin, OK", - "40051": "Grady, OK", - "40053": "Grant, OK", - "40055": "Greer, OK", - "40057": "Harmon, OK", - "40059": "Harper, OK", - "40061": "Haskell, OK", - "40063": "Hughes, OK", - "40065": "Jackson, OK", - "40067": "Jefferson, OK", - "40069": "Johnston, OK", - "40071": "Kay, OK", - "40073": "Kingfisher, OK", - "40075": "Kiowa, OK", - "40077": "Latimer, OK", - "40079": "Le Flore, OK", - "40081": "Lincoln, OK", - "40083": "Logan, OK", - "40085": "Love, OK", - "40087": "McClain, OK", - "40089": "McCurtain, OK", - "40091": "McIntosh, OK", - "40093": "Major, OK", - "40095": "Marshall, OK", - "40097": "Mayes, OK", - "40099": "Murray, OK", - "40101": "Muskogee, OK", - "40103": "Noble, OK", - "40105": "Nowata, OK", - "40107": "Okfuskee, OK", - "40109": "Oklahoma, OK", - "40111": "Okmulgee, OK", - "40113": "Osage, OK", - "40115": "Ottawa, OK", - "40117": "Pawnee, OK", - "40119": "Payne, OK", - "40121": "Pittsburg, OK", - "40123": "Pontotoc, OK", - "40125": "Pottawatomie, OK", - "40127": "Pushmataha, OK", - "40129": "Roger Mills, OK", - "40131": "Rogers, OK", - "40133": "Seminole, OK", - "40135": "Sequoyah, OK", - "40137": "Stephens, OK", - "40139": "Texas, OK", - "40141": "Tillman, OK", - "40143": "Tulsa, OK", - "40145": "Wagoner, OK", - "40147": "Washington, OK", - "40149": "Washita, OK", - "40151": "Woods, OK", - "40153": "Woodward, OK", - "41001": "Baker, OR", - "41003": "Benton, OR", - "41005": "Clackamas, OR", - "41007": "Clatsop, OR", - "41009": "Columbia, OR", - "41011": "Coos, OR", - "41013": "Crook, OR", - "41015": "Curry, OR", - "41017": "Deschutes, OR", - "41019": "Douglas, OR", - "41021": "Gilliam, OR", - "41023": "Grant, OR", - "41025": "Harney, OR", - "41027": "Hood River, OR", - "41029": "Jackson, OR", - "41031": "Jefferson, OR", - "41033": "Josephine, OR", - "41035": "Klamath, OR", - "41037": "Lake, OR", - "41039": "Lane, OR", - "41041": "Lincoln, OR", - "41043": "Linn, OR", - "41045": "Malheur, OR", - "41047": "Marion, OR", - "41049": "Morrow, OR", - "41051": "Multnomah, OR", - "41053": "Polk, OR", - "41055": "Sherman, OR", - "41057": "Tillamook, OR", - "41059": "Umatilla, OR", - "41061": "Union, OR", - "41063": "Wallowa, OR", - "41065": "Wasco, OR", - "41067": "Washington, OR", - "41069": "Wheeler, OR", - "41071": "Yamhill, OR", - "42001": "Adams, PA", - "42003": "Allegheny, PA", - "42005": "Armstrong, PA", - "42007": "Beaver, PA", - "42009": "Bedford, PA", - "42011": "Berks, PA", - "42013": "Blair, PA", - "42015": "Bradford, PA", - "42017": "Bucks, PA", - "42019": "Butler, PA", - "42021": "Cambria, PA", - "42023": "Cameron, PA", - "42025": "Carbon, PA", - "42027": "Centre, PA", - "42029": "Chester, PA", - "42031": "Clarion, PA", - "42033": "Clearfield, PA", - "42035": "Clinton, PA", - "42037": "Columbia, PA", - "42039": "Crawford, PA", - "42041": "Cumberland, PA", - "42043": "Dauphin, PA", - "42045": "Delaware, PA", - "42047": "Elk, PA", - "42049": "Erie, PA", - "42051": "Fayette, PA", - "42053": "Forest, PA", - "42055": "Franklin, PA", - "42057": "Fulton, PA", - "42059": "Greene, PA", - "42061": "Huntingdon, PA", - "42063": "Indiana, PA", - "42065": "Jefferson, PA", - "42067": "Juniata, PA", - "42069": "Lackawanna, PA", - "42071": "Lancaster, PA", - "42073": "Lawrence, PA", - "42075": "Lebanon, PA", - "42077": "Lehigh, PA", - "42079": "Luzerne, PA", - "42081": "Lycoming, PA", - "42083": "McKean, PA", - "42085": "Mercer, PA", - "42087": "Mifflin, PA", - "42089": "Monroe, PA", - "42091": "Montgomery, PA", - "42093": "Montour, PA", - "42095": "Northampton, PA", - "42097": "Northumberland, PA", - "42099": "Perry, PA", - "42101": "Philadelphia, PA", - "42103": "Pike, PA", - "42105": "Potter, PA", - "42107": "Schuylkill, PA", - "42109": "Snyder, PA", - "42111": "Somerset, PA", - "42113": "Sullivan, PA", - "42115": "Susquehanna, PA", - "42117": "Tioga, PA", - "42119": "Union, PA", - "42121": "Venango, PA", - "42123": "Warren, PA", - "42125": "Washington, PA", - "42127": "Wayne, PA", - "42129": "Westmoreland, PA", - "42131": "Wyoming, PA", - "42133": "York, PA", - "44001": "Bristol, RI", - "44003": "Kent, RI", - "44005": "Newport, RI", - "44007": "Providence, RI", - "44009": "Washington, RI", - "45001": "Abbeville, SC", - "45003": "Aiken, SC", - "45005": "Allendale, SC", - "45007": "Anderson, SC", - "45009": "Bamberg, SC", - "45011": "Barnwell, SC", - "45013": "Beaufort, SC", - "45015": "Berkeley, SC", - "45017": "Calhoun, SC", - "45019": "Charleston, SC", - "45021": "Cherokee, SC", - "45023": "Chester, SC", - "45025": "Chesterfield, SC", - "45027": "Clarendon, SC", - "45029": "Colleton, SC", - "45031": "Darlington, SC", - "45033": "Dillon, SC", - "45035": "Dorchester, SC", - "45037": "Edgefield, SC", - "45039": "Fairfield, SC", - "45041": "Florence, SC", - "45043": "Georgetown, SC", - "45045": "Greenville, SC", - "45047": "Greenwood, SC", - "45049": "Hampton, SC", - "45051": "Horry, SC", - "45053": "Jasper, SC", - "45055": "Kershaw, SC", - "45057": "Lancaster, SC", - "45059": "Laurens, SC", - "45061": "Lee, SC", - "45063": "Lexington, SC", - "45065": "McCormick, SC", - "45067": "Marion, SC", - "45069": "Marlboro, SC", - "45071": "Newberry, SC", - "45073": "Oconee, SC", - "45075": "Orangeburg, SC", - "45077": "Pickens, SC", - "45079": "Richland, SC", - "45081": "Saluda, SC", - "45083": "Spartanburg, SC", - "45085": "Sumter, SC", - "45087": "Union, SC", - "45089": "Williamsburg, SC", - "45091": "York, SC", - "46003": "Aurora, SD", - "46005": "Beadle, SD", - "46007": "Bennett, SD", - "46009": "Bon Homme, SD", - "46011": "Brookings, SD", - "46013": "Brown, SD", - "46015": "Brule, SD", - "46017": "Buffalo, SD", - "46019": "Butte, SD", - "46021": "Campbell, SD", - "46023": "Charles Mix, SD", - "46025": "Clark, SD", - "46027": "Clay, SD", - "46029": "Codington, SD", - "46031": "Corson, SD", - "46033": "Custer, SD", - "46035": "Davison, SD", - "46037": "Day, SD", - "46039": "Deuel, SD", - "46041": "Dewey, SD", - "46043": "Douglas, SD", - "46045": "Edmunds, SD", - "46047": "Fall River, SD", - "46049": "Faulk, SD", - "46051": "Grant, SD", - "46053": "Gregory, SD", - "46055": "Haakon, SD", - "46057": "Hamlin, SD", - "46059": "Hand, SD", - "46061": "Hanson, SD", - "46063": "Harding, SD", - "46065": "Hughes, SD", - "46067": "Hutchinson, SD", - "46069": "Hyde, SD", - "46071": "Jackson, SD", - "46073": "Jerauld, SD", - "46075": "Jones, SD", - "46077": "Kingsbury, SD", - "46079": "Lake, SD", - "46081": "Lawrence, SD", - "46083": "Lincoln, SD", - "46085": "Lyman, SD", - "46087": "McCook, SD", - "46089": "McPherson, SD", - "46091": "Marshall, SD", - "46093": "Meade, SD", - "46095": "Mellette, SD", - "46097": "Miner, SD", - "46099": "Minnehaha, SD", - "46101": "Moody, SD", - "46103": "Pennington, SD", - "46105": "Perkins, SD", - "46107": "Potter, SD", - "46109": "Roberts, SD", - "46111": "Sanborn, SD", - "46113": "Shannon, SD", - "46115": "Spink, SD", - "46117": "Stanley, SD", - "46119": "Sully, SD", - "46121": "Todd, SD", - "46123": "Tripp, SD", - "46125": "Turner, SD", - "46127": "Union, SD", - "46129": "Walworth, SD", - "46135": "Yankton, SD", - "46137": "Ziebach, SD", - "47001": "Anderson, TN", - "47003": "Bedford, TN", - "47005": "Benton, TN", - "47007": "Bledsoe, TN", - "47009": "Blount, TN", - "47011": "Bradley, TN", - "47013": "Campbell, TN", - "47015": "Cannon, TN", - "47017": "Carroll, TN", - "47019": "Carter, TN", - "47021": "Cheatham, TN", - "47023": "Chester, TN", - "47025": "Claiborne, TN", - "47027": "Clay, TN", - "47029": "Cocke, TN", - "47031": "Coffee, TN", - "47033": "Crockett, TN", - "47035": "Cumberland, TN", - "47037": "Davidson, TN", - "47039": "Decatur, TN", - "47041": "DeKalb, TN", - "47043": "Dickson, TN", - "47045": "Dyer, TN", - "47047": "Fayette, TN", - "47049": "Fentress, TN", - "47051": "Franklin, TN", - "47053": "Gibson, TN", - "47055": "Giles, TN", - "47057": "Grainger, TN", - "47059": "Greene, TN", - "47061": "Grundy, TN", - "47063": "Hamblen, TN", - "47065": "Hamilton, TN", - "47067": "Hancock, TN", - "47069": "Hardeman, TN", - "47071": "Hardin, TN", - "47073": "Hawkins, TN", - "47075": "Haywood, TN", - "47077": "Henderson, TN", - "47079": "Henry, TN", - "47081": "Hickman, TN", - "47083": "Houston, TN", - "47085": "Humphreys, TN", - "47087": "Jackson, TN", - "47089": "Jefferson, TN", - "47091": "Johnson, TN", - "47093": "Knox, TN", - "47095": "Lake, TN", - "47097": "Lauderdale, TN", - "47099": "Lawrence, TN", - "47101": "Lewis, TN", - "47103": "Lincoln, TN", - "47105": "Loudon, TN", - "47107": "McMinn, TN", - "47109": "McNairy, TN", - "47111": "Macon, TN", - "47113": "Madison, TN", - "47115": "Marion, TN", - "47117": "Marshall, TN", - "47119": "Maury, TN", - "47121": "Meigs, TN", - "47123": "Monroe, TN", - "47125": "Montgomery, TN", - "47127": "Moore, TN", - "47129": "Morgan, TN", - "47131": "Obion, TN", - "47133": "Overton, TN", - "47135": "Perry, TN", - "47137": "Pickett, TN", - "47139": "Polk, TN", - "47141": "Putnam, TN", - "47143": "Rhea, TN", - "47145": "Roane, TN", - "47147": "Robertson, TN", - "47149": "Rutherford, TN", - "47151": "Scott, TN", - "47153": "Sequatchie, TN", - "47155": "Sevier, TN", - "47157": "Shelby, TN", - "47159": "Smith, TN", - "47161": "Stewart, TN", - "47163": "Sullivan, TN", - "47165": "Sumner, TN", - "47167": "Tipton, TN", - "47169": "Trousdale, TN", - "47171": "Unicoi, TN", - "47173": "Union, TN", - "47175": "Van Buren, TN", - "47177": "Warren, TN", - "47179": "Washington, TN", - "47181": "Wayne, TN", - "47183": "Weakley, TN", - "47185": "White, TN", - "47187": "Williamson, TN", - "47189": "Wilson, TN", - "48001": "Anderson, TX", - "48003": "Andrews, TX", - "48005": "Angelina, TX", - "48007": "Aransas, TX", - "48009": "Archer, TX", - "48011": "Armstrong, TX", - "48013": "Atascosa, TX", - "48015": "Austin, TX", - "48017": "Bailey, TX", - "48019": "Bandera, TX", - "48021": "Bastrop, TX", - "48023": "Baylor, TX", - "48025": "Bee, TX", - "48027": "Bell, TX", - "48029": "Bexar, TX", - "48031": "Blanco, TX", - "48033": "Borden, TX", - "48035": "Bosque, TX", - "48037": "Bowie, TX", - "48039": "Brazoria, TX", - "48041": "Brazos, TX", - "48043": "Brewster, TX", - "48045": "Briscoe, TX", - "48047": "Brooks, TX", - "48049": "Brown, TX", - "48051": "Burleson, TX", - "48053": "Burnet, TX", - "48055": "Caldwell, TX", - "48057": "Calhoun, TX", - "48059": "Callahan, TX", - "48061": "Cameron, TX", - "48063": "Camp, TX", - "48065": "Carson, TX", - "48067": "Cass, TX", - "48069": "Castro, TX", - "48071": "Chambers, TX", - "48073": "Cherokee, TX", - "48075": "Childress, TX", - "48077": "Clay, TX", - "48079": "Cochran, TX", - "48081": "Coke, TX", - "48083": "Coleman, TX", - "48085": "Collin, TX", - "48087": "Collingsworth, TX", - "48089": "Colorado, TX", - "48091": "Comal, TX", - "48093": "Comanche, TX", - "48095": "Concho, TX", - "48097": "Cooke, TX", - "48099": "Coryell, TX", - "48101": "Cottle, TX", - "48103": "Crane, TX", - "48105": "Crockett, TX", - "48107": "Crosby, TX", - "48109": "Culberson, TX", - "48111": "Dallam, TX", - "48113": "Dallas, TX", - "48115": "Dawson, TX", - "48117": "Deaf Smith, TX", - "48119": "Delta, TX", - "48121": "Denton, TX", - "48123": "DeWitt, TX", - "48125": "Dickens, TX", - "48127": "Dimmit, TX", - "48129": "Donley, TX", - "48131": "Duval, TX", - "48133": "Eastland, TX", - "48135": "Ector, TX", - "48137": "Edwards, TX", - "48139": "Ellis, TX", - "48141": "El Paso, TX", - "48143": "Erath, TX", - "48145": "Falls, TX", - "48147": "Fannin, TX", - "48149": "Fayette, TX", - "48151": "Fisher, TX", - "48153": "Floyd, TX", - "48155": "Foard, TX", - "48157": "Fort Bend, TX", - "48159": "Franklin, TX", - "48161": "Freestone, TX", - "48163": "Frio, TX", - "48165": "Gaines, TX", - "48167": "Galveston, TX", - "48169": "Garza, TX", - "48171": "Gillespie, TX", - "48173": "Glasscock, TX", - "48175": "Goliad, TX", - "48177": "Gonzales, TX", - "48179": "Gray, TX", - "48181": "Grayson, TX", - "48183": "Gregg, TX", - "48185": "Grimes, TX", - "48187": "Guadalupe, TX", - "48189": "Hale, TX", - "48191": "Hall, TX", - "48193": "Hamilton, TX", - "48195": "Hansford, TX", - "48197": "Hardeman, TX", - "48199": "Hardin, TX", - "48201": "Harris, TX", - "48203": "Harrison, TX", - "48205": "Hartley, TX", - "48207": "Haskell, TX", - "48209": "Hays, TX", - "48211": "Hemphill, TX", - "48213": "Henderson, TX", - "48215": "Hidalgo, TX", - "48217": "Hill, TX", - "48219": "Hockley, TX", - "48221": "Hood, TX", - "48223": "Hopkins, TX", - "48225": "Houston, TX", - "48227": "Howard, TX", - "48229": "Hudspeth, TX", - "48231": "Hunt, TX", - "48233": "Hutchinson, TX", - "48235": "Irion, TX", - "48237": "Jack, TX", - "48239": "Jackson, TX", - "48241": "Jasper, TX", - "48243": "Jeff Davis, TX", - "48245": "Jefferson, TX", - "48247": "Jim Hogg, TX", - "48249": "Jim Wells, TX", - "48251": "Johnson, TX", - "48253": "Jones, TX", - "48255": "Karnes, TX", - "48257": "Kaufman, TX", - "48259": "Kendall, TX", - "48261": "Kenedy, TX", - "48263": "Kent, TX", - "48265": "Kerr, TX", - "48267": "Kimble, TX", - "48269": "King, TX", - "48271": "Kinney, TX", - "48273": "Kleberg, TX", - "48275": "Knox, TX", - "48277": "Lamar, TX", - "48279": "Lamb, TX", - "48281": "Lampasas, TX", - "48283": "La Salle, TX", - "48285": "Lavaca, TX", - "48287": "Lee, TX", - "48289": "Leon, TX", - "48291": "Liberty, TX", - "48293": "Limestone, TX", - "48295": "Lipscomb, TX", - "48297": "Live Oak, TX", - "48299": "Llano, TX", - "48301": "Loving, TX", - "48303": "Lubbock, TX", - "48305": "Lynn, TX", - "48307": "McCulloch, TX", - "48309": "McLennan, TX", - "48311": "McMullen, TX", - "48313": "Madison, TX", - "48315": "Marion, TX", - "48317": "Martin, TX", - "48319": "Mason, TX", - "48321": "Matagorda, TX", - "48323": "Maverick, TX", - "48325": "Medina, TX", - "48327": "Menard, TX", - "48329": "Midland, TX", - "48331": "Milam, TX", - "48333": "Mills, TX", - "48335": "Mitchell, TX", - "48337": "Montague, TX", - "48339": "Montgomery, TX", - "48341": "Moore, TX", - "48343": "Morris, TX", - "48345": "Motley, TX", - "48347": "Nacogdoches, TX", - "48349": "Navarro, TX", - "48351": "Newton, TX", - "48353": "Nolan, TX", - "48355": "Nueces, TX", - "48357": "Ochiltree, TX", - "48359": "Oldham, TX", - "48361": "Orange, TX", - "48363": "Palo Pinto, TX", - "48365": "Panola, TX", - "48367": "Parker, TX", - "48369": "Parmer, TX", - "48371": "Pecos, TX", - "48373": "Polk, TX", - "48375": "Potter, TX", - "48377": "Presidio, TX", - "48379": "Rains, TX", - "48381": "Randall, TX", - "48383": "Reagan, TX", - "48385": "Real, TX", - "48387": "Red River, TX", - "48389": "Reeves, TX", - "48391": "Refugio, TX", - "48393": "Roberts, TX", - "48395": "Robertson, TX", - "48397": "Rockwall, TX", - "48399": "Runnels, TX", - "48401": "Rusk, TX", - "48403": "Sabine, TX", - "48405": "San Augustine, TX", - "48407": "San Jacinto, TX", - "48409": "San Patricio, TX", - "48411": "San Saba, TX", - "48413": "Schleicher, TX", - "48415": "Scurry, TX", - "48417": "Shackelford, TX", - "48419": "Shelby, TX", - "48421": "Sherman, TX", - "48423": "Smith, TX", - "48425": "Somervell, TX", - "48427": "Starr, TX", - "48429": "Stephens, TX", - "48431": "Sterling, TX", - "48433": "Stonewall, TX", - "48435": "Sutton, TX", - "48437": "Swisher, TX", - "48439": "Tarrant, TX", - "48441": "Taylor, TX", - "48443": "Terrell, TX", - "48445": "Terry, TX", - "48447": "Throckmorton, TX", - "48449": "Titus, TX", - "48451": "Tom Green, TX", - "48453": "Travis, TX", - "48455": "Trinity, TX", - "48457": "Tyler, TX", - "48459": "Upshur, TX", - "48461": "Upton, TX", - "48463": "Uvalde, TX", - "48465": "Val Verde, TX", - "48467": "Van Zandt, TX", - "48469": "Victoria, TX", - "48471": "Walker, TX", - "48473": "Waller, TX", - "48475": "Ward, TX", - "48477": "Washington, TX", - "48479": "Webb, TX", - "48481": "Wharton, TX", - "48483": "Wheeler, TX", - "48485": "Wichita, TX", - "48487": "Wilbarger, TX", - "48489": "Willacy, TX", - "48491": "Williamson, TX", - "48493": "Wilson, TX", - "48495": "Winkler, TX", - "48497": "Wise, TX", - "48499": "Wood, TX", - "48501": "Yoakum, TX", - "48503": "Young, TX", - "48505": "Zapata, TX", - "48507": "Zavala, TX", - "49001": "Beaver, UT", - "49003": "Box Elder, UT", - "49005": "Cache, UT", - "49007": "Carbon, UT", - "49009": "Daggett, UT", - "49011": "Davis, UT", - "49013": "Duchesne, UT", - "49015": "Emery, UT", - "49017": "Garfield, UT", - "49019": "Grand, UT", - "49021": "Iron, UT", - "49023": "Juab, UT", - "49025": "Kane, UT", - "49027": "Millard, UT", - "49029": "Morgan, UT", - "49031": "Piute, UT", - "49033": "Rich, UT", - "49035": "Salt Lake, UT", - "49037": "San Juan, UT", - "49039": "Sanpete, UT", - "49041": "Sevier, UT", - "49043": "Summit, UT", - "49045": "Tooele, UT", - "49047": "Uintah, UT", - "49049": "Utah, UT", - "49051": "Wasatch, UT", - "49053": "Washington, UT", - "49055": "Wayne, UT", - "49057": "Weber, UT", - "50001": "Addison, VT", - "50003": "Bennington, VT", - "50005": "Caledonia, VT", - "50007": "Chittenden, VT", - "50009": "Essex, VT", - "50011": "Franklin, VT", - "50013": "Grand Isle, VT", - "50015": "Lamoille, VT", - "50017": "Orange, VT", - "50019": "Orleans, VT", - "50021": "Rutland, VT", - "50023": "Washington, VT", - "50025": "Windham, VT", - "50027": "Windsor, VT", - "51001": "Accomack, VA", - "51003": "Albemarle, VA", - "51005": "Alleghany, VA", - "51007": "Amelia, VA", - "51009": "Amherst, VA", - "51011": "Appomattox, VA", - "51013": "Arlington, VA", - "51015": "Augusta, VA", - "51017": "Bath, VA", - "51019": "Bedford, VA", - "51021": "Bland, VA", - "51023": "Botetourt, VA", - "51025": "Brunswick, VA", - "51027": "Buchanan, VA", - "51029": "Buckingham, VA", - "51031": "Campbell, VA", - "51033": "Caroline, VA", - "51035": "Carroll, VA", - "51036": "Charles City, VA", - "51037": "Charlotte, VA", - "51041": "Chesterfield, VA", - "51043": "Clarke, VA", - "51045": "Craig, VA", - "51047": "Culpeper, VA", - "51049": "Cumberland, VA", - "51051": "Dickenson, VA", - "51053": "Dinwiddie, VA", - "51057": "Essex, VA", - "51059": "Fairfax, VA", - "51061": "Fauquier, VA", - "51063": "Floyd, VA", - "51065": "Fluvanna, VA", - "51067": "Franklin, VA", - "51069": "Frederick, VA", - "51071": "Giles, VA", - "51073": "Gloucester, VA", - "51075": "Goochland, VA", - "51077": "Grayson, VA", - "51079": "Greene, VA", - "51081": "Greensville, VA", - "51083": "Halifax, VA", - "51085": "Hanover, VA", - "51087": "Henrico, VA", - "51089": "Henry, VA", - "51091": "Highland, VA", - "51093": "Isle of Wight, VA", - "51095": "James City, VA", - "51097": "King and Queen, VA", - "51099": "King George, VA", - "51101": "King William, VA", - "51103": "Lancaster, VA", - "51105": "Lee, VA", - "51107": "Loudoun, VA", - "51109": "Louisa, VA", - "51111": "Lunenburg, VA", - "51113": "Madison, VA", - "51115": "Mathews, VA", - "51117": "Mecklenburg, VA", - "51119": "Middlesex, VA", - "51121": "Montgomery, VA", - "51125": "Nelson, VA", - "51127": "New Kent, VA", - "51131": "Northampton, VA", - "51133": "Northumberland, VA", - "51135": "Nottoway, VA", - "51137": "Orange, VA", - "51139": "Page, VA", - "51141": "Patrick, VA", - "51143": "Pittsylvania, VA", - "51145": "Powhatan, VA", - "51147": "Prince Edward, VA", - "51149": "Prince George, VA", - "51153": "Prince William, VA", - "51155": "Pulaski, VA", - "51157": "Rappahannock, VA", - "51159": "Richmond, VA", - "51161": "Roanoke, VA", - "51163": "Rockbridge, VA", - "51165": "Rockingham, VA", - "51167": "Russell, VA", - "51169": "Scott, VA", - "51171": "Shenandoah, VA", - "51173": "Smyth, VA", - "51175": "Southampton, VA", - "51177": "Spotsylvania, VA", - "51179": "Stafford, VA", - "51181": "Surry, VA", - "51183": "Sussex, VA", - "51185": "Tazewell, VA", - "51187": "Warren, VA", - "51191": "Washington, VA", - "51193": "Westmoreland, VA", - "51195": "Wise, VA", - "51197": "Wythe, VA", - "51199": "York, VA", - "51510": "Alexandria, VA", - "51515": "Bedford, VA", - "51520": "Bristol, VA", - "51530": "Buena Vista, VA", - "51540": "Charlottesville, VA", - "51550": "Chesapeake, VA", - "51570": "Colonial Heights, VA", - "51580": "Covington, VA", - "51590": "Danville, VA", - "51595": "Emporia, VA", - "51600": "Fairfax, VA", - "51610": "Falls Church, VA", - "51620": "Franklin, VA", - "51630": "Fredericksburg, VA", - "51640": "Galax, VA", - "51650": "Hampton, VA", - "51660": "Harrisonburg, VA", - "51670": "Hopewell, VA", - "51678": "Lexington, VA", - "51680": "Lynchburg, VA", - "51683": "Manassas, VA", - "51685": "Manassas Park, VA", - "51690": "Martinsville, VA", - "51700": "Newport News, VA", - "51710": "Norfolk, VA", - "51720": "Norton, VA", - "51730": "Petersburg, VA", - "51735": "Poquoson, VA", - "51740": "Portsmouth, VA", - "51750": "Radford, VA", - "51760": "Richmond, VA", - "51770": "Roanoke, VA", - "51775": "Salem, VA", - "51790": "Staunton, VA", - "51800": "Suffolk, VA", - "51810": "Virginia Beach, VA", - "51820": "Waynesboro, VA", - "51830": "Williamsburg, VA", - "51840": "Winchester, VA", - "53001": "Adams, WA", - "53003": "Asotin, WA", - "53005": "Benton, WA", - "53007": "Chelan, WA", - "53009": "Clallam, WA", - "53011": "Clark, WA", - "53013": "Columbia, WA", - "53015": "Cowlitz, WA", - "53017": "Douglas, WA", - "53019": "Ferry, WA", - "53021": "Franklin, WA", - "53023": "Garfield, WA", - "53025": "Grant, WA", - "53027": "Grays Harbor, WA", - "53029": "Island, WA", - "53031": "Jefferson, WA", - "53033": "King, WA", - "53035": "Kitsap, WA", - "53037": "Kittitas, WA", - "53039": "Klickitat, WA", - "53041": "Lewis, WA", - "53043": "Lincoln, WA", - "53045": "Mason, WA", - "53047": "Okanogan, WA", - "53049": "Pacific, WA", - "53051": "Pend Oreille, WA", - "53053": "Pierce, WA", - "53055": "San Juan, WA", - "53057": "Skagit, WA", - "53059": "Skamania, WA", - "53061": "Snohomish, WA", - "53063": "Spokane, WA", - "53065": "Stevens, WA", - "53067": "Thurston, WA", - "53069": "Wahkiakum, WA", - "53071": "Walla Walla, WA", - "53073": "Whatcom, WA", - "53075": "Whitman, WA", - "53077": "Yakima, WA", - "54001": "Barbour, WV", - "54003": "Berkeley, WV", - "54005": "Boone, WV", - "54007": "Braxton, WV", - "54009": "Brooke, WV", - "54011": "Cabell, WV", - "54013": "Calhoun, WV", - "54015": "Clay, WV", - "54017": "Doddridge, WV", - "54019": "Fayette, WV", - "54021": "Gilmer, WV", - "54023": "Grant, WV", - "54025": "Greenbrier, WV", - "54027": "Hampshire, WV", - "54029": "Hancock, WV", - "54031": "Hardy, WV", - "54033": "Harrison, WV", - "54035": "Jackson, WV", - "54037": "Jefferson, WV", - "54039": "Kanawha, WV", - "54041": "Lewis, WV", - "54043": "Lincoln, WV", - "54045": "Logan, WV", - "54047": "McDowell, WV", - "54049": "Marion, WV", - "54051": "Marshall, WV", - "54053": "Mason, WV", - "54055": "Mercer, WV", - "54057": "Mineral, WV", - "54059": "Mingo, WV", - "54061": "Monongalia, WV", - "54063": "Monroe, WV", - "54065": "Morgan, WV", - "54067": "Nicholas, WV", - "54069": "Ohio, WV", - "54071": "Pendleton, WV", - "54073": "Pleasants, WV", - "54075": "Pocahontas, WV", - "54077": "Preston, WV", - "54079": "Putnam, WV", - "54081": "Raleigh, WV", - "54083": "Randolph, WV", - "54085": "Ritchie, WV", - "54087": "Roane, WV", - "54089": "Summers, WV", - "54091": "Taylor, WV", - "54093": "Tucker, WV", - "54095": "Tyler, WV", - "54097": "Upshur, WV", - "54099": "Wayne, WV", - "54101": "Webster, WV", - "54103": "Wetzel, WV", - "54105": "Wirt, WV", - "54107": "Wood, WV", - "54109": "Wyoming, WV", - "55001": "Adams, WI", - "55003": "Ashland, WI", - "55005": "Barron, WI", - "55007": "Bayfield, WI", - "55009": "Brown, WI", - "55011": "Buffalo, WI", - "55013": "Burnett, WI", - "55015": "Calumet, WI", - "55017": "Chippewa, WI", - "55019": "Clark, WI", - "55021": "Columbia, WI", - "55023": "Crawford, WI", - "55025": "Dane, WI", - "55027": "Dodge, WI", - "55029": "Door, WI", - "55031": "Douglas, WI", - "55033": "Dunn, WI", - "55035": "Eau Claire, WI", - "55037": "Florence, WI", - "55039": "Fond du Lac, WI", - "55041": "Forest, WI", - "55043": "Grant, WI", - "55045": "Green, WI", - "55047": "Green Lake, WI", - "55049": "Iowa, WI", - "55051": "Iron, WI", - "55053": "Jackson, WI", - "55055": "Jefferson, WI", - "55057": "Juneau, WI", - "55059": "Kenosha, WI", - "55061": "Kewaunee, WI", - "55063": "La Crosse, WI", - "55065": "Lafayette, WI", - "55067": "Langlade, WI", - "55069": "Lincoln, WI", - "55071": "Manitowoc, WI", - "55073": "Marathon, WI", - "55075": "Marinette, WI", - "55077": "Marquette, WI", - "55078": "Menominee, WI", - "55079": "Milwaukee, WI", - "55081": "Monroe, WI", - "55083": "Oconto, WI", - "55085": "Oneida, WI", - "55087": "Outagamie, WI", - "55089": "Ozaukee, WI", - "55091": "Pepin, WI", - "55093": "Pierce, WI", - "55095": "Polk, WI", - "55097": "Portage, WI", - "55099": "Price, WI", - "55101": "Racine, WI", - "55103": "Richland, WI", - "55105": "Rock, WI", - "55107": "Rusk, WI", - "55109": "St. Croix, WI", - "55111": "Sauk, WI", - "55113": "Sawyer, WI", - "55115": "Shawano, WI", - "55117": "Sheboygan, WI", - "55119": "Taylor, WI", - "55121": "Trempealeau, WI", - "55123": "Vernon, WI", - "55125": "Vilas, WI", - "55127": "Walworth, WI", - "55129": "Washburn, WI", - "55131": "Washington, WI", - "55133": "Waukesha, WI", - "55135": "Waupaca, WI", - "55137": "Waushara, WI", - "55139": "Winnebago, WI", - "55141": "Wood, WI", - "56001": "Albany, WY", - "56003": "Big Horn, WY", - "56005": "Campbell, WY", - "56007": "Carbon, WY", - "56009": "Converse, WY", - "56011": "Crook, WY", - "56013": "Fremont, WY", - "56015": "Goshen, WY", - "56017": "Hot Springs, WY", - "56019": "Johnson, WY", - "56021": "Laramie, WY", - "56023": "Lincoln, WY", - "56025": "Natrona, WY", - "56027": "Niobrara, WY", - "56029": "Park, WY", - "56031": "Platte, WY", - "56033": "Sheridan, WY", - "56035": "Sublette, WY", - "56037": "Sweetwater, WY", - "56039": "Teton, WY", - "56041": "Uinta, WY", - "56043": "Washakie, WY", - "56045": "Weston, WY", - "60010": "Eastern District, AS", - "60020": "Manu'a District, AS", - "60030": "Rose Island, AS", - "60040": "Swains Island, AS", - "60050": "Western District, AS", - "66010": "Guam, GU", - "69085": "Northern Islands, MP", - "69100": "Rota, MP", - "69110": "Saipan, MP", - "69120": "Tinian, MP", - "72001": "Adjuntas, PR", - "72003": "Aguada, PR", - "72005": "Aguadilla, PR", - "72007": "Aguas Buenas, PR", - "72009": "Aibonito, PR", - "72011": "Anasco, PR", - "72013": "Arecibo, PR", - "72015": "Arroyo, PR", - "72017": "Barceloneta, PR", - "72019": "Barranquitas, PR", - "72021": "Bayamon, PR", - "72023": "Cabo Rojo, PR", - "72025": "Caguas, PR", - "72027": "Camuy, PR", - "72029": "Canovanas, PR", - "72031": "Carolina, PR", - "72033": "Catano, PR", - "72035": "Cayey, PR", - "72037": "Ceiba, PR", - "72039": "Ciales, PR", - "72041": "Cidra, PR", - "72043": "Coamo, PR", - "72045": "Comerio, PR", - "72047": "Corozal, PR", - "72049": "Culebra, PR", - "72051": "Dorado, PR", - "72053": "Fajardo, PR", - "72054": "Florida, PR", - "72055": "Guanica, PR", - "72057": "Guayama, PR", - "72059": "Guayanilla, PR", - "72061": "Guaynabo, PR", - "72063": "Gurabo, PR", - "72065": "Hatillo, PR", - "72067": "Hormigueros, PR", - "72069": "Humacao, PR", - "72071": "Isabela, PR", - "72073": "Jayuya, PR", - "72075": "Juana Diaz, PR", - "72077": "Juncos, PR", - "72079": "Lajas, PR", - "72081": "Lares, PR", - "72083": "Las Marias, PR", - "72085": "Las Piedras, PR", - "72087": "Loiza, PR", - "72089": "Luquillo, PR", - "72091": "Manati, PR", - "72093": "Maricao, PR", - "72095": "Maunabo, PR", - "72097": "Mayaguez, PR", - "72099": "Moca, PR", - "72101": "Morovis, PR", - "72103": "Naguabo, PR", - "72105": "Naranjito, PR", - "72107": "Orocovis, PR", - "72109": "Patillas, PR", - "72111": "Penuelas, PR", - "72113": "Ponce, PR", - "72115": "Quebradillas, PR", - "72117": "Rincon, PR", - "72119": "Rio Grande, PR", - "72121": "Sabana Grande, PR", - "72123": "Salinas, PR", - "72125": "San German, PR", - "72127": "San Juan, PR", - "72129": "San Lorenzo, PR", - "72131": "San Sebastian, PR", - "72133": "Santa Isabel, PR", - "72135": "Toa Alta, PR", - "72137": "Toa Baja, PR", - "72139": "Trujillo Alto, PR", - "72141": "Utuado, PR", - "72143": "Vega Alta, PR", - "72145": "Vega Baja, PR", - "72147": "Vieques, PR", - "72149": "Villalba, PR", - "72151": "Yabucoa, PR", - "72153": "Yauco, PR", - "74300": "Midway Islands, UM", - "78010": "St. Croix, VI", - "78020": "St. John, VI", - "78030": "St. Thomas, VI" -} \ No newline at end of file diff --git a/data-sources/wikipedia-wikidata/README.md b/data-sources/wikipedia-wikidata/README.md deleted file mode 100644 index f3165f53..00000000 --- a/data-sources/wikipedia-wikidata/README.md +++ /dev/null @@ -1,58 +0,0 @@ -## Add Wikipedia and Wikidata to Nominatim - -OSM contributors frequently tag items with links to Wikipedia and Wikidata. Nominatim can use the page ranking of Wikipedia pages to help indicate the relative importance of osm features. This is done by calculating an importance score between 0 and 1 based on the number of inlinks to an article for a location. If two places have the same name and one is more important than the other, the wikipedia score often points to the correct place. - -These scripts extract and prepare both Wikipedia page rank and Wikidata links for use in Nominatim. - -#### Create a new postgres DB for Processing - -Due to the size of initial and intermediate tables, processing can be done in an external database: -``` -CREATE DATABASE wikiprocessingdb; -``` ---- -Wikipedia ---- - -Processing these data requires a large amount of disk space (~1TB) and considerable time (>24 hours). - -#### Import & Process Wikipedia tables - -This step downloads and converts [Wikipedia](https://dumps.wikimedia.org/) page data SQL dumps to postgreSQL files which can be imported and processed with pagelink information from Wikipedia language sites to calculate importance scores. - -- The script will processes data from whatever set of Wikipedia languages are specified in the initial languages array - -- Note that processing the top 40 Wikipedia languages can take over a day, and will add nearly 1TB to the processing database. The final output tables will be approximately 11GB and 2GB in size - -To download, convert, and import the data, then process summary statistics and compute importance scores, run: -``` -./import_wikipedia.sh -``` ---- -Wikidata ---- - -This script downloads and processes Wikidata to enrich the previously created Wikipedia tables for use in Nominatim. - -#### Import & Process Wikidata - -This step downloads and converts [Wikidata](https://dumps.wikimedia.org/wikidatawiki/) page data SQL dumps to postgreSQL files which can be processed and imported into Nominatim database. Also utilizes Wikidata Query Service API to discover and include place types. - -- Script presumes that the user has already processed Wikipedia tables as specified above - -- Script requires wikidata_place_types.txt and wikidata_place_type_levles.csv - -- script requires the [jq json parser](https://stedolan.github.io/jq/) - -- Script processes data from whatever set of Wikipedia languages are specified in the initial languages array - -- Script queries Wikidata Query Service API and imports all instances of place types listed in wikidata_place_types.txt - -- Script updates wikipedia_articles table with extracted wikidata - -By including Wikidata in the wikipedia_articles table, new connections can be made on the fly from the Nominatim placex table to wikipedia_article importance scores. - -To download, convert, and import the data, then process required items, run: -``` -./import_wikidata.sh -``` diff --git a/data-sources/wikipedia-wikidata/import_wikidata.sh b/data-sources/wikipedia-wikidata/import_wikidata.sh deleted file mode 100755 index 6939214f..00000000 --- a/data-sources/wikipedia-wikidata/import_wikidata.sh +++ /dev/null @@ -1,274 +0,0 @@ -#!/bin/bash - -psqlcmd() { - psql --quiet wikiprocessingdb -} - -mysql2pgsqlcmd() { - ./mysql2pgsql.perl /dev/stdin /dev/stdout -} - -download() { - echo "Downloading $1" - wget --quiet --no-clobber --tries 3 "$1" -} - -# languages to process (refer to List of Wikipedias here: https://en.wikipedia.org/wiki/List_of_Wikipedias) -# requires Bash 4.0 -readarray -t LANGUAGES < languages.txt - - - -echo "=====================================================================" -echo "Download wikidata dump tables" -echo "=====================================================================" - -# 114M wikidatawiki-latest-geo_tags.sql.gz -# 1.7G wikidatawiki-latest-page.sql.gz -# 1.2G wikidatawiki-latest-wb_items_per_site.sql.gz -download https://dumps.wikimedia.org/wikidatawiki/latest/wikidatawiki-latest-geo_tags.sql.gz -download https://dumps.wikimedia.org/wikidatawiki/latest/wikidatawiki-latest-page.sql.gz -download https://dumps.wikimedia.org/wikidatawiki/latest/wikidatawiki-latest-wb_items_per_site.sql.gz - - - - -echo "=====================================================================" -echo "Import wikidata dump tables" -echo "=====================================================================" - -echo "Importing wikidatawiki-latest-geo_tags" -gzip -dc wikidatawiki-latest-geo_tags.sql.gz | mysql2pgsqlcmd | psqlcmd - -echo "Importing wikidatawiki-latest-page" -gzip -dc wikidatawiki-latest-page.sql.gz | mysql2pgsqlcmd | psqlcmd - -echo "Importing wikidatawiki-latest-wb_items_per_site" -gzip -dc wikidatawiki-latest-wb_items_per_site.sql.gz | mysql2pgsqlcmd | psqlcmd - - - - - - -echo "=====================================================================" -echo "Get wikidata places from wikidata query API" -echo "=====================================================================" - -echo "Number of place types:" -wc -l wikidata_place_types.txt - -while read F ; do - echo "Querying for place type $F..." - wget --quiet "https://query.wikidata.org/bigdata/namespace/wdq/sparql?format=json&query=SELECT ?item WHERE{?item wdt:P31*/wdt:P279*wd:$F;}" -O $F.json - jq -r '.results | .[] | .[] | [.item.value] | @csv' $F.json >> $F.txt - awk -v qid=$F '{print $0 ","qid}' $F.txt | sed -e 's!"http://www.wikidata.org/entity/!!' | sed 's/"//g' >> $F.csv - cat $F.csv >> wikidata_place_dump.csv - rm $F.json $F.txt $F.csv -done < wikidata_place_types.txt - - - - -echo "=====================================================================" -echo "Import wikidata places" -echo "=====================================================================" - -echo "CREATE TABLE wikidata_place_dump ( - item text, - instance_of text - );" | psqlcmd - -echo "COPY wikidata_place_dump (item, instance_of) - FROM '/srv/nominatim/Nominatim/data-sources/wikipedia-wikidata/wikidata_place_dump.csv' - DELIMITER ',' - CSV - ;" | psqlcmd - -echo "CREATE TABLE wikidata_place_type_levels ( - place_type text, - level integer - );" | psqlcmd - -echo "COPY wikidata_place_type_levels (place_type, level) - FROM '/srv/nominatim/Nominatim/data-sources/wikipedia-wikidata/wikidata_place_type_levels.csv' - DELIMITER ',' - CSV - HEADER - ;" | psqlcmd - - - - -echo "=====================================================================" -echo "Create derived tables" -echo "=====================================================================" - -echo "CREATE TABLE geo_earth_primary AS - SELECT gt_page_id, - gt_lat, - gt_lon - FROM geo_tags - WHERE gt_globe = 'earth' - AND gt_primary = 1 - AND NOT( gt_lat < -90 - OR gt_lat > 90 - OR gt_lon < -180 - OR gt_lon > 180 - OR gt_lat=0 - OR gt_lon=0) - ;" | psqlcmd - -echo "CREATE TABLE geo_earth_wikidata AS - SELECT DISTINCT geo_earth_primary.gt_page_id, - geo_earth_primary.gt_lat, - geo_earth_primary.gt_lon, - page.page_title, - page.page_namespace - FROM geo_earth_primary - LEFT OUTER JOIN page - ON (geo_earth_primary.gt_page_id = page.page_id) - ORDER BY geo_earth_primary.gt_page_id - ;" | psqlcmd - -echo "ALTER TABLE wikidata_place_dump - ADD COLUMN ont_level integer, - ADD COLUMN lat numeric(11,8), - ADD COLUMN lon numeric(11,8) - ;" | psqlcmd - -echo "UPDATE wikidata_place_dump - SET ont_level = wikidata_place_type_levels.level - FROM wikidata_place_type_levels - WHERE wikidata_place_dump.instance_of = wikidata_place_type_levels.place_type - ;" | psqlcmd - -echo "CREATE TABLE wikidata_places - AS - SELECT DISTINCT ON (item) item, - instance_of, - MAX(ont_level) AS ont_level, - lat, - lon - FROM wikidata_place_dump - GROUP BY item, - instance_of, - ont_level, - lat, - lon - ORDER BY item - ;" | psqlcmd - -echo "UPDATE wikidata_places - SET lat = geo_earth_wikidata.gt_lat, - lon = geo_earth_wikidata.gt_lon - FROM geo_earth_wikidata - WHERE wikidata_places.item = geo_earth_wikidata.page_title - ;" | psqlcmd - - - - -echo "=====================================================================" -echo "Process language pages" -echo "=====================================================================" - - -echo "CREATE TABLE wikidata_pages ( - item text, - instance_of text, - lat numeric(11,8), - lon numeric(11,8), - ips_site_page text, - language text - );" | psqlcmd - -for i in "${LANGUAGES[@]}" -do - echo "CREATE TABLE wikidata_${i}_pages AS - SELECT wikidata_places.item, - wikidata_places.instance_of, - wikidata_places.lat, - wikidata_places.lon, - wb_items_per_site.ips_site_page - FROM wikidata_places - LEFT JOIN wb_items_per_site - ON (CAST (( LTRIM(wikidata_places.item, 'Q')) AS INTEGER) = wb_items_per_site.ips_item_id) - WHERE ips_site_id = '${i}wiki' - AND LEFT(wikidata_places.item,1) = 'Q' - ORDER BY wikidata_places.item - ;" | psqlcmd - - echo "ALTER TABLE wikidata_${i}_pages - ADD COLUMN language text - ;" | psqlcmd - - echo "UPDATE wikidata_${i}_pages - SET language = '${i}' - ;" | psqlcmd - - echo "INSERT INTO wikidata_pages - SELECT item, - instance_of, - lat, - lon, - ips_site_page, - language - FROM wikidata_${i}_pages - ;" | psqlcmd -done - -echo "ALTER TABLE wikidata_pages - ADD COLUMN wp_page_title text - ;" | psqlcmd -echo "UPDATE wikidata_pages - SET wp_page_title = REPLACE(ips_site_page, ' ', '_') - ;" | psqlcmd -echo "ALTER TABLE wikidata_pages - DROP COLUMN ips_site_page - ;" | psqlcmd - - - - -echo "=====================================================================" -echo "Add wikidata to wikipedia_article table" -echo "=====================================================================" - -echo "UPDATE wikipedia_article - SET lat = wikidata_pages.lat, - lon = wikidata_pages.lon, - wd_page_title = wikidata_pages.item, - instance_of = wikidata_pages.instance_of - FROM wikidata_pages - WHERE wikipedia_article.language = wikidata_pages.language - AND wikipedia_article.title = wikidata_pages.wp_page_title - ;" | psqlcmd - -echo "CREATE TABLE wikipedia_article_slim - AS - SELECT * FROM wikipedia_article - WHERE wikidata_id IS NOT NULL - ;" | psqlcmd - -echo "ALTER TABLE wikipedia_article - RENAME TO wikipedia_article_full - ;" | psqlcmd - -echo "ALTER TABLE wikipedia_article_slim - RENAME TO wikipedia_article - ;" | psqlcmd - - - - -echo "=====================================================================" -echo "Dropping intermediate tables" -echo "=====================================================================" - -echo "DROP TABLE wikidata_place_dump;" | psqlcmd -echo "DROP TABLE geo_earth_primary;" | psqlcmd -for i in "${LANGUAGES[@]}" -do - echo "DROP TABLE wikidata_${i}_pages;" | psqlcmd -done diff --git a/data-sources/wikipedia-wikidata/import_wikipedia.sh b/data-sources/wikipedia-wikidata/import_wikipedia.sh deleted file mode 100755 index 106131e8..00000000 --- a/data-sources/wikipedia-wikidata/import_wikipedia.sh +++ /dev/null @@ -1,297 +0,0 @@ -#!/bin/bash - -psqlcmd() { - psql --quiet wikiprocessingdb |& \ - grep -v 'does not exist, skipping' |& \ - grep -v 'violates check constraint' |& \ - grep -vi 'Failing row contains' -} - -mysql2pgsqlcmd() { - ./mysql2pgsql.perl --nodrop /dev/stdin /dev/stdout -} - -download() { - echo "Downloading $1" - wget --quiet --no-clobber --tries=3 "$1" -} - - -# languages to process (refer to List of Wikipedias here: https://en.wikipedia.org/wiki/List_of_Wikipedias) -# requires Bash 4.0 -readarray -t LANGUAGES < languages.txt - - - -echo "=====================================================================" -echo "Create wikipedia calculation tables" -echo "=====================================================================" - -echo "CREATE TABLE linkcounts ( - language text, - title text, - count integer, - sumcount integer, - lat double precision, - lon double precision - );" | psqlcmd - -echo "CREATE TABLE wikipedia_article ( - language text NOT NULL, - title text NOT NULL, - langcount integer, - othercount integer, - totalcount integer, - lat double precision, - lon double precision, - importance double precision, - title_en text, - osm_type character(1), - osm_id bigint - );" | psqlcmd - -echo "CREATE TABLE wikipedia_redirect ( - language text, - from_title text, - to_title text - );" | psqlcmd - - - - - -echo "=====================================================================" -echo "Download individual wikipedia language tables" -echo "=====================================================================" - - -for i in "${LANGUAGES[@]}" -do - echo "Language: $i" - - # english is the largest - # 1.7G enwiki-latest-page.sql.gz - # 6.2G enwiki-latest-pagelinks.sql.gz - # 355M enwiki-latest-langlinks.sql.gz - # 128M enwiki-latest-redirect.sql.gz - - # example of smaller languge turkish - # 53M trwiki-latest-page.sql.gz - # 176M trwiki-latest-pagelinks.sql.gz - # 106M trwiki-latest-langlinks.sql.gz - # 3.2M trwiki-latest-redirect.sql.gz - - download https://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-page.sql.gz - download https://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-pagelinks.sql.gz - download https://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-langlinks.sql.gz - download https://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-redirect.sql.gz -done - - - - - -echo "=====================================================================" -echo "Import individual wikipedia language tables" -echo "=====================================================================" - -for i in "${LANGUAGES[@]}" -do - echo "Language: $i" - - # We pre-create the table schema. This allows us to - # 1. Skip index creation. Most queries we do are full table scans - # 2. Add constrain to only import namespace=0 (wikipedia articles) - # Both cuts down data size considerably (50%+) - - echo "Importing ${i}wiki-latest-pagelinks" - - echo "DROP TABLE IF EXISTS ${i}pagelinks;" | psqlcmd - echo "CREATE TABLE ${i}pagelinks ( - pl_from int NOT NULL DEFAULT '0', - pl_namespace int NOT NULL DEFAULT '0', - pl_title text NOT NULL DEFAULT '', - pl_from_namespace int NOT NULL DEFAULT '0' - );" | psqlcmd - - time \ - gzip -dc ${i}wiki-latest-pagelinks.sql.gz | \ - sed "s/\`pagelinks\`/\`${i}pagelinks\`/g" | \ - mysql2pgsqlcmd | \ - grep -v '^CREATE INDEX ' | \ - psqlcmd - - - - - echo "Importing ${i}wiki-latest-page" - - # autoincrement serial8 4byte - echo "DROP TABLE IF EXISTS ${i}page;" | psqlcmd - echo "CREATE TABLE ${i}page ( - page_id int NOT NULL, - page_namespace int NOT NULL DEFAULT '0', - page_title text NOT NULL DEFAULT '', - page_restrictions text NOT NULL, - page_is_redirect smallint NOT NULL DEFAULT '0', - page_is_new smallint NOT NULL DEFAULT '0', - page_random double precision NOT NULL DEFAULT '0', - page_touched text NOT NULL DEFAULT '', - page_links_updated text DEFAULT NULL, - page_latest int NOT NULL DEFAULT '0', - page_len int NOT NULL DEFAULT '0', - page_content_model text DEFAULT NULL, - page_lang text DEFAULT NULL - );" | psqlcmd - - time \ - gzip -dc ${i}wiki-latest-page.sql.gz | \ - sed "s/\`page\`/\`${i}page\`/g" | \ - mysql2pgsqlcmd | \ - grep -v '^CREATE INDEX ' | \ - psqlcmd - - - - - echo "Importing ${i}wiki-latest-langlinks" - - echo "DROP TABLE IF EXISTS ${i}langlinks;" | psqlcmd - echo "CREATE TABLE ${i}langlinks ( - ll_from int NOT NULL DEFAULT '0', - ll_lang text NOT NULL DEFAULT '', - ll_title text NOT NULL DEFAULT '' - );" | psqlcmd - - time \ - gzip -dc ${i}wiki-latest-langlinks.sql.gz | \ - sed "s/\`langlinks\`/\`${i}langlinks\`/g" | \ - mysql2pgsqlcmd | \ - grep -v '^CREATE INDEX ' | \ - psqlcmd - - - - - - echo "Importing ${i}wiki-latest-redirect" - - echo "DROP TABLE IF EXISTS ${i}redirect;" | psqlcmd - echo "CREATE TABLE ${i}redirect ( - rd_from int NOT NULL DEFAULT '0', - rd_namespace int NOT NULL DEFAULT '0', - rd_title text NOT NULL DEFAULT '', - rd_interwiki text DEFAULT NULL, - rd_fragment text DEFAULT NULL - );" | psqlcmd - - time \ - gzip -dc ${i}wiki-latest-redirect.sql.gz | \ - sed "s/\`redirect\`/\`${i}redirect\`/g" | \ - mysql2pgsqlcmd | \ - grep -v '^CREATE INDEX ' | \ - psqlcmd -done - - - - - -echo "=====================================================================" -echo "Process language tables and associated pagelink counts" -echo "=====================================================================" - - -for i in "${LANGUAGES[@]}" -do - echo "Language: $i" - - echo "CREATE TABLE ${i}pagelinkcount - AS - SELECT pl_title AS title, - COUNT(*) AS count, - 0::bigint as othercount - FROM ${i}pagelinks - WHERE pl_namespace = 0 - GROUP BY pl_title - ;" | psqlcmd - - echo "INSERT INTO linkcounts - SELECT '${i}', - pl_title, - COUNT(*) - FROM ${i}pagelinks - WHERE pl_namespace = 0 - GROUP BY pl_title - ;" | psqlcmd - - echo "INSERT INTO wikipedia_redirect - SELECT '${i}', - page_title, - rd_title - FROM ${i}redirect - JOIN ${i}page ON (rd_from = page_id) - WHERE page_namespace = 0 - AND rd_namespace = 0 - ;" | psqlcmd - -done - - -for i in "${LANGUAGES[@]}" -do - for j in "${LANGUAGES[@]}" - do - echo "UPDATE ${i}pagelinkcount - SET othercount = ${i}pagelinkcount.othercount + x.count - FROM ( - SELECT page_title AS title, - count - FROM ${i}langlinks - JOIN ${i}page ON (ll_from = page_id) - JOIN ${j}pagelinkcount ON (ll_lang = '${j}' AND ll_title = title) - ) AS x - WHERE x.title = ${i}pagelinkcount.title - ;" | psqlcmd - done - - echo "INSERT INTO wikipedia_article - SELECT '${i}', - title, - count, - othercount, - count + othercount - FROM ${i}pagelinkcount - ;" | psqlcmd -done - - - - - -echo "=====================================================================" -echo "Calculate importance score for each wikipedia page" -echo "=====================================================================" - -echo "UPDATE wikipedia_article - SET importance = LOG(totalcount)/LOG((SELECT MAX(totalcount) FROM wikipedia_article)) - ;" | psqlcmd - - - - - -echo "=====================================================================" -echo "Clean up intermediate tables to conserve space" -echo "=====================================================================" - -for i in "${LANGUAGES[@]}" -do - echo "DROP TABLE ${i}pagelinks;" | psqlcmd - echo "DROP TABLE ${i}page;" | psqlcmd - echo "DROP TABLE ${i}langlinks;" | psqlcmd - echo "DROP TABLE ${i}redirect;" | psqlcmd - echo "DROP TABLE ${i}pagelinkcount;" | psqlcmd -done - -echo "all done." diff --git a/data-sources/wikipedia-wikidata/languages.txt b/data-sources/wikipedia-wikidata/languages.txt deleted file mode 100644 index bef5d0e9..00000000 --- a/data-sources/wikipedia-wikidata/languages.txt +++ /dev/null @@ -1,39 +0,0 @@ -ar -bg -ca -cs -da -de -en -es -eo -eu -fa -fr -ko -hi -hr -id -it -he -lt -hu -ms -nl -ja -no -pl -pt -kk -ro -ru -sk -sl -sr -fi -sv -tr -uk -vi -war -zh \ No newline at end of file diff --git a/data-sources/wikipedia-wikidata/mysql2pgsql.perl b/data-sources/wikipedia-wikidata/mysql2pgsql.perl deleted file mode 100755 index 3297331f..00000000 --- a/data-sources/wikipedia-wikidata/mysql2pgsql.perl +++ /dev/null @@ -1,951 +0,0 @@ -#!/usr/bin/perl -w -# mysql2pgsql -# MySQL to PostgreSQL dump file converter -# -# For usage: perl mysql2pgsql.perl --help -# -# ddl statments are changed but none or only minimal real data -# formatting are done. -# data consistency is up to the DBA. -# -# (c) 2004-2007 Jose M Duarte and Joseph Speigle ... gborg -# -# (c) 2000-2004 Maxim Rudensky -# (c) 2000 Valentine Danilchuk -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. All advertising materials mentioning features or use of this software -# must display the following acknowledgement: -# This product includes software developed by the Max Rudensky -# and its contributors. -# 4. Neither the name of the author nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -use Getopt::Long; - -use POSIX; - -use strict; -use warnings; - - -# main sections -# ------------- -# 1 variable declarations -# 2 subroutines -# 3 get commandline options and specify help statement -# 4 loop through file and process -# 5. print_plpgsql function prototype - -################################################################# -# 1. variable declarations -################################################################# -# command line options -my( $ENC_IN, $ENC_OUT, $PRESERVE_CASE, $HELP, $DEBUG, $SCHEMA, $LOWERCASE, $CHAR2VARCHAR, $NODROP, $SEP_FILE, $opt_debug, $opt_help, $opt_schema, $opt_preserve_case, $opt_char2varchar, $opt_nodrop, $opt_sepfile, $opt_enc_in, $opt_enc_out ); -# variables for constructing pre-create-table entities -my $pre_create_sql=''; # comments, 'enum' constraints preceding create table statement -my $auto_increment_seq= ''; # so we can easily substitute it if we need a default value -my $create_sql=''; # all the datatypes in the create table section -my $post_create_sql=''; # create indexes, foreign keys, table comments -my $function_create_sql = ''; # for the set (function,trigger) and CURRENT_TIMESTAMP ( function,trigger ) -# constraints -my ($type, $column_valuesStr, @column_values, $value ); -my %constraints=(); # holds values constraints used to emulate mysql datatypes (e.g. year, set) -# datatype conversion variables -my ( $index,$seq); -my ( $column_name, $col, $quoted_column); -my ( @year_holder, $year, $constraint_table_name); -my $table=""; # table_name for create sql statements -my $table_no_quotes=""; # table_name for create sql statements -my $sl = '^\s+\w+\s+'; # matches the column name -my $tables_first_timestamp_column= 1; # decision to print warnings about default_timestamp not being in postgres -my $mysql_numeric_datatypes = "TINYINT|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT|REAL|DOUBLE|FLOAT|DECIMAL|NUMERIC"; -my $mysql_datetime_datatypes = "|DATE|TIME|TIMESTAMP|DATETIME|YEAR"; -my $mysql_text_datatypes = "CHAR|VARCHAR|BINARY|VARBINARY|TINYBLOB|BLOB|MEDIUMBLOB|LONGBLOB|TINYTEXT|TEXT|MEDIUMTEXT|LONGTEXT|ENUM|SET"; -my $mysql_datatypesStr = $mysql_numeric_datatypes . "|". $mysql_datetime_datatypes . "|". $mysql_text_datatypes ; -# handling INSERT INTO statements -my $rowRe = qr{ - \( # opening parens - ( # (start capture) - (?: # (start group) - ' # string start - [^'\\]* # up to string-end or backslash (escape) - (?: # (start group) - \\. # gobble escaped character - [^'\\]* # up to string-end of backslash - )* # (end group, repeat zero or more) - ' # string end - | # (OR) - .*? # everything else (not strings) - )* # (end group, repeat zero or more) - ) # (end capture) - \) # closing parent -}x; - -my ($insert_table, $valueString); -# -######################################################## -# 2. subroutines -# -# get_identifier -# print_post_create_sql() -# quote_and_lc() -# make_plpgsql($table,$column_name) -- at end of file -######################################################## - -# returns an identifier with the given suffix doing controlled -# truncation if necessary -sub get_identifier($$$) { - my ($table, $col, $suffix) = @_; - my $name = ''; - $table=~s/\"//g; # make sure that $table doesn't have quotes so we don't end up with redundant quoting - # in the case of multiple columns - my @cols = split(/,/,$col); - $col =~ s/,//g; - # in case all columns together too long we have to truncate them - if (length($col) > 55) { - my $totaltocut = length($col)-55; - my $tocut = ceil($totaltocut / @cols); - @cols = map {substr($_,0,abs(length($_)-$tocut))} @cols; - $col=""; - foreach (@cols){ - $col.=$_; - } - } - - my $max_table_length = 63 - length("_${col}_$suffix"); - - if (length($table) > $max_table_length) { - $table = substr($table, length($table) - $max_table_length, $max_table_length); - } - return quote_and_lc("${table}_${col}_${suffix}"); -} - - -# -# -# called when we encounter next CREATE TABLE statement -# also called at EOF to print out for last table -# prints comments, indexes, foreign key constraints (the latter 2 possibly to a separate file) -sub print_post_create_sql() { - my ( @create_idx_comments_constraints_commandsArr, $stmts, $table_field_combination); - my %stmts; - # loop to check for duplicates in $post_create_sql - # Needed because of duplicate key declarations ( PRIMARY KEY and KEY), auto_increment columns - - @create_idx_comments_constraints_commandsArr = split(';\n?', $post_create_sql); - if ($SEP_FILE) { - open(SEP_FILE, ">>:encoding($ENC_OUT)", $SEP_FILE) or die "Unable to open $SEP_FILE for output: $!\n"; - } - - foreach (@create_idx_comments_constraints_commandsArr) { - if (m/CREATE INDEX "*(\S+)"*\s/i) { # CREATE INDEX korean_english_wordsize_idx ON korean_english USING btree (wordsize); - $table_field_combination = $1; - # if this particular table_field_combination was already used do not print the statement: - if ($SEP_FILE) { - print SEP_FILE "$_;\n" if !defined($stmts{$table_field_combination}); - } else { - print OUT "$_;\n" if !defined($stmts{$table_field_combination}); - } - $stmts{$table_field_combination} = 1; - } - elsif (m/COMMENT/i) { # COMMENT ON object IS 'text'; but comment may be part of table name so use 'elsif' - print OUT "$_;\n" - } else { # foreign key constraint or comments (those preceded by -- ) - if ($SEP_FILE) { - print SEP_FILE "$_;\n"; - } else { - print OUT "$_;\n" - } - } - } - - if ($SEP_FILE) { - close SEP_FILE; - } - $post_create_sql=''; - # empty %constraints for next " create table" statement -} - -# quotes a string or a multicolumn string (comma separated) -# and optionally lowercase (if LOWERCASE is set) -# lowercase .... if user wants default postgres behavior -# quotes .... to preserve keywords and to preserve case when case-sensitive tables are to be used -sub quote_and_lc($) -{ - my $col = shift; - if ($LOWERCASE) { - $col = lc($col); - } - if ($col =~ m/,/) { - my @cols = split(/,\s?/, $col); - @cols = map {"\"$_\""} @cols; - return join(', ', @cols); - } else { - return "\"$col\""; - } -} - -######################################################## -# 3. get commandline options and maybe print help -######################################################## - -GetOptions("help", "debug"=> \$opt_debug, "schema=s" => \$SCHEMA, "preserve_case" => \$opt_preserve_case, "char2varchar" => \$opt_char2varchar, "nodrop" => \$opt_nodrop, "sepfile=s" => \$opt_sepfile, "enc_in=s" => \$opt_enc_in, "enc_out=s" => \$opt_enc_out ); - -$HELP = $opt_help || 0; -$DEBUG = $opt_debug || 0; -$PRESERVE_CASE = $opt_preserve_case || 0; -if ($PRESERVE_CASE == 1) { $LOWERCASE = 0; } -else { $LOWERCASE = 1; } -$CHAR2VARCHAR = $opt_char2varchar || 0; -$NODROP = $opt_nodrop || 0; -$SEP_FILE = $opt_sepfile || 0; -$ENC_IN = $opt_enc_in || 'utf8'; -$ENC_OUT = $opt_enc_out || 'utf8'; - -if (($HELP) || ! defined($ARGV[0]) || ! defined($ARGV[1])) { - print "\n\nUsage: perl $0 {--help --debug --preserve_case --char2varchar --nodrop --schema --sepfile --enc_in --enc_out } mysql.sql pg.sql\n"; - print "\t* OPTIONS WITHOUT ARGS\n"; - print "\t--help: prints this message \n"; - print "\t--debug: output the commented-out mysql line above the postgres line in pg.sql \n"; - print "\t--preserve_case: prevents automatic case-lowering of column and table names\n"; - print "\t\tIf you want to preserve case, you must set this flag. For example,\n"; - print "\t\tIf your client application quotes table and column-names and they have cases in them, set this flag\n"; - print "\t--char2varchar: converts all char fields to varchar\n"; - print "\t--nodrop: strips out DROP TABLE statements\n"; - print "\t\totherise harmless warnings are printed by psql when the dropped table does not exist\n"; - print "\n\t* OPTIONS WITH ARGS\n"; - print "\t--schema: outputs a line into the postgres sql file setting search_path \n"; - print "\t--sepfile: output foreign key constraints and indexes to a separate file so that it can be\n"; - print "\t\timported after large data set is inserted from another dump file\n"; - print "\t--enc_in: encoding of mysql in file (default utf8) \n"; - print "\t--enc_out: encoding of postgres out file (default utf8) \n"; - print "\n\t* REQUIRED ARGUMENTS\n"; - if (defined ($ARGV[0])) { - print "\tmysql.sql ($ARGV[0])\n"; - } else { - print "\tmysql.sql (undefined)\n"; - } - if (defined ($ARGV[1])) { - print "\tpg.sql ($ARGV[1])\n"; - } else { - print "\tpg.sql (undefined)\n"; - } - print "\n"; - exit 1; -} -######################################################## -# 4. process through mysql_dump.sql file -# in a big loop -######################################################## - -# open in and out files -open(IN,"<:encoding($ENC_IN)", $ARGV[0]) || die "can't open mysql dump file $ARGV[0]"; -open(OUT,">:encoding($ENC_OUT)", $ARGV[1]) || die "can't open pg dump file $ARGV[1]"; - -# output header -print OUT "--\n"; -print OUT "-- Generated from mysql2pgsql.perl\n"; -print OUT "-- http://gborg.postgresql.org/project/mysql2psql/\n"; -print OUT "-- (c) 2001 - 2007 Jose M. Duarte, Joseph Speigle\n"; -print OUT "--\n"; -print OUT "\n"; -print OUT "-- warnings are printed for drop tables if they do not exist\n"; -print OUT "-- please see http://archives.postgresql.org/pgsql-novice/2004-10/msg00158.php\n\n"; -print OUT "-- ##############################################################\n"; - -if ($SCHEMA ) { - print OUT "set search_path='" . $SCHEMA . "'\\g\n" ; -} - -# loop through mysql file on a per-line basis -while() { - -############## flow ######################### -# (the lines are directed to different string variables at different times) -# -# handle drop table , unlock, connect statements -# if ( start of create table) { -# print out post_create table (indexes, foreign key constraints, comments from previous table) -# add drop table statement if !$NODROP to pre_create_sql -# next; -# } -# else if ( inside create table) { -# add comments in this portion to create_sql -# if ( end of create table) { -# delete mysql-unique CREATE TABLE commands -# print pre_create_sql -# print the constraint tables for set and year datatypes -# print create_sql -# print function_create_sql (this is for the enum columns only) -# next; -# } -# do substitutions -# -- NUMERIC DATATYPES -# -- CHARACTER DATATYPES -# -- DATE AND TIME DATATYPES -# -- KEY AND UNIQUE CREATIONS -# and append them to create_sql -# } else { -# print inserts on-the-spot (this script only changes default timestamp of 0000-00-00) -# } -# LOOP until EOF -# -######################################################## - - -if (!/^\s*insert into/i) { # not inside create table so don't worry about data corruption - s/`//g; # '`pgsql uses no backticks to denote table name (CREATE TABLE `sd`) or around field - # and table names like mysql - # doh! we hope all dashes and special chars are caught by the regular expressions :) -} -if (/^\s*USE\s*([^;]*);/) { - print OUT "\\c ". $1; - next; -} -if (/^(UN)?LOCK TABLES/i || /drop\s+table/i ) { - - # skip - # DROP TABLE is added when we see the CREATE TABLE - next; -} -if (/(create\s+table\s+)([-_\w]+)\s/i) { # example: CREATE TABLE `english_english` - print_post_create_sql(); # for last table - $tables_first_timestamp_column= 1; # decision to print warnings about default_timestamp not being in postgres - $create_sql = ''; - $table_no_quotes = $2 ; - $table=quote_and_lc($2); - if ( !$NODROP ) { # always print drop table if user doesn't explicitly say not to - # to drop a table that is referenced by a view or a foreign-key constraint of another table, - # CASCADE must be specified. (CASCADE will remove a dependent view entirely, but in the - # in the foreign-key case it will only remove the foreign-key constraint, not the other table entirely.) - # (source: 8.1.3 docs, section "drop table") - warn "table $table will be dropped CASCADE\n"; - $pre_create_sql .= "DROP TABLE $table CASCADE;\n"; # custom dumps may be missing the 'dump' commands - } - - s/(create\s+table\s+)([-_\w]+)\s/$1 $table /i; - if ($DEBUG) { - $create_sql .= '-- ' . $_; - } - $create_sql .= $_; - next; -} -if ($create_sql ne "") { # we are inside create table statement so lets process datatypes - # print out comments or empty lines in context - if ($DEBUG) { - $create_sql .= '-- ' . $_; - } - if (/^#/ || /^$/ || /^\s*--/) { - s/^#/--/; # Two hyphens (--) is the SQL-92 standard indicator for comments - $create_sql.=$_; - next; - } - - if (/\).*;/i) { # end of create table squence - - s/INSERT METHOD[=\s+][^;\s]+//i; - s/PASSWORD=[^;\s]+//i; - s/ROW_FORMAT=(?:DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT)+//i; - s/KEY_BLOCK_SIZE=8//i; - s/DELAY KEY WRITE=[^;\s]+//i; - s/INDEX DIRECTORY[=\s+][^;\s]+//i; - s/DATA DIRECTORY=[^;\s]+//i; - s/CONNECTION=[^;\s]+//i; - s/CHECKSUM=[^;\s]+//i; - s/Type=[^;\s]+//i; # ISAM , # older versions - s/COLLATE=[^;\s]+//i; # table's collate - s/COLLATE\s+[^;\s]+//i; # table's collate - # possible AUTO_INCREMENT starting index, it is used in mysql 5.0.26, not sure since which version - if (/AUTO_INCREMENT=(\d+)/i) { - # should take < ---- ) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=latin1; - # and should ouput ---> CREATE SEQUENCE "rhm_host_info_id_seq" START WITH 16; - my $start_value = $1; - print $auto_increment_seq . "--\n"; - # print $pre_create_sql . "--\n"; - $pre_create_sql =~ s/(CREATE SEQUENCE $auto_increment_seq )/$1 START WITH $start_value /; - } - s/AUTO_INCREMENT=\d+//i; - s/PACK_KEYS=\d//i; # mysql 5.0.22 - s/DEFAULT CHARSET=[^;\s]+//i; # my mysql version is 4.1.11 - s/ENGINE\s*=\s*[^;\s]+//i; # my mysql version is 4.1.11 - s/ROW_FORMAT=[^;\s]+//i; # my mysql version is 5.0.22 - s/KEY_BLOCK_SIZE=8//i; - s/MIN_ROWS=[^;\s]+//i; - s/MAX_ROWS=[^;\s]+//i; - s/AVG_ROW_LENGTH=[^;\s]+//i; - if (/COMMENT='([^']*)'/) { # ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='must be country zones'; - $post_create_sql.="COMMENT ON TABLE $table IS '$1'\;"; # COMMENT ON table_name IS 'text'; - s/COMMENT='[^']*'//i; - } - $create_sql =~ s/,$//g; # strip last , inside create table - # make sure we end in a comma, as KEY statments are turned - # into post_create_sql indices - # they often are the last line so leaving a 'hanging comma' - my @array = split("\n", $create_sql); - for (my $a = $#array; $a >= 0; $a--) { #loop backwards - if ($a == $#array && $array[$a] =~ m/,\s*$/) { # for last line - $array[$a] =~ s/,\s*$//; - next; - } - if ($array[$a] !~ m/create table/i) { # i.e. if there was more than one column in table - if ($a != $#array && $array[$a] !~ m/,\s*$/ ) { # for second to last - $array[$a] =~ s/$/,/; - last; - } - elsif ($a != $#array && $array[$a] =~ m/,\s*$/ ) { # for second to last - last; - } - } - } - $create_sql = join("\n", @array) . "\n"; - $create_sql .= $_; - - # put comments out first - print OUT $pre_create_sql; - - # create separate table to reference and to hold mysql's possible set data-type - # values. do that table's creation before create table - # definition - foreach $column_name (keys %constraints) { - $type=$constraints{$column_name}{'type'}; - $column_valuesStr = $constraints{$column_name}{'values'}; - $constraint_table_name = get_identifier(${table},${column_name} ,"constraint_table"); - if ($type eq 'set') { - print OUT qq~DROP TABLE $constraint_table_name CASCADE\\g\n~ ; - print OUT qq~create table $constraint_table_name ( set_values varchar UNIQUE)\\g\n~ ; - $function_create_sql .= make_plpgsql($table,$column_name); - } elsif ($type eq 'year') { - print OUT qq~DROP TABLE $constraint_table_name CASCADE\\g\n~ ; - print OUT qq~create table $constraint_table_name ( year_values varchar UNIQUE)\\g\n~ ; - } - @column_values = split /,/, $column_valuesStr; - foreach $value (@column_values) { - print OUT qq~insert into $constraint_table_name values ( $value )\\g\n~; # ad ' for ints and varchars - } - } - - $create_sql =~ s/double double/double precision/g; - - # print create table and reset create table vars - # when moving from each "create table" to "insert" part of dump - print OUT $create_sql; - print OUT $function_create_sql; - $pre_create_sql=""; - $auto_increment_seq=""; - $create_sql=""; - $function_create_sql=''; - %constraints=(); - # the post_create_sql for this table is output at the beginning of the next table def - # in case we want to make indexes after doing inserting - next; - } - if (/^\s*(\w+)\s+.*COMMENT\s*'([^']*)'/) { #`zone_country_id` int(11) COMMENT 'column comment here', - $quoted_column=quote_and_lc($1); - $post_create_sql.="COMMENT ON COLUMN $table"."."." $quoted_column IS '$2'\;"; # COMMENT ON table_name.column_name IS 'text'; - s/COMMENT\s*'[^']*'//i; - } - - - # NUMERIC DATATYPES - # - # auto_increment -> sequences - # UNSIGNED conversions - # TINYINT - # SMALLINT - # MEDIUMINT - # INT, INTEGER - # BIGINT - # - # DOUBLE [PRECISION], REAL - # DECIMAL(M,D), NUMERIC(M,D) - # FLOAT(p) - # FLOAT - - s/(\w*int)\(\d+\)/$1/g; # hack of the (n) stuff for e.g. mediumint(2) int(3) - - if (/^(\s*)(\w+)\s*.*numeric.*auto_increment/i) { # int,auto_increment -> serial - $seq = get_identifier($table, $2, 'seq'); - $quoted_column=quote_and_lc($2); - # Smash datatype to int8 and autogenerate the sequence. - s/^(\s*)(\w+)\s*.*NUMERIC(.*)auto_increment([^,]*)/$1 $quoted_column serial8 $4/ig; - $create_sql.=$_; - next; - } - if (/^\s*(\w+)\s+.*int.*auto_increment/i) { # example: data_id mediumint(8) unsigned NOT NULL auto_increment, - $seq = get_identifier($table, $1, 'seq'); - $quoted_column=quote_and_lc($1); - s/(\s*)(\w+)\s+.*int.*auto_increment([^,]*)/$1 $quoted_column serial8 $3/ig; - $create_sql.=$_; - next; - } - - - - - # convert UNSIGNED to CHECK constraints - if (m/^(\s*)(\w+)\s+((float|double precision|double|real|decimal|numeric))(.*)unsigned/i) { - $quoted_column = quote_and_lc($2); - s/^(\s*)(\w+)\s+((float|double precision|double|real|decimal|numeric))(.*)unsigned/$1 $quoted_column $3 $4 CHECK ($quoted_column >= 0)/i; - } - # example: `wordsize` tinyint(3) unsigned default NULL, - if (m/^(\s+)(\w+)\s+(\w+)\s+unsigned/i) { - $quoted_column=quote_and_lc($2); - s/^(\s+)(\w+)\s+(\w+)\s+unsigned/$1 $quoted_column $3 CHECK ($quoted_column >= 0)/i; - } - if (m/^(\s*)(\w+)\s+(bigint.*)unsigned/) { - $quoted_column=quote_and_lc($2); - # see http://archives.postgresql.org/pgsql-general/2005-07/msg01178.php - # and see http://www.postgresql.org/docs/8.2/interactive/datatype-numeric.html - # see http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html max size == 20 digits - s/^(\s*)(\w+)\s+bigint(.*)unsigned/$1 $quoted_column NUMERIC (20,0) CHECK ($quoted_column >= 0)/i; - - } - - # int type conversion - # TINYINT (signed) -128 to 127 (unsigned) 0 255 - # SMALLINT A small integer. The signed range is -32768 to 32767. The unsigned range is 0 to 65535. - # MEDIUMINT A medium-sized integer. The signed range is -8388608 to 8388607. The unsigned range is 0 to 16777215. - # INT A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295. - # BIGINT The signed range is -9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615 - # for postgres see http://www.postgresql.org/docs/8.2/static/datatype-numeric.html#DATATYPE-INT - s/^(\s+"*\w+"*\s+)tinyint/$1 smallint/i; - s/^(\s+"*\w+"*\s+)mediumint/$1 integer/i; - - # the floating point types - # double -> double precision - # double(n,m) -> double precision - # float - no need for conversion - # float(n) - no need for conversion - # float(n,m) -> double precision - - s/(^\s*\w+\s+)double(\(\d+,\d+\))?/$1float/i; - s/float(\(\d+,\d+\))/float/i; - - # - # CHARACTER TYPES - # - # set - # enum - # binary(M), VARBINARy(M), tinyblob, tinytext, - # bit - # char(M), varchar(M) - # blob -> text - # mediumblob - # longblob, longtext - # text -> text - # mediumtext - # longtext - # mysql docs: A BLOB is a binary large object that can hold a variable amount of data. - - # set - # For example, a column specified as SET('one', 'two') NOT NULL can have any of these values: - # '' - # 'one' - # 'two' - # 'one,two' - if (/(\w*)\s+set\(((?:['"]\w+['"]\s*,*)+(?:['"]\w+['"])*)\)(.*)$/i) { # example: `au_auth` set('r','w','d') NOT NULL default '', - $column_name = $1; - $constraints{$column_name}{'values'} = $2; # 'abc','def', ... - $constraints{$column_name}{'type'} = "set"; # 'abc','def', ... - $_ = qq~ $column_name varchar , ~; - $column_name = quote_and_lc($1); - $create_sql.=$_; - next; - - } - if (/(\S*)\s+enum\(((?:['"][^'"]+['"]\s*,)+['"][^'"]+['"])\)(.*)$/i) { # enum handling - # example: `test` enum('?','+','-') NOT NULL default '?' - # $2 is the values of the enum 'abc','def', ... - $quoted_column=quote_and_lc($1); - # "test" NOT NULL default '?' CONSTRAINT test_test_constraint CHECK ("test" IN ('?','+','-')) - $_ = qq~ $quoted_column varchar CHECK ($quoted_column IN ( $2 ))$3\n~; # just assume varchar? - $create_sql.=$_; - next; - } - # Take care of "binary" option for char and varchar - # (pre-4.1.2, it indicated a byte array; from 4.1.2, indicates - # a binary collation) - s/(?:var)?char(?:\(\d+\))? (?:byte|binary)/text/i; - if (m/(?:var)?binary\s*\(\d+\)/i) { # c varBINARY(3) in Mysql - warn "WARNING in table '$table' '$_': binary type is converted to bytea (unsized) for Postgres\n"; - } - s/(?:var)?binary(?:\(\d+\))?/text/i; # c varBINARY(3) in Mysql - s/bit(?:\(\d+\))?/bytea/i; # bit datatype -> bytea - - # large datatypes - s/\w*blob/bytea/gi; - s/tinytext/text/gi; - s/mediumtext/text/gi; - s/longtext/text/gi; - - # char -> varchar -- if specified as a command line option - # PostgreSQL would otherwise pad with spaces as opposed - # to MySQL! Your user interface may depend on this! - if ($CHAR2VARCHAR) { - s/(^\s+\S+\s+)char/${1}varchar/gi; - } - - # nuke column's collate and character set - s/(\S+)\s+character\s+set\s+\w+/$1/gi; - s/(\S+)\s+collate\s+\w+/$1/gi; - - # - # DATE AND TIME TYPES - # - # date time - # year - # datetime - # timestamp - - # date time - # these are the same types in postgres, just do the replacement of 0000-00-00 date - - if (m/default '(\d+)-(\d+)-(\d+)([^']*)'/i) { # we grab the year, month and day - # NOTE: times of 00:00:00 are possible and are okay - my $time = ''; - my $year=$1; - my $month= $2; - my $day = $3; - if ($4) { - $time = $4; - } - if ($year eq "0000") { $year = '1970'; } - if ($month eq "00") { $month = '01'; } - if ($day eq "00") { $day = '01'; } - s/default '[^']+'/default '$year-$month-$day$time'/i; # finally we replace with $datetime - } - - # convert mysql's year datatype to a constraint - if (/(\w*)\s+year\(4\)(.*)$/i) { # can be integer OR string 1901-2155 - $constraint_table_name = get_identifier($table,$1 ,"constraint_table"); - $column_name=quote_and_lc($1); - @year_holder = (); - $year=''; - for (1901 .. 2155) { - $year = "'$_'"; - unless ($year =~ /2155/) { $year .= ','; } - push( @year_holder, $year); - } - $constraints{$column_name}{'values'} = join('','',@year_holder); # '1901','1902', ... - $constraints{$column_name}{'type'} = "year"; - $_ = qq~ $column_name varchar CONSTRAINT ${table}_${column_name}_constraint REFERENCES $constraint_table_name ("year_values") $2\n~; - $create_sql.=$_; - next; - } elsif (/(\w*)\s+year\(2\)(.*)$/i) { # same for a 2-integer string - $constraint_table_name = get_identifier($table,$1 ,"constraint_table"); - $column_name=quote_and_lc($1); - @year_holder = (); - $year=''; - for (1970 .. 2069) { - $year = "'$_'"; - if ($year =~ /2069/) { next; } - push( @year_holder, $year); - } - push( @year_holder, '0000'); - $constraints{$column_name}{'values'} = join(',',@year_holder); # '1971','1972', ... - $constraints{$column_name}{'type'} = "year"; # 'abc','def', ... - $_ = qq~ $1 varchar CONSTRAINT ${table}_${column_name}_constraint REFERENCES $constraint_table_name ("year_values") $2\n~; - $create_sql.=$_; - next; - } - - # datetime - # Default on a dump from MySQL 5.0.22 is in the same form as datetime so let it flow down - # to the timestamp section and deal with it there - s/(${sl})datetime /$1timestamp without time zone /i; - - # change not null datetime field to null valid ones - # (to support remapping of "zero time" to null - # s/($sl)datetime not null/$1timestamp without time zone/i; - - - # timestamps - # - # nuke datetime representation (not supported in PostgreSQL) - # change default time of 0000-00-00 to 1970-01-01 - - # we may possibly need to create a trigger to provide - # equal functionality with ON UPDATE CURRENT TIMESTAMP - - - if (m/${sl}timestamp/i) { - if ( m/ON UPDATE CURRENT_TIMESTAMP/i ) { # the ... default CURRENT_TIMESTAMP only applies for blank inserts, not updates - s/ON UPDATE CURRENT_TIMESTAMP//i ; - m/^\s*(\w+)\s+timestamp/i ; - # automatic trigger creation - $table_no_quotes =~ s/"//g; -$function_create_sql .= " CREATE OR REPLACE FUNCTION update_". $table_no_quotes . "() RETURNS trigger AS ' -BEGIN - NEW.$1 := CURRENT_TIMESTAMP; - RETURN NEW; -END; -' LANGUAGE 'plpgsql'; - --- before INSERT is handled by 'default CURRENT_TIMESTAMP' -CREATE TRIGGER add_current_date_to_".$table_no_quotes." BEFORE UPDATE ON ". $table . " FOR EACH ROW EXECUTE PROCEDURE -update_".$table_no_quotes."();\n"; - - } - if ($tables_first_timestamp_column && m/DEFAULT NULL/i) { - # DEFAULT NULL is the same as DEFAULT CURRENT_TIMESTAMP for the first TIMESTAMP column. (MYSQL manual) - s/($sl)(timestamp\s+)default null/$1 $2 DEFAULT CURRENT_TIMESTAMP/i; - } - $tables_first_timestamp_column= 0; - if (m/${sl}timestamp\s*\(\d+\)/i) { # fix for timestamps with width spec not handled (ID: 1628) - warn "WARNING for in table '$table' '$_': your default timestamp width is being ignored for table $table \n"; - s/($sl)timestamp(?:\(\d+\))/$1datetime/i; - } - } # end timestamp section - - # KEY AND UNIQUE CREATIONS - # - # unique - if ( /^\s+unique\s+\(([^(]+)\)/i ) { # example UNIQUE `name` (`name`), same as UNIQUE KEY - # POSTGRESQL: treat same as mysql unique - $quoted_column = quote_and_lc($1); - s/\s+unique\s+\(([^(]+)\)/ unique ($quoted_column) /i; - $create_sql.=$_; - next; - } elsif ( /^\s+unique\s+key\s*(\w+)\s*\(([^(]+)\)/i ) { # example UNIQUE KEY `name` (`name`) - # MYSQL: unique key: allows null=YES, allows duplicates=NO (*) - # ... new ... UNIQUE KEY `unique_fullname` (`fullname`) in my mysql v. Ver 14.12 Distrib 5.1.7-beta - # POSTGRESQL: treat same as mysql unique - # just quote columns - $quoted_column = quote_and_lc($2); - s/\s+unique\s+key\s*(\w+)\s*\(([^(]+)\)/ unique ($quoted_column) /i; - $create_sql.=$_; - # the index corresponding to the 'key' is automatically created - next; - } - # keys - if ( /^\s+fulltext key\s+/i) { # example: FULLTEXT KEY `commenttext` (`commenttext`) - # that is key as a word in the first check for a match - # the tsvector datatype is made for these types of things - # example mysql file: - # what is tsvector datatype? - # http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/docs/tsearch-V2-intro.html - warn "dba must do fulltext key transformation for $table\n"; - next; - } - if ( /^(\s+)constraint (\S+) foreign key \((\S+)\) references (\S+) \((\S+)\)(.*)/i ) { - $quoted_column =quote_and_lc($3); - $col=quote_and_lc($5); - $post_create_sql .= "ALTER TABLE $table ADD FOREIGN KEY ($quoted_column) REFERENCES " . quote_and_lc($4) . " ($col);\n"; - next; - } - if ( /^\s*primary key\s*\(([^)]+)\)([,\s]+)/i ) { # example PRIMARY KEY (`name`) - # MYSQL: primary key: allows null=NO , allows duplicates=NO - # POSTGRESQL: When an index is declared unique, multiple table rows with equal indexed values will not be - # allowed. Null values are not considered equal. - # POSTGRESQL quote's source: 8.1.3 docs section 11.5 "unique indexes" - # so, in postgres, we need to add a NOT NULL to the UNIQUE constraint - # and, primary key (mysql) == primary key (postgres) so that we *really* don't need change anything - $quoted_column = quote_and_lc($1); - s/(\s*)primary key\s+\(([^)]+)\)([,\s]+)/$1 primary key ($quoted_column)$3/i; - # indexes are automatically created for unique columns - $create_sql.=$_; - next; - } elsif (m/^\s+key\s[-_\s\w]+\((.+)\)/i ) { # example: KEY `idx_mod_english_def_word` (`word`), - # regular key: allows null=YES, allows duplicates=YES - # MYSQL: KEY is normally a synonym for INDEX. http://dev.mysql.com/doc/refman/5.1/en/create-table.html - # - # * MySQL: ALTER TABLE {$table} ADD KEY $column ($column) - # * PostgreSQL: CREATE INDEX {$table}_$column_idx ON {$table}($column) // Please note the _idx "extension" - # PRIMARY KEY (`postid`), - # KEY `ownerid` (`ownerid`) - # create an index for everything which has a key listed for it. - my $col = $1; - # TODO we don't have a translation for the substring syntax in text columns in MySQL (e.g. "KEY my_idx (mytextcol(20))") - # for now just getting rid of the brackets and numbers (the substring specifier): - $col=~s/\(\d+\)//g; - $quoted_column = quote_and_lc($col); - if ($col =~ m/,/) { - $col = s/,/_/; - } - $index = get_identifier($table, $col, 'idx'); - $post_create_sql.="CREATE INDEX $index ON $table USING btree ($quoted_column)\;"; - # just create index do not add to create table statement - next; - } - - # handle 'key' declared at end of column - if (/\w+.*primary key/i) { # mysql: key is normally just a synonym for index - # just leave as is ( postgres has primary key type) - - - } elsif (/(\w+\s+(?:$mysql_datatypesStr)\s+.*)key/i) { # mysql: key is normally just a synonym for index - # I can't find a reference for 'key' in a postgres command without using the word 'primary key' - s/$1key/$1/i ; - $index = get_identifier($table, $1, 'idx'); - $quoted_column =quote_and_lc($1); - $post_create_sql.="CREATE INDEX $index ON $table USING btree ($quoted_column) \;"; - $create_sql.=$_; - } - - - - # do we really need this anymore? - # remap colums with names of existing system attribute - if (/"oid"/i) { - s/"oid"/"_oid"/g; - print STDERR "WARNING: table $table uses column \"oid\" which is renamed to \"_oid\"\nYou should fix application manually! Press return to continue."; - my $wait=; - } - - s/oid/_oid/i if (/key/i && /oid/i); # fix oid in key - - # FINAL QUOTING OF ALL COLUMNS - # quote column names which were not already quoted - # perhaps they were not quoted because they were not explicitly handled - if (!/^\s*"(\w+)"(\s+)/i) { - /^(\s*)(\w+)(\s+)(.*)$/i ; - $quoted_column= quote_and_lc($2); - s/^(\s*)(\w+)(\s+)(.*)$/$1 $quoted_column $3 $4 /; - } - $create_sql.=$_; - # END of if ($create_sql ne "") i.e. were inside create table statement so processed datatypes -} -# add "not in create table" comments or empty lines to pre_create_sql -elsif (/^#/ || /^$/ || /^\s*--/) { - s/^#/--/; # Two hyphens (--) is the SQL-92 standard indicator for comments - $pre_create_sql .= $_ ; # printed above create table statement - next; -} -elsif (/^\s*insert into/i) { # not inside create table and doing insert - # fix mysql's zero/null value for timestamps - s/'0000-00-00/'1970-01-01/gi; - # commented out to fix bug "Field contents interpreted as a timestamp", what was the point of this line anyway? - #s/([12]\d\d\d)([01]\d)([0-3]\d)([0-2]\d)([0-6]\d)([0-6]\d)/'$1-$2-$3 $4:$5:$6'/; - - #---- fix data in inserted data: (from MS world) - s!\x96!-!g; # -- - s!\x93!"!g; # `` - s!\x94!"!g; # '' - s!\x85!... !g; # \ldots - s!\x92!`!g; - - print OUT $pre_create_sql; # print comments preceding the insert section - $pre_create_sql=""; - $auto_increment_seq = ""; - - s/'((?:[^'\\]++|\\.)*+)'(?=[),])/E'$1'/g; - # for the E'' see http://www.postgresql.org/docs/8.2/interactive/release-8-1.html - s!\\\\!\\\\\\\\!g; # replace \\ with ]\\\\ - - # split 'extended' INSERT INTO statements to something PostgreSQL can understand - ( $insert_table, $valueString) = $_ =~ m/^INSERT\s+INTO\s+['`"]*(.*?)['`"]*\s+VALUES\s*(.*)/i; - $insert_table = quote_and_lc($insert_table); - - s/^INSERT INTO.*?\);//i; # hose the statement which is to be replaced whether a run-on or not - # guarantee table names are quoted - print OUT qq(INSERT INTO $insert_table VALUES $valueString \n); - -} else { - print OUT $_ ; # example: /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -} -# keep looping and get next line of IN file - -} # END while() - -print_post_create_sql(); # in case there is extra from the last table - -################################################################# -# 5. print_plgsql function prototype -# emulate the set datatype with the following plpgsql function -# looks ugly so putting at end of file -################################################################# -# -sub make_plpgsql { -my ($table,$column_name) = ($_[0],$_[1]); -$table=~s/\"//g; # make sure that $table doesn't have quotes so we don't end up with redundant quoting -my $constraint_table = get_identifier($table,$column_name ,"constraint_table"); -return " --- this function is called by the insert/update trigger --- it checks if the INSERT/UPDATE for the 'set' column --- contains members which comprise a valid mysql set --- this TRIGGER function therefore acts like a constraint --- provided limited functionality for mysql's set datatype --- just verifies and matches for string representations of the set at this point --- though the set datatype uses bit comparisons, the only supported arguments to our --- set datatype are VARCHAR arguments --- to add a member to the set add it to the ".$table."_".$column_name." table -CREATE OR REPLACE FUNCTION check_".$table."_".$column_name."_set( ) RETURNS TRIGGER AS \$\$\n -DECLARE ----- -arg_str VARCHAR ; -argx VARCHAR := ''; -nobreak INT := 1; -rec_count INT := 0; -psn INT := 0; -str_in VARCHAR := NEW.$column_name; ----- -BEGIN ----- -IF str_in IS NULL THEN RETURN NEW ; END IF; -arg_str := REGEXP_REPLACE(str_in, '\\',\\'', ','); -- str_in is CONSTANT -arg_str := REGEXP_REPLACE(arg_str, '^\\'', ''); -arg_str := REGEXP_REPLACE(arg_str, '\\'\$', ''); --- RAISE NOTICE 'arg_str %',arg_str; -psn := POSITION(',' in arg_str); -IF psn > 0 THEN - psn := psn - 1; -- minus-1 from comma position - -- RAISE NOTICE 'psn %',psn; - argx := SUBSTRING(arg_str FROM 1 FOR psn); -- get one set member - psn := psn + 2; -- go to first starting letter - arg_str := SUBSTRING(arg_str FROM psn); -- hack it off -ELSE - psn := 0; -- minus-1 from comma position - argx := arg_str; -END IF; --- RAISE NOTICE 'argx %',argx; --- RAISE NOTICE 'new arg_str: %',arg_str; -WHILE nobreak LOOP - EXECUTE 'SELECT count(*) FROM $constraint_table WHERE set_values = ' || quote_literal(argx) INTO rec_count; - IF rec_count = 0 THEN RAISE EXCEPTION 'one of the set values was not found'; - END IF; - IF psn > 0 THEN - psn := psn - 1; -- minus-1 from comma position - -- RAISE NOTICE 'psn %',psn; - argx := SUBSTRING(arg_str FROM 1 FOR psn); -- get one set member - psn := psn + 2; -- go to first starting letter - arg_str := SUBSTRING(arg_str FROM psn); -- hack it off - psn := POSITION(',' in arg_str); - ELSE nobreak = 0; - END IF; - -- RAISE NOTICE 'next argx % and next arg_str %', argx, arg_str; -END LOOP; -RETURN NEW; ----- -END; -\$\$ LANGUAGE 'plpgsql' VOLATILE; - -drop trigger set_test ON $table; --- make a trigger for each set field --- make trigger and hard-code in column names --- see http://archives.postgresql.org/pgsql-interfaces/2005-02/msg00020.php -CREATE TRIGGER set_test -BEFORE INSERT OR UPDATE ON $table FOR EACH ROW -EXECUTE PROCEDURE check_".$table."_".$column_name."_set();\n"; -} # end sub make_plpgsql(); - diff --git a/data-sources/wikipedia-wikidata/wikidata_place_type_levels.csv b/data-sources/wikipedia-wikidata/wikidata_place_type_levels.csv deleted file mode 100644 index e4143210..00000000 --- a/data-sources/wikipedia-wikidata/wikidata_place_type_levels.csv +++ /dev/null @@ -1,199 +0,0 @@ -place_type,level -Q9842,4 -Q9430,3 -Q928830,4 -Q9259,1 -Q91028,5 -Q8514,2 -Q8502,2 -Q83405,3 -Q82794,2 -Q820477,1 -Q811979,1 -Q8072,2 -Q79007,2 -Q786014,3 -Q75848,2 -Q75520,2 -Q728937,4 -Q7275,2 -Q719456,3 -Q7075,3 -Q697295,4 -Q6852233,2 -Q682943,3 -Q665487,5 -Q655686,3 -Q643589,5 -Q641226,2 -Q631305,2 -Q6256,2 -Q6023295,2 -Q5773747,5 -Q56061,1 -Q55659167,4 -Q55488,4 -Q55465477,3 -Q54050,2 -Q532,3 -Q53060,2 -Q52177058,4 -Q515716,5 -Q5153984,4 -Q515,3 -Q5144960,5 -Q5119,4 -Q5119,4 -Q5107,2 -Q5084,4 -Q5031071,4 -Q5003624,2 -Q4989906,1 -Q4976993,3 -Q486972,1 -Q486972,2 -Q483110,3 -Q4830453,4 -Q47521,3 -Q473972,1 -Q46831,2 -Q46614560,5 -Q44782,3 -Q44613,4 -Q44539,4 -Q44494,2 -Q44377,2 -Q4421,2 -Q43501,2 -Q4286337,3 -Q42523,3 -Q41176,2 -Q40357,3 -Q4022,4 -Q40080,2 -Q39816,2 -Q39715,3 -Q39614,1 -Q3957,3 -Q3947,4 -Q3914,3 -Q38723,2 -Q38720,3 -Q3623867,5 -Q35666,2 -Q355304,3 -Q35509,2 -Q35112127,3 -Q34985575,4 -Q34876,5 -Q34763,2 -Q34627,4 -Q3455524,3 -Q34442,4 -Q33837,2 -Q33506,3 -Q32815,4 -Q3257686,2 -Q3240715,2 -Q3191695,5 -Q3153117,2 -Q30198,2 -Q30139652,3 -Q294422,3 -Q2870166,3 -Q27686,3 -Q274153,3 -Q271669,1 -Q2659904,2 -Q24529780,2 -Q24354,3 -Q2354973,4 -Q23442,2 -Q23413,3 -Q23397,3 -Q2327515,4 -Q2311958,5 -Q22927291,6 -Q22698,1 -Q2175765,4 -Q205495,4 -Q204832,3 -Q2042028,2 -Q202216,6 -Q1970725,3 -Q194203,5 -Q194195,2 -Q190429,2 -Q185187,3 -Q185113,2 -Q183366,2 -Q1799794,1 -Q1788454,4 -Q1785071,3 -Q1777138,3 -Q177634,2 -Q177380,2 -Q174814,4 -Q174782,2 -Q17350442,2 -Q17343829,3 -Q17334923,0 -Q17018380,3 -Q16970,4 -Q16917,3 -Q16831714,4 -Q165,3 -Q160742,4 -Q159719,3 -Q159334,4 -Q15640612,5 -Q15324,2 -Q15284,5 -Q15243209,6 -Q152081,1 -Q15195406,4 -Q1500350,5 -Q149621,5 -Q14757767,4 -Q14350,3 -Q1410668,3 -Q1394476,3 -Q1377575,2 -Q1353183,3 -Q134447,4 -Q133215,3 -Q133056,2 -Q13221722,3 -Q13220204,2 -Q1311958,4 -Q1303167,3 -Q130003,3 -Q12518,2 -Q12516,3 -Q1248784,3 -Q123705,3 -Q12323,3 -Q12284,4 -Q12280,4 -Q121359,2 -Q1210950,2 -Q11755880,3 -Q11707,3 -Q11315,3 -Q11303,3 -Q1115575,4 -Q1107656,1 -Q10864048,1 -Q1076486,2 -Q105731,3 -Q105190,3 -Q1048525,3 -Q102496,5 -Q28872924,1 -Q15617994,1 -Q159313,2 -Q24398318,3 -Q327333,2 -Q43229,1 -Q860861,1 -Q4989906,1 diff --git a/data-sources/wikipedia-wikidata/wikidata_place_types.txt b/data-sources/wikipedia-wikidata/wikidata_place_types.txt deleted file mode 100644 index 5578fd32..00000000 --- a/data-sources/wikipedia-wikidata/wikidata_place_types.txt +++ /dev/null @@ -1,195 +0,0 @@ -Q9842 -Q9430 -Q928830 -Q9259 -Q91028 -Q8514 -Q8502 -Q83405 -Q82794 -Q820477 -Q811979 -Q8072 -Q79007 -Q786014 -Q75848 -Q75520 -Q728937 -Q7275 -Q719456 -Q7075 -Q697295 -Q6852233 -Q682943 -Q665487 -Q655686 -Q643589 -Q641226 -Q631305 -Q6256 -Q6023295 -Q5773747 -Q56061 -Q55659167 -Q55488 -Q55465477 -Q54050 -Q532 -Q53060 -Q52177058 -Q515716 -Q5153984 -Q515 -Q5144960 -Q5119 -Q5107 -Q5084 -Q5031071 -Q5003624 -Q4989906 -Q4976993 -Q486972 -Q483110 -Q4830453 -Q47521 -Q473972 -Q46831 -Q46614560 -Q44782 -Q44613 -Q44539 -Q44494 -Q44377 -Q4421 -Q43501 -Q4286337 -Q42523 -Q41176 -Q40357 -Q4022 -Q40080 -Q39816 -Q39715 -Q39614 -Q3957 -Q3947 -Q3914 -Q38723 -Q38720 -Q3623867 -Q35666 -Q355304 -Q35509 -Q35112127 -Q34985575 -Q34876 -Q34763 -Q34627 -Q3455524 -Q34442 -Q33837 -Q33506 -Q32815 -Q3257686 -Q3240715 -Q3191695 -Q3153117 -Q30198 -Q30139652 -Q294422 -Q2870166 -Q27686 -Q274153 -Q271669 -Q2659904 -Q24529780 -Q24354 -Q2354973 -Q23442 -Q23413 -Q23397 -Q2327515 -Q2311958 -Q22927291 -Q22698 -Q2175765 -Q205495 -Q204832 -Q2042028 -Q202216 -Q1970725 -Q194203 -Q194195 -Q190429 -Q185187 -Q185113 -Q183366 -Q1799794 -Q1788454 -Q1785071 -Q1777138 -Q177634 -Q177380 -Q174814 -Q174782 -Q17350442 -Q17343829 -Q17334923 -Q17018380 -Q16970 -Q16917 -Q16831714 -Q165 -Q160742 -Q159719 -Q159334 -Q15640612 -Q15324 -Q15284 -Q15243209 -Q152081 -Q15195406 -Q1500350 -Q149621 -Q14757767 -Q14350 -Q1410668 -Q1394476 -Q1377575 -Q1353183 -Q134447 -Q133215 -Q133056 -Q13221722 -Q13220204 -Q1311958 -Q1303167 -Q130003 -Q12518 -Q12516 -Q1248784 -Q123705 -Q12323 -Q12284 -Q12280 -Q121359 -Q1210950 -Q11755880 -Q11707 -Q11315 -Q11303 -Q1115575 -Q1107656 -Q10864048 -Q1076486 -Q105731 -Q105190 -Q1048525 -Q102496 -Q28872924 -Q15617994 -Q159313 -Q24398318 -Q327333 -Q43229 -Q860861 diff --git a/data-sources/wikipedia-wikidata/wikidata_places.md b/data-sources/wikipedia-wikidata/wikidata_places.md deleted file mode 100644 index bc153ffd..00000000 --- a/data-sources/wikipedia-wikidata/wikidata_places.md +++ /dev/null @@ -1,200 +0,0 @@ - -## Wikidata place types and related OSM Tags - -Wikidata does not have any official ontologies, however the [DBpedia project](https://wiki.dbpedia.org/) has created an [ontology](https://wiki.dbpedia.org/services-resources/ontology) that covered [place types](http://mappings.dbpedia.org/server/ontology/classes/#Place). The table below used the DBpedia place ontology as a starting point, and is provided as a cross-reference to the relevant OSM tags. - -The Wikidata place types listed in the table below can be used in conjunction with the [Wikidata Query Service](https://query.wikidata.org/) to retrieve instances of those place types from the Wikidata knowledgebase. - -``` -SELECT ?item ?lat ?lon -WHERE { - ?item wdt:P31*/wdt:P279*wd:Q9430; wdt:P625 ?pt. - ?item p:P625?loc. - ?loc psv:P625?cnode. - ?cnode wikibase:geoLatitude?lat. - ?cnode wikibase:geoLongitude?lon. -} -``` - -An example json return for all instances of the Wikidata item "Q9430" (Ocean) can be seen at [json](https://query.wikidata.org/bigdata/namespace/wdq/sparql?format=json&query=SELECT?item?lat?lon%20WHERE{?item%20wdt:P31*/wdt:P279*wd:Q9430;wdt:P625?pt.?item%20p:P625?loc.?loc%20psv:P625?cnode.?cnode%20wikibase:geoLatitude?lat.?cnode%20wikibase:geoLongitude?lon.}) - -**NOTE** the OSM tags listed are those listed in the wikidata entries, and not all the possible matches for tags within OSM. - - - title | concept | OSM Tag | ------------|---------------------------------------|------------------| -[Q17334923](https://www.wikidata.org/entity/Q17334923) | Location | | -[Q811979](https://www.wikidata.org/entity/Q811979) | Architectural Structure | | -[Q194195](https://www.wikidata.org/entity/Q194195) | Amusement park | -[Q204832](https://www.wikidata.org/entity/Q204832) | Roller coaster | [attraction=roller_coaster](https://wiki.openstreetmap.org/wiki/Tag:attraction=roller_coaster) | -[Q2870166](https://www.wikidata.org/entity/Q2870166) | Water ride | | -[Q641226](https://www.wikidata.org/entity/Q641226) | Arena | [amenity=events_centre](https://wiki.openstreetmap.org/wiki/Tag:amenity=events_centre) | -[Q41176](https://www.wikidata.org/entity/Q41176) | Building | [building=yes](https://wiki.openstreetmap.org/wiki/Key:building) | -[Q1303167](https://www.wikidata.org/entity/Q1303167) | Barn | [building=barn](https://wiki.openstreetmap.org/wiki/Tag:building=barn) | -[Q655686](https://www.wikidata.org/entity/Q655686) | Commercial building | [building=commercial](https://wiki.openstreetmap.org/wiki/Tag:building=commercial) | -[Q4830453](https://www.wikidata.org/entity/Q4830453) | Business | | -[Q7075](https://www.wikidata.org/entity/Q7075) | Library | [amenity=library](https://wiki.openstreetmap.org/wiki/Tag:amenity=library) | -[Q133215](https://www.wikidata.org/entity/Q133215) | Casino | [amenity=casino](https://wiki.openstreetmap.org/wiki/Tag:amenity=casino) | -[Q23413](https://www.wikidata.org/entity/Q23413) | Castle | [historic=castle](https://wiki.openstreetmap.org/wiki/Tag:historic=castle) | -[Q83405](https://www.wikidata.org/entity/Q83405) | Factory | | -[Q53060](https://www.wikidata.org/entity/Q53060) | Gate | [barrier=gate](https://wiki.openstreetmap.org/wiki/Tag:barrier=gate) |cnode%20wikibase:geoLatitude?lat.?cnode%20wikibase:geoLongitude?lon.}) -[Q11755880](https://www.wikidata.org/entity/Q11755880) | Residential Building | [building=residential](https://wiki.openstreetmap.org/wiki/Tag:building=residential) | -[Q3947](https://www.wikidata.org/entity/Q3947) | House | [building=house](https://wiki.openstreetmap.org/wiki/Tag:building=house) | -[Q35112127](https://www.wikidata.org/entity/Q35112127) | Historic Building | | -[Q5773747](https://www.wikidata.org/entity/Q5773747) | Historic house | | -[Q38723](https://www.wikidata.org/entity/Q38723) | Higher Education Institution | -[Q3914](https://www.wikidata.org/entity/Q3914) | School | [amenity=school](https://wiki.openstreetmap.org/wiki/Tag:amenity=school) | -[Q9842](https://www.wikidata.org/entity/Q9842) | Primary school | | -[Q159334](https://www.wikidata.org/entity/Q159334) | Secondary school | | -[Q16917](https://www.wikidata.org/entity/Q16917) | Hospital | [amenity=hospital](https://wiki.openstreetmap.org/wiki/Tag:amenity=hospital), [healthcare=hospital](https://wiki.openstreetmap.org/wiki/Tag:healthcare=hospital), [building=hospital](https://wiki.openstreetmap.org/wiki/Tag:building=hospital) | -[Q27686](https://www.wikidata.org/entity/Q27686) | Hotel | [tourism=hotel](https://wiki.openstreetmap.org/wiki/Tag:tourism=hotel), [building=hotel](https://wiki.openstreetmap.org/wiki/Tag:building=hotel) | -[Q33506](https://www.wikidata.org/entity/Q33506) | Museum | [tourism=museum](https://wiki.openstreetmap.org/wiki/Tag:tourism=museum) | -[Q40357](https://www.wikidata.org/entity/Q40357) | Prison | [amenity=prison](https://wiki.openstreetmap.org/wiki/Tag:amenity=prison) | -[Q24398318](https://www.wikidata.org/entity/Q24398318) | Religious Building | | -[Q160742](https://www.wikidata.org/entity/Q160742) | Abbey | | -[Q16970](https://www.wikidata.org/entity/Q16970) | Church (building) | [building=church](https://wiki.openstreetmap.org/wiki/Tag:building=church) | -[Q44613](https://www.wikidata.org/entity/Q44613) | Monastery | [amenity=monastery](https://wiki.openstreetmap.org/wiki/Tag:amenity=monastery) | -[Q32815](https://www.wikidata.org/entity/Q32815) | Mosque | [building=mosque](https://wiki.openstreetmap.org/wiki/Tag:building=mosque) | -[Q697295](https://www.wikidata.org/entity/Q697295) | Shrine | [building=shrine](https://wiki.openstreetmap.org/wiki/Tag:building=shrine) | -[Q34627](https://www.wikidata.org/entity/Q34627) | Synagogue | [building=synagogue](https://wiki.openstreetmap.org/wiki/Tag:building=synagogue) | -[Q44539](https://www.wikidata.org/entity/Q44539) | Temple | [building=temple](https://wiki.openstreetmap.org/wiki/Tag:building=temple) | -[Q11707](https://www.wikidata.org/entity/Q11707) | Restaurant | [amenity=restaurant](https://wiki.openstreetmap.org/wiki/Tag:amenity=restaurant) | -[Q11315](https://www.wikidata.org/entity/Q11315) | Shopping mall | [shop=mall](https://wiki.openstreetmap.org/wiki/Tag:shop=mall), [shop=shopping_centre](https://wiki.openstreetmap.org/wiki/Tag:shop=shopping_centre) | -[Q11303](https://www.wikidata.org/entity/Q11303) | Skyscraper | | -[Q17350442](https://www.wikidata.org/entity/Q17350442) | Venue | | -[Q41253](https://www.wikidata.org/entity/Q41253) | Movie Theater | [amenity=cinema](https://wiki.openstreetmap.org/wiki/Tag:amenity=cinema) | -[Q483110](https://www.wikidata.org/entity/Q483110) | Stadium | [leisure=stadium](https://wiki.openstreetmap.org/wiki/Tag:leisure=stadium), [building=stadium](https://wiki.openstreetmap.org/wiki/Tag:building=stadium) | -[Q24354](https://www.wikidata.org/entity/Q24354) | Theater (structure) | [amenity=theatre](https://wiki.openstreetmap.org/wiki/Tag:amenity=theatre) | -[Q121359](https://www.wikidata.org/entity/Q121359) | Infrastructure | | -[Q1248784](https://www.wikidata.org/entity/Q1248784) | Airport | | -[Q12323](https://www.wikidata.org/entity/Q12323) | Dam | [waterway=dam](https://wiki.openstreetmap.org/wiki/Tag:waterway=dam) | -[Q1353183](https://www.wikidata.org/entity/Q1353183) | Launch pad | | -[Q105190](https://www.wikidata.org/entity/Q105190) | Levee | [man_made=dyke](https://wiki.openstreetmap.org/wiki/Tag:man_made=dyke) | -[Q105731](https://www.wikidata.org/entity/Q105731) | Lock (water navigation) | [lock=yes](https://wiki.openstreetmap.org/wiki/Key:lock) | -[Q44782](https://www.wikidata.org/entity/Q44782) | Port | | -[Q159719](https://www.wikidata.org/entity/Q159719) | Power station | [power=plant](https://wiki.openstreetmap.org/wiki/Tag:power=plant) | -[Q174814](https://www.wikidata.org/entity/Q174814) | Electrical substation | | -[Q134447](https://www.wikidata.org/entity/Q134447) | Nuclear power plant | [plant:source=nuclear](https://wiki.openstreetmap.org/wiki/Tag:plant:source=nuclear) | -[Q786014](https://www.wikidata.org/entity/Q786014) | Rest area | [highway=rest_area](https://wiki.openstreetmap.org/wiki/Tag:highway=rest_area), [highway=services](https://wiki.openstreetmap.org/wiki/Tag:highway=services) | -[Q12280](https://www.wikidata.org/entity/Q12280) | Bridge | [bridge=* ](https://wiki.openstreetmap.org/wiki/Key:bridge), [man_made=bridge](https://wiki.openstreetmap.org/wiki/Tag:man_made=bridge) | -[Q728937](https://www.wikidata.org/entity/Q728937) | Railroad Line | [railway=rail](https://wiki.openstreetmap.org/wiki/Tag:railway=rail) | -[Q1311958](https://www.wikidata.org/entity/Q1311958) | Railway Tunnel | | -[Q34442](https://www.wikidata.org/entity/Q34442) | Road | [highway=* ](https://wiki.openstreetmap.org/wiki/Key:highway), [route=road](https://wiki.openstreetmap.org/wiki/Tag:route=road) | -[Q1788454](https://www.wikidata.org/entity/Q1788454) | Road junction | | -[Q44377](https://www.wikidata.org/entity/Q44377) | Tunnel | [tunnel=* ](https://wiki.openstreetmap.org/wiki/Key:tunnel) | -[Q5031071](https://www.wikidata.org/entity/Q5031071) | Canal tunnel | | -[Q719456](https://www.wikidata.org/entity/Q719456) | Station | [public_transport=station](https://wiki.openstreetmap.org/wiki/Tag:public_transport=station) | -[Q205495](https://www.wikidata.org/entity/Q205495) | Filling station | [amenity=fuel](https://wiki.openstreetmap.org/wiki/Tag:amenity=fuel) | -[Q928830](https://www.wikidata.org/entity/Q928830) | Metro station | [station=subway](https://wiki.openstreetmap.org/wiki/Tag:station=subway) | -[Q55488](https://www.wikidata.org/entity/Q55488) | Train station | [railway=station](https://wiki.openstreetmap.org/wiki/Tag:railway=station) | -[Q2175765](https://www.wikidata.org/entity/Q2175765) | Tram stop | [railway=tram_stop](https://wiki.openstreetmap.org/wiki/Tag:railway=tram_stop), [public_transport=stop_position](https://wiki.openstreetmap.org/wiki/Tag:public_transport=stop_position) | -[Q6852233](https://www.wikidata.org/entity/Q6852233) | Military building | | -[Q44494](https://www.wikidata.org/entity/Q44494) | Mill (grinding) | | -[Q185187](https://www.wikidata.org/entity/Q185187) | Watermill | [man_made=watermill](https://wiki.openstreetmap.org/wiki/Tag:man_made=watermill) | -[Q38720](https://www.wikidata.org/entity/Q38720) | Windmill | [man_made=windmill](https://wiki.openstreetmap.org/wiki/Tag:man_made=windmill) | -[Q4989906](https://www.wikidata.org/entity/Q4989906) | Monument | [historic=monument](https://wiki.openstreetmap.org/wiki/Tag:historic=monument) | -[Q5003624](https://www.wikidata.org/entity/Q5003624) | Memorial | [historic=memorial](https://wiki.openstreetmap.org/wiki/Tag:historic=memorial) | -[Q271669](https://www.wikidata.org/entity/Q271669) | Landform | | -[Q190429](https://www.wikidata.org/entity/Q190429) | Depression (geology) | | -[Q17018380](https://www.wikidata.org/entity/Q17018380) | Bight (geography) | | -[Q54050](https://www.wikidata.org/entity/Q54050) | Hill | | -[Q1210950](https://www.wikidata.org/entity/Q1210950) | Channel (geography) | | -[Q23442](https://www.wikidata.org/entity/Q23442) | Island | [place=island](https://wiki.openstreetmap.org/wiki/Tag:place=island) | -[Q42523](https://www.wikidata.org/entity/Q42523) | Atoll | | -[Q34763](https://www.wikidata.org/entity/Q34763) | Peninsula | | -[Q355304](https://www.wikidata.org/entity/Q355304) | Watercourse | | -[Q30198](https://www.wikidata.org/entity/Q30198) | Marsh | [wetland=marsh](https://wiki.openstreetmap.org/wiki/Tag:wetland=marsh) | -[Q75520](https://www.wikidata.org/entity/Q75520) | Plateau | | -[Q2042028](https://www.wikidata.org/entity/Q2042028) | Ravine | | -[Q631305](https://www.wikidata.org/entity/Q631305) | Rock formation | | -[Q12516](https://www.wikidata.org/entity/Q12516) | Pyramid | | -[Q1076486](https://www.wikidata.org/entity/Q1076486) | Sports venue | | -[Q682943](https://www.wikidata.org/entity/Q682943) | Cricket field | [sport=cricket](https://wiki.openstreetmap.org/wiki/Tag:sport=cricket) | -[Q1048525](https://www.wikidata.org/entity/Q1048525) | Golf course | [leisure=golf_course](https://wiki.openstreetmap.org/wiki/Tag:leisure=golf_course) | -[Q1777138](https://www.wikidata.org/entity/Q1777138) | Race track | [highway=raceway](https://wiki.openstreetmap.org/wiki/Tag:highway=raceway) | -[Q130003](https://www.wikidata.org/entity/Q130003) | Ski resort | | -[Q174782](https://www.wikidata.org/entity/Q174782) | Town square | [place=square](https://wiki.openstreetmap.org/wiki/Tag:place=square) | -[Q12518](https://www.wikidata.org/entity/Q12518) | Tower | [building=tower](https://wiki.openstreetmap.org/wiki/Tag:building=tower), [man_made=tower](https://wiki.openstreetmap.org/wiki/Tag:man_made=tower) | -[Q39715](https://www.wikidata.org/entity/Q39715) | Lighthouse | [man_made=lighthouse](https://wiki.openstreetmap.org/wiki/Tag:man_made=lighthouse) | -[Q274153](https://www.wikidata.org/entity/Q274153) | Water tower | [building=water_tower](https://wiki.openstreetmap.org/wiki/Tag:building=water_tower), [man_made=water_tower](https://wiki.openstreetmap.org/wiki/Tag:man_made=water_tower) | -[Q43501](https://www.wikidata.org/entity/Q43501) | Zoo | [tourism=zoo](https://wiki.openstreetmap.org/wiki/Tag:tourism=zoo) | -[Q39614](https://www.wikidata.org/entity/Q39614) | Cemetery | [amenity=grave_yard](https://wiki.openstreetmap.org/wiki/Tag:amenity=grave_yard), [landuse=cemetery](https://wiki.openstreetmap.org/wiki/Tag:landuse=cemetery) | -[Q152081](https://www.wikidata.org/entity/Q152081) | Concentration camp | | -[Q1107656](https://www.wikidata.org/entity/Q1107656) | Garden | [leisure=garden](https://wiki.openstreetmap.org/wiki/Tag:leisure=garden) | -[Q820477](https://www.wikidata.org/entity/Q820477) | Mine | | -[Q33837](https://www.wikidata.org/entity/Q33837) | Archipelago | [place=archipelago](https://wiki.openstreetmap.org/wiki/Tag:place=archipelago) | -[Q40080](https://www.wikidata.org/entity/Q40080) | Beach | [natural=beach](https://wiki.openstreetmap.org/wiki/Tag:natural=beach) | -[Q15324](https://www.wikidata.org/entity/Q15324) | Body of water | [natural=water](https://wiki.openstreetmap.org/wiki/Tag:natural=water) | -[Q23397](https://www.wikidata.org/entity/Q23397) | Lake | [water=lake](https://wiki.openstreetmap.org/wiki/Tag:water=lake) | -[Q9430](https://www.wikidata.org/entity/Q9430) | Ocean | | -[Q165](https://www.wikidata.org/entity/Q165) | Sea | | -[Q47521](https://www.wikidata.org/entity/Q47521) | Stream | | -[Q12284](https://www.wikidata.org/entity/Q12284) | Canal | [waterway=canal](https://wiki.openstreetmap.org/wiki/Tag:waterway=canal) | -[Q4022](https://www.wikidata.org/entity/Q4022) | River | [waterway=river](https://wiki.openstreetmap.org/wiki/Tag:waterway=river), [type=waterway](https://wiki.openstreetmap.org/wiki/Relation:waterway) | -[Q185113](https://www.wikidata.org/entity/Q185113) | Cape | [natural=cape](https://wiki.openstreetmap.org/wiki/Tag:natural=cape) | -[Q35509](https://www.wikidata.org/entity/Q35509) | Cave | [natural=cave_entrance](https://wiki.openstreetmap.org/wiki/Tag:natural=cave_entrance) | -[Q8514](https://www.wikidata.org/entity/Q8514) | Desert | | -[Q4421](https://www.wikidata.org/entity/Q4421) | Forest | [natural=wood](https://wiki.openstreetmap.org/wiki/Tag:natural=wood) | -[Q35666](https://www.wikidata.org/entity/Q35666) | Glacier | [natural=glacier](https://wiki.openstreetmap.org/wiki/Tag:natural=glacier) | -[Q177380](https://www.wikidata.org/entity/Q177380) | Hot spring | | -[Q8502](https://www.wikidata.org/entity/Q8502) | Mountain | [natural=peak](https://wiki.openstreetmap.org/wiki/Tag:natural=peak) | -[Q133056](https://www.wikidata.org/entity/Q133056) | Mountain pass | | -[Q46831](https://www.wikidata.org/entity/Q46831) | Mountain range | | -[Q39816](https://www.wikidata.org/entity/Q39816) | Valley | [natural=valley](https://wiki.openstreetmap.org/wiki/Tag:natural=valley) | -[Q8072](https://www.wikidata.org/entity/Q8072) | Volcano | [natural=volcano](https://wiki.openstreetmap.org/wiki/Tag:natural=volcano) | -[Q43229](https://www.wikidata.org/entity/Q43229) | Organization | | -[Q327333](https://www.wikidata.org/entity/Q327333) | Government agency | [office=government](https://wiki.openstreetmap.org/wiki/Tag:office=government)| -[Q22698](https://www.wikidata.org/entity/Q22698) | Park | [leisure=park](https://wiki.openstreetmap.org/wiki/Tag:leisure=park) | -[Q159313](https://www.wikidata.org/entity/Q159313) | Urban agglomeration | | -[Q177634](https://www.wikidata.org/entity/Q177634) | Community | | -[Q5107](https://www.wikidata.org/entity/Q5107) | Continent | [place=continent](https://wiki.openstreetmap.org/wiki/Tag:place=continent) | -[Q6256](https://www.wikidata.org/entity/Q6256) | Country | [place=country](https://wiki.openstreetmap.org/wiki/Tag:place=country) | -[Q75848](https://www.wikidata.org/entity/Q75848) | Gated community | | -[Q3153117](https://www.wikidata.org/entity/Q3153117) | Intercommunality | | -[Q82794](https://www.wikidata.org/entity/Q82794) | Region | | -[Q56061](https://www.wikidata.org/entity/Q56061) | Administrative division | [boundary=administrative](https://wiki.openstreetmap.org/wiki/Tag:boundary=administrative) | -[Q665487](https://www.wikidata.org/entity/Q665487) | Diocese | | -[Q4976993](https://www.wikidata.org/entity/Q4976993) | Parish | [boundary=civil_parish](https://wiki.openstreetmap.org/wiki/Tag:boundary=civil_parish) | -[Q194203](https://www.wikidata.org/entity/Q194203) | Arrondissements of France | | -[Q91028](https://www.wikidata.org/entity/Q91028) | Arrondissements of Belgium | | -[Q3623867](https://www.wikidata.org/entity/Q3623867) | Arrondissements of Benin | | -[Q2311958](https://www.wikidata.org/entity/Q2311958) | Canton (country subdivision) | [political_division=canton](https://wiki.openstreetmap.org/wiki/FR:Cantons_in_France) | -[Q643589](https://www.wikidata.org/entity/Q643589) | Department | | -[Q202216](https://www.wikidata.org/entity/Q202216) | Overseas department and region | | -[Q149621](https://www.wikidata.org/entity/Q149621) | District | [place=district](https://wiki.openstreetmap.org/wiki/Tag:place=district) | -[Q15243209](https://www.wikidata.org/wiki/Q15243209) | Historic district | | -[Q5144960](https://www.wikidata.org/entity/Q5144960) | Microregion | | -[Q15284](https://www.wikidata.org/entity/Q15284) | Municipality | | -[Q515716](https://www.wikidata.org/entity/Q515716) | Prefecture | | -[Q34876](https://www.wikidata.org/entity/Q34876) | Province | | -[Q3191695](https://www.wikidata.org/entity/Q3191695) | Regency (Indonesia) | | -[Q1970725](https://www.wikidata.org/entity/Q1970725) | Natural region | | -[Q486972](https://www.wikidata.org/entity/Q486972) | Human settlement | | -[Q515](https://www.wikidata.org/entity/Q515) | City | [place=city](https://wiki.openstreetmap.org/wiki/Tag:place=city) | -[Q5119](https://www.wikidata.org/entity/Q5119) | Capital city | [capital=yes](https://wiki.openstreetmap.org/wiki/Key:capital) | -[Q4286337](https://www.wikidata.org/entity/Q4286337) | City district | | -[Q1394476](https://www.wikidata.org/entity/Q1394476) | Civil township | | -[Q1115575](https://www.wikidata.org/entity/Q1115575) | Civil parish | [designation=civil_parish](https://wiki.openstreetmap.org/wiki/Tag:designation=civil_parish) | -[Q5153984](https://www.wikidata.org/entity/Q5153984) | Commune-level subdivisions | | -[Q123705](https://www.wikidata.org/entity/Q123705) | Neighbourhood | [place=neighbourhood](https://wiki.openstreetmap.org/wiki/Tag:place=neighbourhood) | -[Q1500350](https://www.wikidata.org/entity/Q1500350) | Townships of China | | -[Q17343829](https://www.wikidata.org/entity/Q17343829) | Unincorporated Community | | -[Q3957](https://www.wikidata.org/entity/Q3957) | Town | [place=town](https://wiki.openstreetmap.org/wiki/Tag:place=town) | -[Q532](https://www.wikidata.org/entity/Q532) | Village | [place=village](https://wiki.openstreetmap.org/wiki/Tag:place=village) | -[Q5084](https://www.wikidata.org/entity/Q5084) | Hamlet | [place=hamlet](https://wiki.openstreetmap.org/wiki/Tag:place=hamlet) | -[Q7275](https://www.wikidata.org/entity/Q7275) | State | | -[Q79007](https://www.wikidata.org/entity/Q79007) | Street | | -[Q473972](https://www.wikidata.org/entity/Q473972) | Protected area | [boundary=protected_area](https://wiki.openstreetmap.org/wiki/Tag:boundary=protected_area) | -[Q1377575](https://www.wikidata.org/entity/Q1377575) | Wildlife refuge | | -[Q1410668](https://www.wikidata.org/entity/Q1410668) | National Wildlife Refuge | [protection_title=National Wildlife Refuge](ownership=national), [ownership=national](https://wiki.openstreetmap.org/wiki/Tag:ownership=national)| -[Q9259](https://www.wikidata.org/entity/Q9259) | World Heritage Site | | - ---- - -### Future Work - -The Wikidata improvements to Nominatim can be further enhanced by: - -- continuing to add new Wikidata links to OSM objects -- increasing the number of place types accounted for in the wikipedia_articles table -- working to use place types in the wikipedia_article matching process diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 4c7cbabc..d9917599 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -23,22 +23,6 @@ foreach (src ${DOC_SOURCES}) ) endforeach() -execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/us-tiger/README.md ${CMAKE_CURRENT_BINARY_DIR}/data-sources/US-Tiger.md -) -execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/gb-postcodes/README.md ${CMAKE_CURRENT_BINARY_DIR}/data-sources/GB-Postcodes.md -) -execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/country-grid/README.md ${CMAKE_CURRENT_BINARY_DIR}/data-sources/Country-Grid.md -) -execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/country-grid/mexico.quad.png ${CMAKE_CURRENT_BINARY_DIR}/data-sources/mexico.quad.png -) -execute_process( - COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/wikipedia-wikidata/README.md ${CMAKE_CURRENT_BINARY_DIR}/data-sources/Wikipedia-Wikidata.md -) - ADD_CUSTOM_TARGET(doc COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Centos-7.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Centos-7.md COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Centos-8.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Centos-8.md diff --git a/docs/admin/Import.md b/docs/admin/Import.md index bcc33af8..2cc26c2f 100644 --- a/docs/admin/Import.md +++ b/docs/admin/Import.md @@ -236,7 +236,7 @@ entire US adds about 10GB to your database. wget https://nominatim.org/data/tiger2019-nominatim-preprocessed.tar.gz tar xf tiger2019-nominatim-preprocessed.tar.gz - `data-source/us-tiger/README.md` explains how the data got preprocessed. + `data-source/overview.md` explains how the data got preprocessed. 2. Import the data into your Nominatim database: diff --git a/docs/data-sources/overview.md b/docs/data-sources/overview.md index a6dc0dba..bc77da03 100644 --- a/docs/data-sources/overview.md +++ b/docs/data-sources/overview.md @@ -2,3 +2,33 @@ This guide explains how data sources other than OpenStreetMap mentioned in the install instructions got obtained and converted. + +## Country grid + +Nominatim uses pre-generated country borders data. In case one imports only +a subset of a country. And to assign each place a partition. Nominatim +database tables are split into partitions for performance. + +More details in [osm-search/country-grid-data](https://github.com/osm-search/country-grid-data). + +## US Census TIGER + +For the United States you can choose to import additonal street-level data. +The data isn't mixed into OSM data but queried as fallback when no OSM +result can be found. + +More details in [osm-search/TIGER-data](https://github.com/osm-search/TIGER-data). + +## GB postcodes + +For Great Britain you can choose to import Royalmail postcode centroids. + +More details in [osm-search/gb-postcode-data](https://github.com/osm-search/gb-postcode-data). + + +## Wikipedia & Wikidata rankings + +Nominatim can import "importance" data of place names. This greatly +improves ranking of results. + +More details in [osm-search/wikipedia-wikidata](https://github.com/osm-search/wikipedia-wikidata). \ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 0a411306..95b21794 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -31,10 +31,6 @@ pages: - 'Documentation' : 'develop/Documentation.md' - 'External Data Sources': - 'Overview' : 'data-sources/overview.md' - - 'US Census (Tiger)': 'data-sources/US-Tiger.md' - - 'GB Postcodes': 'data-sources/GB-Postcodes.md' - - 'Country Grid': 'data-sources/Country-Grid.md' - - 'Wikipedia & Wikidata': 'data-sources/Wikipedia-Wikidata.md' - 'Appendix': - 'Installation on CentOS 7' : 'appendix/Install-on-Centos-7.md' - 'Installation on CentOS 8' : 'appendix/Install-on-Centos-8.md' -- 2.39.5