Repository: foursquare/quattroshapes Branch: master Commit: 76606806e5a5 Files: 64 Total size: 76.4 MB Directory structure: gitextract_bfvn58ds/ ├── LICENSE.md ├── README.md ├── open_administrative_data/ │ ├── Makefile │ ├── dissolvers/ │ │ ├── Makefile │ │ └── README.md │ ├── quattroshapes/ │ │ ├── quattroshapes_localities_priority_and_extras_master_post_diss_attr2.cpg │ │ ├── quattroshapes_localities_priority_and_extras_master_post_diss_attr2.dbf │ │ ├── quattroshapes_localities_priority_and_extras_master_post_diss_attr2.prj │ │ ├── quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp │ │ └── quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shx │ └── templates/ │ ├── template_adm0.cpg │ ├── template_adm0.dbf │ ├── template_adm0.prj │ ├── template_adm0.shp │ ├── template_adm0.shx │ ├── template_adm1.cpg │ ├── template_adm1.dbf │ ├── template_adm1.prj │ ├── template_adm1.shp │ ├── template_adm1.shx │ ├── template_adm1_region.cpg │ ├── template_adm1_region.dbf │ ├── template_adm1_region.prj │ ├── template_adm1_region.shp │ ├── template_adm1_region.shx │ ├── template_adm2.cpg │ ├── template_adm2.dbf │ ├── template_adm2.prj │ ├── template_adm2.shp │ ├── template_adm2.shx │ ├── template_adm2_region.cpg │ ├── template_adm2_region.dbf │ ├── template_adm2_region.prj │ ├── template_adm2_region.shp │ ├── template_adm2_region.shx │ ├── template_localadmin.cpg │ ├── template_localadmin.dbf │ ├── template_localadmin.prj │ ├── template_localadmin.shp │ ├── template_localadmin.shx │ ├── template_localities.cpg │ ├── template_localities.dbf │ ├── template_localities.prj │ ├── template_localities.shp │ └── template_localities.shx └── quattroshapes/ ├── .gitignore ├── README.txt ├── __init__.py ├── add_admins.sql ├── bounds.py ├── bounds.txt ├── bounds_backfill.py ├── bounds_backfill_woe_adjacent.py ├── bounds_backfill_woe_children.py ├── check_neighbors.py ├── neighborhoods_diss_and_add_admin_ids_and_names.sql ├── outliers.py ├── outliers_mark_ignore.py ├── quattroshapes_gazetteer.sql ├── smooth.py ├── tile_renderer_full_database.py ├── tilestache-seed.py ├── tilestache.cfg └── tilestacheexceptions.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: LICENSE.md ================================================ # ATTRIBUTION The quattroshapes are released by foursquare under [CC-BY](http://creativecommons.org/licenses/by/2.0/) attribution license. Please include attribution in your app, site, or printed work. Sample wording: "Includes data from foursquare quattroshapes" with a link to this Github repo. # ADDITIONAL ATTRIBUTION This map database contains open data from government and other sources. Consider including the following copyright statements when using the data. ### Global gazetters and data * Geonames.org * Yahoo! GeoPlanet * Flickr geotagged photos ### Europe EuroGeoGraphics data copyright is held by European National Mapping Agencies. * Austria © Bundesamt für Eich- und Vermessungswesen * Belgium © Institut Géographique National – Belgique * Bulgaria © Cadastre Agency, MRDPW * Croatia © Drzavna Geodetska Uprava * Cyprus © Lands and Surveys, Survey and Cartogr. Br. * Czech Republic © Ceskúrad zememerick a katastrální * Denmark © Kort og Matrikelstyrelsen * Estonia © Maaamet * Faroe Islands © Kort og Matrikelstyrelsen * Finland © Maanmittauslaitos * France © Institut National de l’Information Géographique et Forestière – France * Georgia © National Agency of Public Registry * Germany © Bundesamt für Kartographie und Geodäsie * Great Britain © Ordnance Survey * Greece © Hellenic Military Geographical Service * Greenland © Kort og Matrikelstyrelsen * Hungary © Földmérési és Távérzékelési Intézet * Iceland © Landmælingar Íslands * Ireland © Ordnance Survey Ireland * Italy © Istituto Geografico Militare Italiano * Latvia © Latvijas Republikas Valsts zemes dienests * Liechtenstein © Bundesamt für Landestopographie (Switzerland) * Lithuania © Nacionalinė žemės tarnyba * Luxembourg © Administration du Cadastre et de la Topographie * Malta © Malta Environment and Planning Authority (MEPA) * Moldova © State Agency for Land Relations and Cadastre * Netherlands © Topografische Dienst Nederland * Northern Ireland © Ordnance Survey of Northern Ireland * Norway © Statens Kartverk * Poland © Główny Urząd Geodezji i Kartografii * Portugal © Instituto Geográfico Português * Rep. of Slovakia © Geodetick a kartografick ústav * Romania © CNGCFT (National Center of Geodesie, Cartography, Fotogrametry and Remote Sensing) * Serbia © Republički geodetski zavod * Slovenia © Geodetska Uprava Republike Slovenije * Spain © Centro Nacional de Informacion Geografica – Instituto Geográfico Nacional * Sweden © Lantmäteriet * Switzerland © Bundesamt für Landestopographie * Ukraine © Research Institute of Geodesy and Cartography ### Additional European data * United Kingdom: Contains Ordnance Survey data © Crown copyright and database right [2012] * Netherlands: Kadaster * Spain: Instituto Geográfico Nacional * France: Institut Géographique National * Switzerland: swisstopo * Europe-wide: European Environment Agency (EEA) [urban morphological zones 2006](http://www.eea.europa.eu/data-and-maps/data/urban-morphological-zones-2006-umz2006-f3v0) ### Americas * United States: US Census Bureau (Census 2010 geography files). * Canada: © Department of Natural Resources Canada. All rights reserved., Statistics Canada, and BC Stats * Brazil: IBGE * Mexico: INEGI * Chile: Global Map of Chile © International Steering Committee for Global Mapping / Instituto Geografico Militar de Chile ### Asia * Indonesia: Global Map of Indonesia @ ISCGM/Indonesia * Australian: Geoscience Australia and Australian Bureau of Statistics * New Zealand: Land Information New Zealand * South Africa: Global Map of the Republic of South Africa © ISCGM/State Copyright, Department of Rural Development and Land Reform, Chief Directorate of National Geo-spatial Information, Website: http://www.ngi.gov.za/ * Palestine: "Global Map of PALESTINE © ISCGM/Palestinian National Authority, Ministry of Planning. Geographic Center and Technical Support www.mop.gov.ps ================================================ FILE: README.md ================================================ # quattroshapes _The Global Polygon Gazetteer_ [Foursquare](http://foursquare.com) needs quality place data to power its geocoding engine to ensure the best recommendations. When someone searches for the best coffee in Brooklyn, a simple venue to place point or venue to place bounding box search can result in venues in Manhattan and Jersey City overwhelming the results for Brooklyn. To improve recommendations, we have created an authoritative source of polygons around a curated list of places. This gazetteer of non-overlapping polygons provides more relevant results than simple point geometries. [View preview images »](https://github.com/foursquare/quattroshapes#preview) This work is based on foursquare checkins, geo tagged photos from [Flickr](http://flickr.com), an extended version of [Natural Earth](http://naturalearthdata.com), and [open government data](http://brigade.codeforamerica.org/opendata). Concordance is provided between quattroshapes, [geonames.org](http://geonames.org), and [Yahoo! GeoPlanet](http://developer.yahoo.com/geo/geoplanet/) unique IDs in the gazetteer. The quattroshapes technique calculates the dominant place ID for a given area based on heterogeneous inputs. This work is an extension of [alphashapes](http://code.flickr.net/2008/10/30/the-shape-of-alpha/) and [betashapes](https://github.com/simplegeo/betashapes) (thanks [Aaron](https://github.com/straup) and [Schuyler](https://github.com/schuyler)!) and is used to backfill countries without complete open data. Matching mapping agency polygons to the geonames.org dataset was performed using [shape-gn-matchr](https://github.com/blackmad/shputils). Concording geoplanet to geonames lives at [geoplanet-concordance](https://github.com/blackmad/geoplanet-concordance). Geocoding can be the hardest part about going open source - and reverse geocoding is even harder. Reverse geocoding reports the gazetteer place for a latitude and longitude map location or address string and is useful when source data needs to be normalized. This new polygon gazetteer data is used in [Twofishes](https://github.com/foursquare/twofishes) ([demo](http://twofishes.net)), the coarse splitting geocoder (and reverse geocoder) written in scala from [David Blackman](https://github.com/blackmad/) at foursquare. The quattroshapes code and resulting 30 gb of data are licensed under [CC-BY](http://creativecommons.org/licenses/by/2.0/), but includes data licensed from many governments around the world. Check the [License](LICENSE.md) for full details and limitations. Enjoy! --- ## Downloads Shapefiles are in WGS84 (geographic) projection and UTF-8 character encoding. * [quatroshapes admin 0](http://static.quattroshapes.com/qs_adm0.zip) - 106 mb * [quatroshapes admin 1 regions](http://static.quattroshapes.com/qs_adm1_region.zip) - 17 mb * [quatroshapes admin 1](http://static.quattroshapes.com/qs_adm1.zip) - 106 mb * [quatroshapes admin 2 regions](http://static.quattroshapes.com/qs_adm2_region.zip) - 1.5 mb * [quatroshapes admin 2](http://static.quattroshapes.com/qs_adm2.zip) - 304 mb * [quatroshapes local admin](http://static.quattroshapes.com/qs_localadmin.zip) - 467 mb * [quatroshapes localities](http://static.quattroshapes.com/qs_localities.zip) - 420 mb * [quatroshapes neighborhoods](http://static.quattroshapes.com/qs_neighborhoods.zip) - 32 mb ## Goodies quatroshapes gazetteer (gzipped geojson): * [prefer GeoNames.org lat-lngs](http://static.quattroshapes.com/quattroshapes_gazetteer_gn_then_gp.gz) - 154 mb * [prefer GeoPlanet + Flickr lat-lngs](http://static.quattroshapes.com/quattroshapes_gazetteer_gp_then_gn.gz) - 154 mb * [localities only, Geonames.org lat-lngs](http://static.quattroshapes.com/quattroshapes_gazetteer_gn_then_gp_locality.gz) - 46 mb * [places with population, checkins, or flickr photos, Geonames.org lat-lngs](http://static.quattroshapes.com/quattroshapes_gazetteer_gn_then_gp_with_content.gz) - 34 mb Other: * [Natural Earth admin-1](http://static.quattroshapes.com/ne_adm1.zip) - 16 mb, version 3.0.0 * [US State Department HIU admin-0](http://static.quattroshapes.com/ne_ussd_adm0.zip) - 79 mb, re-coded like Natural Earth * [National Mapping Agency Open Data](http://static.quattroshapes.com/nma.zip) - 7 gb * [Customized Europe localities](http://static.quattroshapes.com/europe_localities.zip) - 135 mb, mashed-up EuroGeoGraphics urban data and European Environment Agency [UMZ](http://www.eea.europa.eu/data-and-maps/data/urban-morphological-zones-2006-umz2006-f3v0) data. * [GeoPlanet voronoi diagrams](http://static.quattroshapes.com/geoplanet_voronoi.zip) - 198 mb includes adm0, adm1, adm2, localadmin & localities. ## Preview **Administrative level 1**: _(below) States and provinces in orange; regions shown in red. Mix of national mapping agency and Natural Earth._ ![qs_adm1](images/qs_adm1.png) **Administrative level 2**: _(below) Counties in bright blue; regions shown in dark blue. National mapping agency data._ ![qs_adm2](images/qs_adm2.png) **Local administrative level**: _(below) In green. This level of government assumes municipal type control over the central town and surrounding countryside. National mapping agency data._ ![qs_localadmin](images/qs_localadmin.png) **Localities**: _(below) In yellow. In the USA this is the smallest unit of government with legal boundaries. For most other countries the localities here are informal parts of local administrative areas. Mix of national mapping agency, quattroshapes enumeration using foursquare checkins & custom data._ ![qs_localities](images/qs_localities.png) **Administrative level 0**: _(below) In gray. Mix of national mapping agency and US State Department data._ ![qs_adm0](images/qs_adm0.png) **Neighborhoods**: _(below) In purple. Quattroshape enumeration from geo tagged photos in Flickr using GeoPlanet hierarchy._ ![qs_neighborhoods](images/qs_neighborhoods.png) **Gazetteer**: _(below) In light purple. Over 1 million administrative and populated places with around 800,000 having concordance between GeoNames.org and Yahoo! GeoPlanet WOE unique IDs._ ![qs_gazetteer](images/qs_gazetteer.png) ================================================ FILE: open_administrative_data/Makefile ================================================ all: \ all_localities.shp \ all_localadmin.shp \ all_adm0.shp \ all_adm1_region.shp \ all_adm1.shp \ all_adm2_region.shp \ all_adm2.shp touch all all-zips: \ all_localities.zip \ all_localadmin.zip \ all_localadmin.zip \ all_adm0.zip \ all_adm1_region.zip \ all_adm1.zip \ all_adm2_region.zip \ all_adm2.zip touch all-zips all.zip: \ all_localities.zip \ all_localadmin.zip \ all_localadmin.zip \ all_adm0.zip \ all_adm1_region.zip \ all_adm1.zip \ all_adm2_region.zip \ all_adm2.zip rm -f all.zip zip all.zip all_*.shp all_*.dbf all_*.shx all_*.prj all_*.cpg all_localities.zip: rm -f all_localities.zip zip all_localities.zip all_localities.* all_localadmin.zip: rm -f all_localadmin.zip zip all_localadmin.zip all_localadmin.* all_adm0.zip: rm -f all_adm0.zip zip all_adm0.zip all_adm0.* all_adm1_region.zip: rm -f all_adm1_region.zip zip all_adm1_region.zip all_adm1_region.* all_adm1.zip: rm -f all_adm1.zip zip all_adm1.zip all_adm1.* all_adm2_region.zip: rm -f all_adm2_region.zip zip all_adm2_region.zip all_adm2_region.* all_adm2.zip: rm -f all_adm2.zip zip all_adm2.zip all_adm2.* all_localities.shp: \ aus_localities.shp \ bra_localities.shp \ can_localities.shp \ eu_localities.shp \ nzl_localities.shp \ pri_localities.shp \ pse_localities.shp \ usa_localities.shp \ zaf_localities.shp \ mex_localities.shp \ rus_localities.shp \ idn_localities_qs.shp \ mys_localities_qs.shp \ tha_localities_qs.shp \ kor_localities_qs.shp \ twn_localities_qs.shp \ chn_localities_qs.shp \ ind_localities_qs.shp \ jpn_localities_qs.shp \ sgp_localities_qs.shp #tur_localities_qs.shp \ #gbr_localities_qs.shp #tur_localities.shp \ #gbr_localities.shp \ #chl_localities.shp \ #mex_localities.shp \ ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" all_localities.shp templates/template_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp usa_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp can_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp eu_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp nzl_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp pri_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp pse_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp zaf_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp aus_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp bra_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp mex_localities.shp #ogr2ogr -f "Esri Shapefile" -append all_localities.shp mex_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp rus_localities.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp chl_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp idn_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp mys_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp tha_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp kor_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp twn_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp chn_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp ind_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp jpn_localities_qs.shp ogr2ogr -f "Esri Shapefile" -append all_localities.shp sgp_localities_qs.shp #ogr2ogr -f "Esri Shapefile" -append all_localities.shp tur_localities_qs.shp #ogr2ogr -f "Esri Shapefile" -append all_localities.shp gbr_localities_qs.shp #ogr2ogr -f "Esri Shapefile" -append all_localities.shp rus_localities_qs.shp all_localadmin.shp: \ aus_localadmin.shp \ bra_localadmin.shp \ che_localadmin.shp \ esp_localadmin.shp \ fra_localadmin.shp \ gbr_localadmin.shp \ ita_localadmin.shp \ lie_localadmin.shp \ nld_localadmin.shp \ usa_localadmin.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" all_localadmin.shp templates/template_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp aus_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp bra_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp che_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp esp_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp fra_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp gbr_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp ita_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp lie_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp nld_localadmin.shp ogr2ogr -f "Esri Shapefile" -append all_localadmin.shp usa_localadmin.shp all_adm2_region.shp: \ deu_adm2_region.shp \ fra_adm2_region.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" all_adm2_region.shp templates/template_adm2_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm2_region.shp deu_adm2_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm2_region.shp fra_adm2_region.shp all_adm2.shp: \ aus_adm2.shp \ aut_adm2.shp \ bel_adm2.shp \ bra_adm2.shp \ che_adm2.shp \ chl_adm2.shp \ deu_adm2.shp \ fra_adm2.shp \ idn_adm2.shp \ ltu_adm2.shp \ mex_adm2.shp \ nzl_adm2.shp \ pol_adm2.shp \ pri_adm2.shp \ svk_adm2.shp \ usa_adm2.shp \ ukr_adm2.shp \ zaf_adm2.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" all_adm2.shp templates/template_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp aus_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp aut_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp bel_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp bra_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp che_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp chl_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp deu_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp fra_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp idn_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp ltu_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp mex_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp nzl_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp pol_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp pri_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp svk_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp usa_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp ukr_adm2.shp ogr2ogr -f "Esri Shapefile" -append all_adm2.shp zaf_adm2.shp all_adm1.shp: \ aus_adm1.shp \ aut_adm1.shp \ bel_adm1.shp \ bgr_adm1.shp \ bra_adm1.shp \ can_adm1.shp \ chl_adm1.shp \ che_adm1.shp \ cyp_adm1.shp \ cze_adm1.shp \ deu_adm1.shp \ dnk_adm1.shp \ esp_adm1.shp \ est_adm1.shp \ fin_adm1.shp \ fra_adm1.shp \ gbr_adm1.shp \ gib_adm1.shp \ grc_adm1.shp \ grl_adm1.shp \ hrv_adm1.shp \ hun_adm1.shp \ idn_adm1.shp \ irl_adm1.shp \ ita_adm1.shp \ lie_adm1.shp \ ltu_adm1.shp \ lva_adm1.shp \ mco_adm1.shp \ mda_adm1.shp \ mex_adm1.shp \ mlt_adm1.shp \ nld_adm1.shp \ nor_adm1.shp \ nzl_adm1.shp \ pol_adm1.shp \ pri_adm1.shp \ prt_adm1.shp \ pse_adm1.shp \ rou_adm1.shp \ rus_adm1.shp \ srb_adm1.shp \ svk_adm1.shp \ swe_adm1.shp \ usa_adm1.shp \ ukr_adm1.shp \ vat_adm1.shp \ zaf_adm1.shp \ ne_adm1.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" all_adm1.shp templates/template_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp ne_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp aus_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp aut_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp bel_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp bgr_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp bra_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp can_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp chl_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp che_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp cyp_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp cze_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp deu_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp dnk_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp esp_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp est_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp fin_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp fra_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp gbr_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp gib_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp grc_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp grl_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp hrv_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp hun_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp irl_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp ita_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp lie_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp ltu_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp lva_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp mco_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp mda_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp mex_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp mlt_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp nld_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp nor_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp nzl_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp pol_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp pri_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp prt_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp pse_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp rou_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp rus_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp srb_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp svk_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp swe_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp usa_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp ukr_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp vat_adm1.shp ogr2ogr -f "Esri Shapefile" -append all_adm1.shp zaf_adm1.shp all_adm1_region.shp: \ bel_adm1_region.shp \ esp_adm1_region.shp \ fin_adm1_region.shp \ fra_adm1_region.shp \ gbr_adm1_region.shp \ hun_adm1_region.shp \ ita_adm1_region.shp \ srb_adm1_region.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" all_adm1_region.shp templates/template_adm1_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm1_region.shp bel_adm1_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm1_region.shp esp_adm1_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm1_region.shp fin_adm1_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm1_region.shp fra_adm1_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm1_region.shp gbr_adm1_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm1_region.shp hun_adm1_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm1_region.shp ita_adm1_region.shp ogr2ogr -f "Esri Shapefile" -append all_adm1_region.shp srb_adm1_region.shp all_adm0.shp: \ aus_adm0.shp \ ald_adm0.shp \ aut_adm0.shp \ bel_adm0.shp \ bgr_adm0.shp \ bra_adm0.shp \ can_adm0.shp \ che_adm0.shp \ chl_adm0.shp \ cze_adm0.shp \ deu_adm0.shp \ dnk_adm0.shp \ esp_adm0.shp \ est_adm0.shp \ fin_adm0.shp \ fra_adm0.shp \ fro_adm0.shp \ gbr_adm0.shp \ geo_adm0.shp \ gib_adm0.shp \ grc_adm0.shp \ grl_adm0.shp \ hrv_adm0.shp \ hun_adm0.shp \ irl_adm0.shp \ isl_adm0.shp \ ita_adm0.shp \ kos_adm0.shp \ lie_adm0.shp \ ltu_adm0.shp \ lux_adm0.shp \ lva_adm0.shp \ mco_adm0.shp \ mda_adm0.shp \ mex_adm0.shp \ mlt_adm0.shp \ nld_adm0.shp \ nor_adm0.shp \ nzl_adm0.shp \ pol_adm0.shp \ pri_adm0.shp \ prt_adm0.shp \ pse_adm0.shp \ rou_adm0.shp \ smr_adm0.shp \ srb_adm0.shp \ svk_adm0.shp \ svn_adm0.shp \ swe_adm0.shp \ usa_adm0.shp \ ukr_adm0.shp \ zaf_adm0.shp \ ussd_adm0.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" all_adm0.shp templates/template_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp ussd_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp aut_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp ald_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp aus_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp bel_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp bgr_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp bra_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp can_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp che_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp chl_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp cze_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp deu_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp dnk_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp esp_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp est_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp fin_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp fra_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp fro_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp gbr_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp geo_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp gib_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp grc_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp grl_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp hrv_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp hun_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp irl_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp isl_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp ita_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp kos_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp lie_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp ltu_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp lux_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp lva_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp mco_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp mda_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp mex_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp mlt_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp nld_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp nor_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp nzl_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp pol_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp pri_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp prt_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp pse_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp rou_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp srb_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp smr_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp svk_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp svn_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp swe_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp usa_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp ukr_adm0.shp ogr2ogr -f "Esri Shapefile" -append all_adm0.shp zaf_adm0.shp dissolve-prep: \ usa_adm0.shp \ bra_adm0.shp \ bra_adm1.shp \ aus_adm0.shp \ aus_adm1.shp \ aus_adm2.shp \ rus_adm0.shp \ nzl_adm0.shp \ che_adm0.shp \ che_adm1.shp \ idn_adm0.shp \ idn_adm1.shp \ idn_adm2.shp \ chl_adm1.shp \ chl_adm0.shp \ pse_adm0.shp \ zaf_adm1.shp \ zaf_adm1.shp \ gbr_adm1_region.shp \ bel_adm1_region.shp \ fin_adm1_region.shp \ fra_adm1_region.shp \ hun_adm1_region.shp \ srb_adm1_region.shp \ aut_adm1.shp \ bel_adm1.shp \ deu_adm1.shp \ srb_adm1.shp \ svk_adm1.shp \ pol_adm1.shp \ ukr_adm1.shp \ ltu_adm1.shp \ aut_adm0.shp \ bel_adm0.shp \ deu_adm0.shp \ fin_adm0.shp \ fra_adm0.shp \ hun_adm0.shp \ ltu_adm0.shp \ pol_adm0.shp \ srb_adm0.shp \ svk_adm0.shp \ ukr_adm0.shp \ cze_adm0.shp \ dnk_adm0.shp \ esp_adm0.shp \ est_adm0.shp \ fin_adm0.shp \ gbr_adm0.shp \ grc_adm0.shp \ grl_adm0.shp \ hrv_adm0.shp \ irl_adm0.shp \ isl_adm0.shp \ ita_adm0.shp \ kos_adm0.shp \ lva_adm0.shp \ mda_adm0.shp \ nld_adm0.shp \ nor_adm0.shp \ prt_adm0.shp \ rou_adm0.shp rm -f dissolvers/*.shp dissolvers/*.shx dissolvers/*.dbf dissolvers/*.prj dissolvers/*.cpg cp usa_adm0.* dissolvers/ cp bra_adm0.* dissolvers/ cp bra_adm1.* dissolvers/ cp brg_adm0.* dissolvers/ cp aus_adm0.* dissolvers/ cp aus_adm1.* dissolvers/ cp aus_adm2.* dissolvers/ cp rus_adm0.* dissolvers/ cp mex_adm0.* dissolvers/ cp nzl_adm0.* dissolvers/ cp che_adm0.* dissolvers/ cp che_adm1.* dissolvers/ cp idn_adm0.* dissolvers/ cp idn_adm1.* dissolvers/ cp idn_adm2.* dissolvers/ cp chl_adm1.* dissolvers/ cp chl_adm0.* dissolvers/ cp pse_adm0.* dissolvers/ cp zaf_adm1.* dissolvers/ cp zaf_adm1.* dissolvers/ cp gbr_adm1_region.* dissolvers/ cp bel_adm1_region.* dissolvers/ cp fin_adm1_region.* dissolvers/ cp fra_adm1_region.* dissolvers/ cp hun_adm1_region.* dissolvers/ cp srb_adm1_region.* dissolvers/ cp aut_adm1.* dissolvers/ cp bel_adm1.* dissolvers/ cp deu_adm1.* dissolvers/ cp srb_adm1.* dissolvers/ cp svk_adm1.* dissolvers/ cp pol_adm1.* dissolvers/ cp ukr_adm1.* dissolvers/ cp ltu_adm1.* dissolvers/ cp aut_adm0.* dissolvers/ cp bel_adm0.* dissolvers/ cp deu_adm0.* dissolvers/ cp fin_adm0.* dissolvers/ cp fra_adm0.* dissolvers/ cp hun_adm0.* dissolvers/ cp ltu_adm0.* dissolvers/ cp pol_adm0.* dissolvers/ cp srb_adm0.* dissolvers/ cp svk_adm0.* dissolvers/ cp ukr_adm0.* dissolvers/ cp brg_adm0.* dissolvers/ cp cze_adm0.* dissolvers/ cp dnk_adm0.* dissolvers/ cp esp_adm0.* dissolvers/ cp est_adm0.* dissolvers/ cp fin_adm0.* dissolvers/ cp gbr_adm0.* dissolvers/ cp grc_adm0.* dissolvers/ cp grl_adm0.* dissolvers/ cp hrv_adm0.* dissolvers/ cp irl_adm0.* dissolvers/ cp isl_adm0.* dissolvers/ cp ita_adm0.* dissolvers/ cp kos_adm0.* dissolvers/ cp lva_adm0.* dissolvers/ cp mda_adm0.* dissolvers/ cp nld_adm0.* dissolvers/ cp nor_adm0.* dissolvers/ cp prt_adm0.* dissolvers/ cp rou_adm0.* dissolvers/ cp swe_adm0.* dissolvers/ ald: \ ald_adm0.shp touch ald aus: \ aus_adm0.shp \ aus_adm1.shp \ aus_adm2.shp \ aus_localadmin.shp \ aus_localities.shp touch aus aut: \ aut_adm0.shp \ aut_adm1.shp \ aut_adm2.shp touch aut bel: \ bel_adm0.shp \ bel_adm1_region.shp \ bel_adm1.shp \ bel_adm2.shp touch bel bgr: \ bgr_adm0.shp \ bgr_adm1.shp touch bgr bra: \ bra_adm2.shp \ bra_adm1.shp \ bra_adm0.shp \ bra_localadmin.shp \ bra_localities.shp touch bra can: \ can_localities.shp \ can_adm1.shp \ can_adm0.shp touch can che: \ che_adm0.shp \ che_adm1.shp \ che_localadmin.shp touch che chl: \ chl_localities.shp \ chl_adm2.shp \ chl_adm1.shp \ chl_adm0.shp touch chl cyp: \ cyp_adm0.shp \ cyp_adm1.shp touch cyp cze: \ cze_adm0.shp \ cze_adm1.shp touch cze deu: \ src.shp \ deu_adm1.shp \ src.shp \ src.shp touch deu dnk: \ dnk_adm0.shp \ dnk_adm1.shp touch dnk esp: \ esp_localadmin.shp \ esp_adm1.shp \ esp_adm1_region.shp \ esp_adm0.shp \ touch esp est: \ est_adm0.shp \ est_adm1.shp touch est eu: \ eu_localities.shp touch eu fin: \ fin_adm0.shp \ fin_adm1_region.shp \ fin_adm1.shp touch fin fra: \ fra_localadmin.shp \ fra_adm2.shp \ fra_adm1.shp \ fra_adm1_region.shp \ src.shp touch fra fro: \ fro_adm0.shp touch fro gbr: \ gbr_adm0.shp \ gbr_adm1.shp \ gbr_adm1_region.shp \ gbr_localadmin.shp touch gbr geo: \ geo_adm0.shp touch geo grc: \ grc_adm0.shp \ grc_adm1.shp touch grc grl: \ grl_adm0.shp \ grl_adm1.shp touch grl hun: \ hun_adm0.shp \ hun_adm1_region.shp \ hun_adm1.shp touch hun hrv: \ hrv_adm0.shp \ hrv_adm1.shp touch hrv idn: \ idn_adm2.shp \ idn_adm1.shp \ idn_adm0.shp touch idn irl: \ irl_adm0.shp \ irl_adm1.shp touch irl isl: \ isl_adm0.shp touch isl ita: \ ita_localadmin.shp \ ita_adm1.shp \ ita_adm1_region.shp ita_adm0.shp \ touch ita kos: \ kos_adm0.shp touch kos ltu: \ ltu_adm0.shp \ ltu_adm1.shp \ ltu_adm2.shp touch ltu lux: \ lux_adm0.shp touch lux lva: \ lva_adm0.shp \ lva_adm1.shp touch lva mda: \ mda_adm0.shp \ mda_adm1.shp touch mda mex: \ mex_localities.shp \ mex_adm2.shp \ mex_adm1.shp \ mex_adm0.shp touch mex nld: \ nld_localadmin.shp \ nld_adm1.shp \ nld_adm0.shp touch nld nor: \ nor_adm0.shp \ nor_adm1.shp touch nor nzl: \ nzl_localities.shp \ nzl_adm2.shp \ nzl_adm1.shp touch nzl pol: \ pol_adm0.shp \ pol_adm1.shp \ pol_adm2.shp touch pol pri: \ pri_adm0.shp \ pri_adm1.shp \ pri_adm2.shp \ pri_localities.shp touch pri prt: \ prt_adm0.shp \ prt_adm1.shp \ prt_adm0.shp touch prt pse: \ pse_localities.shp\ pse_adm1.shp touch pse rou: rou_adm0.shp \ rou_adm1.shp touch rou rus: \ rus_localities.shp \ rus_adm1.shp \ rus_adm0.shp touch rus srb: \ srb_adm0.shp \ srb_adm1_region.shp \ srb_adm1.shp touch srb smr: \ smr_adm0.shp touch smr svk: \ svk_adm0.shp \ svk_adm1.shp \ svk_adm2.shp touch svk svn: \ svn_adm0.shp touch svn swe: \ swe_adm0.shp \ swe_adm1.shp touch swe ukr: \ ukr_adm0.shp \ ukr_adm1.shp \ ukr_adm2.shp touch ukr vat: \ vat_adm0.shp \ vat_adm1.shp touch vat usa: \ usa_adm0.shp \ usa_adm1.shp \ usa_adm2.shp \ usa_localadmin.shp \ usa_localities.shp touch usa zaf: \ zaf_localities.shp \ zaf_adm2.shp \ zaf_adm1.shp \ zaf_adm0.shp touch zaf # UNITED STATES usa_adm0.shp: raw_downloads/tl_2010_us_state10.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'USA' as qs_adm0_a3, 'United States' as qs_adm0, 'adm0' as qs_level, 'US Census' as qs_source, 'US' as qs_iso_cc, 'United States' as qs_a0 FROM tl_2010_us_state10 WHERE statefp10 != '72'" usa_adm0.shp raw_downloads/tl_2010_us_state10.shp usa_adm1.shp: raw_downloads/tl_2010_us_state10.shp ogr2ogr -overwrite -f "ESRI Shapefile" --config SHAPE_ENCODING "Windows-1252" -lco ENCODING="UTF-8" -sql "SELECT 'USA' as qs_adm0_a3, 'United States' as qs_adm0, 'adm1' as qs_level, 'US Census' as qs_source, name10 as qs_a1, statefp10 as qs_a1_lc, mtfcc10 as qs_type, 'US' as qs_iso_cc, 'United States' as qs_a0 FROM tl_2010_us_state10 WHERE statefp10 != '72'" usa_adm1.shp raw_downloads/tl_2010_us_state10.shp usa_adm2.shp: \ raw_downloads/tl_2010_us_county10.shp \ usa_adm1.shp # --config SHAPE_ENCODING WINDOWS-1252 ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'USA' as qs_adm0_a3, 'United States' as qs_adm0, 'adm2' as qs_level, 'US Census' as qs_source, src.name10 as qs_a2, src.namelsad10 as qs_a2_alt, src.statefp10 as qs_a1_lc, namefile.qs_a1 as qs_a1, src.geoid10 as qs_a2_lc, src.mtfcc10 as qs_type, 'US' as qs_iso_cc, 'United States' as qs_a0 FROM tl_2010_us_county10 src LEFT JOIN 'usa_adm1.dbf'.usa_adm1 namefile ON src.statefp10 = namefile.qs_a1_lc WHERE src.statefp10 != '72'" usa_adm2.shp raw_downloads/tl_2010_us_county10.shp usa_localities.shp: usa_adm1.shp # --config SHAPE_ENCODING WINDOWS-1252 ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'USA' as qs_adm0_a3, 'United States' as qs_adm0, 'locality' as qs_level, 'US Census' as qs_source, src.name as qs_loc, src.namelsad as qs_loc_alt, src.statefp as qs_a1_lc, namefile.qs_a1 as qs_a1, src.geoid as qs_loc_lc, src.placens as qs_loc_lc2, src.mtfcc as qs_type, 'US' as qs_iso_cc, 'United States' as qs_a0 FROM usa_2012_places src LEFT JOIN 'usa_adm1.dbf'.usa_adm1 namefile ON src.statefp = namefile.qs_a1_lc WHERE src.statefp != '72'" usa_localities.shp ../nma/usa/usa_2012_places.shp usa_localadmin.shp: raw_downloads/usa_localadmin_all.shp \ usa_adm1.shp \ usa_adm2.shp \ raw_downloads/CouSub_2010Census_DP1.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'USA' as qs_adm0_a3, 'US' as qs_iso_cc, 'United States' as qs_adm0, 'United States' as qs_a0, 'localadmin' as qs_level, 'US Census' as qs_source, src.state as qs_a1_lc, namefile.qs_a1 as qs_a1, CONCAT(src.state,src.county) as qs_a2_lc, src.name as qs_la, CONCAT(src.state,src.county,src.cousub) as qs_la_lc, src.geo_id as qs_la_lc2, src.lsad as qs_type FROM usa_localadmin_all src LEFT JOIN 'usa_adm1.dbf'.usa_adm1 namefile ON src.state = namefile.qs_a1_lc" usa_localadmin.shp raw_downloads/usa_localadmin_all.shp # add adm2 names ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT qs_adm0_a3, qs_iso_cc, qs_adm0, qs_a0, qs_level, qs_source, qs_a1, qs_a2_lc, namefile.qs_a2 as qs_a2, qs_la, qs_la_lc, qs_la_lc2, qs_type, qs_a1_lc FROM usa_localadmin src LEFT JOIN 'usa_adm2.dbf'.usa_adm2 namefile ON src.qs_a2_lc = namefile.qs_a2_lc" usa_localadmin.shp usa_localadmin.shp # add populations ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT qs_adm0_a3, qs_iso_cc, qs_adm0, qs_a0, qs_level, qs_source, qs_a1, qs_a2_lc, qs_a2, qs_la, qs_la_lc, qs_la_lc2, qs_type, qs_a1_lc, namefile.DP0010001 as qs_pop FROM usa_localadmin src LEFT JOIN 'raw_downloads/CouSub_2010Census_DP1.dbf'.CouSub_2010Census_DP1 namefile ON src.qs_la_lc = namefile.geoid10" usa_localadmin.shp usa_localadmin.shp # PR pri_adm0.shp: raw_downloads/tl_2010_us_state10.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'PRI' as qs_adm0_a3, 'Puerto Rico' as qs_adm0, 'adm0' as qs_level, 'PR' as qs_iso_cc, 'Puerto Rico' as qs_a0, 'US Census' as qs_source FROM tl_2010_us_state10 WHERE statefp10 = '72'" pri_adm0.shp raw_downloads/tl_2010_us_state10.shp pri_adm1.shp: raw_downloads/tl_2010_us_state10.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'PRI' as qs_adm0_a3, 'Puerto Rico' as qs_adm0, 'adm1' as qs_level, 'US Census' as qs_source, 'PR' as qs_iso_cc, 'Puerto Rico' as qs_a0,name10 as qs_a1, statefp10 as qs_a1_lc, mtfcc10 as qs_type FROM tl_2010_us_state10 WHERE statefp10 = '72'" pri_adm1.shp raw_downloads/tl_2010_us_state10.shp pri_adm2.shp: \ raw_downloads/tl_2010_us_county10.shp \ pri_adm1.shp # --config SHAPE_ENCODING WINDOWS-1252 ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'PRI' as qs_adm0_a3, 'Puerto Rico' as qs_adm0, 'adm2' as qs_level, 'US Census' as qs_source, 'PR' as qs_iso_cc, 'Puerto Rico' as qs_a0, src.name10 as qs_a2, src.namelsad10 as qs_a2_alt, src.statefp10 as qs_a1_lc, namefile.qs_a1 as qs_a1, src.geoid10 as qs_a2_lc, src.mtfcc10 as qs_type FROM tl_2010_us_county10 src LEFT JOIN 'usa_adm1.dbf'.usa_adm1 namefile ON src.statefp10 = namefile.qs_a1_lc WHERE src.statefp10 = '72'" pri_adm2.shp raw_downloads/tl_2010_us_county10.shp pri_localities.shp: pri_adm1.shp # --config SHAPE_ENCODING WINDOWS-1252 ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'PRI' as qs_adm0_a3, 'Puerto Rico' as qs_adm0, 'locality' as qs_level, 'US Census' as qs_source, 'PR' as qs_iso_cc, 'Puerto Rico' as qs_a0, src.name as qs_loc, src.namelsad as qs_loc_alt, src.statefp as qs_a1_lc, namefile.qs_a1 as qs_a1, src.geoid as qs_loc_lc, src.placens as qs_loc_lc2, src.mtfcc as qs_type FROM usa_2012_places src LEFT JOIN 'pri_adm1.dbf'.pri_adm1 namefile ON src.statefp = namefile.qs_a1_lc WHERE src.statefp = '72'" pri_localities.shp ../nma/usa/usa_2012_places.shp # UNITED KINGDOM #gbr_adm1.shp: # ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT name as qs_a1, code as qs_a1_lc, descriptio as qs_type FROM district_borough_unitary_region" gbr_adm1.shp ../nma/united_kingdom/bdline_gb/Data/district_borough_unitary_region.shp #United Kingdom SH3, needs Norther Ireland (ND) appended (SH4) - 4 regions gbr_adm0.shp: # Start with Northern Ireland due to long qs_a1_lc ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'GBR' as qs_adm0_a3, 'United Kingdom' as qs_adm0, 'adm0' as qs_level, 'GB' as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN4 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" gbr_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/ND/PolbndA.shp ogr2ogr -f "ESRI Shapefile" -append -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'GBR' as qs_adm0_a3, 'United Kingdom' as qs_adm0, 'adm0' as qs_level, 'EuroGlobalMap' as qs_source, 'GB' as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN2 as qs_a1r_lc, src.SHN3 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" gbr_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/GB/PolbndA.shp ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.DESN as qs_type FROM gbr_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" gbr_adm0.shp gbr_adm0.shp # Proceed with whole gbr_adm1_region.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'GBR' as qs_adm0_a3, 'United Kingdom' as qs_adm0, 'adm1_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1r, namefile.NAMA as qs_a1r_alt, namefile.ISN as qs_type FROM gbr_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1r_lc = namefile.SHN" gbr_adm1_region.shp gbr_adm0.shp ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.DESN as qs_type FROM gbr_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" gbr_adm1_region.shp gbr_adm1_region.shp gbr_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'GBR' as qs_adm0_a3, 'United Kingdom' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM gbr_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" gbr_adm1.shp gbr_adm1_region.shp ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM gbr_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" gbr_adm1.shp gbr_adm1.shp gbr_localadmin.shp: #Let's setup the basic construct ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -t_srs EPSG:4326 -s_srs EPSG:27700 -sql "SELECT 'GBR' as qs_adm0_a3, 'GB' as qs_iso_cc, 'United Kingdom' as qs_adm0, 'United Kingdom' as qs_a0, 'localadmin' as qs_level, 'UK OS' as qs_source, file_name as qs_a1, name as qs_la, code as qs_la_lc, number as qs_la_lc2, SUBSTR(code,0,1) as qs_a1r_lc, descriptio as qs_type FROM parish_region" gbr_localadmin_tmp.shp ../nma/united_kingdom/bdline_gb/Data/parish_region.shp # England is prefix E or prefix null -spat -120059.56 -217878.65 738273.25 577762.31 ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -spat -6.84171 49.51701 2.04510735 55.9099265 -sql "SELECT qs_adm0_a3, qs_iso_cc, qs_adm0, qs_a0, qs_level, qs_source, qs_la, qs_la_lc, qs_la_lc2, qs_a1, qs_type, 'England' as qs_a1r, 'GB12000000' as qs_a1r_lc FROM gbr_localadmin_tmp WHERE qs_a1r_lc = 'E' OR (qs_a1r_lc IS NULL AND qs_a1 NOT IN ('SCOTTISH_BORDERS','DUMFRIES_AND_GALLOWAY','SOUTH_AYRSHIRE','EAST_AYRSHIRE','SOUTH_LANARKSHIRE','NORTH_LANARKSHIRE','ARGYLL_AND_BUTE','EAST_DUNBARTONSHIRE','WEST_DUNBARTONSHIRE','WEST_LOTHIAN','CLACKMANNANSHIRE','FALKIRK','FIFE','GLASGOW_CITY','PERTY_AND_KINROSS','INVERCLYDE','NORTH_AYRSHIRE','EAST_RENFREWSHIRE','RENFREWSHIRE','MIDLOTHIAN','STIRLING','EAST_LOTHIAN','CITY_OF_EDINBURGH'))" gbr_localadmin.shp gbr_localadmin_tmp.shp # Wales is prefix W ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT qs_adm0_a3, qs_iso_cc, qs_adm0, qs_a0, qs_level, qs_source, qs_la, qs_la_lc, qs_la_lc2, qs_a1, qs_type, 'Wales' as qs_a1r, 'GB13000000' as qs_a1r_lc FROM gbr_localadmin_tmp WHERE qs_a1r_lc = 'W'" gbr_localadmin.shp gbr_localadmin_tmp.shp # Scotland is prefix null and -spat -196211 577762.31 625336.14 1319225 ogr2ogr -append -f "ESRI Shapefile" -spat -9.2786562 55.1319922 4.431488 62.531353 -sql "SELECT qs_adm0_a3, qs_iso_cc, qs_adm0, qs_a0, qs_level, qs_source, qs_a1, 'Scotland' as qs_a1r, 'GB11000000' as qs_a1r_lc, 'Unitary Council' as qs_type FROM gbr_localadmin_tmp src WHERE qs_a1r_lc IS NULL" gbr_localadmin.shp gbr_localadmin_tmp.shp # add Northern Ireland ogr2ogr -f "Esri Shapefile" -append -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'GBR' as qs_adm0_a3, 'GB' as qs_iso_cc, 'United Kingdom' as qs_adm0, 'United Kingdom' as qs_a0, 'localadmin' as qs_level, 'EuroGlobalMap' as qs_source, 'ND' as qs_a0_lc, 'Northern Ireland' as qs_a1r, src.SHN1 as qs_a1r_lc, src.SHN4 as qs_a1_lc, namefile.NAMN as qs_a1, 'Unitary District' as qs_type FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN4 = namefile.SHN" gbr_localadmin.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/ND/PolbndA.shp rm -rf gbr_localadmin_tmp.* # CANADA can_localities.shp: can_adm1.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'CAN' as qs_adm0_a3, 'Canada' as qs_adm0, 'locality' as qs_level, 'Canada Census' as qs_source, commoname1 as qs_loc, legalname1 as qs_loc_alt, nid as qs_loc_lc, localid as qs_loc_lc2, designatn as qs_type, type as qs_type2, datasetnam as qs_a1, namefile.qs_a1_lc as qs_a1_lc, 'CA' as qs_iso_cc, 'Canada' as qs_a0 FROM can_municipalities src LEFT JOIN '../nma/canada/provinces/cgb_lgc_canada_shp_en/can_adm1.dbf'.can_adm1 namefile ON src.datasetnam = namefile.qs_a1" can_localities.shp ../nma/canada/municipal_boundaries/merged/can_municipalities.shp ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'CAN' as qs_adm0_a3, 'Canada' as qs_adm0, 'locality' as qs_level, mun_name as qs_loc, f_code as qs_loc_lc, code as qs_type, 'BC Gov' as qs_source, 'CA' as qs_iso_cc, 'Canada' as qs_a0, 'BC' as qs_a1_lc, 'British Columbia' as qs_a1 FROM can_bc_TA_MUNICIP_polygon" can_localities.shp ../nma/canada/municipal_boundaries/merged/can_bc_TA_MUNICIP_polygon.shp ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'CAN' as qs_adm0_a3, 'Canada' as qs_adm0, 'locality' as qs_level, 'Canada Census' as qs_source, name1 as qs_loc, name2 as qs_loc_alt, nid as qs_loc_lc, jur1 as qs_a1_lc, namefile.qs_a1 as qs_a1, altype as qs_type, 'CA' as qs_iso_cc, 'Canada' as qs_a0 FROM AL_TA_CA_2_31_eng src LEFT JOIN '../nma/canada/provinces/cgb_lgc_canada_shp_en/can_adm1.dbf'.can_adm1 namefile ON src.jur1 = namefile.qs_a1_lc" can_localities.shp ../nma/canada/reserves/AL_TA_CA_2_31_eng.shp can_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'CAN' as qs_adm0_a3, 'Canada' as qs_adm0, 'adm1' as qs_level, 'Canada Census' as qs_source, namefile.qs_a1 as qs_a1, namefile.qs_a1_lc as qs_a1_lc, type_e as qs_type, 'CA' as qs_iso_cc, 'Canada' as qs_a0 FROM prov_ab_p_geo83_e src LEFT JOIN '../nma/canada/provinces/cgb_lgc_canada_shp_en/can_adm1.dbf'.can_adm1 namefile ON src.name = namefile.qs_a1_up" can_adm1.shp ../nma/canada/provinces/cgb_lgc_canada_shp_en/prov_ab_p_geo83_e.shp can_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'CAN' as qs_adm0_a3, 'Canada' as qs_adm0, 'adm0' as qs_level, 'Canada Census' as qs_source, name as qs_a0, type_e as qs_type, 'CA' as qs_iso_cc FROM can_ab_p_geo83_e" can_adm0.shp ../nma/canada/provinces/cgb_lgc_canada_shp_en/can_ab_p_geo83_e.shp # BRAZIL #-sql "SELECT 'BRA' as qs_adm0_a3, 'Brazil' as qs_adm0, 'adm2' as qs_level FROM 55mu2500gsr" ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_clean.shp: # Orig in bad character encoding. Manually converted to UTF-8 using OpenOffice. # --config SHAPE_ENCODING "ISO-8859-15" ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_clean.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr.shp bra_adm0.shp: # Trouble with dissolves and encodings! #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'BR' as qs_iso_cc, 'Brasil' as qs_a0, REGIão as qs_a1, geocodig_m as qs_a2_lc, uf as qs_a1_lc FROM 55mu2500gsr_clean" bra_adm2.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_clean.shp #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -nlt MULTIPOLYGON bra_adm0.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_adm0.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.adm0_a3 as qs_adm0_a3, src.admin as qs_adm0, 'adm0' as qs_level, src.iso_a2 as qs_iso_cc, src.admin as qs_a0, 'US State Department, with Natural Earth mods' as qs_source FROM us_state_department_countries_ne_hybrid src WHERE src.adm0_a3 in ('bra')" bra_adm0.shp ../us_state_department/final_data/us_state_department_countries_ne_hybrid.shp #dissolve-shapes.py -i bra_adm0.shp -o bra_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level bra_adm1_eh.shp: #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT nome_munic as qs_a1, REGIão as qs_a1, geocodig_m as qs_a2_lc, uf as qs_a1_lc FROM 55mu2500gsr_clean" bra_adm2.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_clean.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -nlt MULTIPOLYGON bra_adm1.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_adm1.shp #dissolve-shapes.py -i bra_adm1.shp -o bra_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level bra_adm2_eh.shp: #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" bra_adm2.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_clean2.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -nlt MULTIPOLYGON bra_adm2.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_adm2.shp bra_adm1_src_data: mkdir -p raw_downloads/bra/adm1/ wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ac.zip -O raw_downloads/bra/adm1/ac.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/al.zip -O raw_downloads/bra/adm1/al.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/am.zip -O raw_downloads/bra/adm1/am.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ap.zip -O raw_downloads/bra/adm1/ap.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ba.zip -O raw_downloads/bra/adm1/ba.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ce.zip -O raw_downloads/bra/adm1/ce.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/df.zip -O raw_downloads/bra/adm1/df.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/es.zip -O raw_downloads/bra/adm1/es.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/go.zip -O raw_downloads/bra/adm1/go.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ma.zip -O raw_downloads/bra/adm1/ma.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/mg.zip -O raw_downloads/bra/adm1/mg.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ms.zip -O raw_downloads/bra/adm1/ms.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/mt.zip -O raw_downloads/bra/adm1/mt.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pa.zip -O raw_downloads/bra/adm1/pa.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pb.zip -O raw_downloads/bra/adm1/pb.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pe.zip -O raw_downloads/bra/adm1/pe.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pi.zip -O raw_downloads/bra/adm1/pi.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pr.zip -O raw_downloads/bra/adm1/pr.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rj.zip -O raw_downloads/bra/adm1/rj.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rn.zip -O raw_downloads/bra/adm1/rn.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ro.zip -O raw_downloads/bra/adm1/ro.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rr.zip -O raw_downloads/bra/adm1/rr.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rs.zip -O raw_downloads/bra/adm1/rs.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/sc.zip -O raw_downloads/bra/adm1/sc.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/se.zip -O raw_downloads/bra/adm1/se.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/sp.zip -O raw_downloads/bra/adm1/sp.zip wget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/to.zip -O raw_downloads/bra/adm1/to.zip unzip -o raw_downloads/bra/adm1/ac.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/al.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/am.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/ap.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/ba.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/ce.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/df.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/es.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/go.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/ma.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/mg.zip -d raw_downloads/bra/adm1/ mkdir -p raw_downloads/bra/adm1/ms/ unzip -o raw_downloads/bra/adm1/ms.zip -d raw_downloads/bra/adm1/ms/ unzip -o raw_downloads/bra/adm1/mt.zip -d raw_downloads/bra/adm1/ mkdir -p raw_downloads/bra/adm1/pa/ unzip -o raw_downloads/bra/adm1/pa.zip -d raw_downloads/bra/adm1/pa/ unzip -o raw_downloads/bra/adm1/pb.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/pe.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/pi.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/pr.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/rj.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/rn.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/ro.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/rr.zip -d raw_downloads/bra/adm1/ mkdir -p raw_downloads/bra/adm1/rs/ unzip -o raw_downloads/bra/adm1/rs.zip -d raw_downloads/bra/adm1/rs/ mkdir -p raw_downloads/bra/adm1/sc/ unzip -o raw_downloads/bra/adm1/sc.zip -d raw_downloads/bra/adm1/sc/ unzip -o raw_downloads/bra/adm1/se.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/sp.zip -d raw_downloads/bra/adm1/ unzip -o raw_downloads/bra/adm1/to.zip -d raw_downloads/bra/adm1/ bra_adm1.shp: # -sql "SELECT nm_municip as qs_loc, tipo as qs_type, cd_geocodm as qs_a1_lc1, nm_micro as qs_launame, nm_meso as qs_a2 FROM 12SEE250GC_SIR" ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="ISO-8859-15" --config SHAPE_ENCODING ISO-8859-15 -nlt MULTIPOLYGON -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/ac/12UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/al/27UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/am/13UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/ap/16UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/ba/29UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/ce/23UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/df/53UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/es/32UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/go/52UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/ma/21UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/mg/31UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/ms/50UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/mt/51UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/pa/15UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/pb/25UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/pe/26UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/pi/22UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/pr/41UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/rj/33UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/rn/24UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/ro/11UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/rr/14UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/rs/43UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/sc/42UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/se/28UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/sp/35UFE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm1.shp raw_downloads/bra/adm1/to/17UFE250GC_SIR.shp # now set the common attr ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="ISO-8859-15" --config SHAPE_ENCODING ISO-8859-15 -sql "SELECT 'BRA' as qs_adm0_a3, 'Brazil' as qs_adm0, 'adm1' as qs_level, 'BR' as qs_iso_cc, 'Brasil' as qs_a0, 'Brasil IBGE' as qs_source, cd_geocodu as qs_a1_lc, nm_estado as qs_a1, 'Estado' as qs_type FROM bra_adm1" bra_adm1.shp bra_adm1.shp # # Other Brazil data comes from # # ftp://geoftp.ibge.gov.br/malhas_digitais/censo_2010/setores_censitarios/ac.zip bra_adm2.shp: # -sql "SELECT 'BRA' as qs_adm0_a3, 'Brazil' as qs_adm0, 'adm2' as qs_level, 'BR' as qs_iso_cc, 'Brasil' as qs_a0, 'Brasil IBGE' as qs_source, SUBSTR(cd_geocodm,0,2) as qs_a1_lc, cd_geocodm as qs_a2_lc, nm_municip as qs_a2 FROM 12MUE250GC_SIR" # --config SHAPE_ENCODING ISO-8859-15 ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="ISO-8859-15" --config SHAPE_ENCODING ISO-8859-15 -nlt MULTIPOLYGON -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/ac/12MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/al/27MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/am/13MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/ap/16MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/ba/29MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/ce/23MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/df/53MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/es/32MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/go/52MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/ma/21MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/mg/31MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/ms/50MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/mt/51MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/pa/15MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/pb/25MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/pe/26MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/pi/22MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/pr/41MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/rj/33MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/rn/24MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/ro/11MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/rr/14MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/rs/43MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/sc/42MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/se/28MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/sp/35MUE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_adm2.shp ../nma/brazil/2nd_round/census_detailed/to/17MUE250GC_SIR.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="ISO-8859-15" --config SHAPE_ENCODING ISO-8859-15 -sql "SELECT 'BRA' as qs_adm0_a3, 'Brazil' as qs_adm0, 'adm2' as qs_level, 'BR' as qs_iso_cc, 'Brasil' as qs_a0, 'Brasil IBGE' as qs_source, cd_geocodm as qs_a2_lc, nm_municip as qs_a2, 'Municípios' as qs_type FROM bra_adm2" bra_adm2.shp bra_adm2.shp bra_localadmin.shp: # -sql "SELECT nm_municip as qs_loc, tipo as qs_type, cd_geocodm as qs_a1_lc1, nm_micro as qs_launame, nm_meso as qs_a2 FROM 12SEE250GC_SIR" ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -nlt MULTIPOLYGON -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/ac/12DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/al/27DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/am/13DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/ap/16DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/ba/29DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/ce/23DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/df/53DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/es/32DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/go/52DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/ma/21DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/mg/31DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/ms/50DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/mt/51DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/pa/15DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/pb/25DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/pe/26DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/pi/22DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/pr/41DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/rj/33DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/rn/24DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/ro/11DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/rr/14DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/rs/43DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/sc/42DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/se/28DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/sp/35DSE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_localadmin.shp ../nma/brazil/2nd_round/census_detailed/to/17DSE250GC_SIR.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="ISO-8859-15" --config SHAPE_ENCODING ISO-8859-15 -sql "SELECT 'BRA' as qs_adm0_a3, 'Brazil' as qs_adm0, 'localadmin' as qs_level, 'BR' as qs_iso_cc, 'Brasil' as qs_a0, 'Brasil IBGE' as qs_source, cd_geocodd as qs_la_lc, nm_distrit as qs_la, 'District' as qs_type FROM bra_localadmin" bra_localadmin.shp bra_localadmin.shp bra_district.shp: # -sql "SELECT nm_municip as qs_loc, tipo as qs_type, cd_geocodm as qs_a1_lc1, nm_micro as qs_launame, nm_meso as qs_a2 FROM 12SEE250GC_SIR" ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -nlt MULTIPOLYGON -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/ac/12SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/al/27SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/am/13SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/ap/16SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/ba/29SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/ce/23SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/df/53SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/es/32SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/go/52SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/ma/21SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/mg/31SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/ms/50SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/mt/51SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/pa/15SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/pb/25SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/pe/26SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/pi/22SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/pr/41SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/rj/33SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/rn/24SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/ro/11SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/rr/14SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/rs/43SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/sc/42SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/se/28SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/sp/35SEE250GC_SIR.shp ogr2ogr -append -f "ESRI Shapefile" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +no_defs" bra_district.shp ../nma/brazil/2nd_round/census_detailed/to/17SEE250GC_SIR.shp bra_localities.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'BRA' as qs_adm0_a3, 'Brazil' as qs_adm0, 'locality0' as qs_level, 'BR' as qs_iso_cc, 'Brasil' as qs_a0, 'Brasil IBGE' as qs_source, SUBSTR(cd_geocodm,0,2) as qs_a1_lc, qs_a1 as qs_a1, cd_geocodm as qs_a2_lc, nm_municip as qs_a2, qs_loc as qs_loc, qs_pop as qs_pop, qs_type as qs_type, qs_type2 as qs_type2 FROM bra_district_combo_sel_buff_merge3_join3" bra_localities.shp ../nma/brazil/2nd_round/custom/bra_district_combo_sel_buff_merge3_join3.shp # AUSTRALIA aus_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'AUS' as qs_adm0_a3, 'Australia' as qs_adm0, 'adm0' as qs_level, 'Australia Census' as qs_source, 'AU' as qs_iso_cc, 'Australia' as qs_a0 FROM TR_2012_AUST" aus_adm0.shp ../nma/australia/1270055003_tr_2012_aust_shape/TR_2012_AUST.shp #dissolve-shapes.py -i aus_adm0.shp -o aus_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0 aus_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'AUS' as qs_adm0_a3, 'Australia' as qs_adm0, 'adm1' as qs_level, 'Australia Census' as qs_source, 'AU' as qs_iso_cc, 'Australia' as qs_a0, ste_name11 as qs_a1, ste_code11 as qs_a1_lc FROM TR_2012_AUST" aus_adm1.shp ../nma/australia/1270055003_tr_2012_aust_shape/TR_2012_AUST.shp #dissolve-shapes.py -i aus_adm1.shp -o aus_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a1,qs_a1_lc aus_adm2.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'AUS' as qs_adm0_a3, 'Australia' as qs_adm0, 'adm2' as qs_level, 'Australia Census' as qs_source, 'AU' as qs_iso_cc, 'Australia' as qs_a0, lga_name12 as qs_a2, lga_code12 as qs_a2_lc, ste_code11 as qs_a1_lc, ste_name11 as qs_a1 FROM LGA_2012_AUST" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs EPSG:4283 aus_adm2.shp ../nma/australia/1270055003_lga_2012_aust_shape/LGA_2012_AUST.shp #dissolve-shapes.py -i aus_adm2.shp -o aus_adm2.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a1,qs_a1_lc,qs_a2,qs_a2_lc aus_localadmin.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'AUS' as qs_adm0_a3, 'Australia' as qs_adm0, 'localadmin' as qs_level, 'Australian Bureau Of Statistics' as qs_source, 'AU' as qs_iso_cc, 'Australia' as qs_a0, SSC_NAME as qs_la, SSC_CODE as qs_la_lc, STATE_CODE as qs_a1_lc, STATE_NAME as qs_a1 FROM SSC_2011_AUST" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs EPSG:4019 aus_localadmin.shp ../nma/australia/2011_SSC_shape/SSC_2011_AUST.shp aus_localities.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'AUS' as qs_adm0_a3, 'Australia' as qs_adm0, 'locality1' as qs_level, 'Australian Bureau Of Statistics: state suburbs file selection' as qs_source, 'AU' as qs_iso_cc, 'Australia' as qs_a0, state_code as qs_a1_lc, state_name as qs_a1, ssc_name as qs_la, ssc_code as qs_la_lc, name as qs_loc FROM SSC_2011_AUST_custom WHERE locality IN (1,2,3)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs EPSG:4019 aus_localities.shp ../nma/australia/2011_SSC_shape/SSC_2011_AUST_custom.shp ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'AUS' as qs_adm0_a3, 'Australia' as qs_adm0, 'locality1' as qs_level, 'Australian Bureau Of Statistics: state suburbs file with customization' as qs_source, 'AU' as qs_iso_cc, 'Australia' as qs_a0, state_code as qs_a1_lc, state_name as qs_a1, ssc_name as qs_la, ssc_code as qs_la_lc, name as qs_loc FROM SSC_2011_AUST_custom_union_splits WHERE locality_1 IN (10)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs EPSG:4019 aus_localities.shp ../nma/australia/2011_SSC_shape/SSC_2011_AUST_custom_union_splits.shp ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'AUS' as qs_adm0_a3, 'Australia' as qs_adm0, 'locality1' as qs_level, 'Australian Bureau Of Statistics: urban areas and localities selection' as qs_source, 'AU' as qs_iso_cc, 'Australia' as qs_a0, name as qs_loc, ucl_code as qs_loc_lc, adm1_lc as qs_a1_lc, adm1 as qs_a1 FROM UCL06aAUST_region_custom_join WHERE locality IN (1)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs EPSG:4019 aus_localities.shp ../nma/australia/2006_UCL_AUST_ESRI_Shapefile/UCL06aAUST_region_custom_join.shp # NETHERLANDS # This needs to use the files that are in local grid now, they need to be reprojected. #nld_adm1.shp: # ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT naam as qs_a1 FROM 'admin-1_provinces'" nld_adm1.shp ../nma/netherlands/Dutch-admin/admin-1_provinces.shp nld_localadmin.shp: #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT naam as qs_la FROM admin-2_municipalities" nld_localities.shp netherlands/Dutch-admin/admin-2_municipalities.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'NLD' as qs_adm0_a3, 'NL' as qs_iso_cc, 'Netherlands' as qs_adm0, 'Nederland' as qs_a0, 'localadmin' as qs_level, 'NLD Kadaster' as qs_source, gm_naam as qs_la, gm_code as qs_la_lc, 'Gemeenten' as qs_type FROM gem_2009_gen" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +units=m +no_defs" nld_localadmin.shp ../nma/netherlands/Dutch-admin/gem_2009_gen.shp #NETHERLANDS EUROLGLOBALMAP # Slightly better than NMA data # Almost as good as the NMA open data (the NMA data includes exo areas, this doesn't). # NMA has better coastline. nld_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'NLD' as qs_adm0_a3, 'Netherlands' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" nld_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/NL/PolbndA.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1_lc as qs_a1_lc, namefile.DESN as qs_type FROM nld_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" nld_adm0.shp nld_adm0.shp nld_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'NLD' as qs_adm0_a3, 'Netherlands' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM nld_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" nld_adm1.shp nld_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM nld_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" nld_adm1.shp nld_adm1.shp # SPAIN esp_localadmin.shp: esp_adm1.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ESP' as qs_adm0_a3, 'Spain' as qs_adm0, 'localadmin' as qs_level, 'Spain IGN' as qs_source, src.municipio as qs_la, SUBSTR(src.codine,0,2) as qs_a1_lc, src.codine as qs_la_lc, 'ES' as qs_iso_cc, 'Spain' as qs_a0 FROM Poligonos_municipios_ETRS89 src" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs" esp_localadmin.shp ../nma/spain/lineas_limite/ETRS89/Poligonos_municipios_ETRS89.shp # add adm1 names ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT qs_adm0_a3, qs_adm0, qs_level, qs_source, qs_la, qs_a1_lc, namefile.qs_a1 as qs_a1, qs_la_lc, qs_iso_cc, qs_a0 FROM esp_localadmin src LEFT JOIN 'esp_adm1.dbf'.esp_adm1 namefile ON src.qs_a1_lc = namefile.qs_a1_lc" esp_localadmin.shp esp_localadmin.shp esp_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ESP' as qs_adm0_a3, 'Spain' as qs_adm0, 'adm1' as qs_level, 'Spain IGN' as qs_source, nombre as qs_a1, codine as qs_a1_lc, 'ES' as qs_iso_cc, 'Spain' as qs_a0 FROM Poligonos_Provincias_ETRS89" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs" esp_adm1.shp ../nma/spain/lineas_limite/ETRS89/Poligonos_Provincias_ETRS89.shp esp_adm1_region.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ESP' as qs_adm0_a3, 'Spain' as qs_adm0, 'adm1_region' as qs_level, 'Spain IGN' as qs_source, nombre as qs_a1r, 'Comunidad Autónoma' as qs_type, cod_ccaa as qs_a1r_lc, 'ES' as qs_iso_cc, 'Spain' as qs_a0 FROM Poligonos_CCAA_ETRS89" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs" esp_adm1_region.shp ../nma/spain/lineas_limite/ETRS89/Poligonos_CCAA_ETRS89.shp # SPAIN EUROGLOBALMAP # Almost as good as the NMA open data (the NMA data includes exo areas, this doesn't). # NMA has better coastline. esp_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT * FROM PolbndA src WHERE src.ICC IN ('ES')" esp_adm0_tmp.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/ES/PolbndA.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'ESP' as qs_adm0_a3, 'Spain' as qs_adm0, 'adm0' as qs_level, 'ES' as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source, 'Spain' as qs_a0 FROM esp_adm0_tmp src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" esp_adm0.shp esp_adm0_tmp.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, namefile.DESN as qs_type FROM esp_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" esp_adm0.shp esp_adm0.shp rm esp_adm0_tmp.* #esp_adm1_region.shp: # ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1r, namefile.NAMA as qs_a1r_alt, namefile.ISN as qs_type FROM esp_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1r_lc = namefile.SHN" esp_adm1_region.shp esp_adm0.shp #esp_adm1.shp: # ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM esp_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" esp_adm1.shp esp_adm1_region.shp #Gibraltar gib_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT * FROM PolbndA src WHERE src.ICC IN ('GI')" gib_adm0_tmp.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/ES/PolbndA.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'GIB' as qs_adm0_a3, 'Gibraltar' as qs_adm0, 'adm0' as qs_level, 'GI' as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source, 'Gibraltar' as qs_a0 FROM gib_adm0_tmp src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" gib_adm0.shp gib_adm0_tmp.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, namefile.DESN as qs_type FROM gib_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" gib_adm0.shp gib_adm0.shp rm gib_adm0_tmp.* gib_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT qs_adm0_a3, qs_adm0, 'adm1' as qs_level, qs_source, qs_iso_cc, qs_a0, qs_a0_alt, qs_a0_lc FROM gib_adm0" gib_adm1.shp gib_adm0.shp # ITALY ita_localadmin.shp: \ ita_adm1.shp \ ita_adm1_region.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ITA' as qs_adm0_a3, 'Italy' as qs_adm0, 'localadmin' as qs_level, 'Italy IGN' as qs_source, 'IT' as qs_iso_cc, 'Italy' as qs_a0, src.nome_com as qs_la, src.nome_ted as qs_la_alt, src.pro_com as qs_la_lc, namefile.qs_a1 as qs_a1, src.cod_pro as qs_a1_lc, namefile2.qs_a1r as qs_a1r, src.cod_reg as qs_a1r_lc FROM com2011 src LEFT JOIN 'ita_adm1.dbf'.ita_adm1 namefile ON src.cod_pro = namefile.qs_a1_lc LEFT JOIN 'ita_adm1_region.dbf'.ita_adm1_region namefile2 ON src.cod_reg = namefile2.qs_a1r_lc" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=utm +zone=32 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,0,0 +units=m +no_defs" ita_localadmin.shp ../nma/italy/com2011/com2011.shp ita_adm1.shp: ita_adm1_region.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ITA' as qs_adm0_a3, 'Italy' as qs_adm0, 'adm1' as qs_level, 'Italy IGN' as qs_source, 'IT' as qs_iso_cc, 'Italy' as qs_a0, src.nome_pro as qs_a1, src.cod_pro as qs_a1_lc, src.cod_reg as qs_a1r_lc, namefile.qs_a1r as qs_a1r FROM prov2011 src LEFT JOIN 'ita_adm1_region.dbf'.ita_adm1_region namefile ON src.cod_reg = namefile.qs_a1r_lc" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=utm +zone=32 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,0,0 +units=m +no_defs" ita_adm1.shp ../nma/italy/prov2011/prov2011.shp ita_adm1_region.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ITA' as qs_adm0_a3, 'Italy' as qs_adm0, 'adm1_region' as qs_level, 'Italy IGN' as qs_source, 'IT' as qs_iso_cc, 'Italy' as qs_a0, nome_reg as qs_a1r, cod_reg as qs_a1r_lc, 'Regioni' as qs_type FROM reg2011" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=utm +zone=32 +ellps=intl +towgs84=-115.854,-99.0583,-152.462,0,0,0,0 +units=m +no_defs" ita_adm1_region.shp ../nma/italy/reg2011/reg2011.shp # ITALY EUROGLOBALMAP # Almost as good as the NMA open data (the NMA data includes exo areas, this doesn't). # NMA has better coastline. ita_adm0.shp: rm -f ita_adm0_tmp.* ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT * FROM PolbndA src WHERE src.ICC IN ('IT')" ita_adm0_tmp.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/IT/PolbndA.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'ITA' as qs_adm0_a3, 'Italy' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM ita_adm0_tmp src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" ita_adm0.shp ita_adm0_tmp.shp rm -f ita_adm0_tmp.* #ita_adm1_region.shp: # ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1r, namefile.NAMA as qs_a1r_alt, namefile.ISN as qs_type FROM ita_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1r_lc = namefile.SHN" ita_adm1_region.shp ita_adm0.shp #ita_adm1.shp: # ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM ita_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" ita_adm1.shp ita_adm1_region.shp #SAN MARINO smr_adm0.shp: rm -f smr_adm0_tmp.* ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT * FROM PolbndA src WHERE src.ICC IN ('SM')" smr_adm0_tmp.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/IT/PolbndA.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'SMR' as qs_adm0_a3, 'San Marino' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM smr_adm0_tmp src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" smr_adm0.shp smr_adm0_tmp.shp rm -f smr_adm0_tmp.* #VATICAN vat_adm0.shp: rm -f vat_adm0_tmp.* ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT * FROM PolbndA src WHERE src.ICC IN ('VA')" vat_adm0_tmp.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/IT/PolbndA.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'VAT' as qs_adm0_a3, 'Vatican' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM vat_adm0_tmp src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" vat_adm0.shp vat_adm0_tmp.shp rm -f vat_adm0_tmp.* vat_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.adm0_a3 as qs_adm0_a3, src.admin as qs_adm0, 'adm1' as qs_level, src.iso_a2 as qs_iso_cc, src.admin as qs_a0, 'US State Department, with Natural Earth mods' as qs_source FROM us_state_department_countries_ne_hybrid src WHERE src.adm0_a3 in ('vat')" vat_adm1.shp ../us_state_department/final_data/us_state_department_countries_ne_hybrid.shp # FRANCE fra_localadmin.shp: #metropolitan france # --config SHAPE_ENCODING ISO-8859-15 didn't work so manually mod'd to UTF-8 ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'FRA' as qs_adm0_a3, 'FR' as qs_iso_cc, 'France' as qs_adm0, 'France' as qs_a0, 'localadmin' as qs_level, 'France IGN' as qs_source, nom_comm as qs_la, insee_com as qs_la_lc, code_comm as qs_la_lc2, statut as qs_type, code_arr as qs_a2r_lc, code_cant as qs_a2_lc, code_dept as qs_a1_lc, code_reg as qs_a1r_lc, nom_dept as qs_a1, nom_region as qs_a1r FROM COMMUNE" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=lcc +lat_1=44 +lat_2=49 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs" fra_localadmin.shp ../nma/france/GEOFLA_1-1_SHP_LAMB93_FR-ED111/COMMUNES/COMMUNE.SHP # mayotte ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'FRA' as qs_adm0_a3, 'FR' as qs_iso_cc, 'France' as qs_adm0, 'France' as qs_a0, 'localadmin' as qs_level, 'France IGN' as qs_source, nom_comm as qs_la, insee_com as qs_la_lc, code_comm as qs_la_lc2, statut as qs_type, code_arr as qs_a2r_lc, code_cant as qs_a2_lc, code_dept as qs_a1_lc, code_reg as qs_a1r_lc, nom_dept as qs_a1, nom_region as qs_a1r FROM COMMUNE" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=utm +zone=38 +south +ellps=GRS80 +units=m +no_defs" fra_localadmin.shp ../nma/france/GEOFLA_1-1_SHP_RGM04UTM38S_YT-ED111/COMMUNES/COMMUNE.SHP # reunion ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'FRA' as qs_adm0_a3, 'FR' as qs_iso_cc, 'France' as qs_adm0, 'France' as qs_a0, 'localadmin' as qs_level, 'France IGN' as qs_source, nom_comm as qs_la, insee_com as qs_la_lc, code_comm as qs_la_lc2, statut as qs_type, code_arr as qs_a2r_lc, code_cant as qs_a2_lc, code_dept as qs_a1_lc, code_reg as qs_a1r_lc, nom_dept as qs_a1, nom_region as qs_a1r FROM COMMUNE" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs" fra_localadmin.shp ../nma/france/GEOFLA_1-1_SHP_RGR92UTM40S_RE-ED111/COMMUNES/COMMUNE.SHP # Guadeloupe ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'FRA' as qs_adm0_a3, 'FR' as qs_iso_cc, 'France' as qs_adm0, 'France' as qs_a0, 'localadmin' as qs_level, 'France IGN' as qs_source, nom_comm as qs_la, insee_com as qs_la_lc, code_comm as qs_la_lc2, statut as qs_type, code_arr as qs_a2r_lc, code_cant as qs_a2_lc, code_dept as qs_a1_lc, code_reg as qs_a1r_lc, nom_dept as qs_a1, nom_region as qs_a1r FROM COMMUNE" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=utm +zone=20 +datum=WGS84 +units=m +no_defs" fra_localadmin.shp ../nma/france/GEOFLA_1-1_SHP_UTM20W84_GP-ED111/COMMUNES/COMMUNE.SHP # Martinique ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'FRA' as qs_adm0_a3, 'FR' as qs_iso_cc, 'France' as qs_adm0, 'France' as qs_a0, 'localadmin' as qs_level, 'France IGN' as qs_source, nom_comm as qs_la, insee_com as qs_la_lc, code_comm as qs_la_lc2, statut as qs_type, code_arr as qs_a2r_lc, code_cant as qs_a2_lc, code_dept as qs_a1_lc, code_reg as qs_a1r_lc, nom_dept as qs_a1, nom_region as qs_a1r FROM COMMUNE" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=utm +zone=20 +datum=WGS84 +units=m +no_defs" fra_localadmin.shp ../nma/france/GEOFLA_1-1_SHP_UTM20W84_MQ-ED111/COMMUNES/COMMUNE.SHP # (french) Guyane ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'FRA' as qs_adm0_a3, 'FR' as qs_iso_cc, 'France' as qs_adm0, 'France' as qs_a0, 'localadmin' as qs_level, 'France IGN' as qs_source, nom_comm as qs_la, insee_com as qs_la_lc, code_comm as qs_la_lc2, statut as qs_type, code_arr as qs_a2r_lc, code_cant as qs_a2_lc, code_dept as qs_a1_lc, code_reg as qs_a1r_lc, nom_dept as qs_a1, nom_region as qs_a1r FROM COMMUNE" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs" fra_localadmin.shp ../nma/france/GEOFLA_1-1_SHP_UTM22RGFG95_GF-ED111/COMMUNES/COMMUNE.SHP fra_adm2_region.shp: ogr2ogr -overwrite -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -lco ENCODING="UTF-8" -sql "SELECT 'FRA' as qs_adm0_a3, 'FR' as qs_iso_cc, 'France' as qs_adm0, 'France' as qs_a0, 'adm2_region' as qs_level, 'France IGN' as qs_source, nom_chf as qs_a2r, code_arr as qs_a2r_lc, code_dept as qs_a1_lc, code_reg as qs_a1r_lc, nom_dept as qs_a1, nom_region as qs_a1r, 'Arrondissement' as qs_type FROM ARRONDISSEMENT" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=lcc +lat_1=44 +lat_2=49 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs" fra_adm2_region.shp ../nma/france/GEOFLA_1-1_SHP_LAMB93_FR-ED111/ARRONDISSEMENTS/ARRONDISSEMENT.SHP fra_adm2.shp: ogr2ogr -overwrite -f "ESRI Shapefile" --config SHAPE_ENCODING ISO-8859-15 -lco ENCODING="UTF-8" -sql "SELECT 'FRA' as qs_adm0_a3, 'FR' as qs_iso_cc, 'France' as qs_adm0, 'France' as qs_a0, 'adm2' as qs_level, 'France IGN' as qs_source, nom_chf as qs_a2, code_cant as qs_a2_lc, code_chf as qs_a2_lc2, code_arr as qs_a2r_lc, code_dept as qs_a1_lc, code_reg as qs_a1r_lc, nom_dept as qs_a1, nom_region as qs_a1r, 'Canton' as qs_type FROM CANTON" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=lcc +lat_1=44 +lat_2=49 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs" fra_adm2.shp ../nma/france/GEOFLA_1-1_SHP_LAMB93_FR-ED111/CANTONS/CANTON.SHP #fra_adm1.shp: # ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT nom_dept as qs_a1, code_dept as qs_a1_lc, nom_chf as qs_a1_alt, code_chf as qs_a1_lc2, code_reg as qs_a1r_lc, nom_region as qs_a1r FROM DEPARTEMENT" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=lcc +lat_1=44 +lat_2=49 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m +no_defs" fra_adm1.shp ../nma/france/GEOFLA_1-1_SHP_LAMB93_FR-ED111/DEPARTEMENTS/DEPARTEMENT.SHP # FRANCE EUROGLOBALMAP # Better than the NMA open data. fra_adm0.shp: rm -f fra_adm0_tmp.* ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT * FROM PolbndA src WHERE src.ICC IN ('FR')" fra_adm0_tmp.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/FR/PolbndA.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'FRA' as qs_adm0_a3, 'France' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM fra_adm0_tmp src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" fra_adm0.shp fra_adm0_tmp.shp rm -f fra_adm0_tmp.* fra_adm1_region.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'FRA' as qs_adm0_a3, 'France' as qs_adm0, 'adm1_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1r, namefile.NAMA as qs_a1r_alt, namefile.ISN as qs_type FROM fra_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1r_lc = namefile.SHN" fra_adm1_region.shp fra_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, namefile.DESN as qs_type FROM fra_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" fra_adm1_region.shp fra_adm1_region.shp fra_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'FRA' as qs_adm0_a3, 'France' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM fra_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" fra_adm1.shp fra_adm1_region.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM fra_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" fra_adm1.shp fra_adm1.shp # MONACO mco_adm0.shp: rm -f mco_adm0_tmp.* ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT * FROM PolbndA src WHERE src.ICC IN ('MC')" mco_adm0_tmp.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/FR/PolbndA.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'MCO' as qs_adm0_a3, 'Monaco' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM mco_adm0_tmp src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" mco_adm0.shp mco_adm0_tmp.shp rm -f mco_adm0_tmp.* mco_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'MCO' as qs_adm0_a3, 'Monaco' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM mco_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" mco_adm1.shp mco_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM mco_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" mco_adm1.shp mco_adm1.shp # RUSSIA rus_localities.shp: ogr2ogr -overwrite -f "ESRI Shapefile" --config SHAPE_ENCODING UTF-8 -lco ENCODING="UTF-8" -sql "SELECT 'RUS' as qs_adm0_a3, 'Russia' as qs_adm0, 'localadmin' as qs_level, 'Unknown' as qs_source, 'RU' as qs_iso_cc, 'Российская Федерация' as qs_a0, nam as qs_loc, name as qs_loc_alt, code as qs_a1_lc, type as qs_type, subject as qs_a1, rayon as qs_a2 FROM 'pop-built-up-a-gislab'" rus_localities.shp ../nma/russia/population-gislab/pop-built-up-a-gislab.shp rus_adm1.shp: # The src had irreconcilable Windows-1251 encoding that OGR refuses to translate. # Solution: open in OpenOffice and save as OO format (Unicode native), then save as as DBF with explicate UTF-8 encoding. #--config SHAPE_ENCODING "Windows-1251" ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'RUS' as qs_adm0_a3, 'Russia' as qs_adm0, 'adm1' as qs_level, 'Unknown' as qs_source, 'RU' as qs_iso_cc, 'Российская Федерация' as qs_a0, region as qs_a1, universal as qs_a1_alt FROM regions2010_wgs" rus_adm1.shp ../nma/russia/regions2010_wgs_shp/regions2010_wgs.shp rus_adm0.shp: # The src had irreconcilable Windows-1251 encoding that OGR refuses to translate. # Solution: open in OpenOffice and save as OO format (Unicode native), then save as as DBF with explicate UTF-8 encoding. #--config SHAPE_ENCODING "Windows-1251" ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'RUS' as qs_adm0_a3, 'Russia' as qs_adm0, 'adm0' as qs_level, 'Unknown' as qs_source, 'RU' as qs_iso_cc, 'Российская Федерация' as qs_a0 FROM regions2010_wgs" rus_adm0.shp ../nma/russia/regions2010_wgs_shp/regions2010_wgs.shp #dissolve-shapes.py -i rus_adm0.shp -o rus_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0 # MEXICO mex_localities.shp: mex_adm2.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'MEX' as qs_adm0_a3, 'Mexico' as qs_adm0, 'locality' as qs_level, 'Mexico IGN' as qs_source, 'MX' as qs_iso_cc, 'Mexico' as qs_a0, nom_loc as qs_loc, cve_loc as qs_a1_lc, cve_ent + cve_mun as qs_a2_lc, cve_mun as qs_a2_lc2, cve_ent as qs_a1_lc FROM POLIGONOS_URBANOS src" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs" mex_localities.shp ../nma/mexico/LOCURBANAS50/POLIGONOS_URBANOS.shp # add adm1 and adm2 names ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT qs_adm0_a3, qs_adm0, qs_level, qs_source, qs_iso_cc, qs_a0, qs_loc, qs_a1_lc, qs_a2_lc, qs_a2_lc2, qs_a1_lc, namefile.qs_a1 as qs_a1, namefile.qs_a2 as qs_a2 FROM mex_localities src LEFT JOIN 'mex_adm2.dbf'.mex_adm2 namefile ON src.qs_a2_lc = namefile.qs_a2_lc" mex_localities.shp mex_localities.shp mex_adm2.shp: mex_adm1.shp ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'MEX' as qs_adm0_a3, 'Mexico' as qs_adm0, 'adm2' as qs_level, 'Mexico IGN' as qs_source, 'MX' as qs_iso_cc, 'Mexico' as qs_a0, src.nom_mun as qs_a2, src.cve_ent + src.cve_mun as qs_a2_lc, src.cve_mun as qs_a2_lc2, src.cve_ent as qs_a1_lc, namefile.qs_a1 as qs_a1 FROM MUNICIPIOS src LEFT JOIN 'mex_adm1.dbf'.mex_adm1 namefile ON src.cve_ent = namefile.qs_a1_lc" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs" mex_adm2.shp ../nma/mexico/MUNICIPIOS50/MUNICIPIOS.shp mex_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'MEX' as qs_adm0_a3, 'Mexico' as qs_adm0, 'adm1' as qs_level, 'Mexico IGN' as qs_source, 'MX' as qs_iso_cc, 'Mexico' as qs_a0, nom_ent as qs_a1, cve_ent as qs_a1_lc FROM ESTADOS" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs" mex_adm1.shp ../nma/mexico/ESTADOS50/ESTADOS.shp mex_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'MEX' as qs_adm0_a3, 'Mexico' as qs_adm0, 'adm0' as qs_level, 'Mexico IGN' as qs_source, 'MX' as qs_iso_cc, 'Mexico' as qs_a0 FROM ESTADOS" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs" mex_adm0.shp ../nma/mexico/ESTADOS50/ESTADOS.shp #dissolve-shapes.py -i mex_adm0.shp -o mex_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0 # NEW ZEALAND nzl_localities.shp: # New Zealand north and south islands ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'NZL' as qs_adm0_a3, 'New Zealand' as qs_adm0, 'NZ' as qs_iso_cc, 'New Zealand' as qs_a0, 'locality' as qs_level, 'Unknown' as qs_source, name as qs_loc FROM 'nz-residential-areas'" nzl_localities.shp ../nma/new_zealand/kx-nz-residential-areas-SHP/nz-residential-areas.shp nzl_adm2.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'NZL' as qs_adm0_a3, 'New Zealand' as qs_adm0, 'adm2' as qs_level, 'New Zealand LINZ' as qs_source, 'NZ' as qs_iso_cc, 'New Zealand' as qs_a0, name as qs_a2, ta12 as qs_a2_lc FROM 'nz-territorial-authoritie'" nzl_adm2.shp ../nma/new_zealand/kx-nz-territorial-authorities-2012-yearly-pattern-clipped-SHP/nz-territorial-authoritie.shp nzl_adm1.shp: # New Zealand north and south islands ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'NZL' as qs_adm0_a3, 'New Zealand' as qs_adm0, 'adm1' as qs_level, 'New Zealand LINZ' as qs_source, 'NZ' as qs_iso_cc, 'New Zealand' as qs_a0, name as qs_a1, regc12 as qs_a1_lc FROM 'nz-regional-councils-2012'" nzl_adm1.shp ../nma/new_zealand/kx-nz-regional-councils-2012-yearly-pattern-SHP/nz-regional-councils-2012.shp # chatham Islands ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'NZL' as qs_adm0_a3, 'New Zealand' as qs_adm0, 'adm1' as qs_level, 'New Zealand LINZ' as qs_source, 'NZ' as qs_iso_cc, 'New Zealand' as qs_a0, 'Chatham Islands' as qs_a1, regc12 as qs_a1_lc, mb12 as qs_a1_lc2 FROM 'nz-regional-councils-chat'" nzl_adm1.shp ../nma/new_zealand/kx-nz-regional-councils-chatham-islands-2012-yearly-pattern-SHP/nz-regional-councils-chat.shp nzl_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'NZL' as qs_adm0_a3, 'New Zealand' as qs_adm0, 'adm0' as qs_level, 'New Zealand LINZ' as qs_source, 'NZ' as qs_iso_cc, 'New Zealand' as qs_a0 FROM 'nz-territorial-authoritie'" nzl_adm0.shp ../nma/new_zealand/kx-nz-territorial-authorities-2012-yearly-pattern-clipped-SHP/nz-territorial-authoritie.shp #dissolve-shapes.py -i nzl_adm0.shp -o nzl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0 #SWITZERLAND # NOTE: The Swiss open data is better than the EuroGlobalMap, skip adm1 and adm0 from there, dissolve instead from the localadmin here: che_localadmin.shp: # first the cantons with adm-2 divisions # We need to do this explicately as this data is slightly out of date (2 have adm2 marked, but since 2005 and 2007 they don't function) ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'localadmin' as qs_level, 'SwissTopo' as qs_source, 'CH' as qs_iso_cc, 'Switzerland' as qs_a0, kantonsnum as qs_a1_lc, namefile.name as qs_a2, bezirksnum as qs_a2_lc, 'Commune' as qs_type, name as qs_la, bfs_nummer as qs_la_lc2, shn as qs_la_lc FROM TLM_HOHEITSGEBIET src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_BEZIRKSNAME.dbf'.TLM_BEZIRKSNAME namefile ON bezirksnum = namefile.NUMMER WHERE ICC = 'CH' and kantonsnum IN (1,2,5,10,13,17,18,19,20,21,22,23,24,26)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_localadmin_temp.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp #add in Appenzell Innerrhoden canton (it has weird adm2 coding, use bfs_nummer instead of bezirksnum) ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'localadmin' as qs_level, 'SwissTopo' as qs_source, 'CH' as qs_iso_cc, 'Switzerland' as qs_a0, kantonsnum as qs_a1_lc, namefile.name as qs_a2, bezirksnum as qs_a2_lc, 'Bezirke' as qs_type, NULL as qs_la, bfs_nummer as qs_la_lc2, shn as qs_la_lc FROM TLM_HOHEITSGEBIET src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/swiss_names.dbf'.swiss_names namefile ON bfs_nummer = namefile.unique WHERE ICC = 'CH' and kantonsnum IN (16)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_localadmin_temp.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp #add in the unitary cantons (effectively nulling their adm2 data if present) ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'localadmin' as qs_level, 'SwissTopo' as qs_source, 'CH' as qs_iso_cc, 'Switzerland' as qs_a0, kantonsnum as qs_a1_lc, bezirksnum as qs_a2_lc, 'Commune' as qs_type, name as qs_la, bfs_nummer as qs_la_lc, shn as qs_la_lc2 FROM TLM_HOHEITSGEBIET WHERE ICC = 'CH' and kantonsnum IN (3,4,6,7,8,9,11,12,14,15,25)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_localadmin_temp.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp # Now add in the adm1 names ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT qs_adm0_a3, qs_adm0, qs_level, qs_source, qs_iso_cc, qs_a0, qs_a1_lc, qs_a2, qs_a2_lc, qs_type, qs_la, qs_la_lc, qs_la_lc2, namefile.name as qs_a1 FROM che_localadmin_temp src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_KANTONSNAME.dbf'.TLM_KANTONSNAME namefile ON qs_a1_lc = namefile.NUMMER" che_localadmin.shp che_localadmin_temp.shp rm che_localadmin_temp.* # Berzirk (Berzirkes) che_adm2.shp: # first the cantons with adm-2 divisions # We need to do this explicately as this data is slightly out of date (2 have adm2 marked, but since 2005 and 2007 they don't function) ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'adm2' as qs_level, 'SwissTopo' as qs_source, 'CH' as qs_iso_cc, 'Switzerland' as qs_a0, kantonsnum as qs_a1_lc, bezirksnum as qs_a2_lc, 'Bezirke' as qs_type, namefile.name as qs_a2 FROM TLM_HOHEITSGEBIET src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_BEZIRKSNAME.dbf'.TLM_BEZIRKSNAME namefile ON src.bezirksnum = namefile.NUMMER WHERE ICC = 'CH' and kantonsnum IN (1,2,5,10,13,17,18,19,20,21,22,23,24,26)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_adm2_temp.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp #add in Appenzell Innerrhoden canton (it has weird adm2 coding, use bfs_nummer instead of bezirksnum) ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'adm2' as qs_level, 'SwissTopo' as qs_source, 'CH' as qs_iso_cc, 'Switzerland' as qs_a0, kantonsnum as qs_a1_lc, bfs_nummer as qs_a2_lc, 'Bezirke' as qs_type, namefile.name as qs_a2 FROM TLM_HOHEITSGEBIET src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/swiss_names.dbf'.swiss_names namefile ON src.bfs_nummer = namefile.unique WHERE ICC = 'CH' and kantonsnum IN (16)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_adm2_temp.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp #add in the unitary cantons (effectively nulling their adm2 data if present) ogr2ogr -append -f "ESRI Shapefile" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'adm2' as qs_level, 'SwissTopo' as qs_source, 'CH' as qs_iso_cc, 'Switzerland' as qs_a0, kantonsnum as qs_a1_lc, 'bezirkefreie Canton' as qs_type FROM TLM_HOHEITSGEBIET WHERE ICC = 'CH' and kantonsnum IN (3,4,6,7,8,9,11,12,14,15,25)" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_adm2_temp.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp # Now add in the adm2 names #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT qs_adm0_a3, qs_adm0, qs_level, qs_source, qs_iso_cc, qs_a0, qs_a1_lc, qs_a2_lc, qs_type, namefile.name as qs_a2 FROM che_adm2_temp src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/swiss_names.dbf'.swiss_names namefile ON qs_a2_lc = namefile.unique" che_adm2_temp2.shp che_adm2_temp.shp # Now add in the adm1 names ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT qs_adm0_a3, qs_adm0, qs_level, qs_source, qs_iso_cc, qs_a0, qs_a1_lc, qs_a2, qs_a2_lc, qs_type, namefile.name as qs_a1 FROM che_adm2_temp src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_KANTONSNAME.dbf'.TLM_KANTONSNAME namefile ON qs_a1_lc = namefile.NUMMER" che_adm2.shp che_adm2_temp.shp rm -rf che_adm2_temp.* rm -rf che_adm2_temp2.* che_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'adm1' as qs_level, 'SwissTopo' as qs_source, 'CH' as qs_iso_cc, 'Switzerland' as qs_a0, 'Canton' as qs_type, kantonsnum as qs_a1_lc, namefile.UUID as qs_a1 FROM TLM_HOHEITSGEBIET src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_KANTONSNAME.dbf'.TLM_KANTONSNAME namefile ON src.kantonsnum = namefile.UUID WHERE ICC = 'CH'" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_adm1.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp # Old method #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'adm1' as qs_level, 'SwissTopo' as qs_source, 'CH' as qs_iso_cc, 'Switzerland' as qs_a0, 'Canton' as qs_type, kantonsnum as qs_a1_lc, namefile.name as qs_a1 FROM TLM_HOHEITSGEBIET src LEFT JOIN '../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/swiss_names.dbf'.swiss_names namefile ON src.kantonsnum = namefile.unique WHERE ICC = 'CH'" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_adm1.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp #dissolve-shapes.py -i che_adm1.shp -o che_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a1_lc che_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'CHE' as qs_adm0_a3, 'Switzerland' as qs_adm0, 'adm0' as qs_level, 'CH' as qs_iso_cc, 'SwissTopo' as qs_source, 'Switzerland' as qs_a0 FROM TLM_HOHEITSGEBIET WHERE ICC = 'CH'" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" che_adm0.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp #LIECHTENSTEIN lie_localadmin.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'LIE' as qs_adm0_a3, 'Liechtenstein' as qs_adm0, 'localadmin' as qs_level, 'SwissTopo' as qs_source, name as qs_la, 'LI' as qs_iso_cc, 'Liechtenstein' as qs_a0, bfs_nummer as qs_la_lc, shn as qs_la_lc2, kantonsnum as qs_a1_lc FROM TLM_HOHEITSGEBIET WHERE ICC = 'LI'" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" lie_localadmin.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp lie_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'LIE' as qs_adm0_a3, 'Liechtenstein' as qs_adm0, 'adm1' as qs_level, 'SwissTopo' as qs_source, 'LI' as qs_iso_cc, 'Liechtenstein' as qs_a0, kantonsnum as qs_a1_lc FROM TLM_HOHEITSGEBIET WHERE ICC = 'LI'" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" lie_adm1.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp lie_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'LIE' as qs_adm0_a3, 'Liechtenstein' as qs_adm0, 'adm0' as qs_level, 'LI' as qs_iso_cc, 'SwissTopo' as qs_source, 'Liechtenstein' as qs_a0 FROM TLM_HOHEITSGEBIET WHERE ICC = 'LI'" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -s_srs "+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs" lie_adm0.shp ../nma/switzerland/swissBOUNDARIES3D080312/Boundaries_2012/swissBOUNDARIES3D/SHAPEFILE_LV95_LN02/TLM_HOHEITSGEBIET.shp # EUROPEAN UNION eu_localities.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_a0 as qs_adm0, 'locality' as qs_level, 'Custom EuroGlobalMap + UMZ Urban Polygons + Geonames + GeoPlanet' as qs_source, src.qs_name as qs_loc, src.qs_name2 as qs_loc_alt, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2r as qs_a2r, src.qs_a2_lc as qs_a2_lc, src.qs_a2 as qs_a2, src.qs_la_lc as qs_la_lc, src.qs_la as qs_la, src.qs_a0_alt as qs_a0_alt, src.qs_a1_alt as qs_a1_alt, src.qs_a2_alt as qs_a2_alt, src.qs_type as qs_type, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.woe_id as qs_woe_id, src.gn_id as qs_gn_id, src.qs_pop as qs_pop FROM umz_combo204_admins src" eu_localities.shp ../europe_localities/umz_combo204_admins.shp # WHERE qs_iso_cc NOT IN ('gb','tr') #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'EE' as qs_adm0_a3, 'Europe' as qs_adm0, 'locality' as qs_level, 'EuroGlobalMap' as qs_source, icc as qs_iso_cc, nama1 as qs_loc, namn1 as qs_loc_alt, gfid as qs_loc_lc, ppl as qs_pop FROM BuiltupA" eu_localities.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/BuiltupA.shp # This is the separate urban areas that are funky #ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'EE' as qs_adm0_a3, 'Europe' as qs_adm0, 'locality' as qs_level, comm_name as qs_loc, umz06_id as qs_a1_lc, comm_id as qs_a1_lc1, cntr_code as qs_a0_lc, nuts_code as qs_nuts FROM UMZ2006_geo_names" eu_localities.shp ../nma/00_eu_nuts/UMZ2006_f3v0_vector/UMZ2006_geo_names.shp # INDONESIA idn_adm2.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'IDN' as qs_adm0_a3, 'Indonesia' as qs_adm0, 'adm2' as qs_level, 'GlobalMap' as qs_source, 'ID' as qs_iso_cc, 'Indonesia' as qs_a0, laa as qs_a2, nam as qs_a1, f_code_des as qs_type, coc as qs_a0_lc FROM polbnda" idn_adm2.shp ../global_map/a_core_priority/indonesia/polbnda.shp #dissolve-shapes.py -i idn_adm2.shp -o idn_adm2_test.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a1,qs_a0_lc,qs_a1,qs_a2,qs_type idn_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'IDN' as qs_adm0_a3, 'Indonesia' as qs_adm0, 'adm1' as qs_level, 'GlobalMap' as qs_source, 'ID' as qs_iso_cc, 'Indonesia' as qs_a0, nam as qs_a1, coc as qs_a0_lc FROM polbnda" idn_adm1.shp ../global_map/a_core_priority/indonesia/polbnda.shp #dissolve-shapes.py -i idn_adm1.shp -o idn_adm2_test.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a0_lc,qs_a1 idn_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'IDN' as qs_adm0_a3, 'Indonesia' as qs_adm0, 'adm0' as qs_level, 'GlobalMap' as qs_source, 'ID' as qs_iso_cc, 'Indonesia' as qs_a0 FROM polbnda" idn_adm0.shp ../global_map/a_core_priority/indonesia/polbnda.shp #dissolve-shapes.py -i idn_adm0.shp -o idn_adm0_test.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a0_lc # CHILE chl_localities.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -spat -118.184399 -14.007111 -60.024335 -58.652802 -sql "SELECT 'CHL' as qs_adm0_a3, 'Chile' as qs_adm0, 'locality' as qs_level, 'GlobalMap' as qs_source, 'CL' as qs_iso_cc, 'Chile' as qs_a0, nam as qs_loc, f_code_des as qs_type, soc as qs_a0_lc FROM builtupa" chl_localities.shp ../global_map/b_core_priority/chl/builtupa.shp chl_adm2.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -spat -118.184399 -14.007111 -60.024335 -58.652802 -sql "SELECT 'CHL' as qs_adm0_a3, 'Chile' as qs_adm0, 'adm2' as qs_level, 'GlobalMap' as qs_source, 'CL' as qs_iso_cc, 'Chile' as qs_a0, laa as qs_a2, nam as qs_a1, f_code_des as qs_type FROM polbnda" chl_adm2.shp ../global_map/b_core_priority/chl/polbnda.shp chl_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -spat -118.184399 -14.007111 -60.024335 -58.652802 -sql "SELECT 'CHL' as qs_adm0_a3, 'Chile' as qs_adm0, 'adm1' as qs_level, 'GlobalMap' as qs_source, 'CL' as qs_iso_cc, 'Chile' as qs_a0, nam as qs_a1, coc as qs_a0_lc FROM polbnda" chl_adm1.shp ../global_map/b_core_priority/chl/polbnda.shp #dissolve-shapes.py -i chl_adm1.shp -o chl_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a1,qs_a0_lc chl_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -spat -118.184399 -14.007111 -60.024335 -58.652802 -sql "SELECT 'CHL' as qs_adm0_a3, 'Chile' as qs_adm0, 'adm0' as qs_level, 'GlobalMap' as qs_source, 'CL' as qs_iso_cc, 'Chile' as qs_a0, coc as qs_a0_lc FROM polbnda" chl_adm0.shp ../global_map/b_core_priority/chl/polbnda.shp #dissolve-shapes.py -i chl_adm0.shp -o chl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a0_lc # PALESTINE pse_localities.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'PSE' as qs_adm0_a3, 'Palestine' as qs_adm0, 'locality' as qs_level, 'GlobalMap' as qs_source, 'PS' as qs_iso_cc, 'Palestine' as qs_a0, nam as qs_loc, f_code_des as qs_type, soc as qs_a0_lc FROM builtupa" pse_localities.shp ../global_map/b_core_priority/pse/builtupa.shp pse_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'PSE' as qs_adm0_a3, 'Palestine' as qs_adm0, 'adm1' as qs_level, 'GlobalMap' as qs_source, 'PS' as qs_iso_cc, 'Palestine' as qs_a0, laa as qs_a1, nam as qs_a1, f_code_des as qs_type, coc as qs_a0_lc FROM polbnda" pse_adm1.shp ../global_map/b_core_priority/pse/polbnda.shp pse_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'PSE' as qs_adm0_a3, 'Palestine' as qs_adm0, 'adm0' as qs_level, 'GlobalMap' as qs_source, 'PS' as qs_iso_cc, 'Palestine' as qs_a0, coc as qs_a0_lc FROM polbnda" pse_adm0.shp ../global_map/b_core_priority/pse/polbnda.shp #dissolve-shapes.py -i pse_adm0.shp -o pse_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a0_lc # SOUTH AFRICA zaf_localities.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ZAF' as qs_adm0_a3, 'South Africa' as qs_adm0, 'locality' as qs_level, 'GlobalMap' as qs_source, nam as qs_loc, f_code_des as qs_type, soc as qs_a0_lc, 'ZA' as qs_iso_cc, 'South Africa' as qs_a0 FROM builtupa" zaf_localities.shp ../global_map/b_core_priority/zaf/zaf_1_0/builtupa.shp zaf_adm2.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ZAF' as qs_adm0_a3, 'South Africa' as qs_adm0, 'adm2' as qs_level, 'GlobalMap' as qs_source, laa as qs_a2, nam as qs_a1, f_code_des as qs_type, coc as qs_a0_lc, 'ZA' as qs_iso_cc, 'South Africa' as qs_a0 FROM polbnda" zaf_adm2.shp ../global_map/b_core_priority/zaf/zaf_1_0/polbnda.shp zaf_adm1.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ZAF' as qs_adm0_a3, 'South Africa' as qs_adm0, 'adm1' as qs_level, 'GlobalMap' as qs_source, 'ZA' as qs_iso_cc, 'South Africa' as qs_a0, nam as qs_a1, coc as qs_a0_lc FROM polbnda" zaf_adm1.shp ../global_map/b_core_priority/zaf/zaf_1_0/polbnda.shp #dissolve-shapes.py -i zaf_adm1.shp -o zaf_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a1,qs_a0_lc zaf_adm0.shp: ogr2ogr -overwrite -f "ESRI Shapefile" -lco ENCODING="UTF-8" -sql "SELECT 'ZAF' as qs_adm0_a3, 'South Africa' as qs_adm0, 'adm0' as qs_level, 'GlobalMap' as qs_source, coc as qs_a0_lc, 'ZA' as qs_iso_cc, 'South Africa' as qs_a0 FROM polbnda" zaf_adm0.shp ../global_map/b_core_priority/zaf/zaf_1_0/polbnda.shp #dissolve-shapes.py -i zaf_adm1.shp -o zaf_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a0_lc #GERMANY #No NMA open data available. deu_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'DEU' as qs_adm0_a3, 'Germany' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, src.SHN2 as qs_a2r_lc, src.SHN3 as qs_a2_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" deu_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/DE/PolbndA.shp deu_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'DEU' as qs_adm0_a3, 'Germany' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM deu_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" deu_adm1.shp deu_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM deu_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" deu_adm1.shp deu_adm1.shp deu_adm2_region.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT * FROM deu_adm1 src WHERE qs_a2r_lc NOT IN ('N_A') AND qs_a1_lc NOT IN ('DE140000000000')" deu_adm2_region.shp deu_adm1.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'DEU' as qs_adm0_a3, 'Germany' as qs_adm0, 'adm2_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.NAMN as qs_a2r, namefile.NAMA as qs_a2r_alt, namefile.ISN as qs_type FROM deu_adm2_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2r_lc = namefile.SHN" deu_adm2_region.shp deu_adm2_region.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2r as qs_a2r, src.qs_a2r_alt as qs_a2r_alt, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM deu_adm2_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" deu_adm2_region.shp deu_adm2_region.shp deu_adm2.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'DEU' as qs_adm0_a3, 'Germany' as qs_adm0, 'adm2_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.NAMN as qs_a2r, namefile.NAMA as qs_a2r_alt, namefile.ISN as qs_type FROM deu_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2r_lc = namefile.SHN WHERE src.qs_a1_lc NOT IN ('DE140000000000')" deu_adm2.shp deu_adm1.shp # Add in nulled qs_a2_lc from Sachsen (qs_a2r was dissolved in 2012) ogr2ogr -f "ESRI Shapefile" -append -sql "SELECT 'DEU' as qs_adm0_a3, 'Germany' as qs_adm0, 'adm2_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, 'N_A' as qs_a2r_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt FROM deu_adm1 src WHERE src.qs_a1_lc IN ('DE140000000000')" deu_adm2.shp deu_adm1.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2r as qs_a2r, src.qs_a2r_alt as qs_a2r_alt, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM deu_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" deu_adm2.shp deu_adm2.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'DEU' as qs_adm0_a3, 'Germany' as qs_adm0, 'adm2' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2r as qs_a2r, src.qs_a2r_alt as qs_a2r_alt, namefile.NAMN as qs_a2, namefile.NAMA as qs_a2_alt, namefile.ISN as qs_type FROM deu_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2_lc = namefile.SHN" deu_adm2.shp deu_adm2.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2r_lc as qs_a2r_lc, src.qs_a2r as qs_a2r, src.qs_a2r_alt as qs_a2r_alt, src.qs_a2_lc as qs_a2_lc, src.qs_a2 as qs_a2, src.qs_a2_alt as qs_a2_alt,namefile.DESN as qs_type FROM deu_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" deu_adm2.shp deu_adm2.shp #FINLAND #No NMA data researched fin_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'FIN' as qs_adm0_a3, 'Finland' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN WHERE src.SHN2 != 'FI721000'" fin_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/FI/PolbndA.shp fin_adm1_region.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'FIN' as qs_adm0_a3, 'Finland' as qs_adm0, 'adm1_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1r, namefile.NAMA as qs_a1r_alt, namefile.ISN as qs_type FROM fin_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1r_lc = namefile.SHN WHERE src.qs_a1_lc != 'FI721000'" fin_adm1_region.shp fin_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.DESN as qs_type FROM fin_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" fin_adm1_region.shp fin_adm1_region.shp fin_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'FIN' as qs_adm0_a3, 'Finland' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM fin_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN WHERE src.qs_a1_lc != 'FI721000'" fin_adm1.shp fin_adm1_region.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM fin_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" fin_adm1.shp fin_adm1.shp #ALAND #No NMA data researched ald_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'ALD' as qs_adm0_a3, 'Aland' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, 'Aland' as qs_a0, src.SHN2 as qs_a0_lc, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN2 = namefile.SHN WHERE src.SHN2 = 'FI721000'" ald_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/FI/PolbndA.shp #HUNGARY #No NMA data researched # Different than Natural Earth for adm-1 in the separate towns are not broken out hun_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'HUN' as qs_adm0_a3, 'Hungary' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" hun_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/HU/PolbndA.shp hun_adm1_region.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'HUN' as qs_adm0_a3, 'Hungary' as qs_adm0, 'adm1_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1r, namefile.NAMA as qs_a1r_alt, namefile.ISN as qs_type FROM hun_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1r_lc = namefile.SHN" hun_adm1_region.shp hun_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, namefile.DESN as qs_type FROM hun_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" hun_adm1_region.shp hun_adm1_region.shp hun_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'HUN' as qs_adm0_a3, 'Hungary' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM hun_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" hun_adm1.shp hun_adm1_region.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM hun_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" hun_adm1.shp hun_adm1.shp #DENMARK #No NMA data researched dnk_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -spat 4.7 59.7 16.8 52.8 -sql "SELECT 'DNK' as qs_adm0_a3, 'Denmark' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" dnk_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/DK/PolbndA.shp dnk_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'DNK' as qs_adm0_a3, 'Denmark' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM dnk_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" dnk_adm1.shp dnk_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM dnk_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" dnk_adm1.shp dnk_adm1.shp #GREENLAND #No NMA data researched grl_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -spat -77.508217 90.409735 -8.5 49.443491 -sql "SELECT 'GRL' as qs_adm0_a3, 'Greenland' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" grl_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/DK/PolbndA.shp grl_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'GRL' as qs_adm0_a3, 'Greenland' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM grl_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" grl_adm1.shp grl_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM grl_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" grl_adm1.shp grl_adm1.shp #FAROE ISLANDS #No NMA data researched fro_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -spat -8.5 63 -5.5 60 -sql "SELECT 'FRO' as qs_adm0_a3, 'Faroe Islands' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" fro_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/DK/PolbndA.shp #NORWAY #No NMA data researched nor_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'NOR' as qs_adm0_a3, 'Norway' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" nor_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/NO/PolbndA.shp nor_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'NOR' as qs_adm0_a3, 'Norway' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM nor_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" nor_adm1.shp nor_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM nor_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" nor_adm1.shp nor_adm1.shp #SWEDEN #No NMA data researched swe_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'SWE' as qs_adm0_a3, 'Sweden' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" swe_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/SE/PolbndA.shp swe_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'SWE' as qs_adm0_a3, 'Sweden' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM swe_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" swe_adm1.shp swe_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM swe_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" swe_adm1.shp swe_adm1.shp #ESTONIA #No NMA data researched est_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'EST' as qs_adm0_a3, 'Estonia' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" est_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/EE/PolbndA.shp est_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'EST' as qs_adm0_a3, 'Estonia' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM est_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" est_adm1.shp est_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM est_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" est_adm1.shp est_adm1.shp #LATVIA #No NMA data researched lva_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'LVA' as qs_adm0_a3, 'Latvia' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" lva_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/LV/PolbndA.shp lva_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'LVA' as qs_adm0_a3, 'Latvia' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM lva_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" lva_adm1.shp lva_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM lva_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" lva_adm1.shp lva_adm1.shp #ROMANIA #No NMA data researched rou_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'ROU' as qs_adm0_a3, 'Romania' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" rou_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/RO/PolbndA.shp rou_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'ROU' as qs_adm0_a3, 'Romania' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM rou_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" rou_adm1.shp rou_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM rou_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" rou_adm1.shp rou_adm1.shp #IRELAND #No NMA data researched irl_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'IRL' as qs_adm0_a3, 'Ireland' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" irl_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/IE/PolbndA.shp irl_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'IRL' as qs_adm0_a3, 'Ireland' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM irl_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" irl_adm1.shp irl_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM irl_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" irl_adm1.shp irl_adm1.shp #CROATIA #No NMA data researched hrv_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'HRV' as qs_adm0_a3, 'Croatia' as qs_adm0, 'adm0' as qs_level, 'HR' as qs_iso_cc, 'Croatia' as qs_a0, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" hrv_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/HR/PolbndA.shp hrv_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'HRV' as qs_adm0_a3, 'Croatia' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, 'Croatia' as qs_a0, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM hrv_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" hrv_adm1.shp hrv_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, 'Croatia' as qs_a0, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM hrv_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" hrv_adm1.shp hrv_adm1.shp #MOLDOVA #No NMA data researched mda_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'MDA' as qs_adm0_a3, 'Moldova' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" mda_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/MD/PolbndA.shp mda_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'MDA' as qs_adm0_a3, 'Moldova' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM mda_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" mda_adm1.shp mda_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM mda_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" mda_adm1.shp mda_adm1.shp #CZECH REPUBLIC #No NMA data researched cze_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'CZE' as qs_adm0_a3, 'Czech Republic' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" cze_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/CZ/PolbndA.shp cze_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'CZE' as qs_adm0_a3, 'Czech Republic' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM cze_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" cze_adm1.shp cze_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM cze_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" cze_adm1.shp cze_adm1.shp #MALTA #No NMA data researched mlt_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'MLT' as qs_adm0_a3, 'Malta' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" mlt_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/MT/PolbndA.shp mlt_adm1.shp: mlt_adm0.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'MLT' as qs_adm0_a3, 'Malta' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM mlt_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" mlt_adm1.shp mlt_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM mlt_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" mlt_adm1.shp mlt_adm1.shp #POLAND #No NMA data researched pol_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'POL' as qs_adm0_a3, 'Poland' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, src.SHN2 as qs_a2_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" pol_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/PL/PolbndA.shp pol_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'POL' as qs_adm0_a3, 'Poland' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source,src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM pol_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" pol_adm1.shp pol_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM pol_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" pol_adm1.shp pol_adm1.shp pol_adm2.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'POL' as qs_adm0_a3, 'Poland' as qs_adm0, 'adm2' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.NAMN as qs_a2, namefile.NAMA as qs_a2_alt, namefile.ISN as qs_type FROM pol_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2_lc = namefile.SHN" pol_adm2.shp pol_adm1.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, src.qs_a2 as qs_a2, src.qs_a2_alt as qs_a2_alt, namefile.DESN as qs_type FROM pol_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" pol_adm2.shp pol_adm2.shp #AUSTRIA #No NMA data researched aut_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'AUT' as qs_adm0_a3, 'Austria' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, src.SHN2 as qs_a2_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" aut_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/AT/PolbndA.shp aut_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'AUT' as qs_adm0_a3, 'Austria' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM aut_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" aut_adm1.shp aut_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM aut_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" aut_adm1.shp aut_adm1.shp aut_adm2.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'AUT' as qs_adm0_a3, 'Austria' as qs_adm0, 'adm2' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.NAMN as qs_a2, namefile.NAMA as qs_a2_alt, namefile.ISN as qs_type FROM aut_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2_lc = namefile.SHN" aut_adm2.shp aut_adm1.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, src.qs_a2 as qs_a2, src.qs_a2_alt as qs_a2_alt, namefile.DESN as qs_type FROM aut_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" aut_adm2.shp aut_adm2.shp #SLOVAKIA #No NMA data researched svk_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'SVK' as qs_adm0_a3, 'Slovakia' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, src.SHN2 as qs_a2_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" svk_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/SK/PolbndA.shp svk_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'SVK' as qs_adm0_a3, 'Slovakia' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM svk_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" svk_adm1.shp svk_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM svk_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" svk_adm1.shp svk_adm1.shp svk_adm2.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'SVK' as qs_adm0_a3, 'Slovakia' as qs_adm0, 'adm2' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.NAMN as qs_a2, namefile.NAMA as qs_a2_alt, namefile.ISN as qs_type FROM svk_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2_lc = namefile.SHN" svk_adm2.shp svk_adm1.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, src.qs_a2 as qs_a2, src.qs_a2_alt as qs_a2_alt, namefile.DESN as qs_type FROM svk_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" svk_adm2.shp svk_adm2.shp #LITHUANIA #No NMA data researched ltu_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'LTU' as qs_adm0_a3, 'Lithuania' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, src.SHN2 as qs_a2_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" ltu_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/LT/PolbndA.shp ltu_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'LTU' as qs_adm0_a3, 'Lithuania' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM ltu_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" ltu_adm1.shp ltu_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM ltu_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" ltu_adm1.shp ltu_adm1.shp ltu_adm2.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'LTU' as qs_adm0_a3, 'Lithuania' as qs_adm0, 'adm2' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.NAMN as qs_a2, namefile.NAMA as qs_a2_alt, namefile.ISN as qs_type FROM ltu_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2_lc = namefile.SHN" ltu_adm2.shp ltu_adm1.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, src.qs_a2 as qs_a2, src.qs_a2_alt as qs_a2_alt, namefile.DESN as qs_type FROM ltu_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" ltu_adm2.shp ltu_adm2.shp #UKRAINE #No NMA data researched ukr_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'UKR' as qs_adm0_a3, 'Ukraine' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, src.SHN2 as qs_a2_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" ukr_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/UA/PolbndA.shp ukr_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'UKR' as qs_adm0_a3, 'Ukraine' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM ukr_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" ukr_adm1.shp ukr_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM ukr_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" ukr_adm1.shp ukr_adm1.shp ukr_adm2.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'UKR' as qs_adm0_a3, 'Ukraine' as qs_adm0, 'adm2' as qs_level, src.qs_source as qs_source, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.NAMN as qs_a2, namefile.NAMA as qs_a2_alt, namefile.ISN as qs_type FROM ukr_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2_lc = namefile.SHN" ukr_adm2.shp ukr_adm1.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, src.qs_a2 as qs_a2, src.qs_a2_alt as qs_a2_alt, namefile.DESN as qs_type FROM ukr_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" ukr_adm2.shp ukr_adm2.shp #GREECE #No NMA data researched # The 13+1 regions are shown, but the EuroGlobalMap data has a division between region and municipality that doesn't make sense. Holdover from pre-2011 reform? # !!! Character encoding issues grc_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'GRC' as qs_adm0_a3, 'Greece' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, 'Ελλάδα' as qs_a0, 'Elláda' as qs_a0_alt, 'XWRA' as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src" grc_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/GR/PolbndA.shp grc_adm1.shp: grc_adm0.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'GRC' as qs_adm0_a3, 'Greece' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM grc_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" grc_adm1.shp grc_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM grc_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" grc_adm1.shp grc_adm1.shp #BULGARIA #No NMA data researched # !!! Character encoding issues bgr_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'BGR' as qs_adm0_a3, 'Bulgaria' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" bgr_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/BG/PolbndA.shp bgr_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'BGR' as qs_adm0_a3, 'Bulgaria' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM bgr_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" bgr_adm1.shp bgr_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM bgr_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" bgr_adm1.shp bgr_adm1.shp #CYPRUS #No NMA data researched # !!! Character encoding issues # !!! Mismatch on Natural Earth adm-1 cyp_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'CYP' as qs_adm0_a3, 'Cyprus' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" cyp_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/CY/PolbndA.shp cyp_adm1.shp: cyp_adm0_tmp.shp ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'CYP' as qs_adm0_a3, 'Cyprus' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM cyp_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" cyp_adm1.shp cyp_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM cyp_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" cyp_adm1.shp cyp_adm1.shp #SPECIAL #SERBIA #Serbia - two regions #Kosovo needs to be split off # !! Something stupid is happening between 3 and 4. They should really be combined? srb_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'SRB' as qs_adm0_a3, 'Serbia' as qs_adm0, 'adm0' as qs_level, 'RS' as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN WHERE src.SHN1 != 'RS2000000'" srb_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/RS/PolbndA.shp srb_adm1_region.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'SRB' as qs_adm0_a3, 'Serbia' as qs_adm0, 'adm1_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1r, namefile.NAMA as qs_a1r_alt, namefile.ISN as qs_type FROM srb_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1r_lc = namefile.SHN" srb_adm1_region.shp srb_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, namefile.DESN as qs_type FROM srb_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" srb_adm1_region.shp srb_adm1_region.shp srb_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'SRB' as qs_adm0_a3, 'Serbia' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM srb_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" srb_adm1.shp srb_adm1_region.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM srb_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" srb_adm1.shp srb_adm1.shp #KOSOVO # Looks to be pre redo of adm-1 (still Serb view) kos_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'KOS' as qs_adm0_a3, 'Kosovo' as qs_adm0, 'adm0' as qs_level, 'EuroGlobalMap' as qs_source, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN WHERE src.SHN1 = 'RS2000000'" kos_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/RS/PolbndA.shp #BELGIUM # NMA open data not investigated #Belgium - 3 regions #0 is a0 #1 is a1r #2 is a1 #3 is a2 bel_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'BEL' as qs_adm0_a3, 'Belgium' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN1 as qs_a1r_lc, src.SHN2 as qs_a1_lc, src.SHN3 as qs_a2_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" bel_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/BE/PolbndA.shp bel_adm1_region.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'BEL' as qs_adm0_a3, 'Belgium' as qs_adm0, 'adm1_region' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1r, namefile.NAMA as qs_a1r_alt, namefile.ISN as qs_type FROM bel_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1r_lc = namefile.SHN" bel_adm1_region.shp bel_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM bel_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" bel_adm1_region.shp bel_adm1_region.shp bel_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'BEL' as qs_adm0_a3, 'Belgium' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM bel_adm1_region src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" bel_adm1.shp bel_adm1_region.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, namefile.DESN as qs_type FROM bel_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" bel_adm1.shp bel_adm1.shp bel_adm2.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'BEL' as qs_adm0_a3, 'Belgium' as qs_adm0, 'adm2' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a2_lc as qs_a2_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.NAMN as qs_a2, namefile.NAMA as qs_a2_alt, namefile.ISN as qs_type FROM bel_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a2_lc = namefile.SHN" bel_adm2.shp bel_adm1.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1r_lc as qs_a1r_lc, src.qs_a1r as qs_a1r, src.qs_a1r_alt as qs_a1r_alt, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, src.qs_a2_lc as qs_a2_lc, src.qs_a2 as qs_a2, src.qs_a2_alt as qs_a2_alt, namefile.DESN as qs_type FROM bel_adm2 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" bel_adm2.shp bel_adm2.shp #PORTUGAL # NMA open data not investigated # !! Portugal needs sh2 mapped as adm1; there should be regions but those aren't coded in the EuroGlobalMap prt_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'PRT' as qs_adm0_a3, 'Portugal' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, src.SHN2 as qs_a1_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" prt_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/PT/PolbndA.shp prt_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'PRT' as qs_adm0_a3, 'Portugal' as qs_adm0, 'adm1' as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, namefile.NAMN as qs_a1, namefile.NAMA as qs_a1_alt, namefile.ISN as qs_type FROM prt_adm0 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.qs_a1_lc = namefile.SHN" prt_adm1.shp prt_adm0.shp # add in the qs_type ogr2ogr -f "Esri Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.qs_adm0_a3 as qs_adm0_a3, src.qs_adm0 as qs_adm0, src.qs_level as qs_level, src.qs_source as qs_source, src.qs_iso_cc as qs_iso_cc, src.qs_a0 as qs_a0, src.qs_a0_alt as qs_a0_alt, src.qs_a0_lc as qs_a0_lc, src.qs_a1_lc as qs_a1_lc, src.qs_a1 as qs_a1, src.qs_a1_alt as qs_a1_alt, namefile.DESN as qs_type FROM prt_adm1 src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_ISN.dbf'.EBM_ISN namefile ON src.qs_type = namefile.ISN" prt_adm1.shp prt_adm1.shp #GEORGIA geo_adm0.shp: # GE Georgia geo ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'GEO' as qs_adm0_a3, 'Georgia' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" geo_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/GE/PolbndA.shp # LUXEMBOURG lux_adm0.shp: # LU Luxembourg lux ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'LUX' as qs_adm0_a3, 'Luxembourg' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" lux_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/LU/PolbndA.shp # ICELAND # EuroGlobalMap is out of date per adm-1 isl_adm0.shp: # IS Iceland isl ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'ISL' as qs_adm0_a3, 'Iceland' as qs_adm0, 'adm0' as qs_level, src.ICC as qs_iso_cc, src.SHN0 as qs_a0_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" isl_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/IS/PolbndA.shp # SLOVENIA svn_adm0.shp: # SI Slovenia svn ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -s_srs EPSG:4019 -t_srs EPSG:4326 -sql "SELECT 'SVN' as qs_adm0_a3, 'Slovenia' as qs_adm0, 'adm0' as qs_level, 'SI' as qs_iso_cc, src.SHN0 as qs_a0_lc, namefile.NAMN as qs_a0, namefile.NAMA as qs_a0_alt, namefile.ISN as qs_type, 'EuroGlobalMap' as qs_source FROM PolbndA src LEFT JOIN '../nma/global_map/EGM_5-1SHP_20120704/DATA/Full_Europe/EBM_NAM.dbf'.EBM_NAM namefile ON src.SHN0 = namefile.SHN" svn_adm0.shp ../nma/global_map/EGM_5-1SHP_20120704/DATA/Countries/SI/PolbndA.shp ne_adm1.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.adm0_a3 as qs_adm0_a3, src.admin as qs_adm0, 'adm1' as qs_level, src.iso_a2 as qs_iso_cc, src.iso_a2 as qs_a0_lc, src.admin as qs_a0, src.name as qs_a1, src.adm1_code as qs_a1_lc, src.region as qs_a1r, src.region_cod as qs_a1r_lc, src.type_en as qs_type, 'Natural Earth' as qs_source, woe_id as qs_woe_id, gn_id as qs_gn_id, 4000000 as qs_scale FROM ne_10m_admin_1_states_provinces src WHERE (src.adm0_a3 not in ('AUS','AUT','BEL','BGR','BRA','CAN','CHL','CHE','CYP','CZE','DEU','DNK','ESP','EST','FIN','FRA','GBR','GIB','GRC','GRL','HRV','HUN','IRL','ITA','LIE','LTU','LVA','MCO','MDA','MEX','MLT','NLD','NOR','NZL','POL','PRI','PRT','PSE','ROU','RUS','SRB','SVK','SWE','USA','UKR','VAT','ZAF') or src.gu_a3 in ('NSV', 'MTQ', 'GUF', 'REU', 'MYT', 'GLP') or src.adm1_code IN ('NLD-5148', 'NLD-5149','FRA-1442','FRA-2000','FRA-4601','FRA-4602','FRA-4603','SPM-4866')) and src.featurecla IN ('Admin-1 scale rank')" ne_adm1.shp ../natural_earth/ne_10m_admin_1_states_provinces.shp ogr2ogr -f "ESRI Shapefile" -append -sql "SELECT src.adm0_a3 as qs_adm0_a3, src.admin as qs_adm0, 'adm1' as qs_level, src.iso_a2 as qs_iso_cc, src.iso_a2 as qs_a0_lc, src.admin as qs_a0, src.name as qs_a1, src.adm1_code as qs_a1_lc, src.region as qs_a1r, src.region_cod as qs_a1r_lc, featurecla as qs_type, 'Natural Earth' as qs_source, woe_id as qs_woe_id, gn_id as qs_gn_id, 4000000 as qs_scale FROM ne_10m_admin_1_states_provinces src WHERE (src.adm0_a3 not in ('AUS','AUT','BEL','BGR','BRA','CAN','CHL','CHE','CYP','CZE','DEU','DNK','ESP','EST','FIN','FRA','GBR','GIB','GRC','GRL','HRV','HUN','IRL','ITA','LIE','LTU','LVA','MCO','MDA','MEX','MLT','NLD','NOR','NZL','POL','PRI','PRT','PSE','ROU','RUS','SRB','SVK','SWE','USA','UKR','VAT','ZAF') or src.gu_a3 in ('NSV', 'MTQ', 'GUF', 'REU', 'MYT', 'GLP') or src.adm1_code IN ('NLD-5148', 'NLD-5149','FRA-1442','FRA-2000','FRA-4601','FRA-4602','FRA-4603','SPM-4866')) and src.featurecla NOT IN ('Admin-1 scale rank')" ne_adm1.shp ../natural_earth/ne_10m_admin_1_states_provinces.shp # Needs work, and a dissolve ne_adm1_region.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.adm0_a3 as qs_adm0_a3, src.name as qs_adm0, 'adm1_region' as qs_level, src.iso_a2 as qs_iso_cc, src.iso_a2 as qs_a0_lc, src.admin as qs_a0, src.name as qs_a1, src.adm1_code as qs_a1_lc, src.region as qs_a1r, src.region_cod as qs_a1r_lc, src.type_en as qs_type, 'Natural Earth' as qs_source, woe_id as qs_woe_id, gn_id as qs_gn_id, 4000000 as qs_scale FROM ne_10m_admin_1_states_provinces src WHERE src.adm0_a3 not in ('BEL','ESP','FIN','FRA','GBR','HUN','ITA','SRB') or src.region IS NOT NULL" ne_adm1_region.shp ../natural_earth/ne_10m_admin_1_states_provinces.shp ussd_adm0.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT src.adm0_a3 as qs_adm0_a3, src.admin as qs_adm0, 'adm0' as qs_level, src.iso_a2 as qs_iso_cc, src.admin as qs_a0, src.br_name as qs_a0_alt, 'US State Department, with Natural Earth mods' as qs_source, woe_adm0 as qs_woe_id, 200000 as qs_scale FROM us_state_department_countries_ne_hybrid src WHERE src.adm0_a3 not in ('aus','ald','aut','bel','bgr','bra','can','che','chl','cze','deu','dnk','esp','est','fin','fra','fro','gbr','geo','gib','grc','grl','hrv','hun','irl','isl','ita','kos','lie','ltu','lux','lva','mco','mda','mex','mlt','nld','nor','nzl','pol','pri','prt','pse','rou','srb','smr','svk','svn','swe','usa','ukr','zaf') or src.gu_a3 IN ('NLY','GUF','GLP','MTQ','REU','MYT')" ussd_adm0.shp ../us_state_department/final_data/us_state_department_countries_ne_hybrid.shp raw_downloads: \ raw_downloads/tl_2010_us_place10.shp \ raw_downloads/tl_2010_us_county10.shp \ raw_downloads/tl_2010_us_state10.shp \ raw_downloads/Place_2010Census_DP1.shp: wget http://www2.census.gov/geo/tiger/TIGER2010DP1/Place_2010Census_DP1.zip -O raw_downloads/Place_2010Census_DP1.zip unzip -o raw_downloads/Place_2010Census_DP1.zip -d raw_downloads/ rm raw_downloads/Place_2010Census_DP1.zip raw_downloads/tl_2010_us_county10.shp: wget ftp://ftp2.census.gov/geo/tiger/TIGER2010/COUNTY/2010/tl_2010_us_county10.zip -O raw_downloads/tl_2010_us_county10.zip unzip -o raw_downloads/tl_2010_us_county10.zip -d raw_downloads/ rm raw_downloads/tl_2010_us_county10.zip wget http://www2.census.gov/geo/tiger/TIGER2010DP1/County_2010Census_DP1.zip -O raw_downloads/County_2010Census_DP1.zip unzip -o raw_downloads/County_2010Census_DP1.zip -d raw_downloads/ rm raw_downloads/County_2010Census_DP1.zip raw_downloads/tl_2010_us_state10.shp: wget ftp://ftp2.census.gov/geo/tiger/TIGER2010/STATE/2010/tl_2010_us_state10.zip -O raw_downloads/tl_2010_us_state10.zip unzip -o raw_downloads/tl_2010_us_state10.zip -d raw_downloads/ rm raw_downloads/tl_2010_us_state10.zip wget http://www2.census.gov/geo/tiger/TIGER2010DP1/State_2010Census_DP1.zip -O raw_downloads/State_2010Census_DP1.zip unzip -o raw_downloads/State_2010Census_DP1.zip -d raw_downloads/ rm raw_downloads/State_2010Census_DP1.zip raw_downloads/CouSub_2010Census_DP1.shp: wget http://www2.census.gov/geo/tiger/TIGER2010DP1/CouSub_2010Census_DP1.zip -O raw_downloads/CouSub_2010Census_DP1.zip unzip -o raw_downloads/CouSub_2010Census_DP1.zip -d raw_downloads/ rm raw_downloads/CouSub_2010Census_DP1.zip raw_downloads/usa_localadmin_all.shp: # Connecticut wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_09_060_00_500k.zip -O raw_downloads/gz_2010_06_060_00_500k.zip unzip -o raw_downloads/gz_2010_06_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_06_060_00_500k.zip # Illinois wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_17_060_00_500k.zip -O raw_downloads/gz_2010_17_060_00_500k.zip unzip -o raw_downloads/gz_2010_17_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_17_060_00_500k.zip # Indiana wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_18_060_00_500k.zip -O raw_downloads/gz_2010_18_060_00_500k.zip unzip -o raw_downloads/gz_2010_18_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_18_060_00_500k.zip # Kansas wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_20_060_00_500k.zip -O raw_downloads/gz_2010_20_060_00_500k.zip unzip -o raw_downloads/gz_2010_20_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_20_060_00_500k.zip # Maine wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_23_060_00_500k.zip -O raw_downloads/gz_2010_23_060_00_500k.zip unzip -o raw_downloads/gz_2010_23_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_23_060_00_500k.zip # Mass wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_25_060_00_500k.zip -O raw_downloads/gz_2010_25_060_00_500k.zip unzip -o raw_downloads/gz_2010_25_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_25_060_00_500k.zip # Michigan wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_26_060_00_500k.zip -O raw_downloads/gz_2010_26_060_00_500k.zip unzip -o raw_downloads/gz_2010_26_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_26_060_00_500k.zip # Minnesota wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_27_060_00_500k.zip -O raw_downloads/gz_2010_27_060_00_500k.zip unzip -o raw_downloads/gz_2010_27_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_27_060_00_500k.zip # Missouri wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_29_060_00_500k.zip -O raw_downloads/gz_2010_29_060_00_500k.zip unzip -o raw_downloads/gz_2010_29_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_29_060_00_500k.zip # Nebraska wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_31_060_00_500k.zip -O raw_downloads/gz_2010_31_060_00_500k.zip unzip -o raw_downloads/gz_2010_31_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_31_060_00_500k.zip # New Hampshire wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_33_060_00_500k.zip -O raw_downloads/gz_2010_33_060_00_500k.zip unzip -o raw_downloads/gz_2010_33_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_33_060_00_500k.zip # New Jersey wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_34_060_00_500k.zip -O raw_downloads/gz_2010_34_060_00_500k.zip unzip -o raw_downloads/gz_2010_34_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_34_060_00_500k.zip # New York wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_36_060_00_500k.zip -O raw_downloads/gz_2010_36_060_00_500k.zip unzip -o raw_downloads/gz_2010_36_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_36_060_00_500k.zip # North Dakota wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_38_060_00_500k.zip -O raw_downloads/gz_2010_38_060_00_500k.zip unzip -o raw_downloads/gz_2010_38_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_38_060_00_500k.zip # Ohio wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_39_060_00_500k.zip -O raw_downloads/gz_2010_39_060_00_500k.zip unzip -o raw_downloads/gz_2010_39_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_39_060_00_500k.zip # Penn wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_42_060_00_500k.zip -O raw_downloads/gz_2010_42_060_00_500k.zip unzip -o raw_downloads/gz_2010_42_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_42_060_00_500k.zip # Rhode Island wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_44_060_00_500k.zip -O raw_downloads/gz_2010_44_060_00_500k.zip unzip -o raw_downloads/gz_2010_44_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_44_060_00_500k.zip # South Dakota wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_46_060_00_500k.zip -O raw_downloads/gz_2010_46_060_00_500k.zip unzip -o raw_downloads/gz_2010_46_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_46_060_00_500k.zip # Vermont wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_50_060_00_500k.zip -O raw_downloads/gz_2010_50_060_00_500k.zip unzip -o raw_downloads/gz_2010_50_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_50_060_00_500k.zip # Wisconsin wget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_55_060_00_500k.zip -O raw_downloads/gz_2010_55_060_00_500k.zip unzip -o raw_downloads/gz_2010_55_060_00_500k.zip -d raw_downloads/ rm raw_downloads/gz_2010_55_060_00_500k.zip # # Merge the 9 states with no overlap ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_23_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_25_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_33_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_34_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_38_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_42_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_44_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_46_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_55_060_00_500k.shp # Merge the 11 states with overlap ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_09_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_17_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_18_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_20_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_26_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_27_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_29_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_31_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_36_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_39_060_00_500k.shp ogr2ogr -f "Esri Shapefile" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_50_060_00_500k.shp # All together now ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" raw_downloads/usa_localadmin_all.shp raw_downloads/usa_localadmin_no_overlap.shp ogr2ogr -f "ESRI Shapefile" -append raw_downloads/usa_localadmin_all.shp raw_downloads/usa_localadmin_with_overlap.shp # LOCALITIES all_localities_quattroshapes: \ bra_localities_qs.shp \ idn_localities_qs.shp \ mys_localities_qs.shp \ tha_localities_qs.shp \ kor_localities_qs.shp \ twn_localities_qs.shp \ chn_localities_qs.shp \ ind_localities_qs.shp \ jpn_localities_qs.shp \ sgp_localities_qs.shp \ tur_localities_qs.shp \ gbr_localities_qs.shp \ chl_localities_qs.shp \ rus_localities_qs.shp \ mex_localities_qs.shp bra_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'BRA' as qs_adm0_a3, 'BR' as qs_iso_cc, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'BR'" bra_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp idn_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'IDN' as qs_adm0_a3, 'ID' as qs_iso_cc, 'Indonesia' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'ID'" idn_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp mys_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'MYS' as qs_adm0_a3, 'MY' as qs_iso_cc, 'Malaysia' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'MY'" mys_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp tha_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'THA' as qs_adm0_a3, 'TH' as qs_iso_cc, 'Thailand' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'TH'" tha_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp kor_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'KOR' as qs_adm0_a3, 'KR' as qs_iso_cc, 'South Korea' as qs_adm0, '한국' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'KR'" kor_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp twn_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'TWN' as qs_adm0_a3, 'TW' as qs_iso_cc, 'Taiwan' as qs_adm0, '臺灣' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'TW'" twn_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp chn_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'CHN' as qs_adm0_a3, 'CN' as qs_iso_cc, 'China' as qs_adm0, '中國' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'CN'" chn_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp ind_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'IND' as qs_adm0_a3, 'IN' as qs_iso_cc, 'India' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'IN'" ind_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp aus_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'AUS' as qs_adm0_a3, 'AU' as qs_iso_cc, 'Australia' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'AU'" aus_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp jpn_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'JPN' as qs_adm0_a3, 'JP' as qs_iso_cc, 'Japan' as qs_adm0, '日本' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'JP'" jpn_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp sgp_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'SGP' as qs_adm0_a3, 'SG' as qs_iso_cc, 'Singapore' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'SG'" sgp_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp gbr_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'GBR' as qs_adm0_a3, 'GB' as qs_iso_cc, 'United Kingdom' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'GB'" gbr_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp tur_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'TUR' as qs_adm0_a3, 'TR' as qs_iso_cc, 'Turkey' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'TR'" tur_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp chl_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'CHL' as qs_adm0_a3, 'CL' as qs_iso_cc, 'Chile' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'CL'" chl_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp rus_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'RUS' as qs_adm0_a3, 'RU' as qs_iso_cc, 'Russia' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'RU'" rus_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp mex_localities_qs.shp: ogr2ogr -f "ESRI Shapefile" -overwrite -lco ENCODING="UTF-8" -sql "SELECT 'MEX' as qs_adm0_a3, 'MX' as qs_iso_cc, 'Mexico' as qs_a0, name as qs_loc_alt, gn_id as qs_loc_lc, 'locality' as qs_level, 'quattroshapes' as qs_source, gn_id, gn_name as qs_loc, gn_fcode, gn_adm0_cc, gn_namadm1, gn_pop, woe_id, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_local, name_en as qs_loc_alt2, name_adm0 as qs_a0, name_adm1 as qs_a1, name_adm2 as qs_a2, name_lau as qs_la, woe_vers, placetype as qs_type, quad_count, photo_sum, photo_max FROM quattroshapes_localities_priority_and_extras_master_post_diss_attr2 WHERE gn_adm0_cc = 'MX'" mex_localities_qs.shp quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp clean: mkdir -p raw_downloads rm -f all_localities.* rm -f all_localadmin.* rm -f all_adm0.* rm -f all_adm1_region.* rm -f all_adm1.* rm -f all_adm2_region.* rm -f all_adm2.* deep-clean: rm -f *.shp *.shx *.dbf *.prj *.cpg ================================================ FILE: open_administrative_data/dissolvers/Makefile ================================================ all: dissolve touch all dissolve: \ dissolve-adm0 \ dissolve-adm1-region \ dissolve-adm1 \ dissolve-adm2-region \ dissolve-adm2 \ dissovle-localadmin \ dissolve-localities touch dissolve dissolve-adm0: \ ../aut_adm0.shp \ ../bra_adm0.shp \ ../bel_adm0.shp \ ../cyp_adm0.shp \ ../deu_adm0.shp \ ../fin_adm0.shp \ ../fra_adm0.shp \ ../fro_adm0.shp \ ../hun_adm0.shp \ ../ltu_adm0.shp \ ../pol_adm0.shp \ ../srb_adm0.shp \ ../svk_adm0.shp \ ../ukr_adm0.shp \ ../ltu_adm0.shp \ ../bgr_adm0.shp \ ../cze_adm0.shp \ ../dnk_adm0.shp \ ../esp_adm0.shp \ ../est_adm0.shp \ ../fin_adm0.shp \ ../gbr_adm0.shp \ ../grc_adm0.shp \ ../grl_adm0.shp \ ../hrv_adm0.shp \ ../irl_adm0.shp \ ../isl_adm0.shp \ ../ita_adm0.shp \ ../kos_adm0.shp \ ../lva_adm0.shp \ ../mlt_adm0.shp \ ../mda_adm0.shp \ ../nld_adm0.shp \ ../nor_adm0.shp \ ../prt_adm0.shp \ ../rou_adm0.shp \ ../swe_adm0.shp \ ../usa_adm0.shp \ ../aus_adm0.shp \ ../nzl_adm0.shp \ ../che_adm0.shp \ ../lie_adm0.shp \ ../chl_adm0.shp \ ../pse_adm0.shp \ ../mex_adm0.shp \ ../zaf_adm0.shp \ ../ussd_adm0.shp touch dissolve-adm0 #../idn_adm0.shp \ #../rus_adm0.shp \ dissolve-adm1-region: \ ../gbr_adm1_region.shp \ ../bel_adm1_region.shp \ ../fin_adm1_region.shp \ ../fra_adm1_region.shp \ ../hun_adm1_region.shp \ ../srb_adm1_region.shp touch dissolve-adm1-region dissolve-adm1: \ ../aut_adm1.shp \ ../bel_adm1.shp \ ../bra_adm1.shp \ ../can_adm1.shp \ ../dnk_adm1.shp \ ../grl_adm1.shp \ ../gbr_adm1.shp \ ../deu_adm1.shp \ ../nzl_adm1.shp \ ../hrv_adm1.shp \ ../gbr_adm1.shp \ ../fra_adm1.shp \ ../grc_adm1.shp \ ../rus_adm1.shp \ ../srb_adm1.shp \ ../svk_adm1.shp \ ../pol_adm1.shp \ ../ukr_adm1.shp \ ../ltu_adm1.shp \ ../aus_adm1.shp \ ../che_adm1.shp \ ../lie_adm1.shp \ ../chl_adm1.shp \ ../zaf_adm1.shp touch dissolve-adm1 dissolve-adm2-region: \ ../deu_adm2_region.shp touch dissolve-adm2-region dissolve-adm2: \ ../aus_adm2.shp \ ../che_adm2.shp \ ../chl_adm2.shp \ ../idn_adm2.shp \ ../zaf_adm2.shp touch dissolve-adm2 dissovle-localadmin: \ ../gbr_localadmin.shp touch dissovle-localadmin dissolve-localities: \ ../bra_localities_qs.shp \ ../idn_localities.shp \ ../mys_localities.shp \ ../tha_localities.shp \ ../kor_localities.shp \ ../twn_localities.shp \ ../chn_localities.shp \ ../ind_localities.shp \ ../aus_localities.shp \ ../jpn_localities.shp \ ../sgp_localities.shp \ ../chl_localities_qs.shp \ ../rus_localities_qs.shp #../mex_localities_qs.shp #../gbr_localities_qs.shp \ #../tur_localities_qs.shp \ touch dissolve-localities ../gbr_localadmin.shp: shputils/dissolve-shapes.py -i ../gbr_localadmin.shp -o ../gbr_localadmin.shp -f qs_adm0_a3,qs_iso_cc,qs_adm0,qs_a0,qs_level,qs_source,qs_la,qs_la_lc,qs_la_lc2,qs_a1,qs_type,qs_a1r,qs_a1r_lc ../bra_localities_qs.shp: shputils/dissolve-shapes.py -i ../bra_localities_qs.shp -o ../bra_localities_qs.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../idn_localities.shp: shputils/dissolve-shapes.py -i ../idn_localities.shp -o ../idn_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../mys_localities.shp: shputils/dissolve-shapes.py -i ../mys_localities.shp -o ../mys_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../tha_localities.shp: shputils/dissolve-shapes.py -i ../tha_localities.shp -o ../tha_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../kor_localities.shp: shputils/dissolve-shapes.py -i ../kor_localities.shp -o ../kor_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../twn_localities.shp: shputils/dissolve-shapes.py -i ../twn_localities.shp -o ../twn_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../chn_localities.shp: shputils/dissolve-shapes.py -i ../chn_localities.shp -o ../chn_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../ind_localities.shp: shputils/dissolve-shapes.py -i ../ind_localities.shp -o ../ind_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../aus_localities.shp: shputils/dissolve-shapes.py -i ../aus_localities.shp -o ../aus_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../jpn_localities.shp: shputils/dissolve-shapes.py -i ../jpn_localities.shp -o ../jpn_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../sgp_localities.shp: shputils/dissolve-shapes.py -i ../sgp_localities.shp -o ../sgp_localities.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../gbr_localities_qs.shp: shputils/dissolve-shapes.py -i ../gbr_localities_qs.shp -o ../gbr_localities_qs.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../tur_localities_qs.shp: shputils/dissolve-shapes.py -i ../tur_localities_qs.shp -o ../tur_localities_qs.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../chl_localities_qs.shp: shputils/dissolve-shapes.py -i ../chl_localities_qs.shp -o ../chl_localities_qs.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../rus_localities_qs.shp: shputils/dissolve-shapes.py -i ../rus_localities_qs.shp -o ../rus_localities_qs.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../mex_localities_qs.shp: shputils/dissolve-shapes.py -i ../mex_localities_qs.shp -o ../mex_localities_qs.shp -f qs_adm0_a3,qs_iso_cc,qs_a0,qs_loc,qs_loc_lc,qs_level,qs_source ../usa_adm0.shp: shputils/dissolve-shapes.py -i ../usa_adm0.shp -o ../usa_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0 ../bra_adm0.shp: #shputils/dissolve-shapes.py -i ../bra_adm0.shp -o ../bra_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0 shputils/dissolve-shapes.py -i ../bra_adm0.shp -o ../bra_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_iso_cc,qs_a0,qs_source ../bra_adm1.shp: shputils/dissolve-shapes.py -i ../bra_adm1.shp -o ../bra_adm1.shp -f qs_adm0_a3,qs_iso_cc,qs_adm0,qs_a0,qs_a1,qs_a1_lc,qs_level,qs_source,qs_type ../aus_adm0.shp: shputils/dissolve-shapes.py -i ../aus_adm0.shp -o ../aus_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0 ../aus_adm1.shp: shputils/dissolve-shapes.py -i ../aus_adm1.shp -o ../aus_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a1,qs_a1_lc ../aus_adm2.shp: shputils/dissolve-shapes.py -i ../aus_adm2.shp -o ../aus_adm2.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a1,qs_a1_lc,qs_a2,qs_a2_lc ../fro_adm0.shp: shputils/dissolve-shapes.py -i ../fro_adm0.shp -o ../fro_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_iso_cc,qs_a0_lc,qs_a1_lc,qs_a0,qs_a0_alt,qs_type,qs_source ../rus_adm0.shp: shputils/dissolve-shapes.py -i ../rus_adm0.shp -o ../rus_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0 ../mex_adm0.shp: shputils/dissolve-shapes.py -i ../mex_adm0.shp -o ../mex_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0 ../nzl_adm0.shp: shputils/dissolve-shapes.py -i ../nzl_adm0.shp -o ../nzl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0 ../nzl_adm1.shp: shputils/dissolve-shapes.py -i ../nzl_adm1.shp -o ../nzl_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a1,qs_a1_lc ../che_adm0.shp: shputils/dissolve-shapes.py -i ../che_adm0.shp -o ../che_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0 ../che_adm1.shp: shputils/dissolve-shapes.py -i ../che_adm1.shp -o ../che_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a1,qs_a1_lc,qs_type ../che_adm2.shp: shputils/dissolve-shapes.py -i ../che_adm2.shp -o ../che_adm2.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a1,qs_a1_lc,qs_a2,qs_a2_lc,qs_type ../lie_adm0.shp: shputils/dissolve-shapes.py -i ../lie_adm0.shp -o ../lie_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0 ../lie_adm1.shp: shputils/dissolve-shapes.py -i ../lie_adm1.shp -o ../lie_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a1_lc ../idn_adm0.shp: shputils/dissolve-shapes.py -i ../idn_adm0.shp -o ../idn_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0 #shputils/dissolve-shapes.py -i ../idn_adm0.shp -o ../idn_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc ../idn_adm1.shp: shputils/dissolve-shapes.py -i ../idn_adm1.shp -o ../idn_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc,qs_a1 ../idn_adm2.shp: shputils/dissolve-shapes.py -i ../idn_adm2.shp -o ../idn_adm2.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc,qs_a1,qs_a2,qs_type ../chl_adm0.shp: shputils/dissolve-shapes.py -i ../chl_adm0.shp -o ../chl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc ../chl_adm1.shp: shputils/dissolve-shapes.py -i ../chl_adm1.shp -o ../chl_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc,qs_a0,qs_a1 ../pse_adm0.shp: shputils/dissolve-shapes.py -i ../pse_adm0.shp -o ../pse_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc ../zaf_adm0.shp: shputils/dissolve-shapes.py -i ../zaf_adm0.shp -o ../zaf_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc ../zaf_adm1.shp: shputils/dissolve-shapes.py -i ../zaf_adm1.shp -o ../zaf_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc,qs_a1 ../bel_adm1_region.shp: shputils/dissolve-shapes.py -i ../bel_adm1_region.shp -o ../bel_adm1_region.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1r,qs_a1r_alt,qs_a1r_lc,qs_type ../fin_adm1_region.shp: shputils/dissolve-shapes.py -i ../fin_adm1_region.shp -o ../fin_adm1_region.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1r,qs_a1r_alt,qs_a1r_lc,qs_type ../fra_adm1_region.shp: shputils/dissolve-shapes.py -i ../fra_adm1_region.shp -o ../fra_adm1_region.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1r,qs_a1r_alt,qs_a1r_lc,qs_type ../gbr_adm1_region.shp: shputils/dissolve-shapes.py -i ../gbr_adm1_region.shp -o ../gbr_adm1_region.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_lc,qs_a1r,qs_a1r_alt,qs_a1r_lc,qs_type ../hun_adm1_region.shp: shputils/dissolve-shapes.py -i ../hun_adm1_region.shp -o ../hun_adm1_region.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1r,qs_a1r_alt,qs_a1r_lc,qs_type ../srb_adm1_region.shp: shputils/dissolve-shapes.py -i ../srb_adm1_region.shp -o ../srb_adm1_region.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1r,qs_a1r_alt,qs_a1r_lc,qs_type ../aut_adm1.shp: shputils/dissolve-shapes.py -i ../aut_adm1.shp -o ../aut_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../bel_adm1.shp: #include the regions shputils/dissolve-shapes.py -i ../bel_adm1.shp -o ../bel_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1r,qs_a1r_alt,qs_a1r_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../can_adm1.shp: shputils/dissolve-shapes.py -i ../can_adm1.shp -o ../can_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a1,qs_type ../dnk_adm1.shp: shputils/dissolve-shapes.py -i ../dnk_adm1.shp -o ../dnk_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../grl_adm1.shp: shputils/dissolve-shapes.py -i ../grl_adm1.shp -o ../grl_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../deu_adm1.shp: shputils/dissolve-shapes.py -i ../deu_adm1.shp -o ../deu_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../gbr_adm1.shp: shputils/dissolve-shapes.py -i ../gbr_adm1.shp -o ../gbr_adm1.shp -f qs_adm0,qs_a0,qs_adm0_a3,qs_source,qs_a1r_alt,qs_level,qs_a0_alt,qs_iso_cc,qs_a0_lc,qs_a1r_lc,qs_a1,qs_type,qs_a1r,qs_a1_alt,qs_a1_lc ../fra_adm1.shp: shputils/dissolve-shapes.py -i ../fra_adm1.shp -o ../fra_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1r_lc,qs_a1r,qs_a1r_alt,qs_a1_lc,qs_a1,qs_a1_alt,qs_type ../grc_adm1.shp: shputils/dissolve-shapes.py -i ../grc_adm1.shp -o ../grc_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1_lc,qs_a1,qs_a1_alt,qs_type ../srb_adm1.shp: #include the regions shputils/dissolve-shapes.py -i ../srb_adm1.shp -o ../srb_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1r,qs_a1r_alt,qs_a1r_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../svk_adm1.shp: shputils/dissolve-shapes.py -i ../svk_adm1.shp -o ../svk_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../pol_adm1.shp: shputils/dissolve-shapes.py -i ../pol_adm1.shp -o ../pol_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../rus_adm1.shp: shputils/dissolve-shapes.py -i ../rus_adm1.shp -o ../rus_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a1,qs_a1_alt ../ukr_adm1.shp: shputils/dissolve-shapes.py -i ../ukr_adm1.shp -o ../ukr_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../ltu_adm1.shp: shputils/dissolve-shapes.py -i ../ltu_adm1.shp -o ../ltu_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1,qs_a1_alt,qs_a1_lc,qs_type ../hrv_adm1.shp: shputils/dissolve-shapes.py -i ../hrv_adm1.shp -o ../hrv_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1_lc,qs_a1,qs_a1_alt,qs_type ../aut_adm0.shp: shputils/dissolve-shapes.py -i ../aut_adm0.shp -o ../aut_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../bel_adm0.shp: shputils/dissolve-shapes.py -i ../bel_adm0.shp -o ../bel_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../cyp_adm0.shp: shputils/dissolve-shapes.py -i ../cyp_adm0.shp -o ../cyp_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../deu_adm0.shp: shputils/dissolve-shapes.py -i ../deu_adm0.shp -o ../deu_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../fin_adm0.shp: shputils/dissolve-shapes.py -i ../fin_adm0.shp -o ../fin_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../fra_adm0.shp: shputils/dissolve-shapes.py -i ../fra_adm0.shp -o ../fra_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../hun_adm0.shp: shputils/dissolve-shapes.py -i ../hun_adm0.shp -o ../hun_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../ltu_adm0.shp: shputils/dissolve-shapes.py -i ../ltu_adm0.shp -o ../ltu_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../pol_adm0.shp: shputils/dissolve-shapes.py -i ../pol_adm0.shp -o ../pol_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../srb_adm0.shp: shputils/dissolve-shapes.py -i ../srb_adm0.shp -o ../srb_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../svk_adm0.shp: shputils/dissolve-shapes.py -i ../svk_adm0.shp -o ../svk_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../ukr_adm0.shp: shputils/dissolve-shapes.py -i ../ukr_adm0.shp -o ../ukr_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../bgr_adm0.shp: shputils/dissolve-shapes.py -i ../bgr_adm0.shp -o ../bgr_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../cze_adm0.shp: shputils/dissolve-shapes.py -i ../cze_adm0.shp -o ../cze_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../dnk_adm0.shp: shputils/dissolve-shapes.py -i ../dnk_adm0.shp -o ../dnk_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../esp_adm0.shp: shputils/dissolve-shapes.py -i ../esp_adm0.shp -o ../esp_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../est_adm0.shp: shputils/dissolve-shapes.py -i ../est_adm0.shp -o ../est_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../gbr_adm0.shp: shputils/dissolve-shapes.py -i ../gbr_adm0.shp -o ../gbr_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_type -c qs_a0_lc:last ../grc_adm0.shp: shputils/dissolve-shapes.py -i ../grc_adm0.shp -o ../grc_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../grl_adm0.shp: shputils/dissolve-shapes.py -i ../grl_adm0.shp -o ../grl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../hrv_adm0.shp: shputils/dissolve-shapes.py -i ../hrv_adm0.shp -o ../hrv_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../irl_adm0.shp: shputils/dissolve-shapes.py -i ../irl_adm0.shp -o ../irl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../isl_adm0.shp: shputils/dissolve-shapes.py -i ../isl_adm0.shp -o ../isl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../ita_adm0.shp: shputils/dissolve-shapes.py -i ../ita_adm0.shp -o ../ita_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../kos_adm0.shp: shputils/dissolve-shapes.py -i ../kos_adm0.shp -o ../kos_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../lva_adm0.shp: shputils/dissolve-shapes.py -i ../lva_adm0.shp -o ../lva_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../mda_adm0.shp: shputils/dissolve-shapes.py -i ../mda_adm0.shp -o ../mda_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../mlt_adm0.shp: shputils/dissolve-shapes.py -i ../mlt_adm0.shp -o ../mlt_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../nld_adm0.shp: shputils/dissolve-shapes.py -i ../nld_adm0.shp -o ../nld_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../nor_adm0.shp: shputils/dissolve-shapes.py -i ../nor_adm0.shp -o ../nor_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../prt_adm0.shp: shputils/dissolve-shapes.py -i ../prt_adm0.shp -o ../prt_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../rou_adm0.shp: shputils/dissolve-shapes.py -i ../rou_adm0.shp -o ../rou_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../swe_adm0.shp: shputils/dissolve-shapes.py -i ../swe_adm0.shp -o ../swe_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_type ../deu_adm2_region.shp: shputils/dissolve-shapes.py -i ../deu_adm2_region.shp -o ../deu_adm2_region.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a0_alt,qs_a0_lc,qs_a1_lc,qs_a1,qs_a1_alt,qs_a2r,qs_a2r_lc,qs_a2r_alt,qs_type ../zaf_adm2.shp: shputils/dissolve-shapes.py -i ../zaf_adm2.shp -o ../zaf_adm2.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_a2,qs_a1,qs_type,qs_a0_lc,qs_iso_cc,qs_a0 ../chl_adm2.shp: shputils/dissolve-shapes.py -i ../chl_adm2.shp -o ../chl_adm2.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_source,qs_iso_cc,qs_a0,qs_a2,qs_a1,qs_type ../ussd_adm0.shp: shputils/dissolve-shapes.py -i ../ussd_adm0.shp -o ../ussd_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_iso_cc,qs_a0,qs_a0_alt,qs_source,qs_woe_id,qs_scale ================================================ FILE: open_administrative_data/dissolvers/README.md ================================================ Requires [shputils](https://github.com/blackmad/shputils). ================================================ FILE: open_administrative_data/quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.cpg ================================================ UTF-8 ================================================ FILE: open_administrative_data/quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.dbf ================================================ [File too large to display: 38.7 MB] ================================================ FILE: open_administrative_data/quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.prj ================================================ GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] ================================================ FILE: open_administrative_data/quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.shp ================================================ [File too large to display: 37.3 MB] ================================================ FILE: open_administrative_data/templates/template_adm0.cpg ================================================ UTF-8 ================================================ FILE: open_administrative_data/templates/template_adm0.prj ================================================ GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] ================================================ FILE: open_administrative_data/templates/template_adm1.cpg ================================================ UTF-8 ================================================ FILE: open_administrative_data/templates/template_adm1.prj ================================================ GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] ================================================ FILE: open_administrative_data/templates/template_adm1_region.cpg ================================================ UTF-8 ================================================ FILE: open_administrative_data/templates/template_adm1_region.prj ================================================ GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] ================================================ FILE: open_administrative_data/templates/template_adm2.cpg ================================================ UTF-8 ================================================ FILE: open_administrative_data/templates/template_adm2.prj ================================================ GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] ================================================ FILE: open_administrative_data/templates/template_adm2_region.cpg ================================================ UTF-8 ================================================ FILE: open_administrative_data/templates/template_adm2_region.prj ================================================ GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] ================================================ FILE: open_administrative_data/templates/template_localadmin.cpg ================================================ UTF-8 ================================================ FILE: open_administrative_data/templates/template_localadmin.prj ================================================ GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] ================================================ FILE: open_administrative_data/templates/template_localities.cpg ================================================ UTF-8 ================================================ FILE: open_administrative_data/templates/template_localities.prj ================================================ GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]] ================================================ FILE: quattroshapes/.gitignore ================================================ tiles csv mbtiles shp *.pyc ================================================ FILE: quattroshapes/README.txt ================================================ SOURCE Scraped ~10 gb of Flickr geocoded photos as CSVs using the scripts in betashapes. Augmented with foursquare checkin data. CLEAN-UP For each admin-0, admin-1, admin-2, locality, and neighborhood, we need to add in that per CSV on DB import. IMPORTING TO DATABAS Loading CSV into PostGIS DB setup: createuser foursquare #Shall the new role be a superuser? (y/n) y #Make sure we're on the SSD drive #http://www.postgresql.org/docs/8.1/static/sql-createtablespace.html #Ensure the `postgres` folder is owned by the `postgres` OS user. CREATE TABLESPACE geo_ssd LOCATION '/Volumes/Geo/postgres'; #http://postgis.refractions.net/documentation/manual-2.0/postgis_installation.html#create_new_db_extensions createdb -U postgres -O foursquare --tablespace geo_ssd foursquare psql -d foursquare -c "CREATE EXTENSION postgis;" #createdb -U postgres -O foursquare -T template_postgis foursquare --tablespace osm #note --tablespace osm is on a separate SSD drive than the main tablespace. #make sure the 2 spatial tables are owned by foursquare user. Table import: Optional: Rename flickr_adm0_data to flickr_adm0_data_old ALTER TABLE flickr_adm0_data RENAME TO flickr_adm0_data_old; Now we will create the new table flickr_data. # http://www.postgresql.org/docs/8.2/static/sql-copy.html # http://www.postgresql.org/docs/9.2/interactive/datatype-numeric.html # implied header on each file: # photo_id woe_id longitude latitude # 6981212365 2514294 -122.369155 48.166085 #get into postgres psql -U foursquare DROP TABLE flickr_adm0_data; CREATE TABLE flickr_adm0_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); \copy flickr_adm0_data from '/Volumes/Data/Downloads/simplegeo-betashapes-8f7fff0/data_world_admin0/photos.txt' Create point geoms: #create a bonifide geometry column instead of loose geom in two columns #http://postgis.org/docs/AddGeometryColumn.html SELECT AddGeometryColumn('flickr_adm0_data', 'photo_geom', 4326, 'POINT', 2, true); #Populate that new field with POINT, in geographic projection UPDATE flickr_adm0_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); #Make it fast #http://postgis.refractions.net/documentation/manual-1.5/ch04.html#id2670643 CREATE INDEX photo_index ON flickr_adm0_data USING GIST ( photo_geom ); Calculate the heatmap data: python measure_sizes.py -u foursquare -d foursquare -t flickr_adm2_data -s 0/0/0 -o flickr_adm2_heatmap.csv Draw heatmaps: ./tilestache-seed.py -c tilestache.cfg -l size -b 84 -180 -84 180 --to-mbtiles flickr_adm0_density.mbtiles 0 1 2 3 4 5 6 7 ./tilestache-seed.py -c tilestache.cfg -l flickr_locality_density -b 37.932 -122.590 37.652 -122.088 --to-mbtiles flickr_locality_density_20130106a.mbtiles 7 #indonesia ./tilestache-seed.py -c tilestache.cfg -l flickr_locality_density -b 7.8 92.3 -13.0 144.0 --to-mbtiles flickr_locality_density_20130106b_indonesia.mbtiles 6 7 8 9 10 11 12 13 14 15 ./tilestache-seed.py -x -q -c tilestache.cfg -l checkins --recon -b -5.842 105.876 -6.058 106.147 -e json 12 13 14 15 16 17 18 # How many are in that area of interest? SELECT COUNT(latitude) FROM checkins WHERE photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint((105.876), (-6.058)), ST_MakePoint((106.147), (-5.842))), 4326); # What connections are active with Postgres? select * from pg_stat_activity; # status report select sum(photo_count_total), count(zoom), max(zoom) from quatroshapes; # Starting and stopping Postgres http://www.sd-kyber.com/library/onlineNotes/psqlOSX.html pg_stop pg_start #Table for storing quatroshape voting into: CREATE TABLE quatroshapes (latitude float, longitude float, x1 float, y1 float, x2 float, y2 float, zoom int, row int, col int, photo_count_total integer, woe_id integer, name varchar(250), photo_count integer, margin float, woe_adm0 integer, woe_adm1 integer, woe_adm2 integer, woe_lau integer, locality_lau integer, name_adm0 varchar(250), name_adm1 varchar(250), name_adm2 varchar(250), name_lau varchar(250), name_locality varchar(250)); SELECT AddGeometryColumn('quatroshapes', 'the_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('quatroshapes', 'poly_geom', 4326, 'POLYGON', 2, true); CREATE INDEX quatro_index ON quatroshapes USING GIST ( the_geom ); UPDATE quatroshapes SET the_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE quatroshapes SET poly_geom = ST_SetSRID(ST_MakeEnvelope(x1, y1, x2, y2),4326); pgsql2shp -f shp/humboldt_merged.shp -g poly_geom -u foursquare foursquare quatroshapes ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 -overwrite shp/jakarta_1000.shp -nlt POLYGON PG:"host=localhost user=foursquare dbname=foursquare" -sql "SELECT name, woe_id, margin, photo_count_total, zoom, row, col, poly_geom FROM quatroshapes" # utf-8 shps # REMEMBER to make a .cpg file with UTF-8 as the sole text contents. # the *.cpg file should be named same as the *.shp part. Stached 3214 tiles in 3:21:37.738275 (16.0 tpm) Stached 3214 tiles in 0:23:14.385987 (139.0 tpm) ./tilestache-seed.py -x -c tilestache.cfg -l flickr_locality_interactivity --recon -b 41.113 -124.423 40.496 -123.865 -e json 9 10 11 12 13 14 15 16 17 18 #### http://developer.yahoo.com/geo/geoplanet/guide/concepts.html PLACE TYPES Places are categorized to help identify the place. These Place Types have unique codes that may be used to filter results for some resources. They also have localized names, so they can be displayed along with the localized place name. The following table lists the supported place types. Place Type Name Place Type Code Description Continent 29 One of the major land masses on the earth. GeoPlanet is built on a seven-continent model: Asia (24865671), Africa (24865670), North America (24865672), South America (24865673), Antarctica (28289421), Europe (24865675), and Pacific (Australia, New Zealand, and the other islands in the Pacific Ocean -- 24865674). Country 12 One of the countries and dependent territories defined by the ISO 3166-1 standard. Admin 8 One of the primary administrative areas within a country. Place type names associated with this place type include: State, Province, Prefecture, Country, Region, Federal District. Admin2 9 One of the secondary administrative areas within a country. Place type names associated with this place type include: County, Province, Parish, Department, District. Admin3 10 One of the tertiary administrative areas within a country. Place type names associated with this place type include: Commune, Municipality, District, Ward. Town 7 One of the major populated places within a country. This category includes incorporated cities and towns, major unincorporated towns and villages. Suburb 22 One of the subdivisions within a town. This category includes suburbs, neighborhoods, wards. Postal Code 11 One of the postal code areas within a country. This category includes both full postal codes (such as those in UK and CA) and partial postal codes. Examples include: SW1A 0AA (UK), 90210 (US), 179-0074 (JP). Supername 19 A place that refers to a region consisting of multiple countries or an historical country that has been dissolved into current countries. Examples include Scandinavia, Latin America, USSR, Yugoslavia, Western Europe, and Central America. Colloquial 24 Examples are New England, French Riviera, 関西地方(Kansai Region), South East England, Pacific States, and Chubu Region. Time Zone 31 A place that refers to an area defined by the Olson standard. Examples include America/Los Angeles, Asia/Tokyo, Europe/Madrid. ### For the tables that have raw photo data from Flickr ### CREATE TABLE flickr_adm0_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); CREATE TABLE flickr_adm1_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); CREATE TABLE flickr_adm2_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); CREATE TABLE flickr_locality_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); CREATE TABLE flickr_neighborhood_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); \copy flickr_adm0_data from '/Volumes/Data/quattroshapes/data_world_admin0/photos.txt' \copy flickr_adm1_data from '/Volumes/Data/quattroshapes/data_world_admin1/photos.txt' \copy flickr_adm2_data from '/Volumes/Data/quattroshapes/data_world_admin2/photos.txt' \copy flickr_locality_data from '/Volumes/Data/quattroshapes/data_world_localities/photos.txt' \copy flickr_neighborhood_data from '/Volumes/Data/quattroshapes/data_world_neighborhoods/photos.txt' SELECT AddGeometryColumn('flickr_adm0_data', 'photo_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('flickr_adm1_data', 'photo_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('flickr_adm2_data', 'photo_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('flickr_locality_data', 'photo_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('flickr_neighborhood_data', 'photo_geom', 4326, 'POINT', 2, true); UPDATE flickr_adm0_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE flickr_adm1_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE flickr_adm2_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE flickr_locality_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE flickr_neighborhood_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); CREATE INDEX photo_adm0_index ON flickr_adm0_data USING GIST ( photo_geom ); CREATE INDEX photo_adm1_index ON flickr_adm1_data USING GIST ( photo_geom ); CREATE INDEX photo_adm2_index ON flickr_adm2_data USING GIST ( photo_geom ); CREATE INDEX photo_locality_index ON flickr_locality_data USING GIST ( photo_geom ); CREATE INDEX photo_neighborhood_index ON flickr_neighborhood_data USING GIST ( photo_geom ); CREATE INDEX woe_adm0_index ON flickr_adm0_data ( woe_id ); CREATE INDEX woe_adm1_index ON flickr_adm1_data ( woe_id ); CREATE INDEX woe_adm2_index ON flickr_adm2_data ( woe_id ); CREATE INDEX woe_locality_index ON flickr_locality_data ( woe_id ); CREATE INDEX woe_neighborhood_index ON flickr_neighborhood_data ( woe_id ); ### For the tables that don't have outliers ### CREATE TABLE flickr_adm0_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); CREATE TABLE flickr_adm1_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); CREATE TABLE flickr_adm2_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); CREATE TABLE flickr_locality_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); CREATE TABLE flickr_neighborhood_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision); SELECT AddGeometryColumn('flickr_adm0_data_clean', 'photo_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('flickr_adm1_data_clean', 'photo_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('flickr_adm2_data_clean', 'photo_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('flickr_locality_data_clean', 'photo_geom', 4326, 'POINT', 2, true); SELECT AddGeometryColumn('flickr_neighborhood_data_clean', 'photo_geom', 4326, 'POINT', 2, true); UPDATE flickr_adm0_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE flickr_adm1_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE flickr_adm2_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE flickr_locality_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); UPDATE flickr_neighborhood_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326); CREATE INDEX photo_adm0_clean_index ON flickr_adm0_data_clean USING GIST ( photo_geom ); CREATE INDEX photo_adm1_clean_index ON flickr_adm1_data_clean USING GIST ( photo_geom ); CREATE INDEX photo_adm2_clean_index ON flickr_adm2_data_clean USING GIST ( photo_geom ); CREATE INDEX photo_locality_clean_index ON flickr_locality_data_clean USING GIST ( photo_geom ); CREATE INDEX photo_neighborhood_clean_index ON flickr_neighborhood_data_clean USING GIST ( photo_geom ); CREATE INDEX woe_adm0_clean_index ON flickr_adm0_data_clean ( woe_id ); CREATE INDEX woe_adm1_clean_index ON flickr_adm1_data_clean ( woe_id ); CREATE INDEX woe_adm2_clean_index ON flickr_adm2_data_clean ( woe_id ); CREATE INDEX woe_locality_clean_index ON flickr_locality_data_clean ( woe_id ); CREATE INDEX woe_neighborhood_clean_index ON flickr_neighborhood_data_clean ( woe_id ); CREATE INDEX place_woe_id_index ON geoplanet_adjacencies ( place_woe_id ); CREATE INDEX placetype_index ON geoplanet_places ( placetype ); ================================================ FILE: quattroshapes/__init__.py ================================================ ================================================ FILE: quattroshapes/add_admins.sql ================================================ ALTER TABLE geoplanet_places ADD COLUMN woe_locality bigint; ALTER TABLE geoplanet_places ADD COLUMN woe_lau bigint; ALTER TABLE geoplanet_places ADD COLUMN woe_adm2 bigint; ALTER TABLE geoplanet_places ADD COLUMN woe_adm1 bigint; ALTER TABLE geoplanet_places ADD COLUMN woe_adm0 bigint; ALTER TABLE geoplanet_places ADD COLUMN name_locality character varying (255); ALTER TABLE geoplanet_places ADD COLUMN name_lau character varying (255); ALTER TABLE geoplanet_places ADD COLUMN name_adm2 character varying (255); ALTER TABLE geoplanet_places ADD COLUMN name_adm1 character varying (255); ALTER TABLE geoplanet_places ADD COLUMN name_adm0 character varying (255); -- woe_id | integer | not null -- iso | character varying(2) | not null -- state_woe_id | integer | not null -- county_woe_id | integer | not null -- local_admin_woe_id | integer | not null -- country_woe_id | integer | not null -- continent_woe_id | integer | not null -- This will work for localities on up, but not for Suburbs UPDATE geoplanet_places SET woe_locality = geoplanet_admins.woe_id, woe_lau = geoplanet_admins.local_admin_woe_id, woe_adm2 = geoplanet_admins.county_woe_id, woe_adm1 = geoplanet_admins.state_woe_id, woe_adm0 = geoplanet_admins.country_woe_id FROM geoplanet_admins WHERE geoplanet_admins.woe_id = geoplanet_places.woe_id; --Works except for NYC UPDATE geoplanet_places SET woe_locality = parent_id WHERE placetype = 'Suburb'; UPDATE geoplanet_places SET woe_locality = woe_id WHERE placetype = 'Town'; UPDATE geoplanet_places SET woe_lau = woe_id WHERE placetype = 'LocalAdmin'; UPDATE geoplanet_places SET woe_adm2 = woe_id WHERE placetype = 'County'; UPDATE geoplanet_places SET woe_adm1 = woe_id WHERE placetype = 'State'; UPDATE geoplanet_places SET woe_adm0 = woe_id WHERE placetype = 'Country'; -- ALTER TABLE geoplanet_places ADD COLUMN woe_locality bigint; -- ALTER TABLE geoplanet_places ADD COLUMN woe_lau bigint; -- ALTER TABLE geoplanet_places ADD COLUMN woe_adm2 bigint; -- ALTER TABLE geoplanet_places ADD COLUMN woe_adm1 bigint; -- ALTER TABLE geoplanet_places ADD COLUMN woe_adm0 bigint; -- ALTER TABLE geoplanet_places ADD COLUMN name_locality character varying (255); -- ALTER TABLE geoplanet_places ADD COLUMN name_lau character varying (255); -- ALTER TABLE geoplanet_places ADD COLUMN name_adm2 character varying (255); -- ALTER TABLE geoplanet_places ADD COLUMN name_adm1 character varying (255); -- ALTER TABLE geoplanet_places ADD COLUMN name_adm0 character varying (255); WITH placename AS ( SELECT name, woe_id FROM geoplanet_places ) UPDATE geoplanet_places SET name_locality = placename.name FROM placename WHERE geoplanet_places.woe_locality = placename.woe_id; WITH placename AS ( SELECT name, woe_id FROM geoplanet_places ) UPDATE geoplanet_places SET name_lau = placename.name FROM placename WHERE geoplanet_places.woe_lau = placename.woe_id; --http://stackoverflow.com/questions/9643859/postgres-missing-from-clause-entry-error-on-query-with-with-clause WITH placename AS ( SELECT name, woe_id FROM geoplanet_places ) UPDATE geoplanet_places SET name_adm2 = placename.name FROM placename WHERE geoplanet_places.woe_adm2 = placename.woe_id; WITH placename AS ( SELECT name, woe_id FROM geoplanet_places ) UPDATE geoplanet_places SET name_adm1 = placename.name FROM placename WHERE geoplanet_places.woe_adm1 = placename.woe_id; WITH placename AS ( SELECT name, woe_id FROM geoplanet_places ) UPDATE geoplanet_places SET name_adm0 = placename.name FROM placename WHERE geoplanet_places.woe_adm0 = placename.woe_id; ================================================ FILE: quattroshapes/bounds.py ================================================ #!/usr/bin/env python import sys from time import time from datetime import timedelta import math import numpy from psycopg2 import connect from optparse import OptionParser # Database details user_name = '' database_name = '' table_name = '' place_type = '' # Assumed the photos table is stored in the same database as geoplanet db_photos = '' db_photos_clean = '' # Explicate write and read database settings db_write_results = '' db_write_unique_id = '' db_read_unique_id = '' db_read_placetype = '' # Database connection using psycopg2 db = None cur = None chatty = False parser = OptionParser(usage="""%prog [options] For all places, find their photos and calculate if each photo is range in or an outlier.""") parser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare', help='Name of Postgres user to connect as.') parser.add_option('-d', '--db_name', dest='db_name', default='foursquare', help='Name of Postgres database to connect to.') parser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places', help='Name of table in Postgres database.') parser.add_option('-p', '--place_type', dest='place_type', default='Locality', help='Valid WOE placetypes are Country, State, County, LocalAdmin, Town, and Suburb.') (options, args) = parser.parse_args() def load_photos( unique_id, place_filter={} ): cur.execute(""" SELECT longitude, latitude FROM """ + db_photos + """ WHERE """ + db_read_unique_id + """ = """ + str(unique_id) ) photos = cur.fetchall() #print '\t', len(photos), 'photos' return photos def get_bbox_for_place( photos ): bbox = [180, 90, -180, -90] for pt in photos: for i in range(4): bbox[i] = min(bbox[i], pt[i%2]) if i<2 else max(bbox[i], pt[i%2]) median = (numpy.median([pt[0] for pt in photos]), numpy.median([pt[1] for pt in photos])) return (bbox, median) def main(): #Get all the places of that placetype cur.execute(""" SELECT """ + db_write_unique_id + """, name FROM """ + db_table_name ) #+ # """ WHERE """ + db_read_placetype + """ = '""" + place_type + """'""") places = cur.fetchall() print 'Evaluating %s places of type %s...' % (len(places), place_type) total_places = len(places) counter = 0 for place in places: counter += 1 unique_id, name = place if total_places > 10000: if counter % 1000 == 0: print '%s of %s: %s (%s)' % (counter, total_places, name, unique_id) else: print '%s of %s: %s (%s)' % (counter, total_places, name, unique_id) photos = load_photos( unique_id ) total_photos = len(photos) if total_places > 10000: if counter % 1000 == 0: print '\t', total_photos, 'photos' else: print '\t', total_photos, 'photos' if total_photos > 0: bbox, median = get_bbox_for_place( photos ) #print '\t%s: %s %s, %s %s' % (unique_id, bbox[0], bbox[1], bbox[2], bbox[3]) #print '\t%s, %s' % (median[0], median[1]) cur.execute(""" UPDATE """ + db_write_results + """ gp SET centroid_lon = """ + str(median[0]) + """, centroid_lat = """ + str(median[1]) + """, x_min = """ + str(bbox[0]) + """, y_min = """ + str(bbox[1]) + """, x_max = """ + str(bbox[2]) + """, y_max = """ + str(bbox[3]) + """, photos = """ + str(len(photos)) + """ WHERE gp.""" + db_write_unique_id + """ = """ + str(unique_id) ) db.commit() return total_places if __name__ == '__main__': app_time_start = time() db_user_name = options.db_user_name db_name = options.db_name db_table_name = options.db_table_name place_type = options.place_type # Normalize the WOE placetype and determine which table to read photos from if place_type == 'Country': db_photos = 'flickr_adm0_data' db_write_results = 'geoplanet_places' db_write_unique_id = 'woe_id' db_read_unique_id = 'woe_id' db_read_placetype = 'placetype' elif place_type == 'Admin' or place_type == 'State': place_type = 'State' db_photos = 'flickr_adm1_data' db_write_results = 'geoplanet_places' db_write_unique_id = 'woe_id' db_read_unique_id = 'woe_id' db_read_placetype = 'placetype' elif place_type == 'Admin2' or place_type == 'County': place_type = 'County' db_photos = 'flickr_adm2_data' db_write_results = 'geoplanet_places' db_write_unique_id = 'woe_id' db_read_unique_id = 'woe_id' db_read_placetype = 'placetype' elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU': print 'Admin3 is not supported at this time.' place_type = 'LocalAdmin' db_write_results = 'geoplanet_places' db_write_unique_id = 'woe_id' db_read_unique_id = 'woe_id' db_read_placetype = 'placetype' elif place_type == 'Town' or place_type == 'Locality': place_type = 'Town' db_photos = 'flickr_locality_data' db_write_results = 'geoplanet_places' db_write_unique_id = 'woe_id' db_read_unique_id = 'woe_id' db_read_placetype = 'placetype' elif place_type == 'Suburb' or place_type == 'Neighborhood': place_type = 'Suburb' db_photos = 'flickr_neighborhood_data' db_write_results = 'geoplanet_places' db_write_unique_id = 'woe_id' db_read_unique_id = 'woe_id' db_read_placetype = 'placetype' elif place_type == 'Geoname Locality': place_type = 'PPL' db_photos = 'checkins' db_write_results = 'geoname' db_write_unique_id = 'geonameid' db_read_unique_id = 'geoname_id' db_read_placetype = 'fcode' elif place_type == 'Geoname Population': place_type = 'P' db_photos = 'checkins' db_write_results = 'geoname' db_write_unique_id = 'geonameid' db_read_unique_id = 'geoname_id' db_read_placetype = 'fclass' elif place_type == 'Geoname Admin': place_type = 'A' db_photos = 'checkins' db_write_results = 'geoname' db_write_unique_id = 'geonameid' db_read_unique_id = 'geoname_id' db_read_placetype = 'fclass' print "Evaluating", place_type, "..." # Connect to the database db = connect(user=db_user_name, database=db_name) cur = db.cursor() total_places = main() app_time_end = time() time_display = str( timedelta(seconds=(app_time_end - app_time_start))) app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1) if app_time_total_minutes > 1: ppm = round(float(total_places) / app_time_total_minutes) else: ppm = total_places print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm) ================================================ FILE: quattroshapes/bounds.txt ================================================ DATABASE SETUP Assumes following columns are present in the target database tables: To make the selections: woe_id, name, placetype To store the results: centroid_lon, centroid_lat, x_min, y_min, x_max, y_max, photos PYTHON PROCESSING Let's calculate the bbox and centroid for each place in a category and store results: ./bounds.py -p Country ./bounds.py -p State ./bounds.py -p County ./bounds.py -p Town #Caluclated 265210 bounds in 0:09:03.002201 (29144.0 places per minute) ./bounds.py -p Suburb #Caluclated 1169381 bounds in 0:13:13.745297 (88589.0 places per minute) ./bounds_backfill.py -p Country ./bounds_backfill.py -p State ./bounds_backfill.py -p County ./bounds_backfill.py -p Town ./bounds_backfill.py -p Suburb ./bounds.py -p 'Geoname Admin' -t geoname Caluclated 8387704 bounds in 0:54:56.404674 (152781.0 places per minute) DATABASE POSTPROCESSING ALTER TABLE geoplanet_places ADD COLUMN accuracy character varying(30); UPDATE geoplanet_places SET accuracy = 'flickr median' WHERE photos > 0; SELECT AddGeometryColumn('geoplanet_places', 'the_geom', 4326, 'POINT', 2, true); UPDATE geoplanet_places SET the_geom = ST_SetSRID(ST_MakePoint(centroid_lon, centroid_lat),4326); #"woe_locality":"-1", "woe_lau":"-1", "woe_adm2":"-1", "woe_adm1":"-1", "woe_adm0":"-1" ALTER TABLE geoplanet_places ADD COLUMN woe_locality bigint; ALTER TABLE geoplanet_places ADD COLUMN woe_lau bigint; ALTER TABLE geoplanet_places ADD COLUMN woe_adm2 bigint; ALTER TABLE geoplanet_places ADD COLUMN woe_adm1 bigint; ALTER TABLE geoplanet_places ADD COLUMN woe_adm0 bigint; EXPORT TO SHP pgsql2shp -f shp/geoplanet_pts40.shp -g the_geom -u foursquare foursquare geoplanet_places_export pgsql2shp -f shp/geoplanet_admin0.shp -g the_geom -u foursquare foursquare geoplanet_places "select * from geoplanet_places where placetype = 'Country'" echo "UTF-8" > shp/geoplanet_admin0.cpg pgsql2shp -f shp/geoplanet_admin1.shp -g the_geom -u foursquare foursquare geoplanet_places "select * from geoplanet_places where placetype = 'State' And photos > 0" echo "UTF-8" > shp/geoplanet_admin1.cpg pgsql2shp -f shp/geoplanet_admin2.shp -g the_geom -u foursquare foursquare geoplanet_places "select * from geoplanet_places where placetype = 'County' And photos > 0" echo "UTF-8" > shp/geoplanet_admin2.cpg pgsql2shp -f shp/geoplanet_locality.shp -g the_geom -u foursquare foursquare geoplanet_places "select * from geoplanet_places where placetype = 'Town' And photos > 0" echo "UTF-8" > shp/geoplanet_locality.cpg pgsql2shp -f shp/geoplanet_neighborhood.shp -g the_geom -u foursquare foursquare geoplanet_places "select * from geoplanet_places where placetype = 'Suburb' And photos > 0" echo "UTF-8" > shp/geoplanet_neighborhood.cpg ALTER TABLE geoname ADD COLUMN centroid_lon float; ALTER TABLE geoname ADD COLUMN centroid_lat float; ALTER TABLE geoname ADD COLUMN x_min float; ALTER TABLE geoname ADD COLUMN y_min float; ALTER TABLE geoname ADD COLUMN x_max float; ALTER TABLE geoname ADD COLUMN y_max float; ALTER TABLE geoname ADD COLUMN photos bigint; ================================================ FILE: quattroshapes/bounds_backfill.py ================================================ #!/usr/bin/env python import sys from time import time from datetime import timedelta import math import numpy from psycopg2 import connect from optparse import OptionParser # Database details user_name = '' database_name = '' table_name = '' place_type = '' # Assumed the photos table is stored in the same database as geoplanet db_photos = '' db_photos_clean = '' # Database connection using psycopg2 db = None cur = None chatty = False parser = OptionParser(usage="""%prog [options] For all places, find their photos and calculate if each photo is range in or an outlier.""") parser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare', help='Name of Postgres user to connect as.') parser.add_option('-d', '--db_name', dest='db_name', default='foursquare', help='Name of Postgres database to connect to.') parser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places', help='Name of table in Postgres database.') parser.add_option('-p', '--place_type', dest='place_type', default='Locality', help='Valid WOE placetypes are Country, State, County, LocalAdmin, Town, and Suburb.') (options, args) = parser.parse_args() def load_photos( woe_id, place_filter={} ): if place_type == 'Country': cur.execute(""" SELECT longitude, latitude, photo_id FROM """ + db_photos + """ WHERE woe_adm0 = %s """, (woe_id,)) elif place_type == 'State': cur.execute(""" SELECT longitude, latitude, photo_id FROM """ + db_photos + """ WHERE woe_adm1 = %s """, (woe_id,)) elif place_type == 'County': cur.execute(""" SELECT longitude, latitude, photo_id FROM """ + db_photos + """ WHERE woe_adm2 = %s """, (woe_id,)) elif place_type == 'LocalAdmin': cur.execute(""" SELECT longitude, latitude, photo_id FROM """ + db_photos + """ WHERE woe_lau = %s """, (woe_id,)) elif place_type == 'Town': cur.execute(""" SELECT longitude, latitude, photo_id FROM """ + db_photos + """ WHERE woe_locality = %s """, (woe_id,)) elif place_type == 'Suburb': cur.execute(""" SELECT longitude, latitude, photo_id FROM """ + db_photos + """ WHERE woe_locality = %s """, (woe_id,)) photos = cur.fetchall() #print '\t', len(photos), 'photos' return photos def load_bbox_fallback( woe_id, place_filter={} ): bbox = [1, 1, -1, -1] median = (0,0) accuracy = 'flickr null island' nesting_levels = 10 level = 0 while level < nesting_levels: level += 1 cur.execute(""" SELECT placetype, parent_id FROM """ + db_table_name + """ WHERE woe_id = (%s);""", (woe_id,)) try: placetype, parent_id = cur.fetchone() except: return (bbox, median, accuracy) #print placetype, parent_id cur.execute(""" SELECT x_min, y_min, x_max, y_max, centroid_lon, centroid_lat FROM """ + db_table_name + """ WHERE woe_id = (%s)""", (parent_id,)) try: x_min, y_min, x_max, y_max, centroid_lon, centroid_lat = cur.fetchone() #don't return junk if x_min is None or centroid_lon is None: return (bbox, median, accuracy) #print x_min, y_min, x_max, y_max, centroid_lon, centroid_lat break except: return (bbox, median, accuracy) #set us up for the next loop woe_id = parent_id #print '\t', len(photos), 'photos' bbox = [x_max, y_max, x_min, y_min] median = (centroid_lon, centroid_lat) try: cur.execute(""" SELECT placetype FROM """ + db_table_name + """ WHERE woe_id = (%s);""", (parent_id,)) accuracy_place_type = cur.fetchone() except: return (bbox, median, accuracy) if accuracy_place_type[0] == 'Town' or accuracy_place_type[0] == 'Suburb': accuracy = 'flickr aggreate ' + accuracy_place_type[0] else: accuracy = 'flickr parent ' + accuracy_place_type[0] return (bbox, median, accuracy) def get_bbox_for_place( photos ): bbox = [180, 90, -180, -90] for pt in photos: for i in range(4): bbox[i] = min(bbox[i], pt[i%2]) if i<2 else max(bbox[i], pt[i%2]) median = (numpy.median([pt[0] for pt in photos]), numpy.median([pt[1] for pt in photos])) return (bbox, median) def main(): #Get all the places of that placetype cur.execute(""" SELECT woe_id, name FROM """ + db_table_name + """ WHERE placetype = (%s) AND photos IS NULL""", (place_type,)) #""" WHERE placetype = (%s) AND photos = 0""", (place_type,)) places = cur.fetchall() print 'Evaluating %s places of type %s...' % (len(places), place_type) total_places = len(places) counter = 0 for place in places: counter += 1 woe_id, name = place if total_places > 10000: if counter % 1000 == 0: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) else: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) photos = load_photos( woe_id ) total_photos = len(photos) if total_photos is None or total_photos == 0: bbox, median, accuracy = load_bbox_fallback( woe_id ) else: bbox, median = get_bbox_for_place( photos ) accuracy = 'flickr proxy locality-suburb' if total_places > 10000: if counter % 1000 == 0: print '\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3]) print '\t%s, %s' % (median[0], median[1]) print '\t%s' % (accuracy,) else: print '\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3]) print '\t%s, %s' % (median[0], median[1]) print '\t%s' % (accuracy,) cur.execute(""" UPDATE geoplanet_places gp SET centroid_lon = """ + str(median[0]) + """, centroid_lat = """ + str(median[1]) + """, x_min = """ + str(bbox[0]) + """, y_min = """ + str(bbox[1]) + """, x_max = """ + str(bbox[2]) + """, y_max = """ + str(bbox[3]) + """, photos = -""" + str(len(photos)) + """, accuracy = '""" + accuracy + """' WHERE gp.woe_id = """ + str(woe_id) ) db.commit() return total_places if __name__ == '__main__': app_time_start = time() db_user_name = options.db_user_name db_name = options.db_name db_table_name = options.db_table_name place_type = options.place_type #woe_locality | woe_lau | woe_adm2 | woe_adm1 | woe_adm0 # Normalize the WOE placetype and determine which table to read photos from if place_type == 'Country': search_place_type = 'woe_adm0' db_photos = 'flickr_merged_data' elif place_type == 'Admin' or place_type == 'State': search_place_type = 'woe_adm1' place_type = 'State' db_photos = 'flickr_merged_data' elif place_type == 'Admin2' or place_type == 'County': search_place_type = 'woe_adm2' place_type = 'County' db_photos = 'flickr_merged_data' elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU': search_place_type = 'woe_lau' #print 'Admin3 is not supported at this time.' place_type = 'LocalAdmin' db_photos = 'flickr_merged_data' elif place_type == 'Town' or place_type == 'Locality': search_place_type = 'woe_locality' place_type = 'Town' db_photos = 'flickr_merged_data' elif place_type == 'Suburb' or place_type == 'Neighborhood': search_place_type = 'woe_locality' place_type = 'Suburb' db_photos = 'flickr_merged_data' print "Evaluating", place_type, "..." # Connect to the database db = connect(user=db_user_name, database=db_name) cur = db.cursor() total_places = main() app_time_end = time() time_display = str( timedelta(seconds=(app_time_end - app_time_start))) app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1) if app_time_total_minutes > 1: ppm = round(float(total_places) / app_time_total_minutes) else: ppm = total_places print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm) ================================================ FILE: quattroshapes/bounds_backfill_woe_adjacent.py ================================================ #!/usr/bin/env python import sys from time import time from datetime import timedelta import math import numpy from psycopg2 import connect from optparse import OptionParser # Database details user_name = '' database_name = '' table_name = '' adjacency_db_table_name = '' place_type = '' # Assumed the photos table is stored in the same database as geoplanet db_photos = '' db_photos_clean = '' # Database connection using psycopg2 db = None cur = None chatty = False parser = OptionParser(usage="""%prog [options] For all places, find their photos and calculate if each photo is range in or an outlier.""") parser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare', help='Name of Postgres user to connect as.') parser.add_option('-d', '--db_name', dest='db_name', default='foursquare', help='Name of Postgres database to connect to.') parser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places', help='Name of table in Postgres database.') parser.add_option('-a', '--adjacency_db_table_name', dest='adjacency_db_table_name', default='geoplanet_adjacencies', help='Name of table in Postgres database.') parser.add_option('-p', '--place_type', dest='place_type', default='County', help='Valid WOE placetypes are County, LocalAdmin, Town.') (options, args) = parser.parse_args() def load_bbox_fallback( woe_id, orig_accuracy, place_filter={} ): bbox = [1, 1, -1, -1] median = (0,0) centroids = [median] accuracy = orig_accuracy cur.execute(""" SELECT neighbor_woe_id FROM """ + adjacency_db_table_name + """ WHERE place_woe_id = (%s)""", (woe_id,)) neighbors_list = cur.fetchall() if len(neighbors_list) > 0: counter = 0 accuracy_place_type = 'null' centroids = [] for neighbor in neighbors_list: neighbor_id = neighbor[0] try: cur.execute(""" SELECT placetype, woe_id, x_min, y_min, x_max, y_max, centroid_lon, centroid_lat FROM """ + db_table_name + """ WHERE woe_id = (%s) AND accuracy IN ('flickr aggregate Suburb','flickr aggregate Town', 'flickr median', 'geonames match', 'geonames match round 2') AND gn_matchaccuracy NOT IN ('unknown', 'twofish bad checkins extent') AND gn_matchaccuracy IS NOT NULL;""", (neighbor_id,)) neighbor_details = cur.fetchone() #print '\t', len(children), 'children places' placetype, woe_id, x_min, y_min, x_max, y_max, centroid_lon, centroid_lat = neighbor_details #print x_min, y_min, x_max, y_max, centroid_lon, centroid_lat #don't return junk if x_min is None or centroid_lon is None: return (bbox, median, accuracy) if counter is 0: bbox = [x_max, y_max, x_min, y_min] accuracy_place_type = placetype else: bbox[0] = min(bbox[0], x_min) bbox[1] = min(bbox[1], y_min) bbox[2] = max(bbox[2], x_max) bbox[3] = max(bbox[3], y_max) centroids.append( (centroid_lon,centroid_lat) ) counter = counter + 1 except: return (bbox, median, accuracy) # bbox is already set median = (numpy.median([pt[0] for pt in centroids]), numpy.median([pt[1] for pt in centroids])) accuracy = 'flickr neighbor ' + accuracy_place_type return (bbox, median, accuracy) def main(): #Get all the places of that placetype cur.execute(""" SELECT woe_id, name, accuracy FROM """ + db_table_name + """ WHERE placetype = (%s) AND accuracy IN ('flickr parent State','flickr parent Country', 'flickr parent County', 'flickr parent LocalAdmin', 'flickr null island', 'flickr proxy locality-suburb') """, (place_type,)) #""" WHERE placetype = (%s) AND photos = 0""", (place_type,)) places = cur.fetchall() print 'Evaluating %s places of type %s...' % (len(places), place_type) total_places = len(places) counter = 0 for place in places: counter += 1 woe_id, name, orig_accuracy = place if total_places > 1000: if counter % 100 == 0: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) else: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) bbox, median, accuracy = load_bbox_fallback( woe_id, orig_accuracy ) if total_places > 1000: if counter % 100 == 0: print '\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3]) print '\t%s, %s' % (median[0], median[1]) print '\t%s' % (accuracy,) else: print '\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3]) print '\t%s, %s' % (median[0], median[1]) print '\t%s' % (accuracy,) if orig_accuracy != accuracy: cur.execute(""" UPDATE geoplanet_places gp SET centroid_lon = """ + str(median[0]) + """, centroid_lat = """ + str(median[1]) + """, x_min = """ + str(bbox[0]) + """, y_min = """ + str(bbox[1]) + """, x_max = """ + str(bbox[2]) + """, y_max = """ + str(bbox[3]) + """, accuracy = '""" + accuracy + """' WHERE gp.woe_id = """ + str(woe_id) ) db.commit() return total_places if __name__ == '__main__': app_time_start = time() db_user_name = options.db_user_name db_name = options.db_name db_table_name = options.db_table_name adjacency_db_table_name = options.adjacency_db_table_name place_type = options.place_type #woe_locality | woe_lau | woe_adm2 | woe_adm1 | woe_adm0 # Normalize the WOE placetype and determine which table to read photos from if place_type == 'Admin1' or place_type == 'State': place_type = 'State' elif place_type == 'Admin2' or place_type == 'County': place_type = 'County' elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU': place_type = 'LocalAdmin' elif place_type == 'Town' or place_type == 'Locality': place_type = 'Town' print "Evaluating", place_type, "..." # Connect to the database db = connect(user=db_user_name, database=db_name) cur = db.cursor() total_places = main() app_time_end = time() time_display = str( timedelta(seconds=(app_time_end - app_time_start))) app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1) if app_time_total_minutes > 1: ppm = round(float(total_places) / app_time_total_minutes) else: ppm = total_places print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm) ================================================ FILE: quattroshapes/bounds_backfill_woe_children.py ================================================ #!/usr/bin/env python import sys from time import time from datetime import timedelta import math import numpy from psycopg2 import connect from optparse import OptionParser # Database details user_name = '' database_name = '' table_name = '' place_type = '' # Assumed the photos table is stored in the same database as geoplanet db_photos = '' db_photos_clean = '' # Database connection using psycopg2 db = None cur = None chatty = False parser = OptionParser(usage="""%prog [options] For all places, find their photos and calculate if each photo is range in or an outlier.""") parser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare', help='Name of Postgres user to connect as.') parser.add_option('-d', '--db_name', dest='db_name', default='foursquare', help='Name of Postgres database to connect to.') parser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places', help='Name of table in Postgres database.') parser.add_option('-p', '--place_type', dest='place_type', default='County', help='Valid WOE placetypes are County, LocalAdmin, Town.') (options, args) = parser.parse_args() def load_bbox_fallback( woe_id, orig_accuracy, place_filter={} ): bbox = [1, 1, -1, -1] median = (0,0) centroids = [median] accuracy = orig_accuracy cur.execute(""" SELECT placetype, woe_id, x_min, y_min, x_max, y_max, centroid_lon, centroid_lat FROM """ + db_table_name + """ WHERE woe_adm2 = (%s) AND accuracy in ('flickr aggregate Suburb','flickr aggregate Town', 'flickr median', 'geonames match', 'geonames match round 2');""", (woe_id,)) children = cur.fetchall() #print '\t', len(children), 'children places' counter = 0 accuracy_place_type = 'null' if len(children) > 0: centroids = [] for child in children: try: placetype, woe_id, x_min, y_min, x_max, y_max, centroid_lon, centroid_lat = child #print x_min, y_min, x_max, y_max, centroid_lon, centroid_lat #don't return junk if x_min is None or centroid_lon is None: return (bbox, median, accuracy) if counter is 0: bbox = [x_max, y_max, x_min, y_min] accuracy_place_type = placetype else: bbox[0] = min(bbox[0], x_min) bbox[1] = min(bbox[1], y_min) bbox[2] = max(bbox[2], x_max) bbox[3] = max(bbox[3], y_max) centroids.append( (centroid_lon,centroid_lat) ) counter = counter + 1 except: return (bbox, median, accuracy) # bbox is already set median = (numpy.median([pt[0] for pt in centroids]), numpy.median([pt[1] for pt in centroids])) accuracy = 'flickr children ' + accuracy_place_type #+ ' round 2' return (bbox, median, accuracy) def main(): #Get all the places of that placetype cur.execute(""" SELECT woe_id, name, accuracy FROM """ + db_table_name + """ WHERE placetype = (%s) AND accuracy IN ('flickr parent State','flickr parent Country', 'flickr parent County') """, (place_type,)) #""" WHERE placetype = (%s) AND photos = 0""", (place_type,)) places = cur.fetchall() print 'Evaluating %s places of type %s...' % (len(places), place_type) total_places = len(places) counter = 0 for place in places: counter += 1 woe_id, name, orig_accuracy = place if total_places > 1000: if counter % 100 == 0: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) else: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) bbox, median, accuracy = load_bbox_fallback( woe_id, orig_accuracy ) if total_places > 1000: if counter % 100 == 0: print '\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3]) print '\t%s, %s' % (median[0], median[1]) print '\t%s' % (accuracy,) else: print '\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3]) print '\t%s, %s' % (median[0], median[1]) print '\t%s' % (accuracy,) if orig_accuracy != accuracy: cur.execute(""" UPDATE geoplanet_places gp SET centroid_lon = """ + str(median[0]) + """, centroid_lat = """ + str(median[1]) + """, x_min = """ + str(bbox[0]) + """, y_min = """ + str(bbox[1]) + """, x_max = """ + str(bbox[2]) + """, y_max = """ + str(bbox[3]) + """, accuracy = '""" + accuracy + """' WHERE gp.woe_id = """ + str(woe_id) ) db.commit() return total_places if __name__ == '__main__': app_time_start = time() db_user_name = options.db_user_name db_name = options.db_name db_table_name = options.db_table_name place_type = options.place_type #woe_locality | woe_lau | woe_adm2 | woe_adm1 | woe_adm0 # Normalize the WOE placetype and determine which table to read photos from if place_type == 'Admin2' or place_type == 'County': place_type = 'County' elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU': place_type = 'LocalAdmin' elif place_type == 'Town' or place_type == 'Locality': place_type = 'Town' print "Evaluating", place_type, "..." # Connect to the database db = connect(user=db_user_name, database=db_name) cur = db.cursor() total_places = main() app_time_end = time() time_display = str( timedelta(seconds=(app_time_end - app_time_start))) app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1) if app_time_total_minutes > 1: ppm = round(float(total_places) / app_time_total_minutes) else: ppm = total_places print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm) ================================================ FILE: quattroshapes/check_neighbors.py ================================================ #!/usr/bin/env python import sys from time import time from datetime import timedelta import math import numpy from psycopg2 import connect from optparse import OptionParser from itertools import groupby # Database details user_name = '' database_name = '' table_name = '' adjacency_db_table_name = '' place_type = '' search_buffer = 0.2 # Database connection using psycopg2 db = None cur = None chatty = False parser = OptionParser(usage="""%prog [options] For all places, find their photos and calculate if each photo is range in or an outlier.""") parser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare', help='Name of Postgres user to connect as.') parser.add_option('-d', '--db_name', dest='db_name', default='foursquare', help='Name of Postgres database to connect to.') parser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places', help='Name of table in Postgres database.') parser.add_option('-a', '--adjacency_db_table_name', dest='adjacency_db_table_name', default='geoplanet_adjacencies', help='Name of table in Postgres database.') parser.add_option('-p', '--place_type', dest='place_type', default='Town', help='Valid WOE placetypes are County, LocalAdmin, Town.') parser.add_option('-c', '--compare_place_type', dest='compare_place_type', default='County', help='Valid WOE placetypes are County, LocalAdmin, Town.') parser.add_option('-b', '--search_buffer', dest='search_buffer', default=0.1, help='Distance in map units (usually meters or decimal degrees) from the source place to the reference places to limit search to immediate neighborhood.') (options, args) = parser.parse_args() def evaluate_neighbors( woe_id ): # Where is this place? cur.execute(""" SELECT ST_ASTEXT(the_geom), woe_adm2 FROM """ + db_table_name + """ WHERE woe_id = (%s)""", (woe_id,)) this_woe_geom, reference_parent_id = cur.fetchone() # What does GeoPlanet say about this place's neighbors? cur.execute(""" SELECT neighbor_woe_id FROM """ + adjacency_db_table_name + """ WHERE place_woe_id = (%s)""", (woe_id,)) neighbors_list_raw = cur.fetchall() neighbors_list = [] #tupples from fetch to basic list of ints for n in neighbors_list_raw: neighbors_list.append(n[0]) #print "neighbors_list", neighbors_list # How many reference places should exist? neighbors_total = len(neighbors_list) limit = 20 # Get all places within meters of this place point for places of like type. cur.execute(""" select woe_id, {4} from {0} where ST_DWITHIN( the_geom, ST_SETSRID(ST_GEOMFROMTEXT('{1}'),4326), {2} ) and placetype = '{3}' and woe_id != {6} order by ST_DISTANCE( the_geom, ST_SETSRID(ST_GEOMFROMTEXT('{1}'),4326) ) asc LIMIT {5};""".format(db_table_name, this_woe_geom, search_buffer, place_type, compare_place_type, limit, woe_id)) ref_places = cur.fetchall() #Track how many spatial neighbors match expected database neighbors counter = 0 parent_cohort_counter = 0 parent_woes = [] ref_places_len = len(ref_places) # Going nearest to farthest from the source point. for ref_place in ref_places: ref_woe_id, ref_parent_id = ref_place if ref_woe_id in neighbors_list: counter = counter + 1 parent_woes.append( ref_parent_id ) parent_cohort_counter = parent_woes.count(reference_parent_id) #print parent_woes, parent_cohort_counter, reference_parent_id accuracy = 'unknown' if neighbors_total > 0 and (counter is 0 and parent_cohort_counter is 0): accuracy = 'bad' if parent_cohort_counter > 1: if neighbors_total is 0: accuracy = 'good parents, null neighbors' else: accuracy = 'good parents' if counter > 0: accuracy = 'good neighbors' if counter > 0 and parent_cohort_counter > 0: accuracy = 'good neighbors and parents' if neighbors_total is not 0: fraction = float(counter) / neighbors_total if ref_places_len is not 0: parent_fraction = float(parent_cohort_counter) / ref_places_len if counter > 4 and fraction > .75 and parent_cohort_counter > 4 and parent_fraction > .75: accuracy = 'great neighbors and parents' #print '\t', accuracy #return (neighbors_total, counter, fraction, parent_cohort_counter, parent_fraction) return accuracy def main(): #Get all the places of that placetype cur.execute(""" SELECT woe_id, name FROM """ + db_table_name + """ WHERE placetype = (%s) AND accuracy = 'geonames match great' AND spatial_accuracy IS NULL ORDER BY woe_id LIMIT 37000 OFFSET (37000 * 0) """, (place_type,)) #""" WHERE placetype = (%s) AND photos = 0""", (place_type,)) places = cur.fetchall() print 'Evaluating %s places of type %s for parent-type %s...' % (len(places), place_type, compare_place_type) total_places = len(places) counter = 0 for place in places: counter += 1 woe_id, name = place if total_places > 1000: if counter % 100 == 0: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) else: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) accuracy = evaluate_neighbors( woe_id ) if total_places > 1000: if counter % 100 == 0: print '\t%s' % (accuracy,) else: print '\t%s' % (accuracy,) cur.execute(""" UPDATE geoplanet_places SET spatial_accuracy = '""" + accuracy + """' WHERE woe_id = """ + str(woe_id) ) db.commit() return total_places if __name__ == '__main__': app_time_start = time() db_user_name = options.db_user_name db_name = options.db_name db_table_name = options.db_table_name adjacency_db_table_name = options.adjacency_db_table_name place_type = options.place_type compare_place_type = options.compare_place_type search_buffer = options.search_buffer #woe_locality | woe_lau | woe_adm2 | woe_adm1 | woe_adm0 # Normalize the WOE placetype and determine which table to read photos from if place_type == 'Admin1' or place_type == 'State': place_type = 'State' elif place_type == 'Admin2' or place_type == 'County': place_type = 'County' elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU': place_type = 'LocalAdmin' elif place_type == 'Town' or place_type == 'Locality': place_type = 'Town' elif place_type == 'Suburb' or place_type == 'Neighborhood': place_type = 'Suburb' if compare_place_type == 'Admin1' or compare_place_type == 'State': compare_place_type = 'woe_adm1' elif compare_place_type == 'Admin2' or compare_place_type == 'County': compare_place_type = 'woe_adm2' elif compare_place_type == 'Admin3' or compare_place_type == 'LocalAdmin' or compare_place_type == 'LAU': compare_place_type = 'woe_lau' else: print "Only Admin1, Admin2, and LocalAdmin are valid comparisions" exit (0) print "Evaluating", place_type, "..." # Connect to the database db = connect(user=db_user_name, database=db_name) cur = db.cursor() total_places = main() app_time_end = time() time_display = str( timedelta(seconds=(app_time_end - app_time_start))) app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1) if app_time_total_minutes > 1: ppm = round(float(total_places) / app_time_total_minutes) else: ppm = total_places print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm) ================================================ FILE: quattroshapes/neighborhoods_diss_and_add_admin_ids_and_names.sql ================================================ -- 1. First the points for the voronoi ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quatroshapes_neighborhoods_pts.shp \ -nlt POLYGON PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT woe_id, name, the_geom FROM quatroshapes_neighborhoods" -- 2. Then the core quattroshapes part -- do the dissolve union CREATE TABLE quatroshapes_neighborhoods_diss AS SELECT woe_id, count(woe_id) as quad_count, sum(photo_count) as photo_sum, max(photo_count) as photo_max, ST_Union(f.poly_geom) as singlegeom FROM quatroshapes_neighborhoods As f GROUP BY woe_id; -- Update the geometry_columns table SELECT Populate_Geometry_Columns(); -- Then add the attrs back -- Add the columns ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN geoname_id numeric; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_adm0 numeric; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_adm1 numeric; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_adm2 numeric; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_lau numeric; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_locality numeric; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_en character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_adm0 character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_adm1 character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_adm2 character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_lau character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_locality character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_version character varying(10); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN placetype character varying(50); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_funk character varying(50); -- set the default UPDATE quatroshapes_neighborhoods_diss SET woe_version = 'unknown'; -- Populate the columns, from GeoPlanet 7.10.0 UPDATE quatroshapes_neighborhoods_diss SET name = geoplanet_places.name, name_en = geoplanet_places.english_name, geoname_id = geoplanet_places.gn_id, woe_adm0 = geoplanet_places.woe_adm0, woe_adm1 = geoplanet_places.woe_adm1, woe_adm2 = geoplanet_places.woe_adm2, woe_lau = geoplanet_places.woe_lau, woe_locality = geoplanet_places.woe_locality, name_adm0 = geoplanet_places.name_adm0, name_adm1 = geoplanet_places.name_adm1, name_adm2 = geoplanet_places.name_adm2, name_lau = geoplanet_places.name_lau, name_locality = geoplanet_places.name_locality, placetype = geoplanet_places.placetype, woe_funk = geoplanet_places.woe_funk, woe_version = '7.10.0' FROM geoplanet_places WHERE quatroshapes_neighborhoods_diss.woe_id = geoplanet_places.woe_id; -- make sure the locality is right on the one's UPDATE quatroshapes_neighborhoods_diss SET woe_locality = geoplanet_places.woe_locality, name_locality = geoplanet_places.name_locality FROM geoplanet_places WHERE quatroshapes_neighborhoods_diss.woe_locality = geoplanet_places.woe_id AND quatroshapes_neighborhoods_diss.woe_funk = 'Parented by a neighborhood' AND geoplanet_places.placetype = 'Town'; -- we changed a bunch of other ones -- make sure the locality is right on the one's UPDATE quatroshapes_neighborhoods_diss SET woe_locality = geoplanet_places.woe_locality, name_locality = geoplanet_places.name_locality FROM geoplanet_places WHERE quatroshapes_neighborhoods_diss.woe_id = geoplanet_places.woe_id --AND quatroshapes_neighborhoods_diss.woe_lau = quatroshapes_neighborhoods_diss.woe_locality ; -- SPECIAL CASES -- Laguna Heights, San Francisco, CA UPDATE geoplanet_places SET woe_locality = 2487956, name_locality = 'San Francisco' WHERE woe_id = 2434643; -- Le Frak City, New York, NY UPDATE geoplanet_places SET woe_locality = 2459115, name_locality = 'New York' WHERE woe_id = 23511863; UPDATE quatroshapes_neighborhoods_diss SET woe_locality = geoplanet_places.woe_locality, name_locality = geoplanet_places.name_locality FROM geoplanet_places WHERE quatroshapes_neighborhoods_diss.woe_id IN (23511863, 2434643) AND quatroshapes_neighborhoods_diss.woe_locality = geoplanet_places.woe_id; -- post lau=locality fix UPDATE quatroshapes_neighborhoods_diss SET woe_locality = geoplanet_places.woe_locality, name_locality = geoplanet_places.name_locality FROM geoplanet_places WHERE quatroshapes_neighborhoods_diss.woe_id = geoplanet_places.woe_id; -- General case UPDATE quatroshapes_neighborhoods_diss SET woe_locality = geoplanet_places.woe_locality, name_locality = geoplanet_places.name_locality FROM geoplanet_places WHERE quatroshapes_neighborhoods_diss.woe_locality = geoplanet_places.woe_id; WITH parentlocality_woe AS ( SELECT name, woe_id, placetype FROM geoplanet_places ) UPDATE quatroshapes_neighborhoods_diss SET woe_locality = geoplanet_places.woe_locality, name_locality = geoplanet_places.name_locality FROM geoplanet_places, parentlocality_woe WHERE quatroshapes_neighborhoods_diss.woe_id = geoplanet_places.woe_id AND geoplanet_places.woe_locality = parentlocality_woe.woe_id AND quatroshapes_neighborhoods_diss.woe_funk = 'Parented by a neighborhood' AND quatroshapes_neighborhoods_diss.woe_version = '7.10.0' AND parentlocality_woe.placetype = 'Town'; -- some localadmin don't have localites and the suburbs are parented directly. -- while that makes sense administratively, it's poor in terms of map display UPDATE quatroshapes_neighborhoods_diss SET woe_locality = woe_lau, name_locality = name_lau WHERE quatroshapes_neighborhoods_diss.woe_locality IS NULL; -- add the GN versions of the same ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_name character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_fcode character varying(10); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_adm0_cc character varying(2); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_name_adm1 character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_locality numeric; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_name_locality character varying(200); UPDATE quatroshapes_neighborhoods_diss SET gn_name = geoname.name, gn_fcode = geoname.fcode, gn_adm0_cc = geoname.cc2, gn_name_adm1 = geoname.admin1 FROM geoname WHERE quatroshapes_neighborhoods_diss.geoname_id = geoname.geonameid; WITH parentlocality_woe AS ( SELECT name, woe_id, gn_id, gn_name FROM geoplanet_places ) UPDATE quatroshapes_neighborhoods_diss SET gn_locality = parentlocality_woe.gn_id, gn_name_locality = parentlocality_woe.gn_name FROM parentlocality_woe WHERE quatroshapes_neighborhoods_diss.woe_locality = parentlocality_woe.woe_id; -- fill in more cc WITH parentlocality_woe AS ( SELECT name, woe_id, gn_id, gn_name FROM geoplanet_places ), parentlocality_gn AS ( SELECT name, geonameid, country FROM geoname ) UPDATE quatroshapes_neighborhoods_diss SET gn_adm0_cc = parentlocality_gn.country FROM parentlocality_woe, parentlocality_gn WHERE quatroshapes_neighborhoods_diss.woe_locality = parentlocality_woe.woe_id AND parentlocality_woe.gn_id = parentlocality_gn.geonameid AND quatroshapes_neighborhoods_diss.gn_adm0_cc IS NULL; -- fill in more admin1 WITH parentlocality_woe AS ( SELECT name, woe_id, gn_id, gn_name FROM geoplanet_places ), parentlocality_gn AS ( SELECT name, geonameid, admin1 FROM geoname ) UPDATE quatroshapes_neighborhoods_diss SET gn_name_adm1 = parentlocality_gn.admin1 FROM parentlocality_woe, parentlocality_gn WHERE quatroshapes_neighborhoods_diss.woe_locality = parentlocality_woe.woe_id AND parentlocality_woe.gn_id = parentlocality_gn.geonameid AND quatroshapes_neighborhoods_diss.gn_name_adm1 IS NULL AND quatroshapes_neighborhoods_diss.woe_locality = quatroshapes_neighborhoods_diss.woe_lau; -- how many are missing from GeoPlanet 7.10 SELECT count(*) FROM quatroshapes_neighborhoods_diss LEFT OUTER JOIN geoplanet_places ON geoplanet_places.woe_id = quatroshapes_neighborhoods_diss.woe_id WHERE geoplanet_places.woe_id IS null; -- let's set those from GeoPlanet 7.3.1 instead WITH missing AS ( SELECT quatroshapes_neighborhoods_diss.woe_id FROM quatroshapes_neighborhoods_diss LEFT OUTER JOIN geoplanet_places ON geoplanet_places.woe_id = quatroshapes_neighborhoods_diss.woe_id WHERE geoplanet_places.woe_id IS null ) UPDATE quatroshapes_neighborhoods_diss SET name = geoplanet_places_7_3_1.name, name_en = geoplanet_places_7_3_1.name, woe_adm0 = geoplanet_places_7_3_1.woe_adm0, woe_adm1 = geoplanet_places_7_3_1.woe_adm1, woe_adm2 = geoplanet_places_7_3_1.woe_adm2, woe_lau = geoplanet_places_7_3_1.woe_lau, woe_locality = geoplanet_places_7_3_1.woe_locality, name_adm0 = geoplanet_places_7_3_1.name_adm0, name_adm1 = geoplanet_places_7_3_1.name_adm1, name_adm2 = geoplanet_places_7_3_1.name_adm2, name_lau = geoplanet_places_7_3_1.name_lau, name_locality = geoplanet_places_7_3_1.name_locality, placetype = geoplanet_places_7_3_1.placetype, woe_funk = geoplanet_places_7_3_1.woe_funk, woe_version = '7.3.1' FROM missing, geoplanet_places_7_3_1 WHERE quatroshapes_neighborhoods_diss.woe_id = missing.woe_id AND quatroshapes_neighborhoods_diss.woe_id = geoplanet_places_7_3_1.woe_id; -- woe_id | name | name_en ----------+------+--------- -- 55999165 | | -- 55999062 | | -- 55999530 | | -- 55999278 | | -- 20162160 | | UPDATE quatroshapes_neighborhoods_diss SET name = 'Limehouse', name_en = 'Limehouse', woe_adm0 = 23424775, woe_adm1 = 2344922, woe_adm2 = 29375078, woe_lau = NULL, woe_locality = 4348, name_adm0 = 'Canada', name_adm1 = 'Ontario', name_adm2 = 'Halton', name_lau = '', name_locality = 'Acton' WHERE quatroshapes_neighborhoods_diss.woe_id = 55999165; UPDATE quatroshapes_neighborhoods_diss SET name = 'Belfountain', name_en = 'Belfountain', woe_adm0 = 23424775, woe_adm1 = 2344922, woe_adm2 = 29375178, woe_lau = NULL, woe_locality = 23396905, name_adm0 = 'Canada', name_adm1 = 'Ontario', name_adm2 = 'Peel', name_lau = '', name_locality = 'Caledon' WHERE quatroshapes_neighborhoods_diss.woe_id = 55999062; UPDATE quatroshapes_neighborhoods_diss SET name = 'Inglewood', name_en = 'Inglewood', woe_adm0 = 23424775, woe_adm1 = 2344922, woe_adm2 = 29375178, woe_lau = NULL, woe_locality = 23396905, name_adm0 = 'Canada', name_adm1 = 'Ontario', name_adm2 = 'Peel', name_lau = '', name_locality = 'Caledon' WHERE quatroshapes_neighborhoods_diss.woe_id = 55999530; UPDATE quatroshapes_neighborhoods_diss SET name = 'Claremont', name_en = 'Claremont', woe_adm0 = 23424775, woe_adm1 = 2344922, woe_adm2 = 29375180, woe_lau = NULL, woe_locality = 4364, name_adm0 = 'Canada', name_adm1 = 'Ontario', name_adm2 = 'Durham', name_lau = '', name_locality = 'Pickering' WHERE quatroshapes_neighborhoods_diss.woe_id = 55999278; UPDATE quatroshapes_neighborhoods_diss SET name = 'Gemeinde Mühltal', name_en = 'Gemeinde Muhltal', woe_adm0 = 23424829, woe_adm1 = 2345485, woe_adm2 = 12596968, woe_lau = NULL, woe_locality = NULL, name_adm0 = 'Germany', name_adm1 = 'Hesse', name_adm2 = 'Darmstadt-Dieburg', name_lau = '', name_locality = '' WHERE quatroshapes_neighborhoods_diss.woe_id = 20162160; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN hoods int; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN local_sum int; ALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN local_max int; WITH locality_hoods AS ( SELECT woe_locality, count(*) as neighbhoods, sum(photo_sum) as local_sum, max(photo_sum) as local_max FROM quatroshapes_neighborhoods_diss GROUP BY woe_locality ) UPDATE quatroshapes_neighborhoods_diss SET hoods = locality_hoods.neighbhoods, local_sum = locality_hoods.local_sum, local_max = locality_hoods.local_max FROM locality_hoods WHERE quatroshapes_neighborhoods_diss.woe_locality = locality_hoods.woe_locality; -- now back in the shell, let's export ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quatroshapes_neighborhoods_diss.shp -nlt POLYGON \ PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT woe_id, name, name_en, name_adm0, name_adm1, name_adm2, name_lau, name_locality as name_local, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_locality as woe_local, woe_version as woe_ver, placetype, geoname_id as gn_id, gn_name, gn_fcode, gn_adm0_cc, gn_name_adm1 as gn_namadm1, gn_locality as gn_local, gn_name_locality as gn_nam_loc, woe_funk, quad_count, photo_sum, photo_max, hoods as localhoods, local_sum, local_max, singlegeom FROM quatroshapes_neighborhoods_diss" -- 3. Then the buffer quattroshapes part (to clip the voronoi) -- do the dissolve union CREATE TABLE quatroshapes_neighborhoods_buffer_diss AS (SELECT 1, ST_Union(f.buffer_geom) as singlegeom FROM quatroshapes_neighborhoods As f); -- Update the geometry_columns table SELECT Populate_Geometry_Columns(); -- there is only 1 shape, so no attr to join -- now back in the shell, let's export ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quatroshapes_neighborhoods_buffer_diss.shp \ -nlt POLYGON PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT * FROM quatroshapes_neighborhoods_buffer_diss" -- locality dissolve version (for attr only) -- do the dissolve union DROP TABLE quatroshapes_neighborhoods_diss_as_locality; CREATE TABLE quatroshapes_neighborhoods_diss_as_locality AS SELECT woe_locality as woe_id, count(*) as localhoods, sum(photo_sum) as local_sum, max(photo_sum) as local_max, ST_Union(f.singlegeom) as singlegeom FROM quatroshapes_neighborhoods_diss As f GROUP BY woe_locality; -- Update the geometry_columns table SELECT Populate_Geometry_Columns(); -- Add the columns ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN geoname_id numeric; ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_adm0 numeric; ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_adm1 numeric; ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_adm2 numeric; ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_lau numeric; ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_locality numeric; ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_en character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_adm0 character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_adm1 character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_adm2 character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_lau character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_locality character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_version character varying(10); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN placetype character varying(50); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_funk character varying(50); -- set the default UPDATE quatroshapes_neighborhoods_diss_as_locality SET woe_version = 'unknown'; -- Populate the columns, from GeoPlanet 7.10.0 UPDATE quatroshapes_neighborhoods_diss_as_locality SET name = geoplanet_places.name, name_en = geoplanet_places.english_name, geoname_id = geoplanet_places.gn_id, woe_adm0 = geoplanet_places.woe_adm0, woe_adm1 = geoplanet_places.woe_adm1, woe_adm2 = geoplanet_places.woe_adm2, woe_lau = geoplanet_places.woe_lau, woe_locality = geoplanet_places.woe_locality, name_adm0 = geoplanet_places.name_adm0, name_adm1 = geoplanet_places.name_adm1, name_adm2 = geoplanet_places.name_adm2, name_lau = geoplanet_places.name_lau, name_locality = geoplanet_places.name_locality, placetype = geoplanet_places.placetype, woe_funk = geoplanet_places.woe_funk, woe_version = '7.10.0' FROM geoplanet_places WHERE quatroshapes_neighborhoods_diss_as_locality.woe_id = geoplanet_places.woe_id; -- add the GN versions of the same ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_name character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_fcode character varying(10); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_adm0_cc character varying(2); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_name_adm1 character varying(200); ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_locality numeric; ALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_name_locality character varying(200); UPDATE quatroshapes_neighborhoods_diss_as_locality SET gn_name = geoname.name, gn_fcode = geoname.fcode, gn_adm0_cc = geoname.country, gn_name_adm1 = geoname.admin1, gn_locality = geoname.geonameid, gn_name_locality = geoname.name FROM geoname WHERE quatroshapes_neighborhoods_diss_as_locality.geoname_id = geoname.geonameid; -- now back in the shell, let's export ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quatroshapes_neighborhoods_diss_as_locality.shp -nlt POLYGON \ PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT woe_id, name, name_en, name_adm0, name_adm1, name_adm2, name_lau, name_locality as name_local, woe_adm0, woe_adm1, woe_adm2, woe_lau, woe_locality as woe_local, woe_version as woe_ver, placetype, geoname_id as gn_id, gn_name, gn_fcode, gn_adm0_cc, gn_name_adm1 as gn_namadm1, gn_locality as gn_local, gn_name_locality as gn_nam_loc, woe_funk, localhoods, local_sum, local_max, singlegeom FROM quatroshapes_neighborhoods_diss_as_locality" ================================================ FILE: quattroshapes/outliers.py ================================================ #!/usr/bin/env python import sys from time import time import math import numpy from psycopg2 import connect from optparse import OptionParser # Outlier storage MEDIAN_THRESHOLD = 5.0 # Database details user_name = '' database_name = '' table_name = '' place_type = '' # Assumed the photos table is stored in the same database as geoplanet db_photos = '' db_photos_clean = '' # Database connection using psycopg2 db = None cur = None chatty = False parser = OptionParser(usage="""%prog [options] For all places, find their photos and calculate if each photo is range in or an outlier.""") parser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare', help='Name of Postgres user to connect as.') parser.add_option('-d', '--db_name', dest='db_name', default='foursquare', help='Name of Postgres database to connect to.') parser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places', help='Name of table in Postgres database.') parser.add_option('-p', '--place_type', dest='place_type', default='Locality', help='Valid WOE placetypes are Country, State, County, LocalAdmin, Town, and Suburb.') (options, args) = parser.parse_args() def median_distances(pts, aggregate=numpy.median): median = (numpy.median([pt[0] for pt in pts]), numpy.median([pt[1] for pt in pts])) distances = [] for pt in pts: dist = math.sqrt(((median[0]-pt[0])*math.cos(median[1]*math.pi/180.0))**2+(median[1]-pt[1])**2) distances.append((dist, pt)) median_dist = aggregate([dist for dist, pt in distances]) return (median_dist, distances, median) def mean_distances(photos): return median_distances(photos, numpy.mean) def load_photos( woe_id, place_filter={} ): cur.execute(""" SELECT longitude, latitude, photo_id FROM """ + db_photos + """ WHERE woe_id = (%s) """, (woe_id,)) photos = cur.fetchall() #print '\t', len(photos), 'photos' return photos def discard_outliers(photos, threshold=MEDIAN_THRESHOLD): count = 0 discarded = 0 result = {} total_photos = len(photos) if chatty: print '\tComputing outliers...' median_dist, distances, median = median_distances( photos ) if chatty: print '\tmedian_dist:', median_dist if median_dist > 0: keep = [pt for dist, pt in distances if dist < median_dist * threshold] discarded += total_photos - len(keep) if chatty: print '\t%d photos discarded of %d total' % (discarded, total_photos) return (keep, median, discarded) else: if chatty: print '\t%d photos discarded of %d total (dense cluster)' % (0, total_photos) return (photos, median, 0) def get_bbox_for_place( photos ): bbox = [180, 90, -180, -90] for pt in photos: for i in range(4): bbox[i] = min(bbox[i], pt[i%2]) if i<2 else max(bbox[i], pt[i%2]) return bbox def main(): #Get all the places of that placetype cur.execute(""" SELECT woe_id, name FROM """ + db_table_name + """ WHERE placetype = (%s)""", (place_type,)) places = cur.fetchall() print 'Evaluating %s places of type %s...' % (len(places), place_type) total_places = len(places) counter = 0 for place in places: counter += 1 woe_id, name = place if total_places > 10000: if counter % 1000 == 0: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) else: print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id) photos = load_photos( woe_id ) if len(photos) > 0: photos, median, discarded = discard_outliers( photos ) bbox = get_bbox_for_place( photos ) #print '\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3]) #print '\t%s, %s' % (median[0], median[1]) #Store result # Clear out the table first! # DELETE FROM db_photos_clean; for photo in photos: cur.execute(""" INSERT INTO """ + db_photos_clean + """ (photo_id, woe_id, longitude, latitude) VALUES (""" + str(photo[2]) + """,""" + str(woe_id) + """,""" + str(photo[0]) + """,""" + str(photo[1]) + """)""" ) db.commit() cur.execute(""" UPDATE geoplanet_places gp SET centroid_lon = """ + str(median[0]) + """, centroid_lat = """ + str(median[1]) + """, x_min = """ + str(bbox[0]) + """, y_min = """ + str(bbox[1]) + """, x_max = """ + str(bbox[2]) + """, y_max = """ + str(bbox[3]) + """, photos = """ + str(len(photos)) + """, outliers = """ + str(discarded) + """ WHERE gp.woe_id = """ + str(woe_id) ) db.commit() #if counter > 1000: # break if __name__ == '__main__': app_time_start = time() db_user_name = options.db_user_name db_name = options.db_name db_table_name = options.db_table_name place_type = options.place_type # Normalize the WOE placetype and determine which table to read photos from if place_type == 'Country': db_photos = 'flickr_adm0_data' elif place_type == 'Admin' or place_type == 'State': place_type = 'State' db_photos = 'flickr_adm1_data' elif place_type == 'Admin2' or place_type == 'County': place_type = 'County' db_photos = 'flickr_adm2_data' elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU': print 'Admin3 is not supported at this time.' place_type = 'LocalAdmin' elif place_type == 'Town' or place_type == 'Locality': place_type = 'Town' db_photos = 'flickr_locality_data' elif place_type == 'Suburb' or place_type == 'Neighborhood': place_type = 'Suburb' db_photos = 'flickr_neighborhood_data' db_photos_clean = db_photos + '_clean' # Connect to the database db = connect(user=db_user_name, database=db_name) cur = db.cursor() main() app_time_end = time() app_time_total_minutes = round((app_time_end - app_time_start) / 1000 / 60, 1) print 'Outliers calculated in %s minutes.' % (app_time_total_minutes) ================================================ FILE: quattroshapes/outliers_mark_ignore.py ================================================ #!/usr/bin/env python import sys from time import time from datetime import timedelta import math import numpy from psycopg2 import connect from optparse import OptionParser # Database details user_name = '' database_name = '' table_name = '' # Assumed the photos table is stored in the same database as geoplanet db_photos = '' db_photos_clean = '' # Explicate write and read database settings db_write_results = '' db_write_unique_id = '' db_read_unique_id = '' # Database connection using psycopg2 db = None cur = None chatty = False parser = OptionParser(usage="""%prog [options] For all places, find their photos and calculate if each photo is range in or an outlier.""") parser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare', help='Name of Postgres user to connect as.') parser.add_option('-d', '--db_name', dest='db_name', default='foursquare', help='Name of Postgres database to connect to.') parser.add_option('-t', '--db_table_name', dest='db_table_name', default='quatroshapes_extras', help='Name of table in Postgres database.') parser.add_option('-c', '--count', dest='count', default=1, help='How many neighbors must match to NOT be an outlier.') (options, args) = parser.parse_args() def load_parts( wkt, place_filter={} ): cur.execute(""" SELECT """ + db_write_unique_id + """ as id, COUNT(""" + db_write_unique_id + """) as neighbors FROM """ + db_table_name + """ WHERE ST_Touches( poly_geom, ST_GeomFromText('""" + wkt + """', 4326) ) GROUP BY """ + db_write_unique_id + """ ORDER BY neighbors DESC; """) neighbors = cur.fetchall() #print '\t', len(neighbors), 'neighbors' return neighbors def main(): #Get all the places of that placetype cur.execute(""" SELECT """ + db_bounds_unique_id + """, """ + db_bounds_placename + """ ST_AsText( db_bounds_geom_name ) as wkt FROM """ + db_bounds_table_name ) places = cur.fetchall() print 'Evaluating %s places...' % (len(places),) total_places = len(places) counter = 0 for place in places: counter += 1 unique_id, name, zoom, row, col, wkt = place if total_places > 10000: if counter % 1000 == 0: print '%s of %s: %s (%s) at %s/%s/%s' % (counter, total_places, name, unique_id) else: print '%s of %s: %s (%s) at %s/%s/%s' % (counter, total_places, name, unique_id) parts = load_parts( unique_id ) total_parts = len(parts) if total_parts > 0: # is at least one of the neighbors of the same id? if not: outlier = True c = 0 #This should always be length of 8 for n in parts: if n[0] == unique_id: c = c + 1 if c >= count_threshold: outlier = False if outlier: cur.execute(""" UPDATE """ + db_write_results + """ SET """ + db_write_unique_id + """ = """ + str(neighbors[0][0]) + """ WHERE zoom = """ + str(zoom) + """ AND row = """ + str(row) + """ AND col = """ + str(col) ) db.commit() return total_places if __name__ == '__main__': app_time_start = time() db_user_name = options.db_user_name db_name = options.db_name db_table_name = options.db_table_name count_threshold = options.count db_photos = 'quatroshapes_extras' db_write_results = 'quatroshapes_extras' db_write_unique_id = 'woe_id' db_read_unique_id = 'woe_id' db_bounds_table_name = 'geoname_checkin_counts' db_bounds_geom_name = 'poly_geom' db_bounds_unique_id = 'geoname_id' db_bounds_placename = 'gn_placename' # Connect to the database db = connect(user=db_user_name, database=db_name) cur = db.cursor() total_places = main() app_time_end = time() time_display = str( timedelta(seconds=(app_time_end - app_time_start))) app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1) if app_time_total_minutes > 1: ppm = round(float(total_places) / app_time_total_minutes) else: ppm = total_places print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm) ================================================ FILE: quattroshapes/quattroshapes_gazetteer.sql ================================================ --http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html DROP TABLE quattroshapes_gazetteer; CREATE TABLE quattroshapes_gazetteer AS (WITH gn_with_woe AS ( SELECT geonameid as gn_id, woe_id, name, country, photos as checkins, population, asciiname, admin1, admin2, fclass, fcode, the_geom FROM geoname WHERE population > 0 OR fclass = 'A' OR fcode IN ('PPLG','PPLC','PPLCH','PPLA','PPLA2','PPLA3','PPLA4') OR woe_id IS NOT NULL ), woe_with_gn AS ( SELECT woe_id, gn_id, name, english_name, placetype, iso, language, parent_id, woe_locality, woe_lau, woe_adm2, woe_adm1, woe_adm0, name_locality, name_lau, name_adm2, name_adm1, name_adm0, gns_id, accuracy, gn_matcht, spatial_ac, woe_funk, photos_again, photos_again_aggregate, photos_children_places, geom FROM geoplanet_places WHERE photos > 0 OR placetype IN ('Country','State','County','LocalAdmin') OR gn_id IS NOT NULL OR accuracy IN ('flickr aggregate Suburb','flickr aggregate Town','flickr median', 'flickr children Town','geonames match great','geonames match','geonames match round 2','other match great') ) SELECT -- count(*) --gn_with_woe.name, gn_with_woe.gn_id, woe_with_gn.woe_id, woe_with_gn.gn_id, gn_with_woe.country, checkins gn_with_woe.gn_id as gn_id, woe_with_gn.woe_id as woe_id, gn_with_woe.woe_id as woe_id_maybe, woe_with_gn.gn_id as gn_id_maybe, gn_with_woe.name as gn_name, gn_with_woe.asciiname as gn_asciiname, gn_with_woe.country as gn_country, gn_with_woe.admin1 as gn_admin1, gn_with_woe.admin2 as gn_admin2, gn_with_woe.population as gn_population, gn_with_woe.fclass as gn_fclass, gn_with_woe.fcode as gn_fcode, woe_with_gn.name as woe_name, woe_with_gn.name as name, woe_with_gn.english_name as woe_name_en, woe_with_gn.placetype, woe_with_gn.iso, woe_with_gn.language, woe_with_gn.parent_id, woe_with_gn.woe_locality, woe_with_gn.woe_lau, woe_with_gn.woe_adm2, woe_with_gn.woe_adm1, woe_with_gn.woe_adm0, woe_with_gn.name_locality, woe_with_gn.name_lau, woe_with_gn.name_adm2, woe_with_gn.name_adm1, woe_with_gn.name_adm0, woe_with_gn.gns_id, woe_with_gn.accuracy, woe_with_gn.gn_matcht as gn_matchtype, woe_with_gn.spatial_ac as spatial_accuracy, woe_with_gn.woe_funk, woe_with_gn.photos_again as photos, woe_with_gn.photos_again_aggregate as photos_all, woe_with_gn.photos_children_places as woe_members, woe_with_gn.geom as photos_geom, gn_with_woe.checkins as checkins, gn_with_woe.the_geom as checkins_geom FROM gn_with_woe FULL OUTER JOIN woe_with_gn ON gn_with_woe.woe_id = woe_with_gn.woe_id AND gn_with_woe.gn_id = woe_with_gn.gn_id); -- http://www.kindle-maps.com/blog/retrospectivly-adding-a-unique-primary-id-column-to-a-table-in-postgresql.html CREATE SEQUENCE qs_ids2; ALTER TABLE quattroshapes_gazetteer ADD qs_id INT UNIQUE; UPDATE quattroshapes_gazetteer SET qs_id = NEXTVAL('qs_ids2'); ALTER TABLE quattroshapes_gazetteer ADD COLUMN checkins_index float; ALTER TABLE quattroshapes_gazetteer ADD COLUMN photos_index float; ALTER TABLE quattroshapes_gazetteer ADD COLUMN photos_all_index float; ALTER TABLE quattroshapes_gazetteer ADD COLUMN checkins_rank int; ALTER TABLE quattroshapes_gazetteer ADD COLUMN photos_rank int; ALTER TABLE quattroshapes_gazetteer ADD COLUMN photos_all_rank int; ALTER TABLE quattroshapes_gazetteer ADD COLUMN population_rank int; SELECT max(photos), stddev_pop(photos) FROM quattroshapes_gazetteer; -- max | stddev_pop ---------+------------------- -- 50015 | 1645.364073003709 SELECT max(photos_all), stddev_pop(photos_all) FROM quattroshapes_gazetteer; -- max | stddev_pop ------------+---------------- -- 46598243 | 75209.47951609 UPDATE quattroshapes_gazetteer SET photos_index = round(1.0 * photos / (1645*3) * 1000) WHERE photos > 0; UPDATE quattroshapes_gazetteer SET photos_all_index = round(1.0 * photos_all / (75209*3) * 1000.0) WHERE photos_all > 0; UPDATE quattroshapes_gazetteer SET checkins_index = 1 WHERE checkins_index = 0 and checkins > 0; UPDATE quattroshapes_gazetteer SET photos_index = 1 WHERE photos_index = 0 and photos > 0; UPDATE quattroshapes_gazetteer SET photos_all_index = 1 WHERE photos_all_index = 0 and photos_all > 0; UPDATE quattroshapes_gazetteer SET checkins_index = 1000 WHERE checkins_index > 1000; UPDATE quattroshapes_gazetteer SET photos_index = 1000 WHERE photos_index > 1000; UPDATE quattroshapes_gazetteer SET photos_all_index = 1000 WHERE photos_all_index > 1000; SELECT AddGeometryColumn('quattroshapes_gazetteer', 'blended_geom', 4326, 'POINT', 2, true); UPDATE quattroshapes_gazetteer SET blended_geom = checkins_geom where checkins_geom IS NOT NULL; UPDATE quattroshapes_gazetteer SET blended_geom = photos_geom where checkins_geom IS NULL; SELECT AddGeometryColumn('quattroshapes_gazetteer', 'blended_geom_gp', 4326, 'POINT', 2, true); UPDATE quattroshapes_gazetteer SET blended_geom_gp = photos_geom where photos_geom IS NOT NULL; UPDATE quattroshapes_gazetteer SET blended_geom_gp = checkins_geom where photos_geom IS NULL; -- where there wasn't a value in GeoPlanet side of the join, let's fill in with Geonames UPDATE quattroshapes_gazetteer SET name = gn_name where name IS NULL; --ALTER TABLE quattroshapes_gazetteer ADD COLUMN poprank smallint; ALTER TABLE quattroshapes_gazetteer ADD COLUMN scalerank smallint; ALTER TABLE quattroshapes_gazetteer ADD COLUMN natscale smallint; ALTER TABLE quattroshapes_gazetteer ADD COLUMN adm0cap numeric; ALTER TABLE quattroshapes_gazetteer ADD COLUMN featurecla character varying(50); ALTER TABLE quattroshapes_gazetteer ADD COLUMN worldcity smallint; ALTER TABLE quattroshapes_gazetteer ADD COLUMN megacity smallint; ALTER TABLE quattroshapes_gazetteer ADD COLUMN metro_core smallint; ALTER TABLE quattroshapes_gazetteer ADD COLUMN micro_core smallint; -- the combo file has two different columns for unique ID, normalize them UPDATE pop12_comp_dedup_merge SET geonameid = geon WHERE geonameid = 0; -- make sure there is a difference between 0 and null (-99) UPDATE quattroshapes_gazetteer SET -- poprank = -99, scalerank = -99, natscale = -99; -- set many attributes for the gazetteer of the main file with 135k features. UPDATE quattroshapes_gazetteer SET -- poprank = pop12_comp_dedup_merge.poprank, scalerank = pop12_comp_dedup_merge.scalerank, natscale = pop12_comp_dedup_merge.natrlScl, adm0cap = pop12_comp_dedup_merge.adm0cap, featurecla = pop12_comp_dedup_merge.featurecla, worldcity = pop12_comp_dedup_merge.worldcity, megacity = pop12_comp_dedup_merge.megacity, metro_core = pop12_comp_dedup_merge.metro_core FROM pop12_comp_dedup_merge WHERE gn_id = pop12_comp_dedup_merge.geonameid; -- redo this (not sure it's necc twice) UPDATE quattroshapes_gazetteer SET -- poprank = pop12_comp_dedup_merge.poprank, scalerank = pop12_comp_dedup_merge.scalerank, natscale = pop12_comp_dedup_merge.natrlScl FROM pop12_comp_dedup_merge WHERE gn_id = pop12_comp_dedup_merge.geonameid; -- prefer the population rank from my edited 135k features over GN population derived values UPDATE quattroshapes_gazetteer SET population_rank = poprank WHERE population_rank < poprank; -- version 2.0 of Natural Earth had better scale ranks UPDATE quattroshapes_gazetteer SET poprank = ne_10m_populated_places.rank_max, scalerank = ne_10m_populated_places.scalerank, natscale = ne_10m_populated_places.natscale FROM ne_10m_populated_places WHERE quattroshapes_gazetteer.gn_id = ne_10m_populated_places.geonameid; UPDATE quattroshapes_gazetteer SET micro_core = 1, metro_core = 0 FROM pop12_comp_dedup_merge WHERE gn_id = pop12_comp_dedup_merge.geonameid AND pop12_comp_dedup_merge.metro_type = 'micro'; UPDATE quattroshapes_gazetteer SET gn_population = pop12_comp_dedup_merge.population FROM pop12_comp_dedup_merge WHERE gn_id = pop12_comp_dedup_merge.geonameid AND gn_population IS NULL; UPDATE quattroshapes_gazetteer SET gn_population = pop12_comp_dedup_merge.pop_2000 FROM pop12_comp_dedup_merge WHERE gn_id = pop12_comp_dedup_merge.geonameid AND gn_population IS NULL; UPDATE quattroshapes_gazetteer SET gn_population = pop12_comp_dedup_merge.epspop FROM pop12_comp_dedup_merge WHERE gn_id = pop12_comp_dedup_merge.geonameid AND gn_population IS NULL; UPDATE quattroshapes_gazetteer SET metro_core = 1 FROM us_admin_2_counties_d10m_d WHERE gn_id = us_admin_2_counties_d10m_d.gn1n AND us_admin_2_counties_d10m_d.metro = 1; UPDATE quattroshapes_gazetteer SET micro_core = 1 FROM us_admin_2_counties_d10m_d WHERE gn_id = us_admin_2_counties_d10m_d.gn1n AND us_admin_2_counties_d10m_d.micro = 1; UPDATE quattroshapes_gazetteer SET population_rank = CASE WHEN gn_population > 15000000 THEN 15 WHEN gn_population > 10000000 THEN 14 WHEN gn_population > 5000000 THEN 13 WHEN gn_population > 1000000 THEN 12 WHEN gn_population > 500000 THEN 11 WHEN gn_population > 200000 THEN 10 WHEN gn_population > 100000 THEN 9 WHEN gn_population > 50000 THEN 8 WHEN gn_population > 20000 THEN 7 WHEN gn_population > 10000 THEN 6 WHEN gn_population > 5000 THEN 5 WHEN gn_population > 2000 THEN 4 WHEN gn_population > 1000 THEN 3 WHEN gn_population > 200 THEN 2 WHEN gn_population > 0 THEN 1 ELSE 0 END; UPDATE quattroshapes_gazetteer SET photos_rank = CASE WHEN photos > 42000 THEN 30 WHEN photos > 30000 THEN 29 WHEN photos > 22000 THEN 28 WHEN photos > 15000 THEN 27 WHEN photos > 10500 THEN 26 WHEN photos > 6800 THEN 25 WHEN photos > 4850 THEN 24 WHEN photos > 4300 THEN 23 WHEN photos > 3850 THEN 22 WHEN photos > 3500 THEN 21 WHEN photos > 3050 THEN 20 WHEN photos > 2750 THEN 19 WHEN photos > 2500 THEN 18 WHEN photos > 2250 THEN 17 WHEN photos > 2050 THEN 16 WHEN photos > 1850 THEN 15 WHEN photos > 1650 THEN 14 WHEN photos > 1500 THEN 13 WHEN photos > 1250 THEN 12 WHEN photos > 1000 THEN 11 WHEN photos > 850 THEN 10 WHEN photos > 750 THEN 9 WHEN photos > 550 THEN 8 WHEN photos > 450 THEN 7 WHEN photos > 350 THEN 6 WHEN photos > 250 THEN 5 WHEN photos > 150 THEN 4 WHEN photos > 75 THEN 3 WHEN photos > 25 THEN 2 WHEN photos > 0 THEN 1 ELSE 0 END; UPDATE quattroshapes_gazetteer SET photos_all_rank = CASE WHEN photos_all > 600000 THEN 30 WHEN photos_all > 500000 THEN 29 WHEN photos_all > 375000 THEN 28 WHEN photos_all > 250000 THEN 27 WHEN photos_all > 73000 THEN 26 WHEN photos_all > 55000 THEN 25 WHEN photos_all > 44000 THEN 24 WHEN photos_all > 33500 THEN 23 WHEN photos_all > 25000 THEN 22 WHEN photos_all > 20000 THEN 21 WHEN photos_all > 18000 THEN 20 WHEN photos_all > 15000 THEN 19 WHEN photos_all > 13000 THEN 18 WHEN photos_all > 11500 THEN 17 WHEN photos_all > 10000 THEN 16 WHEN photos_all > 6500 THEN 15 WHEN photos_all > 4900 THEN 14 WHEN photos_all > 4300 THEN 13 WHEN photos_all > 3500 THEN 12 WHEN photos_all > 2800 THEN 11 WHEN photos_all > 2300 THEN 10 WHEN photos_all > 1800 THEN 9 WHEN photos_all > 1500 THEN 8 WHEN photos_all > 1000 THEN 7 WHEN photos_all > 750 THEN 6 WHEN photos_all > 300 THEN 5 WHEN photos_all > 150 THEN 4 WHEN photos_all > 75 THEN 3 WHEN photos_all > 25 THEN 2 WHEN photos_all > 0 THEN 1 ELSE 0 END; -- geoname lat-long locations, then if there is not one, geoplanet / flickr lat-long locations ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quattroshapes_gazetteer_gn_then_gp.shp -nlt POINT \ PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT name, qs_id, gn_id, woe_id, gn_id_maybe as gn_id_eh, woe_id_maybe as woe_id_eh, featurecla, scalerank, natscale, adm0cap, worldcity, megacity, metro_core, micro_core, gn_name, gn_asciiname as gn_ascii, gn_country, gn_admin1, gn_admin2, gn_population as gn_pop, gn_fclass, gn_fcode, woe_name, woe_name_en as woe_nameen, placetype, iso, language, parent_id, woe_locality as woe_local, woe_lau, woe_adm2, woe_adm1, woe_adm0, name_locality as name_local, name_lau, name_adm2, name_adm1, name_adm0, gns_id, accuracy, gn_matchtype as matchtype, spatial_accuracy as geom_qual, woe_funk, photos, photos_all, woe_members as woemembers, qs_id, checkins_index as checkin_1k, photos_index as photos_1k, photos_all_index as photos_9k, checkins_rank as checkin_sr, photos_rank as photos_sr, photos_all_rank as photos_9r, population_rank as pop_sr, blended_geom FROM quattroshapes_gazetteer" rm -f shp/quattroshapes_gazetteer_gn_then_gp.zip zip shp/quattroshapes_gazetteer_gn_then_gp.zip shp/quattroshapes_gazetteer_gn_then_gp.* -- geoplanet lat-long locations, then if there is not one, geonames lat-long locations ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quattroshapes_gazetteer_gp_then_gn.shp -nlt POINT \ PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT name, qs_id, gn_id, woe_id, gn_id_maybe as gn_id_eh, woe_id_maybe as woe_id_eh, gn_name, gn_asciiname as gn_ascii, gn_country, gn_admin1, gn_admin2, gn_population as gn_pop, gn_fclass, gn_fcode, woe_name, woe_name_en as woe_nameen, placetype, iso, language, parent_id, woe_locality as woe_local, woe_lau, woe_adm2, woe_adm1, woe_adm0, name_locality as name_local, name_lau, name_adm2, name_adm1, name_adm0, gns_id, accuracy, gn_matchtype as matchtype, spatial_accuracy as geom_qual, woe_funk, photos, photos_all, woe_members as woemembers, checkins_index as checkin_1k, photos_index as photos_1k, photos_all_index as photos_9k, checkins_rank as checkin_sr, photos_rank as photos_sr, photos_all_rank as photos_9r, population_rank as pop_sr, blended_geom_gp FROM quattroshapes_gazetteer" rm -f shp/quattroshapes_gazetteer_gp_then_gn.zip zip shp/quattroshapes_gazetteer_gp_then_gn.zip shp/quattroshapes_gazetteer_gp_then_gn.* -- geoname lat-long locations, then if there is not one, geoplanet / flickr lat-long locations ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quattroshapes_gazetteer_gn_then_gp_with_content.shp -nlt POINT \ PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT name, qs_id, gn_id, woe_id, gn_population as gn_pop, placetype, gn_fcode, name_adm1, gn_country, woe_adm0, name_adm0, photos, photos_all, checkins_index as checkin_1k, photos_index as photos_1k, photos_all_index as photos_9k, checkins_rank as checkin_sr, photos_rank as photos_sr, photos_all_rank as photos_9r, population_rank as pop_sr, blended_geom FROM quattroshapes_gazetteer WHERE checkins > 0 or photos > 0 or gn_population > 0" rm shp/quattroshapes_gazetteer_gn_then_gp_with_content.zip zip shp/quattroshapes_gazetteer_gn_then_gp_with_content.zip shp/quattroshapes_gazetteer_gn_then_gp_with_content.* -- again but for any locality or P class ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quattroshapes_gazetteer_gn_then_gp_locality.shp -nlt POINT \ PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT name, qs_id, gn_id, woe_id, gn_population as gn_pop, placetype, gn_fcode, name_adm1, gn_country, woe_adm0, name_adm0, photos, photos_all, checkins_index as checkin_1k, photos_index as photos_1k, photos_all_index as photos_9k, checkins_rank as checkin_sr, photos_rank as photos_sr, photos_all_rank as photos_9r, population_rank as pop_sr, blended_geom FROM quattroshapes_gazetteer WHERE placetype = 'Town' OR (gn_fclass = 'P' and gn_fcode != 'P.PPLX')" rm -f shp/quattroshapes_gazetteer_gn_then_gp_locality.zip zip shp/quattroshapes_gazetteer_gn_then_gp_locality.zip shp/quattroshapes_gazetteer_gn_then_gp_locality.* -- geoname lat-long locations ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quattroshapes_gazetteer_gn.shp -nlt POINT \ PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT gn_id, woe_id, gn_name, gn_asciiname as gn_ascii, gn_country, gn_admin1, gn_population as gn_pop, gn_fclass, gn_fcode, woe_name, woe_name_en as woe_nameen, placetype, iso, language, parent_id, woe_locality as woe_local, woe_lau, woe_adm2, woe_adm1, woe_adm0, name_locality as name_local, name_lau, name_adm2, name_adm1, name_adm0, gns_id, accuracy, gn_matchtype as matchtype, spatial_accuracy as geom_qual, woe_funk, photos, woe_members as woemembers, checkins, qs_id, checkins_geom FROM quattroshapes_gazetteer" -- geoplanet / flickr lat-long locations ogr2ogr -f "ESRI Shapefile" -lco ENCODING="UTF-8" -s_srs EPSG:4326 -t_srs EPSG:4326 \ -overwrite shp/quattroshapes_gazetteer_gp.shp -nlt POINT \ PG:"host=localhost user=foursquare dbname=foursquare" \ -sql "SELECT gn_id, woe_id, gn_name, gn_asciiname, gn_country, gn_admin1, gn_population, gn_fclass, gn_fcode, woe_name, woe_name_en, placetype, iso, language, parent_id, woe_locality, woe_lau, woe_adm2, woe_adm1, woe_adm0, name_locality, name_lau, name_adm2, name_adm1, name_adm0, gns_id, accuracy, gn_matchtype, spatial_accuracy, woe_funk, photos, woe_members, checkins, qs_id, photos_geom FROM quattroshapes_gazetteer" ================================================ FILE: quattroshapes/smooth.py ================================================ #!/usr/bin/env python import sys from time import time from datetime import timedelta import math import numpy from psycopg2 import connect from optparse import OptionParser # Database details user_name = '' database_name = '' table_name = '' # Assumed the photos table is stored in the same database as geoplanet db_photos = '' db_photos_clean = '' # Explicate write and read database settings db_write_results = '' db_write_unique_id = '' db_read_unique_id = '' # Database connection using psycopg2 db = None cur = None chatty = False parser = OptionParser(usage="""%prog [options] For all places, find their photos and calculate if each photo is range in or an outlier.""") parser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare', help='Name of Postgres user to connect as.') parser.add_option('-d', '--db_name', dest='db_name', default='foursquare', help='Name of Postgres database to connect to.') parser.add_option('-t', '--db_table_name', dest='db_table_name', default='quatroshapes_extras', help='Name of table in Postgres database.') parser.add_option('-c', '--count', dest='count', default=1, help='How many neighbors must match to NOT be an outlier.') (options, args) = parser.parse_args() def load_neighbors( wkt, place_filter={} ): cur.execute(""" SELECT """ + db_write_unique_id + """ as id, COUNT(""" + db_write_unique_id + """) as neighbors FROM """ + db_table_name + """ WHERE ST_Touches( poly_geom, ST_GeomFromText('""" + wkt + """', 4326) ) GROUP BY """ + db_write_unique_id + """ ORDER BY neighbors DESC; """) neighbors = cur.fetchall() #print '\t', len(neighbors), 'neighbors' return neighbors def main(): #Get all the places of that placetype cur.execute(""" SELECT """ + db_write_unique_id + """, name, zoom, row, col, ST_AsText( poly_geom ) as wkt FROM """ + db_table_name ) places = cur.fetchall() print 'Evaluating %s places...' % (len(places),) total_places = len(places) counter = 0 for place in places: counter += 1 unique_id, name, zoom, row, col, wkt = place if total_places > 10000: if counter % 1000 == 0: print '%s of %s: %s (%s) at %s/%s/%s' % (counter, total_places, name, unique_id, zoom, row, col) else: print '%s of %s: %s (%s) at %s/%s/%s' % (counter, total_places, name, unique_id, zoom, row, col) neighbors = load_neighbors( wkt ) total_neighbors = len(neighbors) if total_neighbors > 0: # is at least one of the neighbors of the same id? if not: outlier = True c = 0 #This should always be length of 8 for n in neighbors: if n[0] == unique_id: c = c + 1 if c >= count_threshold: outlier = False if outlier: cur.execute(""" UPDATE """ + db_write_results + """ SET """ + db_write_unique_id + """ = """ + str(neighbors[0][0]) + """ WHERE zoom = """ + str(zoom) + """ AND row = """ + str(row) + """ AND col = """ + str(col) ) db.commit() return total_places if __name__ == '__main__': app_time_start = time() db_user_name = options.db_user_name db_name = options.db_name db_table_name = options.db_table_name count_threshold = options.count db_photos = 'quatroshapes_extras' db_write_results = 'quatroshapes_extras' db_write_unique_id = 'woe_id' db_read_unique_id = 'woe_id' # Connect to the database db = connect(user=db_user_name, database=db_name) cur = db.cursor() total_places = main() app_time_end = time() time_display = str( timedelta(seconds=(app_time_end - app_time_start))) app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1) if app_time_total_minutes > 1: ppm = round(float(total_places) / app_time_total_minutes) else: ppm = total_places print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm) ================================================ FILE: quattroshapes/tile_renderer_full_database.py ================================================ import csv, sys from sys import argv, stdout, stderr from subprocess import Popen from os import stat, unlink try: from json import JSONEncoder, loads as json_loads except ImportError: from simplejson import JSONEncoder, loads as json_loads import json from stat import ST_SIZE from time import time from re import sub from math import pow, log, floor, ceil from psycopg2 import connect #http://initd.org/psycopg/docs/usage.html#unicode-handling import psycopg2.extensions from PIL.ImageDraw import ImageDraw from PIL import Image from ModestMaps.Core import Coordinate from ModestMaps.Tiles import toMicrosoft from ModestMaps.Core import Coordinate from ModestMaps.OpenStreetMap import Provider from TileStache.Core import KnownUnknown from TileStache.Vector import VectorResponse from tilestacheexceptions import NothingMoreToSeeHere from tilestacheexceptions import NothingToSeeHere osm = Provider() colors = [ (0,0,0), (8,29,88), (37,52,148), (34,94,168), (29,145,192), (65,182,196), (127,205,187), (199,233,180), (237,248,177), (255,255,217) ] cell_size = 8 min_size = 1 max_size = 1000000 log_base = (max_size - min_size) ** (1./len(colors)) method = "" fat_pixel_count = 32 input_field = "" woe_field = "" db_user_name = "" db_read_name = "" db_read_table_name = "" db_write_name = "" db_write_table_name = "" db = None cur = None def size_color(size): """ Return an interpolated color for a given byte size. """ index = 0 if size > 0: index = 1 if size > 29: index = 2 if size > 49: index = 3 if size > 74: index = 4 if size > 99: index = 5 if size > 199: index = 6 if size > 499: index = 7 if size > 999: index = 8 if size > 1999: index = 9 if( index > len(colors) ): index = len(colors) - 1 if( index < 0 ): index = 0 low_index = int(index) high_index = low_index + 1 high_mix = index - low_index low_mix = 1 - high_mix r1, g1, b1 = colors[low_index] try: r2, g2, b2 = colors[high_index] except IndexError: return colors[-1] return (int(r1 * low_mix + r2 * high_mix), int(g1 * low_mix + g2 * high_mix), int(b1 * low_mix + b2 * high_mix)) def size_color_log(size): """ Return an interpolated color for a given byte size. """ try: index = log(size - min_size) / log(log_base) if( index > len(colors) ): index = len(colors) - 1 if( index < 0 ): index = 0 except ValueError: index = 0 low_index = int(index) high_index = low_index + 1 high_mix = index - low_index low_mix = 1 - high_mix r1, g1, b1 = colors[low_index] try: r2, g2, b2 = colors[high_index] except IndexError: return colors[-1] return (int(r1 * low_mix + r2 * high_mix), int(g1 * low_mix + g2 * high_mix), int(b1 * low_mix + b2 * high_mix)) def size_color_unique_id(unique_id=999999999): """ Return an interpolated color for a given byte size. """ #r1 = size[-3:] #g1 = size[-6:-3] #b1 = size[-9:-6] red = (unique_id >> 16) & 0xff green = (unique_id >> 8) & 0xff blue = unique_id & 0xff try: red = int( float(red) / 1000 * 255) green = int( float(green) / 1000 * 255) blue = int( float(blue) / 1000 * 255) return (red,green,blue) except: return (255,255,255) def count_votes( self, coord ): cood_start_time = time() #Defaults woe_id_0, woe_lau_0, woe_adm2_0, woe_adm1_0, woe_adm0_0, name_0, photo_count_0 = [-1,-1,-1,-1,-1,u"-1",-1] woe_id_1, name_1, photo_count_1 = [-1,u"-1",-1] #woe_id_2, name_2, photo_count_2 = [-1,u"-1",-1] #woe_id_3, name_3, photo_count_3 = [-1,u"-1",-1] #woe_id_4, name_4, photo_count_4 = [-1,u"-1",-1] ne = osm.coordinateLocation(coord.right()) sw = osm.coordinateLocation(coord.down()) #print "db_user_name:", self.db_user_name, " db_read_name: ", self.db_read_name #self.db = connect(user=self.db_user_name, database=self.db_read_name) #curs = self.db.cursor() curs = self.db.cursor() psycopg2.extensions.register_type(psycopg2.extensions.UNICODE, curs) curs.execute(""" SELECT """ + self.woe_field + """ FROM """ + self.db_read_table_name + """ WHERE photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326) LIMIT 1 """, (sw.lon, sw.lat, ne.lon, ne.lat)) #AND #""" + self.db_read_table_name + """.""" + self.woe_field + """ NOT IN (1648473,1625084,1646678,1642911,1645524,1649378) AND #""" + self.db_read_table_name + """.level IN (7,14,35) # if we have photos # if we've done the subquads for a quad who's WOE is only itself (identity) # if we've got some photos but not a lot of photos and we're at the minimum viable zoom # or we're at the max zoom is_saveable = False # Do we want to do the min_zoom + 1 logic again? try: photo_count_total = curs.fetchone()[0] curs.execute(""" SELECT COUNT(""" + self.db_read_table_name + """.latitude) as "photos" FROM """ + self.db_read_table_name + """ WHERE photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326) """, (sw.lon, sw.lat, ne.lon, ne.lat)) #AND #""" + self.db_read_table_name + """.""" + self.woe_field + """ NOT IN (1648473,1625084,1646678,1642911,1645524,1649378) AND #""" + self.db_read_table_name + """.level IN (7,14,35) photo_count_total = curs.fetchone()[0] if photo_count_total > 0: # Are we at the last requested zoom? if coord.zoom == self.max_zoom: is_saveable = True if (coord.zoom >= self.min_zoom): # and (photo_count_total <= self.min_size): is_saveable = True except: is_saveable = False photo_count_total = 0 #print 'photo_count_total', photo_count_total, 'is_saveable', is_saveable if is_saveable: #sw = { 'lon':-123.04962, 'lat': 38.23387 } #ne = { 'lon': -121.81091, 'lat': 37.54675 } #SELECT # flickr_locality_data.woe_id as "woe_id", geoplanet_places.name as "name", COUNT(flickr_locality_data.latitude) as "photos" #FROM # flickr_locality_data, geoplanet_places #WHERE # flickr_locality_data.woe_id = geoplanet_places.woe_id AND flickr_locality_data.photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint(-123.04962, 38.23387), ST_MakePoint(-121.81091, 37.54675)), 4326) GROUP BY flickr_locality_data.woe_id, geoplanet_places.name ORDER BY photos DESC LIMIT 5; #curs.execute(""" #SELECT # """ + self.db_read_table_name + """.""" + self.woe_field + """ as "woe_id", # """ + self.db_read_table_name + """.woe_lau as "woe_lau", # """ + self.db_read_table_name + """.woe_adm2 as "woe_adm2", # """ + self.db_read_table_name + """.woe_adm1 as "woe_adm1", # """ + self.db_read_table_name + """.woe_adm0 as "woe_adm0", # geoplanet_places.name as "name", # COUNT(""" + self.db_read_table_name + """.latitude) as "photos" #FROM # """ + self.db_read_table_name + """, geoplanet_places #WHERE # """ + self.db_read_table_name + """.""" + self.woe_field + """ = geoplanet_places.woe_id AND # """ + self.db_read_table_name + """.photo_geom && # ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326) #GROUP BY # """ + self.db_read_table_name + """.""" + self.woe_field + """, # """ + self.db_read_table_name + """.woe_lau, # """ + self.db_read_table_name + """.woe_adm2, # """ + self.db_read_table_name + """.woe_adm1, # """ + self.db_read_table_name + """.woe_adm0, # geoplanet_places.name ORDER BY photos DESC LIMIT 5; #""", (sw.lon, sw.lat, ne.lon, ne.lat)) if self.woe_method == "woe": try: curs.execute(""" SELECT """ + self.db_read_table_name + """.""" + self.woe_field + """ as "woe_id", 'lookup' as "name", COUNT(""" + self.db_read_table_name + """.latitude) as "photos" FROM """ + self.db_read_table_name + """ WHERE """ + self.db_read_table_name + """.photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326) GROUP BY """ + self.db_read_table_name + """.""" + self.woe_field + """ ORDER BY photos DESC LIMIT 2; """, (sw.lon, sw.lat, ne.lon, ne.lat)) #curs.execute(""" # SELECT # """ + self.db_read_table_name + """.""" + self.woe_field + """ as "woe_id", # geoplanet_places.name as "name", # COUNT(""" + self.db_read_table_name + """.latitude) as "photos" # FROM # """ + self.db_read_table_name + """, geoplanet_places # WHERE # """ + self.db_read_table_name + """.""" + self.woe_field + """ = geoplanet_places.woe_id AND # """ + self.db_read_table_name + """.photo_geom && # ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326) # GROUP BY # """ + self.db_read_table_name + """.""" + self.woe_field + """, # geoplanet_places.name ORDER BY photos DESC LIMIT 3; # """, (sw.lon, sw.lat, ne.lon, ne.lat)) #wait(dbs) #gevent_psycopg2.gevent_wait_callback(dbs) #result = curs.fetchall() except Exception, e: print e pass if self.woe_method == "checkins": woe_adm0_0 = -100 try: curs.execute(""" SELECT """ + self.db_read_table_name + """.geoname_id as "woe_id", """ #""" + self.db_read_table_name + """.gn_placename as "name", """COUNT(""" + self.db_read_table_name + """.latitude) as "photos" FROM """ + self.db_read_table_name + """ WHERE """+ self.db_read_table_name + """.photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326) GROUP BY """ + self.db_read_table_name + """.geoname_id ORDER BY photos DESC LIMIT 2; """, (sw.lon, sw.lat, ne.lon, ne.lat)) #""" + self.db_read_table_name + """.geoname_id NOT IN (1648473,1625084,1646678,1642911,1645524,1649378) AND #""" + self.db_read_table_name + """.level IN (7,14,35) AND #""" + self.db_read_table_name + """.gn_placename #""" + self.db_read_table_name + """.level IN (8,9,10,12) AND #wait(dbs) #gevent_psycopg2.gevent_wait_callback(dbs) #result = curs.fetchall() except Exception, e: print e pass try: #woe_id_0, woe_lau_0, woe_adm2_0, woe_adm1_0, woe_adm0_0, name_0, photo_count_0 = curs.fetchone() woe_id_0, photo_count_0 = curs.fetchone() name_0 = 'lookup' except Exception, e: #print 'oops', e woe_id_0, woe_lau_0, woe_adm2_0, woe_adm1_0, woe_adm0_0, name_0, photo_count_0 = [-1,-1,-1,-1,-1,u"-1",-1] try: #woe_id_1, woe_lau_1, woe_adm2_1, woe_adm1_1, woe_adm0_1, name_1, photo_count_1 = curs.fetchone() woe_id_1, photo_count_1 = curs.fetchone() name_1 = 'lookup' except Exception, e: #print 'oops', e woe_id_1, name_1, photo_count_1 = [-1,u"-1",-1] #try: #woe_id_2, woe_lau_2, woe_adm2_2, woe_adm1_2, woe_adm0_2, name_2, photo_count_2 = curs.fetchone() # woe_id_2, name_2, photo_count_2 = curs.fetchone() #except: # woe_id_2, name_2, photo_count_2 = [-1,u"-1",-1] #try: #woe_id_3, woe_lau_3, woe_adm2_3, woe_adm1_3, woe_adm0_3, name_3, photo_count_3 = curs.fetchone() # woe_id_3, name_3, photo_count_3 = curs.fetchone() #except: # woe_id_3, name_3, photo_count_3 = [-1,"-1",-1] #try: #woe_id_4, woe_lau_4, woe_adm2_4, woe_adm1_4, woe_adm0_4, name_4, photo_count_4 = curs.fetchone() # woe_id_4, name_4, photo_count_4 = curs.fetchone() #except: # woe_id_4, name_4, photo_count_4 = [-1,"-1",-1] if photo_count_0 > 0: margin = 1 if photo_count_0 > 0 and photo_count_1 > 0: percent_0 = float(photo_count_0) / float(photo_count_total) percent_1 = float(photo_count_1) / float(photo_count_total) margin = percent_0 - percent_1 if photo_count_1 == -1: margin = -1 #print 'woe_id_0', woe_id_0, 'name_0', name_0, 'photo_count_0', photo_count_0 result = { "zoom":coord.zoom, "column":coord.column, "row":coord.row, "time":(time() - cood_start_time), "photo_count_total":photo_count_total, "size":photo_count_total, # for compatibility "woe_id0":woe_id_0, "woe_id0_lau":woe_lau_0, "woe_id0_adm2":woe_adm2_0, "woe_id0_adm1":woe_adm1_0, "woe_id0_adm0":woe_adm0_0, "name0":name_0, "photo_count0":photo_count_0, "margin0":margin # "woe_id1":woe_id_1, # "name1":name_1, # "photo_count1":photo_count_1, # "woe_id2":woe_id_2, # "name2":name_2, # "photo_count2":photo_count_2 #, # "woe_id3":woe_id_3, # "name3":name_3, # "photo_count3":photo_count_3, # "woe_id4":woe_id_4, # "name4":name_4, # "photo_count4":photo_count_4 } #print result return result def getAdmins( woe_id ): # don't expect every coord to exist in the data file adm0_woe_id0, adm1_woe_id0, adm2_woe_id0, lau_woe_id0 = ["-1","-1","-1","-1"] #if neighborhood, then most often it's geoplanet_places.parent_id of that object? #SELECT # geoplanet_admins.country_woe_id AS "country_woe_id", # geoplanet_admins.state_woe_id AS "state_woe_id", # geoplanet_admins.county_woe_id AS "county_woe_id", # geoplanet_admins.local_admin_woe_id AS "local_admin_woe_id" #FROM # geoplanet_admins #WHERE # geoplanet_admins.woe_id = 2355561; if db_read_table_name == 'flickr_neighborhood_data': cur.execute(""" SELECT parent_id FROM geoplanet_places WHERE woe_id = """ + str(woe_id) + """;""") locality = cur.fetchone()[0] else: locality = woe_id locality = str(locality) if locality != "-1": cur.execute(""" SELECT geoplanet_admins.country_woe_id, geoplanet_admins.state_woe_id, geoplanet_admins.county_woe_id, geoplanet_admins.local_admin_woe_id FROM geoplanet_admins WHERE woe_id = """ + locality + """;""") adm0_woe_id0, adm1_woe_id0, adm2_woe_id0, lau_woe_id0 = cur.fetchone() adm0_name0, adm1_name0, adm2_name0, lau_name0 = ["-1","-1","-1","-1"] if adm0_woe_id != "-1": cur.execute(""" SELECT name FROM geoplanet_places WHERE woe_id = """ + str(adm0_woe_id) + """;""") try: adm0_name = cur.fetchone()[0] except: pass if adm1_woe_id != "-1": cur.execute(""" SELECT name FROM geoplanet_places WHERE woe_id = """ + str(adm1_woe_id) + """;""") try: adm1_name = cur.fetchone()[0] except: pass if adm2_woe_id != "-1": cur.execute(""" SELECT name FROM geoplanet_places WHERE woe_id = """ + str(adm2_woe_id) + """;""") try: adm2_name = cur.fetchone()[0] except: pass if lau_woe_id != "-1": cur.execute(""" SELECT name FROM geoplanet_places WHERE woe_id = """ + str(lau_woe_id) + """;""") try: lau_name = cur.fetchone()[0] except: pass woe_name = '-1' if locality != "-1": cur.execute(""" SELECT name FROM geoplanet_places WHERE woe_id = """ + str(locality) + """;""") try: woe_name = cur.fetchone()[0] except: pass admins = {} admins['adm0_woe_id'] = str(adm0_woe_id) admins['adm1_woe_id'] = str(adm1_woe_id) admins['adm2_woe_id'] = str(adm2_woe_id) admins['lau_woe_id'] = str(lau_woe_id) admins['locality_woe_id'] = str(locality) admins['adm0_name'] = adm0_name admins['adm1_name'] = adm1_name admins['adm2_name'] = adm2_name admins['lau_name'] = lau_name admins['locality_name'] = woe_name #print 'admins', admins return admins def saveTileToDatabase( self, interactivity_array ): for fat_pixel in interactivity_array: #if fat_pixel["woe_id"] == -1: # continue #print 'getting admins...' #admins = getAdmins( fat_pixel["woe_id"] ) #print 'admins:', admins #(woe_id, name, photo_count, photo_count_total, latitude, longitude, woe_adm0, woe_adm1, woe_adm2, woe_lau, locality_lau, name_adm0, name_adm1, name_adm2, name_lau, name_locality, zoom) #print "saving...", fat_pixel #print "saving...", fat_pixel["photo_count"], " in ", fat_pixel["name"] curs = self.db.cursor() psycopg2.extensions.register_type(psycopg2.extensions.UNICODE, curs) curs.execute(""" INSERT INTO """ + self.db_write_table_name + """ (woe_id, name, photo_count, photo_count_total, margin, latitude, longitude, x1, y1, x2, y2, row, col, zoom) VALUES (""" + str(fat_pixel["woe_id"]) + """,E'""" + sub("'", "\\'", fat_pixel["name"]) + """',""" + str(fat_pixel["photo_count"]) + """,""" + str(fat_pixel["photo_count_total"]) + """,""" + str(fat_pixel["margin"]) + """,""" + str(fat_pixel["latitude"]) + """,""" + str(fat_pixel["longitude"]) + """,""" + fat_pixel["x1"] + """,""" + fat_pixel["y1"] + """,""" + fat_pixel["x2"] + """,""" + fat_pixel["y2"] + """,""" + fat_pixel["row"] + """,""" + fat_pixel["col"] + """,""" + str(fat_pixel["zoom"]) + """)""" ) #+ admins['adm0_woe_id'] + """,""" #+ admins['adm1_woe_id'] + """,""" #+ admins['adm2_woe_id'] + """,""" #+ admins['lau_woe_id'] + """,""" #+ admins['locality_woe_id'] + """,""" #+ admins['adm0_name'] + """,""" #+ admins['adm1_name'] + """,""" #+ admins['adm2_name'] + """,""" #+ admins['lau_name'] + """,""" #+ admins['locality_name'] + """,""" self.db.commit() def create_utf_grid( self, interactivity_array ): # https://github.com/mapbox/utfgrid-spec/blob/master/1.2/utfgrid.md #3. Figure out how many unique WOEIDs you have present grid = [] # new "" string for each row, columns are by UTF chars; keys = [] # keys in utf order as strings data = {} # data that appears in the interactivity popup, key as in keys, value is arbitrary #4. Make a dictionary of attributes for those WOEIDs and populate it for fat_pixel in interactivity_array: if fat_pixel["woe_id"] == -1: character = '' else: character = str(fat_pixel["woe_id"]) data[ character ] = fat_pixel["name"] # + "\n" + interactivity_array["name"] + "\n" + interactivity_array["photo_count"] + " of " interactivity_array["photo_count_total"] + "(" + int( float(interactivity_array["photo_count"]) / interactivity_array["photo_count_total"] * 100 ) + ") photos" for k, v in data.iteritems(): #print k, v keys.append( k ) #JSON doesn't allow control characters, " and \ to be encoded as their literal UTF-8 representation. #Encoding an ID works as follows: #Add 32 to the key index. (avoiding gibberish 32 non-displaying characters at beginning of code page) #If the result is >= 34, add 1. (avoiding " quote character) #If the result is >= 92, add 1. (avoiding \ back-slash character) row_counter = 0 row_content = "" for x in range(len(interactivity_array)): fat_pixel = interactivity_array[x] # find the index in the keys for this cell value try: code = keys.index( str(fat_pixel["woe_id"]) ) except: code = 0 code = code + 32 if code >= 34: code = code + 1 if code >= 92: code = code + 1 # are we at a new row, and not the first row? if x % fat_pixel_count == 0 and x > 0: grid.append( row_content ) #print row_content row_content = "" else: row_content += unichr( code ) utf_grid_result = { 'grid':grid, 'keys':keys, 'data':data } #print "utf_grid_result: ", utf_grid_result return utf_grid_result class Provider: def __init__(self, layer, cell_size=8, #fatbits, yo min_zoom=7, # min zoom before we start saving results max_zoom=8, # or don't go any farther input_field="size", woe_field="woe_id", output_format="image", #or geojson, or interactivity min_size=1, max_size=1000000, margin_percent=1, method="size_log", db_user_name="foursquare", db_read_name="foursquare", db_read_table_name="flickr_locality_data", db_write_name="", #not used db_write_table_name="", #not used num_processes=1, woe_method = "woe" ): """ """ self.layer = layer self.cell_size = cell_size self.min_zoom = min_zoom self.max_zoom = max_zoom self.min_size = min_size self.max_size = max_size self.margin_percent = margin_percent self.method = method self.input_field = input_field self.woe_field = woe_field self.output_format = output_format self.woe_method = woe_method self.db_user_name = db_user_name self.db_read_name = db_read_name self.db_read_table_name = db_read_table_name self.db_write_name =db_write_name self.db_write_table_name = db_write_table_name self.num_processes = num_processes if len(self.db_write_name) > 0 and len(self.db_write_table_name) > 0: self.db_export = True self.log_base = (max_size - min_size) ** (1./len(colors)) #print "db_user_name:", self.db_user_name, " db_read_name: ", self.db_read_name # Connect to the database self.db = connect(user=self.db_user_name, database=self.db_read_name) self.cur = self.db.cursor() psycopg2.extensions.register_type(psycopg2.extensions.UNICODE, self.cur) def renderTile(self, width, height, srs, coord): """ """ img = Image.new('RGB', (width, height), colors[0]) draw = ImageDraw(img) interactivity_array = [] base_zoom = coord.zoom base_row = coord.row base_column = coord.column #We're showing detail for three zooms in from here, as fat pixels (32 pix) #256 pixels / tile = 8 pixels / tile = 32 pixels (which is 2^5) tile_pixel_width = 256 #print 'coord:', coord #print 'base_zoom:', base_zoom # 256 pixel tile == 2^8 pixel tile, so this is a constant tile_power_of_two = 8 # we want 8x8 fatbits == 2^3 pixel fatbits #TODO: use self.cell_size to find log of 2 to x? pixel_power_of_two = int(log( self.cell_size, 2 )) fat_pixel_width = 2**pixel_power_of_two self.fat_pixel_count = 2**(tile_power_of_two - pixel_power_of_two) # adjust the coord to be the pixel zoom coord = coord.zoomBy(tile_power_of_two - pixel_power_of_two) #print "fat_pixel_count: ", fat_pixel_count #print "coord: ", coord #print 'over_sample_zoom_tile_width: ', over_sample_zoom_tile_width #find the fat_pixel with the maximum photo count max_count = 0 top_count = 0 top_margin = 0 #We should be seeing 64 cells (8x8) output image for row in range( self.fat_pixel_count ): for col in range( self.fat_pixel_count ): ul = coord.right(col).down(row) lr = ul.right().down() #Calculate key for the size dict subquad = Coordinate(ul.row, ul.column, ul.zoom) #print 'subquad:', subquad # these values should always be within (0, 256) x1 = col * fat_pixel_width x2 = (col + 1) * fat_pixel_width y1 = row * fat_pixel_width y2 = (row + 1) * fat_pixel_width #Draw fat pixel based on the returned color based on count (size) in that subquad in the dictionary #Implied that no-data is color[0], above where the img is instantiated enumeration = count_votes( self, subquad ) if max_count < enumeration["photo_count_total"]: max_count = enumeration["photo_count_total"] if top_count < enumeration["photo_count0"]: top_count = enumeration["photo_count0"] if self.output_format == "utf_grid": nw = osm.coordinateLocation(subquad) se = osm.coordinateLocation(subquad.right().down()) lat = (nw.lat - se.lat) / 2 + se.lat lon = (se.lon - nw.lon) / 2 + nw.lon interactivity_array.append( { "photo_count_total":enumeration["photo_count_total"], "woe_id":enumeration["woe_id0"], #"woe_id_lau":enumeration["woe_id0_lau"], #"woe_id_adm2":enumeration["woe_id0_adm2"], #"woe_id_adm1":enumeration["woe_id0_adm1"], "woe_id_adm0":enumeration["woe_id0_adm0"], "name":enumeration["name0"], "photo_count":enumeration["photo_count0"], "margin":enumeration["margin0"], "latitude":lat, "longitude":lon, "x1": str(nw.lon), "y1": str(se.lat), "x2": str(se.lon), "y2": str(nw.lat), "row":str(base_row + row), "col":str(base_column + col), "zoom": coord.zoom } ) elif self.method == "size_log": draw.rectangle((x1, y1, x2, y2), size_color_log(int( enumeration[self.input_field]) )) elif self.method == "size": draw.rectangle((x1, y1, x2, y2), size_color(int( enumeration[self.input_field]) )) elif self.method == "unique_id": draw.rectangle((x1, y1, x2, y2), size_color_unique_id(int( enumeration[self.input_field]) )) if self.output_format == "utf_grid": #print "interactivity_array: ", interactivity_array #grid_utf = create_utf_grid( self, interactivity_array ) grid_utf = { 'grid':['','.'] } if max_count == 0: raise NothingToSeeHere() is_saveable = False # Are we at the last requested zoom? if coord.zoom == self.max_zoom: is_saveable = True # Are we at the minimum viable zoom but with little to no data? if (coord.zoom >= self.min_zoom) and (max_count <= self.min_size): is_saveable = True # Are we viable zoom, viable count, and no ambiguity as to the 100% within margin the winner? if (coord.zoom >= (self.min_zoom + 2)) and (max_count > self.max_size) and ((top_count >= (max_count * self.margin_percent)) or ((max_count - top_count) < self.min_size)): is_saveable = True # Don't want to dig for needles #if coord.zoom == 17 and base_row == 50816 and base_column == 21045: # print '(coord.zoom >= (self.min_zoom + 1)) and ((max_count - top_count) < self.min_size):' # print coord.zoom,(self.min_zoom + 1),max_count, top_count, self.min_size if (coord.zoom >= (self.min_zoom + 1)) and ((max_count - top_count) < self.min_size): #(max_count > self.min_size) and is_saveable = True # and (interactivity_array["margin"] >= self.margin_percent) if is_saveable: #print "should save to DB" #print "interactivity_array: ", interactivity_array saveTileToDatabase( self, interactivity_array ) raise NothingMoreToSeeHere( SaveableResponse(json.dumps(grid_utf)) ) else: return SaveableResponse(json.dumps(grid_utf)) elif self.output_format == "geojson": grid_utf = create_utf_grid( self, interactivity_array ) return SaveableResponse(json.dumps(grid_utf)) else: return img def getTypeByExtension(self, extension): """ Get mime-type and format by file extension. This only accepts png (image), json (utf_grid interactivity), or geojson (vector)". """ if self.output_format == "utf_grid": if extension.lower() != 'json': raise KnownUnknown('FourSquare provider only makes .json tiles, not "%s"' % extension) if extension.lower() == 'json': return 'text/json', 'JSON' if extension.lower() == 'geojson': return 'text/json', 'GeoJSON' if extension.lower() == 'png': return 'image/png', 'PNG' raise KnownUnknown('FourSquare Provider only makes .geojson, .json, and .png tiles, not "%s"' % extension) class SaveableResponse: """ Wrapper class for JSON response that makes it behave like a PIL.Image object. TileStache.getTile() expects to be able to save one of these to a buffer. """ def __init__(self, content): self.content = content def save(self, out, format): # # Serialize # if format in ('GeoJSON'): #print "GeoJSON: ", self.content content = self.content #if 'wkt' in content['crs']: # content['crs'] = {'type': 'link', 'properties': {'href': '0.wkt', 'type': 'ogcwkt'}} #else: # del content['crs'] elif format in ('PNG'): content = self.content else: raise KnownUnknown('FourSquare response only saves .png, .json, and .geojson tiles, not "%s"' % format) # # Encode # if format in ('GeoJSON'): #indent = self.verbose and 2 or None indent = 2 encoded = JSONEncoder(indent=indent).iterencode(content) out.write(encoded) elif format in ('JSON'): out.write(content) elif format in ('PNG'): out.write(content) if __name__ == '__main__': p = Provider(None) #This is done in an odd order where the Zoom is last p.renderTile(256, 256, '', Coordinate(3, 2, 3)).save('out.png') ================================================ FILE: quattroshapes/tilestache-seed.py ================================================ #!/usr/bin/env python """tilestache-seed.py will warm your cache. This script is intended to be run directly. This example seeds the area around West Oakland (http://sta.mn/ck) in the "osm" layer, for zoom levels 12-15: tilestache-seed.py -c ./config.json -l osm -b 37.79 -122.35 37.83 -122.25 -e png 12 13 14 15 See `tilestache-seed.py --help` for more information. """ from sys import stderr, path from os.path import realpath, dirname from optparse import OptionParser from urlparse import urlparse from urllib import urlopen import itertools from time import time from datetime import timedelta from math import pow from ModestMaps.OpenStreetMap import Provider from tilestacheexceptions import NothingMoreToSeeHere from tilestacheexceptions import NothingToSeeHere import imerge try: from json import dump as json_dump from json import load as json_load except ImportError: from simplejson import dump as json_dump from simplejson import load as json_load osm = Provider() coordinates = None # # Most imports can be found below, after the --include-path option is known. # parser = OptionParser(usage="""%prog [options] [zoom...] Seeds a single layer in your TileStache configuration - no images are returned, but TileStache ends up with a pre-filled cache. Bounding box is given as a pair of lat/lon coordinates, e.g. "37.788 -122.349 37.833 -122.246". Output is a list of tile paths as they are created. Example: tilestache-seed.py -b 52.55 13.28 52.46 13.51 -c tilestache.cfg -l osm 11 12 13 Protip: extract tiles from an MBTiles tileset to a directory like this: tilestache-seed.py --from-mbtiles filename.mbtiles --output-directory dirname Configuration, bbox, and layer options are required; see `%prog --help` for info.""") defaults = dict(padding=0, verbose=True, enable_retries=False, reconnoiter=False, bbox=(37.777, -122.352, 37.839, -122.226)) parser.set_defaults(**defaults) parser.add_option('-c', '--config', dest='config', help='Path to configuration file, typically required.') parser.add_option('-l', '--layer', dest='layer', help='Layer name from configuration, typically required.') parser.add_option('-b', '--bbox', dest='bbox', help='Bounding box in floating point geographic coordinates: south west north east. Default value is %.3f, %.3f, %.3f, %.3f.' % defaults['bbox'], type='float', nargs=4) parser.add_option('-p', '--padding', dest='padding', help='Extra margin of tiles to add around bounded area. Default value is %s (no extra tiles).' % repr(defaults['padding']), type='int') parser.add_option('-e', '--extension', dest='extension', help='Optional file type for rendered tiles. Default value is "png" for most image layers and some variety of JSON for Vector or Mapnik Grid providers.') parser.add_option('-f', '--progress-file', dest='progressfile', help="Optional JSON progress file that gets written on each iteration, so you don't have to pay close attention.") parser.add_option('-q', action='store_false', dest='verbose', help='Suppress chatty output, --progress-file works well with this.') parser.add_option('-i', '--include-path', dest='include_paths', help="Add the following colon-separated list of paths to Python's include path (aka sys.path)") parser.add_option('-d', '--output-directory', dest='outputdirectory', help='Optional output directory for tiles, to override configured cache with the equivalent of: {"name": "Disk", "path": , "dirs": "portable", "gzip": []}. More information in http://tilestache.org/doc/#caches.') parser.add_option('--to-mbtiles', dest='mbtiles_output', help='Optional output file for tiles, will be created as an MBTiles 1.1 tileset. See http://mbtiles.org for more information.') parser.add_option('--to-s3', dest='s3_output', help='Optional output bucket for tiles, will be populated with tiles in a standard Z/X/Y layout. Three required arguments: AWS access-key, secret, and bucket name.', nargs=3) parser.add_option('--from-mbtiles', dest='mbtiles_input', help='Optional input file for tiles, will be read as an MBTiles 1.1 tileset. See http://mbtiles.org for more information. Overrides --extension, --bbox and --padding (this may change).') parser.add_option('--tile-list', dest='tile_list', help='Optional file of tile coordinates, a simple text list of Z/X/Y coordinates. Overrides --bbox and --padding.') parser.add_option('--error-list', dest='error_list', help='Optional file of failed tile coordinates, a simple text list of Z/X/Y coordinates. If provided, failed tiles will be logged to this file instead of stopping tilestache-seed.') parser.add_option('--enable-retries', dest='enable_retries', help='If true this will cause tilestache-seed to retry failed tile renderings up to (3) times. Default value is %s.' % repr(defaults['enable_retries']), action='store_true') parser.add_option('--recon', '--reconnoiter', dest='reconnoiter', help='If provided this will cause tilestache-seed to start with the first zoom and proceed to subsequent zooms, per tile, until the NothingMoreToSeeHere exception is raised. With this option, every tile is not guaranteed to render. Default value is %s.' % repr(defaults['reconnoiter']), action='store_true') parser.add_option('-x', '--ignore-cached', action='store_true', dest='ignore_cached', help='Re-render every tile, whether it is in the cache already or not.') parser.add_option('--jsonp-callback', dest='callback', help='Add a JSONP callback for tiles with a json mime-type, causing "*.js" tiles to be written to the cache wrapped in the callback function. Ignored for non-JSON tiles.') def generateCoordinates(ul, lr, zooms, padding): """ Generate a stream of (offset, count, coordinate) tuples for seeding. Flood-fill coordinates based on two corners, a list of zooms and padding. """ # start with a simple total of all the coordinates we will need. count = 0 for zoom in zooms: ul_ = ul.zoomTo(zoom).container().left(padding).up(padding) lr_ = lr.zoomTo(zoom).container().right(padding).down(padding) rows = lr_.row + 1 - ul_.row cols = lr_.column + 1 - ul_.column count += int(rows * cols) # now generate the actual coordinates. # offset starts at zero offset = 0 for zoom in zooms: ul_ = ul.zoomTo(zoom).container().left(padding).up(padding) lr_ = lr.zoomTo(zoom).container().right(padding).down(padding) for row in range(int(ul_.row), int(lr_.row + 1)): for column in range(int(ul_.column), int(lr_.column + 1)): coord = Coordinate(row, column, zoom) yield (offset, count, coord) offset += 1 def generateSubquads2(coord, increment): increment = int(increment) origin = coord.zoomBy(increment) count = int(pow(2, increment) * pow(2, increment)) offset = -1 for a in range(0,int(pow(2, increment))): for b in range(0,int(pow(2, increment))): this = origin.right(a) this = this.down(b) offset += 1 yield (offset, count, coord) def generateSubquads(row, column, zoom): row0, col0, row1, col1, zoom1 \ = row*2, column*2, row*2+1, column*2+1, zoom+1 count = 4 offset = 0 for r in range(2): for c in range(2): if r==0 and c==0: coord = Coordinate(row0, col0, zoom1) if r==0 and c==1: coord = Coordinate(row0, col1, zoom1) if r==1 and c==0: coord = Coordinate(row1, col0, zoom1) if r==1 and c==1: coord = Coordinate(row1, col1, zoom1) #print coord # Ensure we only yield coords in the area of interest #if extentContainsCoord( render_bbox, coord ): #print '\t', coord yield (offset, count, coord) #else: # continue offset += 1 def extentContainsCoord( container_extent, coord ): """ Tests contains extent of coordinate compared to bounding box. """ nw = osm.coordinateLocation(coord) se = osm.coordinateLocation(coord.right().down()) coord_bounds = [ nw.lon, nw.lat, se.lon, se.lat ] # Assumes a cylindrical projection like Web Mercator with perpendicular latitudes and longitudes return not ( coord_bounds[0] > container_extent[2] or coord_bounds[2] < container_extent[0] or coord_bounds[1] > container_extent[3] or coord_bounds[3] < container_extent[2]); def listCoordinates(filename): """ Generate a stream of (offset, count, coordinate) tuples for seeding. Read coordinates from a file with one Z/X/Y coordinate per line. """ coords = (line.strip().split('/') for line in open(filename, 'r')) coords = (map(int, (row, column, zoom)) for (zoom, column, row) in coords) coords = [Coordinate(*args) for args in coords] count = len(coords) for (offset, coord) in enumerate(coords): yield (offset, count, coord) def tilesetCoordinates(filename): """ Generate a stream of (offset, count, coordinate) tuples for seeding. Read coordinates from an MBTiles tileset filename. """ coords = MBTiles.list_tiles(filename) count = len(coords) for (offset, coord) in enumerate(coords): yield (offset, count, coord) def parseConfigfile(configpath): """ Parse a configuration file and return a raw dictionary and dirpath. Return value can be passed to TileStache.Config.buildConfiguration(). """ config_dict = json_load(urlopen(configpath)) scheme, host, path, p, q, f = urlparse(configpath) if scheme == '': scheme = 'file' path = realpath(path) dirpath = '%s://%s%s' % (scheme, host, dirname(path).rstrip('/') + '/') return config_dict, dirpath def c(): yield coordinates.next() if __name__ == '__main__': options, zooms = parser.parse_args() if options.include_paths: for p in options.include_paths.split(':'): path.insert(0, p) from TileStache import getTile, Config from TileStache.Core import KnownUnknown from TileStache.Config import buildConfiguration from TileStache import MBTiles import TileStache from ModestMaps.Core import Coordinate from ModestMaps.Geo import Location try: # determine if we have enough information to prep a config and layer time_start = time() tiles_renderd = 0 has_fake_destination = bool(options.outputdirectory or options.mbtiles_output) has_fake_source = bool(options.mbtiles_input) if has_fake_destination and has_fake_source: config_dict, config_dirpath = parseConfigfile(options.config) layer_dict = dict() config_dict['cache'] = dict(name='test') config_dict['layers'][options.layer or 'tiles-layer'] = layer_dict elif options.config is None: raise KnownUnknown('Missing required configuration (--config) parameter.') elif options.layer is None: raise KnownUnknown('Missing required layer (--layer) parameter.') else: config_dict, config_dirpath = parseConfigfile(options.config) if options.layer not in config_dict['layers']: raise KnownUnknown('"%s" is not a layer I know about. Here are some that I do know about: %s.' % (options.layer, ', '.join(sorted(config_dict['layers'].keys())))) layer_dict = config_dict['layers'][options.layer] layer_dict['write_cache'] = True # Override to make seeding guaranteed useful. # override parts of the config and layer if needed extension = options.extension if options.mbtiles_input: layer_dict['provider'] = dict(name='mbtiles', tileset=options.mbtiles_input) n, t, v, d, format, b = MBTiles.tileset_info(options.mbtiles_input) extension = format or extension # determine or guess an appropriate tile extension if extension is None: provider_name = layer_dict['provider'].get('name', '').lower() if provider_name == 'mapnik grid': extension = 'json' elif provider_name == 'vector': extension = 'geojson' else: extension = 'png' # override parts of the config and layer if needed tiers = [] if options.mbtiles_output: tiers.append({'class': 'TileStache.MBTiles:Cache', 'kwargs': dict(filename=options.mbtiles_output, format=extension, name=options.layer)}) if options.outputdirectory: tiers.append(dict(name='disk', path=options.outputdirectory, dirs='portable', gzip=[])) if options.s3_output: access, secret, bucket = options.s3_output tiers.append(dict(name='S3', bucket=bucket, access=access, secret=secret)) if len(tiers) > 1: config_dict['cache'] = dict(name='multi', tiers=tiers) elif len(tiers) == 1: config_dict['cache'] = tiers[0] else: # Leave config_dict['cache'] as-is pass # create a real config object config = buildConfiguration(config_dict, config_dirpath) layer = config.layers[options.layer] # do the actual work lat1, lon1, lat2, lon2 = options.bbox south, west = min(lat1, lat2), min(lon1, lon2) north, east = max(lat1, lat2), max(lon1, lon2) render_bbox = [ west, north, east, south ] northwest = Location(north, west) southeast = Location(south, east) ul = layer.projection.locationCoordinate(northwest) lr = layer.projection.locationCoordinate(southeast) for (i, zoom) in enumerate(zooms): if not zoom.isdigit(): raise KnownUnknown('"%s" is not a valid numeric zoom level.' % zoom) zooms[i] = int(zoom) if options.padding < 0: raise KnownUnknown('A negative padding will not work.') padding = options.padding tile_list = options.tile_list error_list = options.error_list except KnownUnknown, e: parser.error(str(e)) if tile_list: coordinates = listCoordinates(tile_list) elif options.mbtiles_input: coordinates = tilesetCoordinates(options.mbtiles_input) elif options.reconnoiter: #tiles_max_coverage = len(list(generateCoordinates(ul, lr, zooms, padding))) zoom_min = min(zooms) coordinates = generateCoordinates(ul, lr, [zoom_min], padding) else: coordinates = generateCoordinates(ul, lr, zooms, padding) coordinates = list(coordinates) for (offset, count, coord) in coordinates: #while coordinates: #offset, count, coord = coordinates.pop(0) path = '%s/%d/%d/%d.%s' % (layer.name(), coord.zoom, coord.column, coord.row, extension) progress = {"tile": path, "offset": offset + 1, "total": count} # # Fetch a tile. # attempts = options.enable_retries and 3 or 1 rendered = False while not rendered: if options.verbose: print >> stderr, '%(offset)d of %(total)d...' % progress, try: mimetype, content = getTile(layer, coord, extension, options.ignore_cached) if 'json' in mimetype and options.callback: js_path = '%s/%d/%d/%d.js' % (layer.name(), coord.zoom, coord.column, coord.row) js_body = '%s(%s);' % (options.callback, content) js_size = len(js_body) / 1024 layer.config.cache.save(js_body, layer, coord, 'JS') print >> stderr, '%s (%dKB)' % (js_path, js_size), elif options.callback: print >> stderr, '(callback ignored)', except NothingMoreToSeeHere: #print 'NothingMoreToSeeHere' rendered = True #progress['size'] = '%dKB' % (len(content) / 1024) tiles_renderd = tiles_renderd + 1 #if options.verbose: # print >> stderr, '%(tile)s (%(size)s)' % progress # print >> stderr, "Skipping tile %s's children." % (progress['tile'],) break except NothingToSeeHere: #print 'NothingToSeeHere' if options.verbose: print >> stderr, "Skipping %s and all it's children." % (progress['tile'],) break except Exception as e: # # Something went wrong: try again? Log the error? # #if options.reconnoiter: # break attempts -= 1 if options.verbose: print >> stderr, 'Failed %s, will try %s more.' % (progress['tile'], ['no', 'once', 'twice'][attempts]) if attempts == 0: if not error_list: raise fp = open(error_list, 'a') fp.write('%(zoom)d/%(column)d/%(row)d\n' % coord.__dict__) fp.close() break else: # # Successfully got the tile. # rendered = True progress['size'] = '%dKB' % (len(content) / 1024) if options.verbose: print >> stderr, '%(tile)s (%(size)s)' % progress if options.reconnoiter: #print "got to reconnoiter..." #if len(content) > 350: if (coord.zoom+1) in zooms and (coord.zoom+1) <= max(zooms): #coordinates.extend(generateSubquads2(coord, 2)) #coordinates = imerge(coordinates, generateSubquads2(coord, 1)) coordinates.extend( generateSubquads(coord.row, coord.column, coord.zoom) ) #coordinates = imerge(coordinates, generateSubquads(coord.row, coord.column, coord.zoom)) #coordinates = itertools.chain(coordinates, generateSubquads(coord.row, coord.column, coord.zoom)) else: tiles_renderd = tiles_renderd + 1 if options.progressfile: fp = open(options.progressfile, 'w') json_dump(progress, fp) fp.close() time_end = time() time_display = str( timedelta(seconds=(time_end - time_start))) time_total_minutes = round((time_end - time_start) / 60, 1) if time_total_minutes > 1: tpm = round(float(tiles_renderd) / time_total_minutes) else: tpm = tiles_renderd print 'Stached %s tiles in %s (%s tpm)' % (tiles_renderd, time_display, tpm) #if options.reconnoiter: # tiles_skipped = tiles_max_coverage - tiles_renderd # print '\tSkipped %d tiles for a savings of %.2f%% over max coverage of %d tiles' % ( tiles_skipped, (float(tiles_skipped)/float(tiles_max_coverage)*100), tiles_max_coverage) ================================================ FILE: quattroshapes/tilestache.cfg ================================================ { "cache": {"name": "Disk", "path":"tiles/", "dirs":"portable", "gzip": []}, "layers": { "flickr_locality_interactivity": { "provider": {"class": "tile_renderer_full_database:Provider", "kwargs": { "input_field": "size", "woe_field": "woe_locality", "output_format": "utf_grid", "cell_size": 256, "min_zoom": 15, "max_zoom": 18, "min_size": 30, "max_size": 300, "margin_percent": 0.9, "method": "size_log", "db_user_name": "foursquare", "db_read_name": "foursquare", "db_read_table_name": "flickr_merged_data", "db_write_name": "foursquare", "db_write_table_name": "quatroshapes", "num_processes": 1 } }, "preview": { "zoom": 5, "ext": "png" } }, "checkins_matchme": { "provider": {"class": "tile_renderer_full_database:Provider", "kwargs": { "input_field": "size", "woe_field": "geoname_id", "output_format": "utf_grid", "cell_size": 256, "min_zoom": 15, "max_zoom": 18, "min_size": 30, "max_size": 300, "margin_percent": 0.9, "method": "size_log", "db_user_name": "foursquare", "db_read_name": "foursquare", "db_read_table_name": "checkins_r5", "db_write_name": "foursquare", "db_write_table_name": "quatroshapes", "num_processes": 1, "woe_method": "checkins" } }, "preview": { "zoom": 5, "ext": "png" } }, "checkins_city": { "provider": {"class": "tile_renderer_full_database:Provider", "kwargs": { "input_field": "size", "woe_field": "cityname", "output_format": "utf_grid", "cell_size": 256, "min_zoom": 15, "max_zoom": 18, "min_size": 20, "max_size": 200, "margin_percent": 0.9, "method": "size_log", "db_user_name": "foursquare", "db_read_name": "foursquare", "db_read_table_name": "checkins_r5", "db_write_name": "foursquare", "db_write_table_name": "quatroshapes_extras", "num_processes": 1, "woe_method": "checkins" } }, "preview": { "zoom": 5, "ext": "png" } }, "flickr_neighborhoods": { "provider": {"class": "tile_renderer_full_database:Provider", "kwargs": { "input_field": "size", "woe_field": "woe_id", "output_format": "utf_grid", "cell_size": 256, "min_zoom": 16, "max_zoom": 20, "min_size": 30, "max_size": 300, "margin_percent": 0.9, "method": "size_log", "db_user_name": "foursquare", "db_read_name": "foursquare", "db_read_table_name": "flickr_neighborhood_data", "db_write_name": "foursquare", "db_write_table_name": "quatroshapes_neighborhoods", "num_processes": 1, "woe_method": "woe" } }, "preview": { "zoom": 5, "ext": "png" } }, "flickr_locality_density": { "provider": {"class": "tile_renderer_full_database:Provider", "kwargs": { "input_field": "size", "min_size": 1, "max_size": 5000, "method": "size_log", "db_user_name": "foursquare", "db_read_name": "foursquare", "db_read_table_name": "flickr_locality_data" } }, "preview": {"zoom": 5} }, "flickr_locality_woe_id": { "provider": {"class": "tile_renderer_full_database:Provider", "kwargs": { "input_field": "woe_id1", "min_size": 1, "max_size": 5000, "method": "unique_id", "db_user_name": "foursquare", "db_read_name": "foursquare", "db_read_table_name": "flickr_locality_data" } }, "preview": {"zoom": 5} } } } ================================================ FILE: quattroshapes/tilestacheexceptions.py ================================================ #!/usr/bin/env python foo = 123 class NothingMoreToSeeHere(Exception): """ Don't recon any farther. This exception can be thrown in a provider to signal to TileStache.getTile() that the result tile should be returned, and saved in a cache, but no further child tiles should be rendered. Useful in cases where data is not well distributed geographically. The one constructor argument is an instance of PIL.Image or some other object with a save() method, as would be returned by provider renderArea() or renderTile() methods. """ def __init__(self, tile): self.tile = tile Exception.__init__(self, tile) class NothingToSeeHere(Exception): """ Don't recon any farther. This exception can be thrown in a provider to signal to TileStache.getTile() that the result tile should be returned, and but not saved in a cache and no further child tiles should be rendered. Useful in cases where data is not well distributed geographically. """ def __init__(self): Exception.__init__(self)