[
  {
    "path": "LICENSE.md",
    "content": "# ATTRIBUTION\n\nThe quattroshapes are released by foursquare under [CC-BY](http://creativecommons.org/licenses/by/2.0/) attribution license.\n\nPlease include attribution in your app, site, or printed work. Sample wording: \"Includes data from foursquare quattroshapes\" with a link to this Github repo.\n\n# ADDITIONAL ATTRIBUTION\n\nThis map database contains open data from government and other sources. Consider including the following copyright statements when using the data. \n\n### Global gazetters and data\n\n* Geonames.org\n* Yahoo! GeoPlanet\n* Flickr geotagged photos\n\n### Europe\n\nEuroGeoGraphics data copyright is held by European National Mapping Agencies. \n\n* Austria © Bundesamt für Eich- und Vermessungswesen\n* Belgium © Institut Géographique National – Belgique\n* Bulgaria © Cadastre Agency, MRDPW\n* Croatia © Drzavna Geodetska Uprava\n* Cyprus © Lands and Surveys, Survey and Cartogr. Br.\n* Czech Republic © Ceskúrad zememerick a katastrální\n* Denmark © Kort og Matrikelstyrelsen\n* Estonia © Maaamet\n* Faroe Islands © Kort og Matrikelstyrelsen\n* Finland © Maanmittauslaitos\n* France © Institut National de l’Information Géographique et Forestière – France\n* Georgia © National Agency of Public Registry\n* Germany © Bundesamt für Kartographie und Geodäsie\n* Great Britain © Ordnance Survey\n* Greece © Hellenic Military Geographical Service\n* Greenland © Kort og Matrikelstyrelsen\n* Hungary © Földmérési és Távérzékelési Intézet\n* Iceland © Landmælingar Íslands\n* Ireland © Ordnance Survey Ireland\n* Italy © Istituto Geografico Militare Italiano\n* Latvia © Latvijas Republikas Valsts zemes dienests\n* Liechtenstein © Bundesamt für Landestopographie (Switzerland)\n* Lithuania © Nacionalinė žemės tarnyba\n* Luxembourg © Administration du Cadastre et de la Topographie\n* Malta © Malta Environment and Planning Authority (MEPA)\n* Moldova © State Agency for Land Relations and Cadastre\n* Netherlands © Topografische Dienst Nederland\n* Northern Ireland © Ordnance Survey of Northern Ireland\n* Norway © Statens Kartverk\n* Poland © Główny Urząd Geodezji i Kartografii\n* Portugal © Instituto Geográfico Português\n* Rep. of Slovakia © Geodetick a kartografick ústav\n* Romania © CNGCFT (National Center of Geodesie, Cartography, Fotogrametry and Remote Sensing)\n* Serbia © Republički geodetski zavod\n* Slovenia © Geodetska Uprava Republike Slovenije\n* Spain © Centro Nacional de Informacion Geografica – Instituto Geográfico Nacional\n* Sweden © Lantmäteriet\n* Switzerland © Bundesamt für Landestopographie\n* Ukraine © Research Institute of Geodesy and Cartography\n\n### Additional European data\n\n* United Kingdom: Contains Ordnance Survey data © Crown copyright and database right [2012]\n* Netherlands: Kadaster\n* Spain: Instituto Geográfico Nacional\n* France: Institut Géographique National\n* Switzerland: swisstopo\n* 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)\n\n### Americas\n\n* United States: US Census Bureau (Census 2010 geography files). \n* Canada: © Department of Natural Resources Canada. All rights reserved., Statistics Canada, and BC Stats\n* Brazil: IBGE\n* Mexico: INEGI\n* Chile: Global Map of Chile © International Steering Committee for Global Mapping / Instituto Geografico Militar de Chile\n\n### Asia\n\n* Indonesia: Global Map of Indonesia @ ISCGM/Indonesia\n* Australian: Geoscience Australia and Australian Bureau of Statistics\n* New Zealand: Land Information New Zealand\n* 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/\n* Palestine: \"Global Map of PALESTINE © ISCGM/Palestinian National Authority, Ministry of Planning. Geographic Center and Technical Support www.mop.gov.ps"
  },
  {
    "path": "README.md",
    "content": "# quattroshapes\n\n_The Global Polygon Gazetteer_\n\n[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. \n\nTo 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. \n\n[View preview images »](https://github.com/foursquare/quattroshapes#preview)\n\nThis 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.\n\nThe 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.\n\nMatching 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).\n\nGeocoding 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.\n\nThe 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.\n\nEnjoy!\n\n---\n\n## Downloads\n\nShapefiles are in WGS84 (geographic) projection and UTF-8 character encoding. \n\n* [quatroshapes admin 0](http://static.quattroshapes.com/qs_adm0.zip) - 106 mb\n* [quatroshapes admin 1 regions](http://static.quattroshapes.com/qs_adm1_region.zip) - 17 mb\n* [quatroshapes admin 1](http://static.quattroshapes.com/qs_adm1.zip) - 106 mb\n* [quatroshapes admin 2 regions](http://static.quattroshapes.com/qs_adm2_region.zip) - 1.5 mb\n* [quatroshapes admin 2](http://static.quattroshapes.com/qs_adm2.zip) - 304 mb\n* [quatroshapes local admin](http://static.quattroshapes.com/qs_localadmin.zip) - 467 mb\n* [quatroshapes localities](http://static.quattroshapes.com/qs_localities.zip) - 420 mb\n* [quatroshapes neighborhoods](http://static.quattroshapes.com/qs_neighborhoods.zip) - 32 mb\n\n## Goodies\n\nquatroshapes gazetteer (gzipped geojson):\n\n* [prefer GeoNames.org lat-lngs](http://static.quattroshapes.com/quattroshapes_gazetteer_gn_then_gp.gz) - 154 mb\n* [prefer GeoPlanet + Flickr lat-lngs](http://static.quattroshapes.com/quattroshapes_gazetteer_gp_then_gn.gz) - 154 mb\n* [localities only, Geonames.org lat-lngs](http://static.quattroshapes.com/quattroshapes_gazetteer_gn_then_gp_locality.gz) - 46 mb\n* [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\n\nOther:\n\n* [Natural Earth admin-1](http://static.quattroshapes.com/ne_adm1.zip) - 16 mb, version 3.0.0\n* [US State Department HIU admin-0](http://static.quattroshapes.com/ne_ussd_adm0.zip) - 79 mb, re-coded like Natural Earth\n* [National Mapping Agency Open Data](http://static.quattroshapes.com/nma.zip) - 7 gb\n* [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.\n* [GeoPlanet voronoi diagrams](http://static.quattroshapes.com/geoplanet_voronoi.zip) - 198 mb includes adm0, adm1, adm2, localadmin & localities.\n\n \n## Preview\n\n**Administrative level 1**: \n_(below) States and provinces in orange; regions shown in red. Mix of national mapping agency and Natural Earth._\n\n![qs_adm1](images/qs_adm1.png)\n\n**Administrative level 2**: \n_(below) Counties in bright blue; regions shown in dark blue. National mapping agency data._\n\n![qs_adm2](images/qs_adm2.png)\n\n**Local administrative level**: \n_(below) In green. This level of government assumes municipal type control over the central town and surrounding countryside. National mapping agency data._\n\n![qs_localadmin](images/qs_localadmin.png)\n\n**Localities**: \n_(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._\n\n![qs_localities](images/qs_localities.png)\n\n**Administrative level 0**: \n_(below) In gray. Mix of national mapping agency and US State Department data._\n\n![qs_adm0](images/qs_adm0.png)\n\n**Neighborhoods**: \n_(below) In purple. Quattroshape enumeration from geo tagged photos in Flickr using GeoPlanet hierarchy._\n\n![qs_neighborhoods](images/qs_neighborhoods.png)\n\n**Gazetteer**: \n_(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._\n\n![qs_gazetteer](images/qs_gazetteer.png)\n"
  },
  {
    "path": "open_administrative_data/Makefile",
    "content": "all: \\\n\tall_localities.shp \\\n\tall_localadmin.shp \\\n\tall_adm0.shp \\\n\tall_adm1_region.shp \\\n\tall_adm1.shp \\\n\tall_adm2_region.shp \\\n\tall_adm2.shp\n\t\n\ttouch all\n\nall-zips: \\\n\tall_localities.zip \\\n\tall_localadmin.zip \\\n\tall_localadmin.zip \\\n\tall_adm0.zip \\\n\tall_adm1_region.zip \\\n\tall_adm1.zip \\\n\tall_adm2_region.zip \\\n\tall_adm2.zip \n\n\ttouch all-zips\n\t\nall.zip: \\\n\tall_localities.zip \\\n\tall_localadmin.zip \\\n\tall_localadmin.zip \\\n\tall_adm0.zip \\\n\tall_adm1_region.zip \\\n\tall_adm1.zip \\\n\tall_adm2_region.zip \\\n\tall_adm2.zip \n\n\trm -f all.zip\n\tzip all.zip all_*.shp all_*.dbf all_*.shx all_*.prj all_*.cpg\n\nall_localities.zip:\n\trm -f all_localities.zip\n\tzip all_localities.zip all_localities.*\n\t\nall_localadmin.zip:\n\trm -f all_localadmin.zip\n\tzip all_localadmin.zip all_localadmin.*\n\t\nall_adm0.zip:\n\trm -f all_adm0.zip\n\tzip all_adm0.zip all_adm0.*\n\nall_adm1_region.zip:\n\trm -f all_adm1_region.zip\n\tzip all_adm1_region.zip all_adm1_region.*\n\nall_adm1.zip:\n\trm -f all_adm1.zip\n\tzip all_adm1.zip all_adm1.*\n\nall_adm2_region.zip:\n\trm -f all_adm2_region.zip\n\tzip all_adm2_region.zip all_adm2_region.*\n\nall_adm2.zip:\n\trm -f all_adm2.zip\n\tzip all_adm2.zip all_adm2.*\n\n\nall_localities.shp: \\\n\taus_localities.shp \\\n\tbra_localities.shp \\\n\tcan_localities.shp \\\n\teu_localities.shp \\\n\tnzl_localities.shp \\\n\tpri_localities.shp \\\n\tpse_localities.shp \\\n\tusa_localities.shp \\\n\tzaf_localities.shp \\\n\tmex_localities.shp \\\n\trus_localities.shp \\\n\tidn_localities_qs.shp \\\n\tmys_localities_qs.shp \\\n\ttha_localities_qs.shp \\\n\tkor_localities_qs.shp \\\n\ttwn_localities_qs.shp \\\n\tchn_localities_qs.shp \\\n\tind_localities_qs.shp \\\n\tjpn_localities_qs.shp \\\n\tsgp_localities_qs.shp\n\t#tur_localities_qs.shp \\\n\t#gbr_localities_qs.shp\n\t#tur_localities.shp \\\n\t#gbr_localities.shp \\\n\t#chl_localities.shp \\\n\t#mex_localities.shp \\\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" all_localities.shp templates/template_localities.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp usa_localities.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp can_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp eu_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp nzl_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp pri_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp pse_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp zaf_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp aus_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp bra_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp mex_localities.shp\n\t#ogr2ogr -f \"Esri Shapefile\" -append all_localities.shp mex_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp rus_localities.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp chl_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp idn_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp mys_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp tha_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp kor_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp twn_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp chn_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp ind_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp jpn_localities_qs.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localities.shp sgp_localities_qs.shp\n\t#ogr2ogr -f \"Esri Shapefile\" -append all_localities.shp tur_localities_qs.shp\n\t#ogr2ogr -f \"Esri Shapefile\" -append all_localities.shp gbr_localities_qs.shp\n\t#ogr2ogr -f \"Esri Shapefile\" -append all_localities.shp rus_localities_qs.shp\n\t\nall_localadmin.shp: \\\n\taus_localadmin.shp \\\n\tbra_localadmin.shp \\\n\tche_localadmin.shp \\\n\tesp_localadmin.shp \\\n\tfra_localadmin.shp \\\n\tgbr_localadmin.shp \\\n\tita_localadmin.shp \\\n\tlie_localadmin.shp \\\n\tnld_localadmin.shp \\\n\tusa_localadmin.shp\n\t\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" all_localadmin.shp templates/template_localadmin.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp aus_localadmin.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp bra_localadmin.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp che_localadmin.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp esp_localadmin.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp fra_localadmin.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp gbr_localadmin.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp ita_localadmin.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp lie_localadmin.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp nld_localadmin.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_localadmin.shp usa_localadmin.shp\n\nall_adm2_region.shp: \\\n\tdeu_adm2_region.shp \\\n\tfra_adm2_region.shp\n\t\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" all_adm2_region.shp templates/template_adm2_region.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2_region.shp deu_adm2_region.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2_region.shp fra_adm2_region.shp\t\n\nall_adm2.shp: \\\n\taus_adm2.shp \\\n\taut_adm2.shp \\\n\tbel_adm2.shp \\\n\tbra_adm2.shp \\\n\tche_adm2.shp \\\n\tchl_adm2.shp \\\n\tdeu_adm2.shp \\\n\tfra_adm2.shp \\\n\tidn_adm2.shp \\\n\tltu_adm2.shp \\\n\tmex_adm2.shp \\\n\tnzl_adm2.shp \\\n\tpol_adm2.shp \\\n\tpri_adm2.shp \\\n\tsvk_adm2.shp \\\n\tusa_adm2.shp \\\n\tukr_adm2.shp \\\n\tzaf_adm2.shp\n\t\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" all_adm2.shp templates/template_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp aus_adm2.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp aut_adm2.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp bel_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp bra_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp che_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp chl_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp deu_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp fra_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp idn_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp ltu_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp mex_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp nzl_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp pol_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp pri_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp svk_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp usa_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp ukr_adm2.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm2.shp zaf_adm2.shp\n\t\nall_adm1.shp: \\\n\taus_adm1.shp \\\n\taut_adm1.shp \\\n\tbel_adm1.shp \\\n\tbgr_adm1.shp \\\n\tbra_adm1.shp \\\n\tcan_adm1.shp \\\n\tchl_adm1.shp \\\n\tche_adm1.shp \\\n\tcyp_adm1.shp \\\n\tcze_adm1.shp \\\n\tdeu_adm1.shp \\\n\tdnk_adm1.shp \\\n\tesp_adm1.shp \\\n\test_adm1.shp \\\n\tfin_adm1.shp \\\n\tfra_adm1.shp \\\n\tgbr_adm1.shp \\\n\tgib_adm1.shp \\\n\tgrc_adm1.shp \\\n\tgrl_adm1.shp \\\n\thrv_adm1.shp \\\n\thun_adm1.shp \\\n\tidn_adm1.shp \\\n\tirl_adm1.shp \\\n\tita_adm1.shp \\\n\tlie_adm1.shp \\\n\tltu_adm1.shp \\\n\tlva_adm1.shp \\\n\tmco_adm1.shp \\\n\tmda_adm1.shp \\\n\tmex_adm1.shp \\\n\tmlt_adm1.shp \\\n\tnld_adm1.shp \\\n\tnor_adm1.shp \\\n\tnzl_adm1.shp \\\n\tpol_adm1.shp \\\n\tpri_adm1.shp \\\n\tprt_adm1.shp \\\n\tpse_adm1.shp \\\n\trou_adm1.shp \\\n\trus_adm1.shp \\\n\tsrb_adm1.shp \\\n\tsvk_adm1.shp \\\n\tswe_adm1.shp \\\n\tusa_adm1.shp \\\n\tukr_adm1.shp \\\n\tvat_adm1.shp \\\n\tzaf_adm1.shp \\\n\tne_adm1.shp\n\t\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" all_adm1.shp templates/template_adm1.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp ne_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp aus_adm1.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp aut_adm1.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp bel_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp bgr_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp bra_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp can_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp chl_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp che_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp cyp_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp cze_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp deu_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp dnk_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp esp_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp est_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp fin_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp fra_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp gbr_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp gib_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp grc_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp grl_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp hrv_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp hun_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp irl_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp ita_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp lie_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp ltu_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp lva_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp mco_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp mda_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp mex_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp mlt_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp nld_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp nor_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp nzl_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp pol_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp pri_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp prt_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp pse_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp rou_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp rus_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp srb_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp svk_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp swe_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp usa_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp ukr_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp vat_adm1.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1.shp zaf_adm1.shp\n\t\t\t\nall_adm1_region.shp: \\\n\tbel_adm1_region.shp \\\n\tesp_adm1_region.shp \\\n\tfin_adm1_region.shp \\\n\tfra_adm1_region.shp \\\n\tgbr_adm1_region.shp \\\n\thun_adm1_region.shp \\\n\tita_adm1_region.shp \\\n\tsrb_adm1_region.shp\n\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" all_adm1_region.shp templates/template_adm1_region.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1_region.shp bel_adm1_region.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1_region.shp esp_adm1_region.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1_region.shp fin_adm1_region.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1_region.shp fra_adm1_region.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1_region.shp gbr_adm1_region.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1_region.shp hun_adm1_region.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1_region.shp ita_adm1_region.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm1_region.shp srb_adm1_region.shp\n\nall_adm0.shp: \\\n\taus_adm0.shp \\\n\tald_adm0.shp \\\n\taut_adm0.shp \\\n\tbel_adm0.shp \\\n\tbgr_adm0.shp \\\n\tbra_adm0.shp \\\n\tcan_adm0.shp \\\n\tche_adm0.shp \\\n\tchl_adm0.shp \\\n\tcze_adm0.shp \\\n\tdeu_adm0.shp \\\n\tdnk_adm0.shp \\\n\tesp_adm0.shp \\\n\test_adm0.shp \\\n\tfin_adm0.shp \\\n\tfra_adm0.shp \\\n\tfro_adm0.shp \\\n\tgbr_adm0.shp \\\n\tgeo_adm0.shp \\\n\tgib_adm0.shp \\\n\tgrc_adm0.shp \\\n\tgrl_adm0.shp \\\n\thrv_adm0.shp \\\n\thun_adm0.shp \\\n\tirl_adm0.shp \\\n\tisl_adm0.shp \\\n\tita_adm0.shp \\\n\tkos_adm0.shp \\\n\tlie_adm0.shp \\\n\tltu_adm0.shp \\\n\tlux_adm0.shp \\\n\tlva_adm0.shp \\\n\tmco_adm0.shp \\\n\tmda_adm0.shp \\\n\tmex_adm0.shp \\\n\tmlt_adm0.shp \\\n\tnld_adm0.shp \\\n\tnor_adm0.shp \\\n\tnzl_adm0.shp \\\n\tpol_adm0.shp \\\n\tpri_adm0.shp \\\n\tprt_adm0.shp \\\n\tpse_adm0.shp \\\n\trou_adm0.shp \\\n\tsmr_adm0.shp \\\n\tsrb_adm0.shp \\\n\tsvk_adm0.shp \\\n\tsvn_adm0.shp \\\n\tswe_adm0.shp \\\n\tusa_adm0.shp \\\n\tukr_adm0.shp \\\n\tzaf_adm0.shp \\\n\tussd_adm0.shp\n\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" all_adm0.shp templates/template_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp ussd_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp aut_adm0.shp\t\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp ald_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp aus_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp bel_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp bgr_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp bra_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp can_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp che_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp chl_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp cze_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp deu_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp dnk_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp esp_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp est_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp fin_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp fra_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp fro_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp gbr_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp geo_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp gib_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp grc_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp grl_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp hrv_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp hun_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp irl_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp isl_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp ita_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp kos_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp lie_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp ltu_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp lux_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp lva_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp mco_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp mda_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp mex_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp mlt_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp nld_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp nor_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp nzl_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp pol_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp pri_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp prt_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp pse_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp rou_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp srb_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp smr_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp svk_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp svn_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp swe_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp usa_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp ukr_adm0.shp\n\togr2ogr -f \"Esri Shapefile\" -append all_adm0.shp zaf_adm0.shp\n    \n\ndissolve-prep: \\\n\tusa_adm0.shp \\\n\tbra_adm0.shp \\\n\tbra_adm1.shp \\\n\taus_adm0.shp \\\n\taus_adm1.shp \\\n\taus_adm2.shp \\\n\trus_adm0.shp \\\n\tnzl_adm0.shp \\\n\tche_adm0.shp \\\n\tche_adm1.shp \\\n\tidn_adm0.shp \\\n\tidn_adm1.shp \\\n\tidn_adm2.shp \\\n\tchl_adm1.shp \\\n\tchl_adm0.shp \\\n\tpse_adm0.shp \\\n\tzaf_adm1.shp \\\n\tzaf_adm1.shp \\\n\tgbr_adm1_region.shp \\\n\tbel_adm1_region.shp \\\n\tfin_adm1_region.shp \\\n\tfra_adm1_region.shp \\\n\thun_adm1_region.shp \\\n\tsrb_adm1_region.shp \\\n\taut_adm1.shp \\\n\tbel_adm1.shp \\\n\tdeu_adm1.shp \\\n\tsrb_adm1.shp \\\n\tsvk_adm1.shp \\\n\tpol_adm1.shp \\\n\tukr_adm1.shp \\\n\tltu_adm1.shp \\\n\taut_adm0.shp \\\n\tbel_adm0.shp \\\n\tdeu_adm0.shp \\\n\tfin_adm0.shp \\\n\tfra_adm0.shp \\\n\thun_adm0.shp \\\n\tltu_adm0.shp \\\n\tpol_adm0.shp \\\n\tsrb_adm0.shp \\\n\tsvk_adm0.shp \\\n\tukr_adm0.shp \\\n\tcze_adm0.shp \\ \n\tdnk_adm0.shp \\ \n\tesp_adm0.shp \\ \n\test_adm0.shp \\ \n\tfin_adm0.shp \\ \n\tgbr_adm0.shp \\ \n\tgrc_adm0.shp \\ \n\tgrl_adm0.shp \\ \n\thrv_adm0.shp \\ \n\tirl_adm0.shp \\ \n\tisl_adm0.shp \\ \n\tita_adm0.shp \\ \n\tkos_adm0.shp \\ \n\tlva_adm0.shp \\ \n\tmda_adm0.shp \\ \n\tnld_adm0.shp \\ \n\tnor_adm0.shp \\ \n\tprt_adm0.shp \\ \n\trou_adm0.shp\n\t\n\trm -f dissolvers/*.shp dissolvers/*.shx dissolvers/*.dbf dissolvers/*.prj dissolvers/*.cpg\n\t\t\n\tcp usa_adm0.* dissolvers/\n\tcp bra_adm0.* dissolvers/\n\tcp bra_adm1.* dissolvers/\n\tcp brg_adm0.* dissolvers/ \n\tcp aus_adm0.* dissolvers/\n\tcp aus_adm1.* dissolvers/\n\tcp aus_adm2.* dissolvers/\n\tcp rus_adm0.* dissolvers/\n\tcp mex_adm0.* dissolvers/\n\tcp nzl_adm0.* dissolvers/\n\tcp che_adm0.* dissolvers/\n\tcp che_adm1.* dissolvers/\n\tcp idn_adm0.* dissolvers/\n\tcp idn_adm1.* dissolvers/\n\tcp idn_adm2.* dissolvers/\n\tcp chl_adm1.* dissolvers/\n\tcp chl_adm0.* dissolvers/\n\tcp pse_adm0.* dissolvers/\n\tcp zaf_adm1.* dissolvers/\n\tcp zaf_adm1.* dissolvers/\n\tcp gbr_adm1_region.* dissolvers/\n\tcp bel_adm1_region.* dissolvers/\n\tcp fin_adm1_region.* dissolvers/\n\tcp fra_adm1_region.* dissolvers/\n\tcp hun_adm1_region.* dissolvers/\n\tcp srb_adm1_region.* dissolvers/\n\tcp aut_adm1.* dissolvers/\n\tcp bel_adm1.* dissolvers/\n\tcp deu_adm1.* dissolvers/\n\tcp srb_adm1.* dissolvers/\n\tcp svk_adm1.* dissolvers/\n\tcp pol_adm1.* dissolvers/\n\tcp ukr_adm1.* dissolvers/\n\tcp ltu_adm1.* dissolvers/\n\t\n\tcp aut_adm0.* dissolvers/\n\tcp bel_adm0.* dissolvers/\n\tcp deu_adm0.* dissolvers/\n\tcp fin_adm0.* dissolvers/\n\tcp fra_adm0.* dissolvers/\n\tcp hun_adm0.* dissolvers/\n\tcp ltu_adm0.* dissolvers/\n\tcp pol_adm0.* dissolvers/\n\tcp srb_adm0.* dissolvers/\n\tcp svk_adm0.* dissolvers/\n\tcp ukr_adm0.* dissolvers/\n\t\n\tcp brg_adm0.* dissolvers/\n\tcp cze_adm0.* dissolvers/\n\tcp dnk_adm0.* dissolvers/\n\tcp esp_adm0.* dissolvers/\n\tcp est_adm0.* dissolvers/\n\tcp fin_adm0.* dissolvers/\n\tcp gbr_adm0.* dissolvers/\n\tcp grc_adm0.* dissolvers/\n\tcp grl_adm0.* dissolvers/\n\tcp hrv_adm0.* dissolvers/\n\tcp irl_adm0.* dissolvers/\n\tcp isl_adm0.* dissolvers/\n\tcp ita_adm0.* dissolvers/\n\tcp kos_adm0.* dissolvers/\n\tcp lva_adm0.* dissolvers/\n\tcp mda_adm0.* dissolvers/\n\tcp nld_adm0.* dissolvers/\n\tcp nor_adm0.* dissolvers/\n\tcp prt_adm0.* dissolvers/\n\tcp rou_adm0.* dissolvers/\n\tcp swe_adm0.* dissolvers/\n\t\t\t\n\nald: \\\n\tald_adm0.shp\n\ttouch ald\n\naus: \\\n\taus_adm0.shp \\\n\taus_adm1.shp \\\n\taus_adm2.shp \\\n\taus_localadmin.shp \\\n\taus_localities.shp\n\ttouch aus\n\naut: \\\n\taut_adm0.shp \\\n\taut_adm1.shp \\\n\taut_adm2.shp\n\ttouch aut\n\nbel: \\\n\tbel_adm0.shp \\\n\tbel_adm1_region.shp \\\n\tbel_adm1.shp \\\n\tbel_adm2.shp\n\ttouch bel\n\nbgr: \\\n\tbgr_adm0.shp \\\n\tbgr_adm1.shp\n\ttouch bgr\n\nbra: \\\n\tbra_adm2.shp \\\n\tbra_adm1.shp \\\n\tbra_adm0.shp \\\n\tbra_localadmin.shp \\\n\tbra_localities.shp\n\ttouch bra\n\ncan: \\\n\tcan_localities.shp \\\n\tcan_adm1.shp \\\n\tcan_adm0.shp\n\ttouch can\n\t\nche: \\\n\tche_adm0.shp \\\n\tche_adm1.shp \\\n\tche_localadmin.shp\n\ttouch che\n\nchl: \\\n\tchl_localities.shp \\\n\tchl_adm2.shp \\\n\tchl_adm1.shp \\\n\tchl_adm0.shp\n\ttouch chl\n\t\ncyp: \\\n\tcyp_adm0.shp \\\n\tcyp_adm1.shp\n\ttouch cyp\n\ncze: \\\n\tcze_adm0.shp \\\n\tcze_adm1.shp\n\ttouch cze\n\ndeu: \\\n\tsrc.shp \\\n\tdeu_adm1.shp \\\n\tsrc.shp \\\n\tsrc.shp\n\ttouch deu\n\ndnk: \\\n\tdnk_adm0.shp \\\n\tdnk_adm1.shp\n\ttouch dnk\n\nesp: \\\n\tesp_localadmin.shp \\\n\tesp_adm1.shp \\\n\tesp_adm1_region.shp \\\n\tesp_adm0.shp \\\n\ttouch esp\n\nest: \\\n\test_adm0.shp \\\n\test_adm1.shp\n\ttouch est\n\t\neu: \\\n\teu_localities.shp\n\ttouch eu\n\t\nfin: \\\n\tfin_adm0.shp \\\n\tfin_adm1_region.shp \\\n\tfin_adm1.shp\n\ttouch fin\n\nfra: \\\n\tfra_localadmin.shp \\\n\tfra_adm2.shp \\\n\tfra_adm1.shp \\\n\tfra_adm1_region.shp \\\n\tsrc.shp\n\ttouch fra\n\t\nfro: \\\n\tfro_adm0.shp\n\ttouch fro\n\ngbr: \\\n\tgbr_adm0.shp \\\n\tgbr_adm1.shp \\\n\tgbr_adm1_region.shp \\\n\tgbr_localadmin.shp\n\ttouch gbr\n\ngeo: \\\n\tgeo_adm0.shp\n\ttouch geo\n\t\ngrc: \\\n\tgrc_adm0.shp \\\n\tgrc_adm1.shp\n\ttouch grc\n\ngrl: \\\n\tgrl_adm0.shp \\\n\tgrl_adm1.shp\n\ttouch grl\n\nhun: \\\n\thun_adm0.shp \\\n\thun_adm1_region.shp \\\n\thun_adm1.shp\n\ttouch hun\n\t\nhrv: \\\n\thrv_adm0.shp \\\n\thrv_adm1.shp\n\ttouch hrv\n\nidn: \\\n\tidn_adm2.shp \\\n\tidn_adm1.shp \\\n\tidn_adm0.shp\n\ttouch idn\n\t\nirl: \\\n\tirl_adm0.shp \\\n\tirl_adm1.shp\n\ttouch irl\n\nisl: \\\n\tisl_adm0.shp\n\ttouch isl\n\t\nita: \\\n\tita_localadmin.shp \\\n\tita_adm1.shp \\\n\tita_adm1_region.shp\n\tita_adm0.shp \\\n\ttouch ita\n\nkos: \\\n\tkos_adm0.shp\n\ttouch kos\n\nltu: \\\n\tltu_adm0.shp \\\n\tltu_adm1.shp \\\n\tltu_adm2.shp\n\ttouch ltu\n\nlux: \\\n\tlux_adm0.shp\n\ttouch lux\n\nlva: \\\n\tlva_adm0.shp \\\n\tlva_adm1.shp\n\ttouch lva\n\nmda: \\\n\tmda_adm0.shp \\\n\tmda_adm1.shp\n\ttouch mda\n\nmex: \\\n\tmex_localities.shp \\\n\tmex_adm2.shp \\\n\tmex_adm1.shp \\\n\tmex_adm0.shp\n\ttouch mex\n\nnld: \\\n\tnld_localadmin.shp \\\n\tnld_adm1.shp \\\n\tnld_adm0.shp\n\ttouch nld\n\nnor: \\\n\tnor_adm0.shp \\\n\tnor_adm1.shp\n\ttouch nor\n\t\nnzl: \\\n\tnzl_localities.shp \\\n\tnzl_adm2.shp \\\n\tnzl_adm1.shp\n\ttouch nzl\n\t\npol: \\\n\tpol_adm0.shp \\\n\tpol_adm1.shp \\\n\tpol_adm2.shp\n\ttouch pol\n\npri: \\\n\tpri_adm0.shp \\\n\tpri_adm1.shp \\\n\tpri_adm2.shp \\\n\tpri_localities.shp\n\ttouch pri\n\nprt: \\\n\tprt_adm0.shp \\\n\tprt_adm1.shp \\\n\tprt_adm0.shp\n\ttouch prt\n\npse: \\\n\tpse_localities.shp\\\n\tpse_adm1.shp\n\ttouch pse\n\nrou:\n\trou_adm0.shp \\\n\trou_adm1.shp\n\ttouch rou\n\nrus: \\\n\trus_localities.shp \\\n\trus_adm1.shp \\\n\trus_adm0.shp\n\ttouch rus\n\t\nsrb: \\\n\tsrb_adm0.shp \\\n\tsrb_adm1_region.shp \\\n\tsrb_adm1.shp\n\ttouch srb\n\nsmr: \\\n\tsmr_adm0.shp\n\ttouch smr\n\nsvk: \\\n\tsvk_adm0.shp \\\n\tsvk_adm1.shp \\\n\tsvk_adm2.shp\n\ttouch svk\n\nsvn: \\\n\tsvn_adm0.shp\n\ttouch svn\n\t\nswe: \\\n\tswe_adm0.shp \\\n\tswe_adm1.shp\n\ttouch swe\n\nukr: \\\n\tukr_adm0.shp \\\n\tukr_adm1.shp \\\n\tukr_adm2.shp\n\ttouch ukr\n\nvat: \\\n\tvat_adm0.shp \\\n\tvat_adm1.shp\n\ttouch vat\n\nusa: \\\n\tusa_adm0.shp \\\n\tusa_adm1.shp \\\n\tusa_adm2.shp \\\n\tusa_localadmin.shp \\\n\tusa_localities.shp\n\ttouch usa\n\t\t\nzaf: \\\n\tzaf_localities.shp \\\n\tzaf_adm2.shp \\\n\tzaf_adm1.shp \\\n\tzaf_adm0.shp\n\ttouch zaf\n\n\n# UNITED STATES\n\nusa_adm0.shp: raw_downloads/tl_2010_us_state10.shp\n\togr2ogr -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\n\nusa_adm1.shp: raw_downloads/tl_2010_us_state10.shp\n\togr2ogr -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\n\nusa_adm2.shp: \\\n\traw_downloads/tl_2010_us_county10.shp \\\n\tusa_adm1.shp\n\t# --config SHAPE_ENCODING WINDOWS-1252\n\togr2ogr -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\n\nusa_localities.shp: usa_adm1.shp\n\t# --config SHAPE_ENCODING WINDOWS-1252\n\togr2ogr -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\n\nusa_localadmin.shp: raw_downloads/usa_localadmin_all.shp \\\n\tusa_adm1.shp \\\n\tusa_adm2.shp \\\n\traw_downloads/CouSub_2010Census_DP1.shp\n\togr2ogr -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\n\t# add adm2 names\n\togr2ogr -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\n\t# add populations\n\togr2ogr -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\n\n\t\n\n# PR\n\npri_adm0.shp: raw_downloads/tl_2010_us_state10.shp\n\togr2ogr -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\n\npri_adm1.shp: raw_downloads/tl_2010_us_state10.shp\n\togr2ogr -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\n\npri_adm2.shp: \\\n\traw_downloads/tl_2010_us_county10.shp \\\n\tpri_adm1.shp\n\t# --config SHAPE_ENCODING WINDOWS-1252\n\togr2ogr -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\n\npri_localities.shp: pri_adm1.shp\n\t# --config SHAPE_ENCODING WINDOWS-1252\n\togr2ogr -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\n\n# UNITED KINGDOM\n\n#gbr_adm1.shp:\n#\togr2ogr -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\n\n#United Kingdom SH3, needs Norther Ireland (ND) appended (SH4) - 4 regions\n\ngbr_adm0.shp:\n\t# Start with Northern Ireland due to long qs_a1_lc\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\n\n# Proceed with whole\n\ngbr_adm1_region.shp:\n\togr2ogr -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\n\togr2ogr -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\n\t\ngbr_adm1.shp:\n\togr2ogr -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\n\togr2ogr -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\n\n\ngbr_localadmin.shp:\n\t#Let's setup the basic construct\n\togr2ogr -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\n\t# England is prefix E or prefix null -spat -120059.56 -217878.65 738273.25 577762.31\n\togr2ogr -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\n\t# Wales is prefix W\n\togr2ogr -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\n\t# Scotland is prefix null and -spat -196211 577762.31 625336.14 1319225\n\togr2ogr -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\n\t# add Northern Ireland\n\togr2ogr -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\n\trm -rf gbr_localadmin_tmp.*\n\n# CANADA\n\ncan_localities.shp: can_adm1.shp\n\togr2ogr -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\n\t\n\togr2ogr -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\n\t\n\togr2ogr -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\n\ncan_adm1.shp:\n\togr2ogr -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\n\ncan_adm0.shp:\n\togr2ogr -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\n\n\n# BRAZIL\n\n#-sql \"SELECT 'BRA' as qs_adm0_a3, 'Brazil' as qs_adm0, 'adm2' as qs_level FROM 55mu2500gsr\"\n\n../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_clean.shp:\n\t# Orig in bad character encoding. Manually converted to UTF-8 using OpenOffice.\n\t# --config SHAPE_ENCODING \"ISO-8859-15\"\n\togr2ogr -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\n\t\nbra_adm0.shp:\n\t# Trouble with dissolves and encodings!\n\t#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\n\t#ogr2ogr -overwrite -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -nlt MULTIPOLYGON bra_adm0.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_adm0.shp\n\togr2ogr -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\n\n\t#dissolve-shapes.py -i bra_adm0.shp -o bra_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level\n\n\nbra_adm1_eh.shp:\n\t#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\n\togr2ogr -overwrite -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -nlt MULTIPOLYGON bra_adm1.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_adm1.shp\n\n\t#dissolve-shapes.py -i bra_adm1.shp -o bra_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level\n\nbra_adm2_eh.shp:\n\t#ogr2ogr -overwrite -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" bra_adm2.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_clean2.shp\n\togr2ogr -overwrite -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -nlt MULTIPOLYGON bra_adm2.shp ../nma/brazil/2nd_round/55mu2500gsr_admin_2/55mu2500gsr_adm2.shp\n\t\n\nbra_adm1_src_data:\n\tmkdir -p raw_downloads/bra/adm1/\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ac.zip -O raw_downloads/bra/adm1/ac.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/al.zip -O raw_downloads/bra/adm1/al.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/am.zip -O raw_downloads/bra/adm1/am.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ap.zip -O raw_downloads/bra/adm1/ap.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ba.zip -O raw_downloads/bra/adm1/ba.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ce.zip -O raw_downloads/bra/adm1/ce.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/df.zip -O raw_downloads/bra/adm1/df.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/es.zip -O raw_downloads/bra/adm1/es.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/go.zip -O raw_downloads/bra/adm1/go.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ma.zip -O raw_downloads/bra/adm1/ma.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/mg.zip -O raw_downloads/bra/adm1/mg.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ms.zip -O raw_downloads/bra/adm1/ms.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/mt.zip -O raw_downloads/bra/adm1/mt.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pa.zip -O raw_downloads/bra/adm1/pa.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pb.zip -O raw_downloads/bra/adm1/pb.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pe.zip -O raw_downloads/bra/adm1/pe.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pi.zip -O raw_downloads/bra/adm1/pi.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/pr.zip -O raw_downloads/bra/adm1/pr.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rj.zip -O raw_downloads/bra/adm1/rj.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rn.zip -O raw_downloads/bra/adm1/rn.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/ro.zip -O raw_downloads/bra/adm1/ro.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rr.zip -O raw_downloads/bra/adm1/rr.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rs.zip -O raw_downloads/bra/adm1/rs.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/sc.zip -O raw_downloads/bra/adm1/sc.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/se.zip -O raw_downloads/bra/adm1/se.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/sp.zip -O raw_downloads/bra/adm1/sp.zip\n\twget ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/to.zip -O raw_downloads/bra/adm1/to.zip\n\tunzip -o raw_downloads/bra/adm1/ac.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/al.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/am.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/ap.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/ba.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/ce.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/df.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/es.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/go.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/ma.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/mg.zip -d raw_downloads/bra/adm1/\n\tmkdir -p raw_downloads/bra/adm1/ms/\n\tunzip -o raw_downloads/bra/adm1/ms.zip -d raw_downloads/bra/adm1/ms/\n\tunzip -o raw_downloads/bra/adm1/mt.zip -d raw_downloads/bra/adm1/\n\tmkdir -p raw_downloads/bra/adm1/pa/\n\tunzip -o raw_downloads/bra/adm1/pa.zip -d raw_downloads/bra/adm1/pa/\n\tunzip -o raw_downloads/bra/adm1/pb.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/pe.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/pi.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/pr.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/rj.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/rn.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/ro.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/rr.zip -d raw_downloads/bra/adm1/\n\tmkdir -p raw_downloads/bra/adm1/rs/\n\tunzip -o raw_downloads/bra/adm1/rs.zip -d raw_downloads/bra/adm1/rs/\n\tmkdir -p raw_downloads/bra/adm1/sc/\n\tunzip -o raw_downloads/bra/adm1/sc.zip -d raw_downloads/bra/adm1/sc/\n\tunzip -o raw_downloads/bra/adm1/se.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/sp.zip -d raw_downloads/bra/adm1/\n\tunzip -o raw_downloads/bra/adm1/to.zip -d raw_downloads/bra/adm1/\n\n\nbra_adm1.shp:\t\n\t#  -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\"\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\t# now set the common attr\n\togr2ogr -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\n\t\n\n#\n# Other Brazil data comes from\n#\n# ftp://geoftp.ibge.gov.br/malhas_digitais/censo_2010/setores_censitarios/ac.zip\n\nbra_adm2.shp:\n\t#  -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\"\n\t# --config SHAPE_ENCODING ISO-8859-15\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\nbra_localadmin.shp:\t\n\t#  -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\"\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\t\n\t\nbra_district.shp:\t\n\t#  -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\"\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\n\nbra_localities.shp:\n\togr2ogr -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\n\n\n# AUSTRALIA\n\naus_adm0.shp:\n\togr2ogr -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\n\n\t#dissolve-shapes.py -i aus_adm0.shp -o aus_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0\n\t\naus_adm1.shp:\n\togr2ogr -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\n\n\t#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\n\naus_adm2.shp:\n\togr2ogr -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\n\n\t#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\n\naus_localadmin.shp:\n\togr2ogr -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\n\naus_localities.shp:\n\togr2ogr -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\n\togr2ogr -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\n\togr2ogr -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\n\n\n# NETHERLANDS\n\n# This needs to use the files that are in local grid now, they need to be reprojected.\n#nld_adm1.shp:\n#\togr2ogr -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\n\t\nnld_localadmin.shp:\n\t#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\n\togr2ogr -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\n\n#NETHERLANDS EUROLGLOBALMAP\n\n# Slightly better than NMA data\n# Almost as good as the NMA open data (the NMA data includes exo areas, this doesn't).\n# NMA has better coastline.\n\nnld_adm0.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\nnld_adm1.shp:\n\togr2ogr -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\t\n\t# add in the qs_type\n\togr2ogr -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\n\n\n\n# SPAIN\n\nesp_localadmin.shp: esp_adm1.shp\n\togr2ogr -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\n\t# add adm1 names\n\togr2ogr -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\t\n\n\nesp_adm1.shp:\n\togr2ogr -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\n\nesp_adm1_region.shp:\n\togr2ogr -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\n\n# SPAIN EUROGLOBALMAP\n# Almost as good as the NMA open data (the NMA data includes exo areas, this doesn't).\n# NMA has better coastline.\n\nesp_adm0.shp:\n\togr2ogr -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\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\trm esp_adm0_tmp.*\n\n#esp_adm1_region.shp:\n#\togr2ogr -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\n\n#esp_adm1.shp:\n#\togr2ogr -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\n\n\n#Gibraltar\n\ngib_adm0.shp:\n\togr2ogr -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\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\trm gib_adm0_tmp.*\n\ngib_adm1.shp:\n\togr2ogr -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 \n\n# ITALY\n\nita_localadmin.shp: \\\n\tita_adm1.shp \\\n\tita_adm1_region.shp\n\t\n\togr2ogr -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\n\nita_adm1.shp: ita_adm1_region.shp\n\togr2ogr -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\n\nita_adm1_region.shp:\n\togr2ogr -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\n\n# ITALY EUROGLOBALMAP\n# Almost as good as the NMA open data (the NMA data includes exo areas, this doesn't).\n# NMA has better coastline.\n\nita_adm0.shp:\n\trm -f ita_adm0_tmp.*\n\togr2ogr -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\n\togr2ogr -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\n\trm -f ita_adm0_tmp.*\n\n#ita_adm1_region.shp:\n#\togr2ogr -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\n\n#ita_adm1.shp:\n#\togr2ogr -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\n\n\n#SAN MARINO\n\nsmr_adm0.shp:\n\trm -f smr_adm0_tmp.*\n\togr2ogr -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\n\togr2ogr -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\n\trm -f smr_adm0_tmp.*\n\t\n#VATICAN\n\t\nvat_adm0.shp:\n\trm -f vat_adm0_tmp.*\n\togr2ogr -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\n\togr2ogr -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\n\trm -f vat_adm0_tmp.*\n\nvat_adm1.shp: \n\togr2ogr -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\n\n# FRANCE\n\nfra_localadmin.shp:\n\t#metropolitan france\n\t# --config SHAPE_ENCODING ISO-8859-15 didn't work so manually mod'd to UTF-8\n\togr2ogr -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\n\n\t# mayotte\n\togr2ogr -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\n\n\t# reunion\n\togr2ogr -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\n\t\n\t# Guadeloupe\n\togr2ogr -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\n\t\n\t# Martinique\n\togr2ogr -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\n\t\n\t# (french) Guyane\n\togr2ogr -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\n\n\nfra_adm2_region.shp:\n\togr2ogr -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\n\nfra_adm2.shp:\n\togr2ogr -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\n\n#fra_adm1.shp:\n#\togr2ogr -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\n\n# FRANCE EUROGLOBALMAP\n# Better than the NMA open data.\n\nfra_adm0.shp:\n\trm -f fra_adm0_tmp.*\n\togr2ogr -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\n\togr2ogr -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\n\trm -f fra_adm0_tmp.*\n\t\n\nfra_adm1_region.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\t\nfra_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n# MONACO\n\nmco_adm0.shp:\n\trm -f mco_adm0_tmp.*\n\togr2ogr -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\n\togr2ogr -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\n\trm -f mco_adm0_tmp.*\n\nmco_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\t\n# RUSSIA\n\nrus_localities.shp:\n\togr2ogr -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\n\nrus_adm1.shp:\n\t# The src had irreconcilable Windows-1251 encoding that OGR refuses to translate.\n\t# Solution: open in OpenOffice and save as OO format (Unicode native), then save as as DBF with explicate UTF-8 encoding.\n\t#--config SHAPE_ENCODING \"Windows-1251\"\n\togr2ogr -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\n\nrus_adm0.shp:\n\t# The src had irreconcilable Windows-1251 encoding that OGR refuses to translate.\n\t# Solution: open in OpenOffice and save as OO format (Unicode native), then save as as DBF with explicate UTF-8 encoding.\n\t#--config SHAPE_ENCODING \"Windows-1251\"\n\togr2ogr -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\n\n\t#dissolve-shapes.py -i rus_adm0.shp -o rus_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0\n\n\n# MEXICO\n\nmex_localities.shp: mex_adm2.shp\n\togr2ogr -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\n\t# add adm1 and adm2 names\n\togr2ogr -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\n\nmex_adm2.shp: mex_adm1.shp\n\togr2ogr -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\n\nmex_adm1.shp:\n\togr2ogr -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\n\nmex_adm0.shp:\n\togr2ogr -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\n\n\t#dissolve-shapes.py -i mex_adm0.shp -o mex_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0\n\n\n# NEW ZEALAND\n\nnzl_localities.shp:\n\t# New Zealand north and south islands\n\togr2ogr -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\n\t\nnzl_adm2.shp:\n\togr2ogr -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\n\nnzl_adm1.shp:\n\t# New Zealand north and south islands\n\togr2ogr -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\n\t\n\t# chatham Islands\n\togr2ogr -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\n\nnzl_adm0.shp:\n\togr2ogr -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\n\n\t#dissolve-shapes.py -i nzl_adm0.shp -o nzl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0\n\n\n#SWITZERLAND\n\n# NOTE: The Swiss open data is better than the EuroGlobalMap, skip adm1 and adm0 from there, dissolve instead from the localadmin here:\n\nche_localadmin.shp:\n\t# first the cantons with adm-2 divisions\n\t# 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)\n\togr2ogr -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\n\t#add in Appenzell Innerrhoden canton (it has weird adm2 coding, use bfs_nummer instead of bezirksnum)\n\togr2ogr -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\n\t#add in the unitary cantons (effectively nulling their adm2 data if present)\n\togr2ogr -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\n\t# Now add in the adm1 names\n\togr2ogr -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\n\trm che_localadmin_temp.*\n\n\n\n\n# Berzirk (Berzirkes)\nche_adm2.shp:\n\t# first the cantons with adm-2 divisions\n\t# 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)\n\togr2ogr -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\n\t#add in Appenzell Innerrhoden canton (it has weird adm2 coding, use bfs_nummer instead of bezirksnum)\n\togr2ogr -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\n\t#add in the unitary cantons (effectively nulling their adm2 data if present)\n\togr2ogr -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\n\t# Now add in the adm2 names\n\t#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\n\t# Now add in the adm1 names\n\togr2ogr -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\n\trm -rf che_adm2_temp.*\n\trm -rf che_adm2_temp2.*\n\t\t\nche_adm1.shp:\n\togr2ogr -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\t\n\t# Old method\n\t#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\t\n\n\t#dissolve-shapes.py -i che_adm1.shp -o che_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a1_lc\n\nche_adm0.shp:\n\togr2ogr -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\n\n\n#LIECHTENSTEIN\n\nlie_localadmin.shp:\n\togr2ogr -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\n\t\nlie_adm1.shp:\n\togr2ogr -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\n\n\nlie_adm0.shp:\n\togr2ogr -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\n\n# EUROPEAN UNION\n\neu_localities.shp:\n\togr2ogr -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\n\t# WHERE qs_iso_cc NOT IN ('gb','tr')\n\t#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\n\t\n\t# This is the separate urban areas that are funky\n\t#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\n\n\n# INDONESIA\n\nidn_adm2.shp:\n\togr2ogr -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\n\t\n\t#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\n\nidn_adm1.shp:\n\togr2ogr -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\n\t\n\t#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\n\nidn_adm0.shp:\n\togr2ogr -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\n\n\t#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\n\n\n# CHILE\n\nchl_localities.shp:\n\togr2ogr -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\n\t\nchl_adm2.shp:\n\togr2ogr -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\n\t\nchl_adm1.shp:\n\togr2ogr -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\n\n\t#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\n\n\nchl_adm0.shp:\n\togr2ogr -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\n\t\n\t#dissolve-shapes.py -i chl_adm0.shp -o chl_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a0_lc\n\n\n# PALESTINE\n\npse_localities.shp:\n\togr2ogr -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\n\t\npse_adm1.shp:\n\togr2ogr -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\n\t\npse_adm0.shp:\n\togr2ogr -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\n\t\n\t#dissolve-shapes.py -i pse_adm0.shp -o pse_adm0.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a0_lc\n\n\n\n# SOUTH AFRICA\n\nzaf_localities.shp:\n\togr2ogr -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\n\t\nzaf_adm2.shp:\n\togr2ogr -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\n\nzaf_adm1.shp:\n\togr2ogr -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\n\n\t#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\n\nzaf_adm0.shp:\n\togr2ogr -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\n\n\t#dissolve-shapes.py -i zaf_adm1.shp -o zaf_adm1.shp -f qs_adm0_a3,qs_adm0,qs_level,qs_a0,qs_a0_lc\n\n\n\n\n\n#GERMANY\n#No NMA open data available.\n\ndeu_adm0.shp:\n\togr2ogr -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\n\ndeu_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\t\n\t\ndeu_adm2_region.shp:\n\togr2ogr -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\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\ndeu_adm2.shp:\n\togr2ogr -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\n\t# Add in nulled qs_a2_lc from Sachsen (qs_a2r was dissolved in 2012)\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n\n\n\n#FINLAND\n#No NMA data researched\n\nfin_adm0.shp:\n\togr2ogr -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\n\nfin_adm1_region.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\t\nfin_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#ALAND\n#No NMA data researched\n\nald_adm0.shp:\n\togr2ogr -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\n\n\n#HUNGARY\n#No NMA data researched\n# Different than Natural Earth for adm-1 in the separate towns are not broken out\n\nhun_adm0.shp:\n\togr2ogr -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\n\nhun_adm1_region.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\nhun_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n\n\n\n\n\n#DENMARK\n#No NMA data researched\n\ndnk_adm0.shp:\n\togr2ogr -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\n\ndnk_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#GREENLAND\n#No NMA data researched\n\ngrl_adm0.shp:\n\togr2ogr -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\n\ngrl_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#FAROE ISLANDS\n#No NMA data researched\n\nfro_adm0.shp:\n\togr2ogr -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\n\n\n\n#NORWAY\n#No NMA data researched\n\nnor_adm0.shp:\n\togr2ogr -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\n\nnor_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#SWEDEN\n#No NMA data researched\n\nswe_adm0.shp:\n\togr2ogr -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\n\nswe_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#ESTONIA\n#No NMA data researched\n\nest_adm0.shp:\n\togr2ogr -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\n\nest_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#LATVIA\n#No NMA data researched\n\nlva_adm0.shp:\n\togr2ogr -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\n\nlva_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#ROMANIA\n#No NMA data researched\n\nrou_adm0.shp:\n\togr2ogr -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\n\nrou_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#IRELAND\n#No NMA data researched\n\nirl_adm0.shp:\n\togr2ogr -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\n\nirl_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#CROATIA\n#No NMA data researched\n\nhrv_adm0.shp:\n\togr2ogr -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\n\nhrv_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#MOLDOVA\n#No NMA data researched\n\nmda_adm0.shp:\n\togr2ogr -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\n\nmda_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#CZECH REPUBLIC\n#No NMA data researched\n\ncze_adm0.shp:\n\togr2ogr -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\n\ncze_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n\n#MALTA\n#No NMA data researched\n\nmlt_adm0.shp:\n\togr2ogr -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\n\nmlt_adm1.shp: mlt_adm0.shp\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n\n\n\n#POLAND\n#No NMA data researched\n\npol_adm0.shp:\n\togr2ogr -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\n\npol_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\npol_adm2.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n#AUSTRIA\n#No NMA data researched\n\naut_adm0.shp:\n\togr2ogr -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\n\naut_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\t\n\t\naut_adm2.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n#SLOVAKIA\n#No NMA data researched\n\nsvk_adm0.shp:\n\togr2ogr -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\n\nsvk_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\nsvk_adm2.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#LITHUANIA\n#No NMA data researched\n\nltu_adm0.shp:\n\togr2ogr -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\n\nltu_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\nltu_adm2.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#UKRAINE\n#No NMA data researched\n\nukr_adm0.shp:\n\togr2ogr -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\n\nukr_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\nukr_adm2.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n\n\n#GREECE\n#No NMA data researched\n# 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?\n# !!! Character encoding issues\n\ngrc_adm0.shp:\n\togr2ogr -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\n\ngrc_adm1.shp: grc_adm0.shp\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n#BULGARIA\n#No NMA data researched\n# !!! Character encoding issues\n\nbgr_adm0.shp:\n\togr2ogr -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\n\nbgr_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#CYPRUS\n#No NMA data researched\n# !!! Character encoding issues\n# !!! Mismatch on Natural Earth adm-1\n\ncyp_adm0.shp:\n\togr2ogr -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\n\ncyp_adm1.shp: cyp_adm0_tmp.shp\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n\n\n#SPECIAL\n\n#SERBIA\n#Serbia - two regions\n#Kosovo needs to be split off\n# !! Something stupid is happening between 3 and 4. They should really be combined?\n\nsrb_adm0.shp:\n\togr2ogr -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\n\nsrb_adm1_region.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\nsrb_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n#KOSOVO\n# Looks to be pre redo of adm-1 (still Serb view)\n\nkos_adm0.shp:\n\togr2ogr -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\n\n\n#BELGIUM\n# NMA open data not investigated\n#Belgium - 3 regions\n#0 is a0\n#1 is a1r\n#2 is a1\n#3 is a2\n\nbel_adm0.shp:\n\togr2ogr -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\n\nbel_adm1_region.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\nbel_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\nbel_adm2.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n#PORTUGAL\n# NMA open data not investigated\n# !! Portugal needs sh2 mapped as adm1; there should be regions but those aren't coded in the EuroGlobalMap\n\nprt_adm0.shp:\n\togr2ogr -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\n\nprt_adm1.shp:\n\togr2ogr -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\n\t# add in the qs_type\n\togr2ogr -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\n\n\n\n#GEORGIA\n\ngeo_adm0.shp:\n\t# GE Georgia geo\n\togr2ogr -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\n\t\n\t\n# LUXEMBOURG\n\t\nlux_adm0.shp:\n\t# LU Luxembourg lux\n\togr2ogr -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\n\n\n# ICELAND\n# EuroGlobalMap is out of date per adm-1\n\nisl_adm0.shp:\n\t# IS Iceland isl\n\togr2ogr -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\n\n\n# SLOVENIA\n\nsvn_adm0.shp: \n\t# SI Slovenia svn\n\togr2ogr -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\n\n\nne_adm1.shp:\n\togr2ogr -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\n\togr2ogr -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\n# Needs work, and a dissolve\n\nne_adm1_region.shp:\n\togr2ogr -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\n\nussd_adm0.shp:\n\togr2ogr -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\n\n\n\nraw_downloads: \\\n\traw_downloads/tl_2010_us_place10.shp \\\t\n\traw_downloads/tl_2010_us_county10.shp \\\n\traw_downloads/tl_2010_us_state10.shp \\\n\n\nraw_downloads/Place_2010Census_DP1.shp:\n\twget http://www2.census.gov/geo/tiger/TIGER2010DP1/Place_2010Census_DP1.zip -O raw_downloads/Place_2010Census_DP1.zip\n\tunzip -o raw_downloads/Place_2010Census_DP1.zip -d raw_downloads/\n\trm raw_downloads/Place_2010Census_DP1.zip\n\nraw_downloads/tl_2010_us_county10.shp:\n\twget ftp://ftp2.census.gov/geo/tiger/TIGER2010/COUNTY/2010/tl_2010_us_county10.zip -O raw_downloads/tl_2010_us_county10.zip\n\tunzip -o raw_downloads/tl_2010_us_county10.zip -d raw_downloads/\n\trm raw_downloads/tl_2010_us_county10.zip\n\twget http://www2.census.gov/geo/tiger/TIGER2010DP1/County_2010Census_DP1.zip -O raw_downloads/County_2010Census_DP1.zip\n\tunzip -o raw_downloads/County_2010Census_DP1.zip -d raw_downloads/\n\trm raw_downloads/County_2010Census_DP1.zip\n\nraw_downloads/tl_2010_us_state10.shp:\n\twget ftp://ftp2.census.gov/geo/tiger/TIGER2010/STATE/2010/tl_2010_us_state10.zip -O raw_downloads/tl_2010_us_state10.zip\n\tunzip -o raw_downloads/tl_2010_us_state10.zip -d raw_downloads/\n\trm raw_downloads/tl_2010_us_state10.zip\n\twget http://www2.census.gov/geo/tiger/TIGER2010DP1/State_2010Census_DP1.zip -O raw_downloads/State_2010Census_DP1.zip\n\tunzip -o raw_downloads/State_2010Census_DP1.zip -d raw_downloads/\n\trm raw_downloads/State_2010Census_DP1.zip\n\nraw_downloads/CouSub_2010Census_DP1.shp:\n\twget http://www2.census.gov/geo/tiger/TIGER2010DP1/CouSub_2010Census_DP1.zip -O raw_downloads/CouSub_2010Census_DP1.zip\n\tunzip -o raw_downloads/CouSub_2010Census_DP1.zip -d raw_downloads/\n\trm raw_downloads/CouSub_2010Census_DP1.zip\n\t\nraw_downloads/usa_localadmin_all.shp:\n\t# Connecticut\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_09_060_00_500k.zip -O raw_downloads/gz_2010_06_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_06_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_06_060_00_500k.zip\n\t# Illinois\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_17_060_00_500k.zip -O raw_downloads/gz_2010_17_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_17_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_17_060_00_500k.zip\n\t# Indiana\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_18_060_00_500k.zip -O raw_downloads/gz_2010_18_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_18_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_18_060_00_500k.zip\n\t# Kansas\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_20_060_00_500k.zip -O raw_downloads/gz_2010_20_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_20_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_20_060_00_500k.zip\n\t# Maine\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_23_060_00_500k.zip -O raw_downloads/gz_2010_23_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_23_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_23_060_00_500k.zip\n\t# Mass\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_25_060_00_500k.zip -O raw_downloads/gz_2010_25_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_25_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_25_060_00_500k.zip\n\t# Michigan\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_26_060_00_500k.zip -O raw_downloads/gz_2010_26_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_26_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_26_060_00_500k.zip\n\t# Minnesota\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_27_060_00_500k.zip -O raw_downloads/gz_2010_27_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_27_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_27_060_00_500k.zip\n\t# Missouri\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_29_060_00_500k.zip -O raw_downloads/gz_2010_29_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_29_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_29_060_00_500k.zip\n\t# Nebraska\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_31_060_00_500k.zip -O raw_downloads/gz_2010_31_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_31_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_31_060_00_500k.zip\n\t# New Hampshire\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_33_060_00_500k.zip -O raw_downloads/gz_2010_33_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_33_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_33_060_00_500k.zip\n\t# New Jersey\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_34_060_00_500k.zip -O raw_downloads/gz_2010_34_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_34_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_34_060_00_500k.zip\n\t# New York\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_36_060_00_500k.zip -O raw_downloads/gz_2010_36_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_36_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_36_060_00_500k.zip\n\t# North Dakota\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_38_060_00_500k.zip -O raw_downloads/gz_2010_38_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_38_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_38_060_00_500k.zip\n\t# Ohio\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_39_060_00_500k.zip -O raw_downloads/gz_2010_39_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_39_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_39_060_00_500k.zip\n\t# Penn\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_42_060_00_500k.zip -O raw_downloads/gz_2010_42_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_42_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_42_060_00_500k.zip\n\t# Rhode Island\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_44_060_00_500k.zip -O raw_downloads/gz_2010_44_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_44_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_44_060_00_500k.zip\n\t# South Dakota\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_46_060_00_500k.zip -O raw_downloads/gz_2010_46_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_46_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_46_060_00_500k.zip\n\t# Vermont\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_50_060_00_500k.zip -O raw_downloads/gz_2010_50_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_50_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_50_060_00_500k.zip\n\t# Wisconsin\n\twget http://www2.census.gov/geo/tiger/GENZ2010/gz_2010_55_060_00_500k.zip -O raw_downloads/gz_2010_55_060_00_500k.zip\n\tunzip -o raw_downloads/gz_2010_55_060_00_500k.zip -d raw_downloads/\n\trm raw_downloads/gz_2010_55_060_00_500k.zip\n\t#\n\t# Merge the 9 states with no overlap\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_23_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_25_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_33_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_34_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_38_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_42_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_44_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_46_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_no_overlap.shp raw_downloads/gz_2010_55_060_00_500k.shp\n\t# Merge the 11 states with overlap\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_09_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_17_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_18_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_20_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_26_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_27_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_29_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_31_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_36_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_39_060_00_500k.shp\n\togr2ogr -f \"Esri Shapefile\" -append raw_downloads/usa_localadmin_with_overlap.shp raw_downloads/gz_2010_50_060_00_500k.shp\n\t# All together now\n\togr2ogr -f \"ESRI Shapefile\" -overwrite -lco ENCODING=\"UTF-8\" raw_downloads/usa_localadmin_all.shp raw_downloads/usa_localadmin_no_overlap.shp\n\togr2ogr -f \"ESRI Shapefile\" -append raw_downloads/usa_localadmin_all.shp raw_downloads/usa_localadmin_with_overlap.shp\n\n# LOCALITIES\n\nall_localities_quattroshapes: \\\n\tbra_localities_qs.shp \\\n\tidn_localities_qs.shp \\\n\tmys_localities_qs.shp \\\n\ttha_localities_qs.shp \\\n\tkor_localities_qs.shp \\\n\ttwn_localities_qs.shp \\\n\tchn_localities_qs.shp \\\n\tind_localities_qs.shp \\\n\tjpn_localities_qs.shp \\\n\tsgp_localities_qs.shp \\\n\ttur_localities_qs.shp \\\n\tgbr_localities_qs.shp \\\n\tchl_localities_qs.shp \\\n\trus_localities_qs.shp \\\n\tmex_localities_qs.shp\n\nbra_localities_qs.shp:\n\togr2ogr -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\n\nidn_localities_qs.shp:\n\togr2ogr -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\n\nmys_localities_qs.shp:\n\togr2ogr -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\n\ntha_localities_qs.shp:\n\togr2ogr -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\n\nkor_localities_qs.shp:\n\togr2ogr -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\n\ntwn_localities_qs.shp:\n\togr2ogr -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\n\nchn_localities_qs.shp:\n\togr2ogr -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\n\nind_localities_qs.shp:\n\togr2ogr -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\n\naus_localities_qs.shp:\n\togr2ogr -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\n\njpn_localities_qs.shp:\n\togr2ogr -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\n\nsgp_localities_qs.shp:\n\togr2ogr -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\n\ngbr_localities_qs.shp:\n\togr2ogr -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\n\ntur_localities_qs.shp:\n\togr2ogr -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\n\nchl_localities_qs.shp:\n\togr2ogr -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\n\nrus_localities_qs.shp:\n\togr2ogr -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\n\nmex_localities_qs.shp:\n\togr2ogr -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\n\n\n\nclean:\n\tmkdir -p raw_downloads\n\trm -f all_localities.*\n\trm -f all_localadmin.*\n\trm -f all_adm0.*\n\trm -f all_adm1_region.*\n\trm -f all_adm1.*\n\trm -f all_adm2_region.*\n\trm -f all_adm2.*\n\t\ndeep-clean:\n\trm -f *.shp *.shx *.dbf *.prj *.cpg"
  },
  {
    "path": "open_administrative_data/dissolvers/Makefile",
    "content": "all: dissolve\n\ttouch all\n\ndissolve: \\\n\tdissolve-adm0 \\\n\tdissolve-adm1-region \\\n\tdissolve-adm1 \\\n\tdissolve-adm2-region \\\n\tdissolve-adm2 \\\n\tdissovle-localadmin \\\n\tdissolve-localities\n\t\n\ttouch dissolve\n\t\t\ndissolve-adm0: \\\n\t../aut_adm0.shp \\\n\t../bra_adm0.shp \\\n\t../bel_adm0.shp \\\n\t../cyp_adm0.shp \\\n\t../deu_adm0.shp \\\n\t../fin_adm0.shp \\\n\t../fra_adm0.shp \\\n\t../fro_adm0.shp \\\n\t../hun_adm0.shp \\\n\t../ltu_adm0.shp \\\n\t../pol_adm0.shp \\\n\t../srb_adm0.shp \\\n\t../svk_adm0.shp \\\n\t../ukr_adm0.shp \\\n\t../ltu_adm0.shp \\\n\t../bgr_adm0.shp \\\n\t../cze_adm0.shp \\\n\t../dnk_adm0.shp \\\n\t../esp_adm0.shp \\\n\t../est_adm0.shp \\\n\t../fin_adm0.shp \\\n\t../gbr_adm0.shp \\\n\t../grc_adm0.shp \\\n\t../grl_adm0.shp \\\n\t../hrv_adm0.shp \\\n\t../irl_adm0.shp \\\n\t../isl_adm0.shp \\\n\t../ita_adm0.shp \\\n\t../kos_adm0.shp \\\n\t../lva_adm0.shp \\\n\t../mlt_adm0.shp \\\n\t../mda_adm0.shp \\\n\t../nld_adm0.shp \\\n\t../nor_adm0.shp \\\n\t../prt_adm0.shp \\\n\t../rou_adm0.shp \\\n\t../swe_adm0.shp \\\n\t../usa_adm0.shp \\\n\t../aus_adm0.shp \\\n\t../nzl_adm0.shp \\\n\t../che_adm0.shp \\\n\t../lie_adm0.shp \\\n\t../chl_adm0.shp \\\n\t../pse_adm0.shp \\\n\t../mex_adm0.shp \\\n\t../zaf_adm0.shp \\\n\t../ussd_adm0.shp\n\t\n\ttouch dissolve-adm0\n\t\n\t#../idn_adm0.shp \\\n\t#../rus_adm0.shp \\\n\t\ndissolve-adm1-region: \\\n\t../gbr_adm1_region.shp \\\n\t../bel_adm1_region.shp \\\n\t../fin_adm1_region.shp \\\n\t../fra_adm1_region.shp \\\n\t../hun_adm1_region.shp \\\n\t../srb_adm1_region.shp\n\t\n\ttouch dissolve-adm1-region\n\t\ndissolve-adm1: \\\n\t../aut_adm1.shp \\\n\t../bel_adm1.shp \\\n\t../bra_adm1.shp \\\n\t../can_adm1.shp \\\n\t../dnk_adm1.shp \\\n\t../grl_adm1.shp \\\n\t../gbr_adm1.shp \\\n\t../deu_adm1.shp \\\n\t../nzl_adm1.shp \\\n\t../hrv_adm1.shp \\\n\t../gbr_adm1.shp \\\n\t../fra_adm1.shp \\\n\t../grc_adm1.shp \\\n\t../rus_adm1.shp \\\n\t../srb_adm1.shp \\\n\t../svk_adm1.shp \\\n\t../pol_adm1.shp \\\n\t../ukr_adm1.shp \\\n\t../ltu_adm1.shp \\\n\t../aus_adm1.shp \\\n\t../che_adm1.shp \\\n\t../lie_adm1.shp \\\n\t../chl_adm1.shp \\\n\t../zaf_adm1.shp\n\n\ttouch dissolve-adm1\n\t\ndissolve-adm2-region: \\\n\t../deu_adm2_region.shp\n\t\n\ttouch dissolve-adm2-region\n\ndissolve-adm2: \\\n\t../aus_adm2.shp \\\n\t../che_adm2.shp \\\n\t../chl_adm2.shp \\\n\t../idn_adm2.shp \\\n\t../zaf_adm2.shp\n\t\n\ttouch dissolve-adm2\n\ndissovle-localadmin: \\\n\t../gbr_localadmin.shp\n\t\n\ttouch dissovle-localadmin\n\ndissolve-localities: \\\n\t../bra_localities_qs.shp \\\n\t../idn_localities.shp \\\n\t../mys_localities.shp \\\n\t../tha_localities.shp \\\n\t../kor_localities.shp \\\n\t../twn_localities.shp \\\n\t../chn_localities.shp \\\n\t../ind_localities.shp \\\n\t../aus_localities.shp \\\n\t../jpn_localities.shp \\\n\t../sgp_localities.shp \\\n\t../chl_localities_qs.shp \\\n\t../rus_localities_qs.shp\n\n\t#../mex_localities_qs.shp\t\n\t#../gbr_localities_qs.shp \\\n\t#../tur_localities_qs.shp \\\n \ttouch dissolve-localities\n\n\n../gbr_localadmin.shp:\n\tshputils/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\n\n\n\n../bra_localities_qs.shp:\n\tshputils/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\n\n../idn_localities.shp:\n\tshputils/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\n\n../mys_localities.shp:\n\tshputils/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\n\n../tha_localities.shp:\n\tshputils/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\n\n../kor_localities.shp:\n\tshputils/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\n\n../twn_localities.shp:\n\tshputils/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\n\n../chn_localities.shp:\n\tshputils/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\n\n../ind_localities.shp:\n\tshputils/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\n\n../aus_localities.shp:\n\tshputils/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\n\n../jpn_localities.shp:\n\tshputils/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\n\n../sgp_localities.shp:\n\tshputils/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\n\n../gbr_localities_qs.shp:\n\tshputils/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\n\n../tur_localities_qs.shp:\n\tshputils/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\n\n../chl_localities_qs.shp:\n\tshputils/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\n\n../rus_localities_qs.shp:\n\tshputils/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\n\n../mex_localities_qs.shp:\n\tshputils/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\n\n\n\n\n\n../usa_adm0.shp:\n\tshputils/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\n\n../bra_adm0.shp:\n\t#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\n\tshputils/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\n\n../bra_adm1.shp:\n\tshputils/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\n\n../aus_adm0.shp:\n\tshputils/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\n\n../aus_adm1.shp:\n\tshputils/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\n\n../aus_adm2.shp:\n\tshputils/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\n\n../fro_adm0.shp:\n\tshputils/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\n\n../rus_adm0.shp:\n\tshputils/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\n\n../mex_adm0.shp:\n\tshputils/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\n\n../nzl_adm0.shp:\n\tshputils/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\n\n../nzl_adm1.shp:\n\tshputils/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\n\n../che_adm0.shp:\n\tshputils/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\n\n../che_adm1.shp:\n\tshputils/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\n\n../che_adm2.shp:\n\tshputils/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\n\n../lie_adm0.shp:\n\tshputils/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\n\n../lie_adm1.shp:\n\tshputils/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\n\n../idn_adm0.shp:\n\tshputils/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\n\t#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\n\n../idn_adm1.shp:\n\tshputils/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\n\n../idn_adm2.shp:\n\tshputils/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\n\n../chl_adm0.shp:\n\tshputils/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\n\n../chl_adm1.shp:\n\tshputils/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\n\n../pse_adm0.shp:\n\tshputils/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\n\n../zaf_adm0.shp:\n\tshputils/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\n\n../zaf_adm1.shp:\n\tshputils/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\n\n\n../bel_adm1_region.shp:\n\tshputils/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\n\n../fin_adm1_region.shp:\n\tshputils/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\n\n../fra_adm1_region.shp:\n\tshputils/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\n\n../gbr_adm1_region.shp:\n\tshputils/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\n\n../hun_adm1_region.shp:\n\tshputils/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\n\n../srb_adm1_region.shp:\n\tshputils/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\n\n\n../aut_adm1.shp:\n\tshputils/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\n\n../bel_adm1.shp:\n\t#include the regions\n\tshputils/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\n\n../can_adm1.shp:\n\tshputils/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\n\n../dnk_adm1.shp:\n\tshputils/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\n\n../grl_adm1.shp:\n\tshputils/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\n\n../deu_adm1.shp:\n\tshputils/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\n\n../gbr_adm1.shp:\n\tshputils/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\n\n../fra_adm1.shp:\n\tshputils/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\n\n../grc_adm1.shp:\n\tshputils/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\n\n../srb_adm1.shp:\n\t#include the regions\n\tshputils/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\n\n../svk_adm1.shp:\n\tshputils/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\n\n../pol_adm1.shp:\n\tshputils/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\n\n../rus_adm1.shp:\n\tshputils/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\n\n../ukr_adm1.shp:\n\tshputils/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\n\n../ltu_adm1.shp:\n\tshputils/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\n\n../hrv_adm1.shp:\n\tshputils/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\n\n\n\t\n../aut_adm0.shp:\n\tshputils/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\n\t\n../bel_adm0.shp:\n\tshputils/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\n\n../cyp_adm0.shp:\n\tshputils/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\n\n../deu_adm0.shp:\n\tshputils/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\n\n../fin_adm0.shp:\n\tshputils/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\n\n../fra_adm0.shp:\n\tshputils/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\n\n../hun_adm0.shp:\n\tshputils/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\n\n../ltu_adm0.shp:\n\tshputils/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\n\n../pol_adm0.shp:\n\tshputils/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\n\n../srb_adm0.shp:\n\tshputils/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\n\n../svk_adm0.shp:\n\tshputils/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\n\n../ukr_adm0.shp:\n\tshputils/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\n\n\n../bgr_adm0.shp:\n\tshputils/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\n\n../cze_adm0.shp:\n\tshputils/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\n\n../dnk_adm0.shp:\n\tshputils/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\n\n../esp_adm0.shp:\n\tshputils/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\n\n../est_adm0.shp:\n\tshputils/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\n\n../gbr_adm0.shp:\n\tshputils/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\n\n../grc_adm0.shp:\n\tshputils/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\n\n../grl_adm0.shp:\n\tshputils/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\n\n../hrv_adm0.shp:\n\tshputils/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\n\n../irl_adm0.shp:\n\tshputils/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\n\n../isl_adm0.shp:\n\tshputils/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\n\n../ita_adm0.shp:\n\tshputils/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\n\n../kos_adm0.shp:\n\tshputils/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\n\n../lva_adm0.shp:\n\tshputils/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\n\n../mda_adm0.shp:\n\tshputils/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\n\n../mlt_adm0.shp:\n\tshputils/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\n\n../nld_adm0.shp:\n\tshputils/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\n\n../nor_adm0.shp:\n\tshputils/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\n\n../prt_adm0.shp:\n\tshputils/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\n\n../rou_adm0.shp:\n\tshputils/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\n\t\n../swe_adm0.shp:\n\tshputils/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\n\t\n\n\n../deu_adm2_region.shp:\n\tshputils/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\n\t\n\n\n../zaf_adm2.shp:\n\tshputils/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\n\t\n../chl_adm2.shp:\n\tshputils/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\n\n\n\n../ussd_adm0.shp:\n\tshputils/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\n"
  },
  {
    "path": "open_administrative_data/dissolvers/README.md",
    "content": "Requires [shputils](https://github.com/blackmad/shputils)."
  },
  {
    "path": "open_administrative_data/quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.cpg",
    "content": "UTF-8"
  },
  {
    "path": "open_administrative_data/quattroshapes/quattroshapes_localities_priority_and_extras_master_post_diss_attr2.prj",
    "content": "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]]"
  },
  {
    "path": "open_administrative_data/templates/template_adm0.cpg",
    "content": "UTF-8\n"
  },
  {
    "path": "open_administrative_data/templates/template_adm0.prj",
    "content": "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"
  },
  {
    "path": "open_administrative_data/templates/template_adm1.cpg",
    "content": "UTF-8\n"
  },
  {
    "path": "open_administrative_data/templates/template_adm1.prj",
    "content": "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"
  },
  {
    "path": "open_administrative_data/templates/template_adm1_region.cpg",
    "content": "UTF-8\n"
  },
  {
    "path": "open_administrative_data/templates/template_adm1_region.prj",
    "content": "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"
  },
  {
    "path": "open_administrative_data/templates/template_adm2.cpg",
    "content": "UTF-8\n"
  },
  {
    "path": "open_administrative_data/templates/template_adm2.prj",
    "content": "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"
  },
  {
    "path": "open_administrative_data/templates/template_adm2_region.cpg",
    "content": "UTF-8\n"
  },
  {
    "path": "open_administrative_data/templates/template_adm2_region.prj",
    "content": "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"
  },
  {
    "path": "open_administrative_data/templates/template_localadmin.cpg",
    "content": "UTF-8\n"
  },
  {
    "path": "open_administrative_data/templates/template_localadmin.prj",
    "content": "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"
  },
  {
    "path": "open_administrative_data/templates/template_localities.cpg",
    "content": "UTF-8\n"
  },
  {
    "path": "open_administrative_data/templates/template_localities.prj",
    "content": "GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]]"
  },
  {
    "path": "quattroshapes/.gitignore",
    "content": "tiles\ncsv\nmbtiles\nshp\n*.pyc\n"
  },
  {
    "path": "quattroshapes/README.txt",
    "content": "SOURCE\n\nScraped ~10 gb of Flickr geocoded photos as CSVs using the scripts in betashapes. Augmented with foursquare checkin data.\n\nCLEAN-UP\n\nFor each admin-0, admin-1, admin-2, locality, and neighborhood, we need to add in that per CSV on DB import.\n\nIMPORTING TO DATABAS\nLoading CSV into PostGIS\n\nDB setup:\n\ncreateuser foursquare\n#Shall the new role be a superuser? (y/n) y\n\n#Make sure we're on the SSD drive\n#http://www.postgresql.org/docs/8.1/static/sql-createtablespace.html\n#Ensure the `postgres` folder is owned by the `postgres` OS user.\n\nCREATE TABLESPACE geo_ssd LOCATION '/Volumes/Geo/postgres';\n\n#http://postgis.refractions.net/documentation/manual-2.0/postgis_installation.html#create_new_db_extensions\n\ncreatedb -U postgres -O foursquare --tablespace geo_ssd foursquare\npsql -d foursquare -c \"CREATE EXTENSION postgis;\"\n\n\n#createdb -U postgres -O foursquare -T template_postgis foursquare --tablespace osm\n#note --tablespace osm is on a separate SSD drive than the main tablespace.\n#make sure the 2 spatial tables are owned by foursquare user.\n\n\nTable import:\n\nOptional: Rename flickr_adm0_data to flickr_adm0_data_old\n\n    ALTER TABLE flickr_adm0_data RENAME TO flickr_adm0_data_old;\n\nNow we will create the new table flickr_data.\n\n# http://www.postgresql.org/docs/8.2/static/sql-copy.html\n# http://www.postgresql.org/docs/9.2/interactive/datatype-numeric.html\n# implied header on each file:\n# photo_id\twoe_id\tlongitude\tlatitude\n# 6981212365\t2514294\t-122.369155\t48.166085\n\n\t#get into postgres\n\tpsql -U foursquare\n    DROP TABLE flickr_adm0_data;\n    CREATE TABLE flickr_adm0_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\t\n    \\copy flickr_adm0_data from '/Volumes/Data/Downloads/simplegeo-betashapes-8f7fff0/data_world_admin0/photos.txt'\n    \n\nCreate point geoms:\n\n#create a bonifide geometry column instead of loose geom in two columns\n#http://postgis.org/docs/AddGeometryColumn.html\nSELECT AddGeometryColumn('flickr_adm0_data', 'photo_geom', 4326, 'POINT', 2, true);\n\n#Populate that new field with POINT, in geographic projection\nUPDATE flickr_adm0_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\n\n#Make it fast\n#http://postgis.refractions.net/documentation/manual-1.5/ch04.html#id2670643\nCREATE INDEX photo_index ON flickr_adm0_data USING GIST ( photo_geom );\n\n\nCalculate the heatmap data:\n\npython measure_sizes.py -u foursquare -d foursquare -t flickr_adm2_data -s 0/0/0 -o flickr_adm2_heatmap.csv\n\n\nDraw heatmaps:\n\n./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\n\n./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\n\n#indonesia\n./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\n\n./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\n\n# How many are in that area of interest?\n\nSELECT COUNT(latitude) FROM checkins WHERE photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint((105.876), (-6.058)), ST_MakePoint((106.147), (-5.842))), 4326);\n\n\n# What connections are active with Postgres?\nselect * from pg_stat_activity;\n\n# status report\nselect sum(photo_count_total), count(zoom), max(zoom) from quatroshapes;\n\n# Starting and stopping Postgres\nhttp://www.sd-kyber.com/library/onlineNotes/psqlOSX.html\npg_stop\npg_start\n\n#Table for storing quatroshape voting into:\n\nCREATE 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));\n\nSELECT AddGeometryColumn('quatroshapes', 'the_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('quatroshapes', 'poly_geom', 4326, 'POLYGON', 2, true);\n\nCREATE INDEX quatro_index ON quatroshapes USING GIST ( the_geom );\n\nUPDATE quatroshapes SET the_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE quatroshapes SET poly_geom = ST_SetSRID(ST_MakeEnvelope(x1, y1, x2, y2),4326);\n\npgsql2shp -f shp/humboldt_merged.shp -g poly_geom -u foursquare foursquare quatroshapes\n\nogr2ogr -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\"\n\n\n# utf-8 shps\n# REMEMBER to make a .cpg file with UTF-8 as the sole text contents.\n# the *.cpg file should be named same as the *.shp part.\n\nStached 3214 tiles in 3:21:37.738275 (16.0 tpm)\nStached 3214 tiles in 0:23:14.385987 (139.0 tpm)\n\n./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\n\n####\n\nhttp://developer.yahoo.com/geo/geoplanet/guide/concepts.html\n\nPLACE TYPES\n\nPlaces 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.\nPlace Type Name\tPlace Type Code\tDescription\nContinent\t29\tOne 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).\nCountry\t12\tOne of the countries and dependent territories defined by the ISO 3166-1 standard.\nAdmin\t8\tOne of the primary administrative areas within a country. Place type names associated with this place type include: State, Province, Prefecture, Country, Region, Federal District.\nAdmin2\t9\tOne of the secondary administrative areas within a country. Place type names associated with this place type include: County, Province, Parish, Department, District.\nAdmin3\t10\tOne of the tertiary administrative areas within a country. Place type names associated with this place type include: Commune, Municipality, District, Ward.\nTown\t7\tOne of the major populated places within a country. This category includes incorporated cities and towns, major unincorporated towns and villages.\nSuburb\t22\tOne of the subdivisions within a town. This category includes suburbs, neighborhoods, wards.\nPostal Code\t11\tOne 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).\nSupername\t19\tA 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.\nColloquial\t24\tExamples are New England, French Riviera, 関西地方(Kansai Region), South East England, Pacific States, and Chubu Region.\nTime Zone\t31\tA place that refers to an area defined by the Olson standard. Examples include America/Los Angeles, Asia/Tokyo, Europe/Madrid.\n\n\n\n###\nFor the tables that have raw photo data from Flickr\n###\n\n\nCREATE TABLE flickr_adm0_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\t\nCREATE TABLE flickr_adm1_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\nCREATE TABLE flickr_adm2_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\nCREATE TABLE flickr_locality_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\nCREATE TABLE flickr_neighborhood_data(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\t\n\n\\copy flickr_adm0_data from '/Volumes/Data/quattroshapes/data_world_admin0/photos.txt'\n\\copy flickr_adm1_data from '/Volumes/Data/quattroshapes/data_world_admin1/photos.txt'\n\\copy flickr_adm2_data from '/Volumes/Data/quattroshapes/data_world_admin2/photos.txt'\n\\copy flickr_locality_data from '/Volumes/Data/quattroshapes/data_world_localities/photos.txt'\n\\copy flickr_neighborhood_data from '/Volumes/Data/quattroshapes/data_world_neighborhoods/photos.txt'\n\nSELECT AddGeometryColumn('flickr_adm0_data', 'photo_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('flickr_adm1_data', 'photo_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('flickr_adm2_data', 'photo_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('flickr_locality_data', 'photo_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('flickr_neighborhood_data', 'photo_geom', 4326, 'POINT', 2, true);\n\nUPDATE flickr_adm0_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE flickr_adm1_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE flickr_adm2_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE flickr_locality_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE flickr_neighborhood_data SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\n\nCREATE INDEX photo_adm0_index ON flickr_adm0_data USING GIST ( photo_geom );\nCREATE INDEX photo_adm1_index ON flickr_adm1_data USING GIST ( photo_geom );\nCREATE INDEX photo_adm2_index ON flickr_adm2_data USING GIST ( photo_geom );\nCREATE INDEX photo_locality_index ON flickr_locality_data USING GIST ( photo_geom );\nCREATE INDEX photo_neighborhood_index ON flickr_neighborhood_data USING GIST ( photo_geom );\n\nCREATE INDEX woe_adm0_index ON flickr_adm0_data ( woe_id );\nCREATE INDEX woe_adm1_index ON flickr_adm1_data ( woe_id );\nCREATE INDEX woe_adm2_index ON flickr_adm2_data ( woe_id );\nCREATE INDEX woe_locality_index ON flickr_locality_data ( woe_id );\nCREATE INDEX woe_neighborhood_index ON flickr_neighborhood_data ( woe_id );\n\n\n###\nFor the tables that don't have outliers\n###\n\nCREATE TABLE flickr_adm0_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\t\nCREATE TABLE flickr_adm1_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\nCREATE TABLE flickr_adm2_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\nCREATE TABLE flickr_locality_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\nCREATE TABLE flickr_neighborhood_data_clean(photo_id bigint, woe_id bigint, longitude double precision, latitude double precision);\t\n\nSELECT AddGeometryColumn('flickr_adm0_data_clean', 'photo_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('flickr_adm1_data_clean', 'photo_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('flickr_adm2_data_clean', 'photo_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('flickr_locality_data_clean', 'photo_geom', 4326, 'POINT', 2, true);\nSELECT AddGeometryColumn('flickr_neighborhood_data_clean', 'photo_geom', 4326, 'POINT', 2, true);\n\nUPDATE flickr_adm0_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE flickr_adm1_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE flickr_adm2_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE flickr_locality_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\nUPDATE flickr_neighborhood_data_clean SET photo_geom = ST_SetSRID(ST_MakePoint(longitude, latitude),4326);\n\n\nCREATE INDEX photo_adm0_clean_index ON flickr_adm0_data_clean USING GIST ( photo_geom );\nCREATE INDEX photo_adm1_clean_index ON flickr_adm1_data_clean USING GIST ( photo_geom );\nCREATE INDEX photo_adm2_clean_index ON flickr_adm2_data_clean USING GIST ( photo_geom );\nCREATE INDEX photo_locality_clean_index ON flickr_locality_data_clean USING GIST ( photo_geom );\nCREATE INDEX photo_neighborhood_clean_index ON flickr_neighborhood_data_clean USING GIST ( photo_geom );\n\nCREATE INDEX woe_adm0_clean_index ON flickr_adm0_data_clean ( woe_id );\nCREATE INDEX woe_adm1_clean_index ON flickr_adm1_data_clean ( woe_id );\nCREATE INDEX woe_adm2_clean_index ON flickr_adm2_data_clean ( woe_id );\nCREATE INDEX woe_locality_clean_index ON flickr_locality_data_clean ( woe_id );\nCREATE INDEX woe_neighborhood_clean_index ON flickr_neighborhood_data_clean ( woe_id );\n\nCREATE INDEX place_woe_id_index ON geoplanet_adjacencies ( place_woe_id );\nCREATE INDEX placetype_index ON geoplanet_places ( placetype );\n"
  },
  {
    "path": "quattroshapes/__init__.py",
    "content": ""
  },
  {
    "path": "quattroshapes/add_admins.sql",
    "content": "ALTER TABLE geoplanet_places ADD COLUMN woe_locality bigint; \nALTER TABLE geoplanet_places ADD COLUMN woe_lau bigint; \nALTER TABLE geoplanet_places ADD COLUMN woe_adm2 bigint; \nALTER TABLE geoplanet_places ADD COLUMN woe_adm1 bigint; \nALTER TABLE geoplanet_places ADD COLUMN woe_adm0 bigint; \n\n\nALTER TABLE geoplanet_places ADD COLUMN name_locality character varying (255);\nALTER TABLE geoplanet_places ADD COLUMN name_lau character varying (255);\nALTER TABLE geoplanet_places ADD COLUMN name_adm2 character varying (255);\nALTER TABLE geoplanet_places ADD COLUMN name_adm1 character varying (255);\nALTER TABLE geoplanet_places ADD COLUMN name_adm0 character varying (255);\n\n\n\n-- woe_id             | integer              | not null\n-- iso                | character varying(2) | not null\n-- state_woe_id       | integer              | not null\n-- county_woe_id      | integer              | not null\n-- local_admin_woe_id | integer              | not null\n-- country_woe_id     | integer              | not null\n-- continent_woe_id   | integer              | not null\n\n\n-- This will work for localities on up, but not for Suburbs\n\nUPDATE \n\tgeoplanet_places\nSET \n\twoe_locality = geoplanet_admins.woe_id,\n\twoe_lau = geoplanet_admins.local_admin_woe_id,\n\twoe_adm2 = geoplanet_admins.county_woe_id,\n\twoe_adm1 = geoplanet_admins.state_woe_id,\n\twoe_adm0 = geoplanet_admins.country_woe_id\nFROM \n\tgeoplanet_admins\nWHERE \n\tgeoplanet_admins.woe_id = geoplanet_places.woe_id;\n\n\n--Works except for NYC\n\nUPDATE \n\tgeoplanet_places\nSET \n\twoe_locality = parent_id\nWHERE \n\tplacetype = 'Suburb';\n\t\n\t\nUPDATE \n\tgeoplanet_places\nSET \n\twoe_locality = woe_id\nWHERE \n\tplacetype = 'Town';\n\nUPDATE \n\tgeoplanet_places\nSET \n\twoe_lau = woe_id\nWHERE \n\tplacetype = 'LocalAdmin';\n\t\nUPDATE \n\tgeoplanet_places\nSET \n\twoe_adm2 = woe_id\nWHERE \n\tplacetype = 'County';\n\t\nUPDATE \n\tgeoplanet_places\nSET \n\twoe_adm1 = woe_id\nWHERE \n\tplacetype = 'State';\n\nUPDATE \n\tgeoplanet_places\nSET \n\twoe_adm0 = woe_id\nWHERE \n\tplacetype = 'Country';\n\n\n\n-- ALTER TABLE geoplanet_places ADD COLUMN woe_locality bigint; \n-- ALTER TABLE geoplanet_places ADD COLUMN woe_lau bigint; \n-- ALTER TABLE geoplanet_places ADD COLUMN woe_adm2 bigint; \n-- ALTER TABLE geoplanet_places ADD COLUMN woe_adm1 bigint; \n-- ALTER TABLE geoplanet_places ADD COLUMN woe_adm0 bigint; \n\n\n-- ALTER TABLE geoplanet_places ADD COLUMN name_locality character varying (255);\n-- ALTER TABLE geoplanet_places ADD COLUMN name_lau character varying (255);\n-- ALTER TABLE geoplanet_places ADD COLUMN name_adm2 character varying (255);\n-- ALTER TABLE geoplanet_places ADD COLUMN name_adm1 character varying (255);\n-- ALTER TABLE geoplanet_places ADD COLUMN name_adm0 character varying (255);\n\n\n\nWITH placename AS (\n\tSELECT \n\t\tname, woe_id\n\tFROM \n\t\tgeoplanet_places\n)\nUPDATE \n\tgeoplanet_places\nSET \n\tname_locality = placename.name\nFROM \t\n\tplacename\nWHERE \n\tgeoplanet_places.woe_locality = placename.woe_id;\t\n\n\n\t\nWITH placename AS (\n\tSELECT \n\t\tname, woe_id\n\tFROM \n\t\tgeoplanet_places\n)\nUPDATE \n\tgeoplanet_places\nSET \n\tname_lau = placename.name\nFROM \t\n\tplacename\nWHERE \n\tgeoplanet_places.woe_lau = placename.woe_id;\t\n\t\n\n--http://stackoverflow.com/questions/9643859/postgres-missing-from-clause-entry-error-on-query-with-with-clause\n\nWITH placename AS (\n\tSELECT \n\t\tname, woe_id\n\tFROM \n\t\tgeoplanet_places\n)\nUPDATE \n\tgeoplanet_places\nSET \n\tname_adm2 = placename.name\nFROM \t\n\tplacename\nWHERE \n\tgeoplanet_places.woe_adm2 = placename.woe_id;\n\n\n\nWITH placename AS (\n\tSELECT \n\t\tname, woe_id\n\tFROM \n\t\tgeoplanet_places\n)\nUPDATE \n\tgeoplanet_places\nSET \n\tname_adm1 = placename.name\nFROM \t\n\tplacename\nWHERE \n\tgeoplanet_places.woe_adm1 = placename.woe_id;\n\t\n\n\t\n\nWITH placename AS (\n\tSELECT \n\t\tname, woe_id\n\tFROM \n\t\tgeoplanet_places\n)\nUPDATE \n\tgeoplanet_places\nSET \n\tname_adm0 = placename.name\nFROM \t\n\tplacename\nWHERE \n\tgeoplanet_places.woe_adm0 = placename.woe_id;"
  },
  {
    "path": "quattroshapes/bounds.py",
    "content": "#!/usr/bin/env python\nimport sys\nfrom time import time\nfrom datetime import timedelta\n\nimport math\nimport numpy\n\nfrom psycopg2 import connect\nfrom optparse import OptionParser\n\n# Database details\nuser_name = ''\ndatabase_name = ''\ntable_name = ''\nplace_type = ''\n\n# Assumed the photos table is stored in the same database as geoplanet\ndb_photos = ''\ndb_photos_clean = ''\n\n# Explicate write and read database settings\ndb_write_results = ''\ndb_write_unique_id = ''\ndb_read_unique_id = ''\ndb_read_placetype = ''\n\n# Database connection using psycopg2\ndb = None\ncur = None\n\nchatty = False\n\n\nparser = OptionParser(usage=\"\"\"%prog [options]\n\nFor all places, find their photos and calculate if each photo is range in or an outlier.\"\"\")\n\nparser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare',\n                  help='Name of Postgres user to connect as.')\n\nparser.add_option('-d', '--db_name', dest='db_name', default='foursquare',\n                  help='Name of Postgres database to connect to.')\n\nparser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-p', '--place_type', dest='place_type', default='Locality',\n                  help='Valid WOE placetypes are Country, State, County, LocalAdmin, Town, and Suburb.')\n\n(options, args) = parser.parse_args()\n\n\n\ndef load_photos( unique_id, place_filter={} ):\n    cur.execute(\"\"\"\n        SELECT \n            longitude, latitude\n        FROM \n            \"\"\" + db_photos + \"\"\"\n        WHERE \n            \"\"\" + db_read_unique_id + \"\"\" = \"\"\" + str(unique_id) )\n    \n    photos = cur.fetchall()\n    \n    #print '\\t', len(photos), 'photos'\n    \n    return photos\n\n\ndef get_bbox_for_place( photos ):\n    bbox = [180, 90, -180, -90]\n    \n    for pt in photos:\n        for i in range(4):\n            bbox[i] = min(bbox[i], pt[i%2]) if i<2 else max(bbox[i], pt[i%2])\n\n    median = (numpy.median([pt[0] for pt in photos]),\n              numpy.median([pt[1] for pt in photos]))\n\n    return (bbox, median)\n\ndef main():\n    #Get all the places of that placetype\n    cur.execute(\"\"\"\n        SELECT \n            \"\"\" + db_write_unique_id + \"\"\", name\n        FROM \"\"\" + db_table_name ) #+ \n#        \"\"\" WHERE \"\"\" + db_read_placetype + \"\"\" = '\"\"\" + place_type + \"\"\"'\"\"\")\n    \n    places = cur.fetchall()\n    \n    print 'Evaluating %s places of type %s...' % (len(places), place_type)\n    \n    total_places = len(places)\n    counter = 0\n    for place in places:\n        counter += 1\n        \n        unique_id, name = place\n    \n        if total_places > 10000:\n            if counter % 1000 == 0:\n                print '%s of %s: %s (%s)' % (counter, total_places, name, unique_id)\n        else:\n            print '%s of %s: %s (%s)' % (counter, total_places, name, unique_id)\n    \n        photos = load_photos( unique_id )\n        total_photos = len(photos)\n\n        if total_places > 10000:\n            if counter % 1000 == 0:\n                print '\\t', total_photos, 'photos'\n        else:\n            print '\\t', total_photos, 'photos'\n            \n        if total_photos > 0:\n            bbox, median = get_bbox_for_place( photos )\n            \n            #print '\\t%s: %s %s, %s %s' % (unique_id, bbox[0], bbox[1], bbox[2], bbox[3])\n            #print '\\t%s, %s' % (median[0], median[1])\n            \n            cur.execute(\"\"\"\n                UPDATE \n                    \"\"\" + db_write_results + \"\"\" gp\n                SET \n                    centroid_lon = \"\"\" + str(median[0]) + \"\"\",\n                    centroid_lat = \"\"\" + str(median[1]) + \"\"\",\n                    x_min = \"\"\" + str(bbox[0]) + \"\"\",\n                    y_min = \"\"\" + str(bbox[1]) + \"\"\",\n                    x_max = \"\"\" + str(bbox[2]) + \"\"\",\n                    y_max = \"\"\" + str(bbox[3]) + \"\"\",\n                    photos = \"\"\" + str(len(photos)) + \"\"\"\n                WHERE gp.\"\"\" + db_write_unique_id + \"\"\" = \"\"\" + str(unique_id) )\n\n            db.commit()\n                \n    return total_places\n\nif __name__ == '__main__':\n    app_time_start = time()\n\n    db_user_name = options.db_user_name\n    \n    db_name = options.db_name\n    db_table_name = options.db_table_name\n    place_type = options.place_type\n    \n    # Normalize the WOE placetype and determine which table to read photos from\n    if place_type == 'Country':\n        db_photos = 'flickr_adm0_data'\n        db_write_results = 'geoplanet_places'\n        db_write_unique_id = 'woe_id'\n        db_read_unique_id = 'woe_id'\n        db_read_placetype = 'placetype'\n    elif place_type == 'Admin' or place_type == 'State':\n        place_type = 'State'\n        db_photos = 'flickr_adm1_data'\n        db_write_results = 'geoplanet_places'\n        db_write_unique_id = 'woe_id'\n        db_read_unique_id = 'woe_id'\n        db_read_placetype = 'placetype'\n    elif place_type == 'Admin2' or place_type == 'County':\n        place_type = 'County'\n        db_photos = 'flickr_adm2_data'\n        db_write_results = 'geoplanet_places'\n        db_write_unique_id = 'woe_id'\n        db_read_unique_id = 'woe_id'\n        db_read_placetype = 'placetype'\n    elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU':\n        print 'Admin3 is not supported at this time.'\n        place_type = 'LocalAdmin'\n        db_write_results = 'geoplanet_places'\n        db_write_unique_id = 'woe_id'\n        db_read_unique_id = 'woe_id'\n        db_read_placetype = 'placetype'\n    elif place_type == 'Town' or place_type == 'Locality':\n        place_type = 'Town'\n        db_photos = 'flickr_locality_data'\n        db_write_results = 'geoplanet_places'\n        db_write_unique_id = 'woe_id'\n        db_read_unique_id = 'woe_id'\n        db_read_placetype = 'placetype'\n    elif place_type == 'Suburb' or place_type == 'Neighborhood':\n        place_type = 'Suburb'\n        db_photos = 'flickr_neighborhood_data'\n        db_write_results = 'geoplanet_places'\n        db_write_unique_id = 'woe_id'\n        db_read_unique_id = 'woe_id'\n        db_read_placetype = 'placetype'\n    elif place_type == 'Geoname Locality':\n        place_type = 'PPL'\n        db_photos = 'checkins'\n        db_write_results = 'geoname'\n        db_write_unique_id = 'geonameid'\n        db_read_unique_id = 'geoname_id'\n        db_read_placetype = 'fcode'\n    elif place_type == 'Geoname Population':\n        place_type = 'P'\n        db_photos = 'checkins'\n        db_write_results = 'geoname'\n        db_write_unique_id = 'geonameid'\n        db_read_unique_id = 'geoname_id'\n        db_read_placetype = 'fclass'\n    elif place_type == 'Geoname Admin':\n        place_type = 'A'\n        db_photos = 'checkins'\n        db_write_results = 'geoname'\n        db_write_unique_id = 'geonameid'\n        db_read_unique_id = 'geoname_id'\n        db_read_placetype = 'fclass'\n    \n    print \"Evaluating\", place_type, \"...\"\n    \n    # Connect to the database        \n    db = connect(user=db_user_name, database=db_name)\n    cur = db.cursor()\n    \n    total_places = main()\n        \n    app_time_end = time()\n    time_display = str( timedelta(seconds=(app_time_end - app_time_start)))\n    app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1)\n    if app_time_total_minutes > 1: \n        ppm = round(float(total_places) / app_time_total_minutes)\n    else:\n        ppm = total_places\n    \n    print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm)    "
  },
  {
    "path": "quattroshapes/bounds.txt",
    "content": "DATABASE SETUP\n\nAssumes following columns are present in the target database tables:\n\nTo make the selections:\nwoe_id, name, placetype\n\nTo store the results:\ncentroid_lon, centroid_lat, x_min, y_min, x_max, y_max, photos\n\n\nPYTHON PROCESSING\n\nLet's calculate the bbox and centroid for each place in a category and store results:\n\n./bounds.py -p Country\n./bounds.py -p State\n./bounds.py -p County\n./bounds.py -p Town\n#Caluclated 265210 bounds in 0:09:03.002201 (29144.0 places per minute)\n./bounds.py -p Suburb\n#Caluclated 1169381 bounds in 0:13:13.745297 (88589.0 places per minute)\n\n./bounds_backfill.py -p Country\n./bounds_backfill.py -p State\n./bounds_backfill.py -p County\n./bounds_backfill.py -p Town\n./bounds_backfill.py -p Suburb\n\n./bounds.py -p 'Geoname Admin' -t geoname\nCaluclated 8387704 bounds in 0:54:56.404674 (152781.0 places per minute)\n\n\nDATABASE POSTPROCESSING\n\nALTER TABLE geoplanet_places ADD COLUMN accuracy character varying(30);\nUPDATE geoplanet_places SET accuracy = 'flickr median' WHERE photos > 0;\nSELECT AddGeometryColumn('geoplanet_places', 'the_geom', 4326, 'POINT', 2, true);\nUPDATE geoplanet_places SET the_geom = ST_SetSRID(ST_MakePoint(centroid_lon, centroid_lat),4326);\n\n\n#\"woe_locality\":\"-1\", \"woe_lau\":\"-1\", \"woe_adm2\":\"-1\", \"woe_adm1\":\"-1\", \"woe_adm0\":\"-1\"\n\nALTER TABLE geoplanet_places ADD COLUMN woe_locality bigint; \nALTER TABLE geoplanet_places ADD COLUMN woe_lau bigint; \nALTER TABLE geoplanet_places ADD COLUMN woe_adm2 bigint; \nALTER TABLE geoplanet_places ADD COLUMN woe_adm1 bigint; \nALTER TABLE geoplanet_places ADD COLUMN woe_adm0 bigint; \n\n\nEXPORT TO SHP\n\npgsql2shp -f shp/geoplanet_pts40.shp -g the_geom -u foursquare foursquare geoplanet_places_export\n\npgsql2shp -f shp/geoplanet_admin0.shp -g the_geom -u foursquare foursquare geoplanet_places \"select * from geoplanet_places where placetype = 'Country'\"\necho \"UTF-8\" > shp/geoplanet_admin0.cpg\n\npgsql2shp -f shp/geoplanet_admin1.shp -g the_geom -u foursquare foursquare geoplanet_places \"select * from geoplanet_places where placetype = 'State' And photos > 0\"\necho \"UTF-8\" > shp/geoplanet_admin1.cpg\n\npgsql2shp -f shp/geoplanet_admin2.shp -g the_geom -u foursquare foursquare geoplanet_places \"select * from geoplanet_places where placetype = 'County' And photos > 0\"\necho \"UTF-8\" > shp/geoplanet_admin2.cpg\n\npgsql2shp -f shp/geoplanet_locality.shp -g the_geom -u foursquare foursquare geoplanet_places \"select * from geoplanet_places where placetype = 'Town' And photos > 0\"\necho \"UTF-8\" > shp/geoplanet_locality.cpg\n\npgsql2shp -f shp/geoplanet_neighborhood.shp -g the_geom -u foursquare foursquare geoplanet_places \"select * from geoplanet_places where placetype = 'Suburb' And photos > 0\"\necho \"UTF-8\" > shp/geoplanet_neighborhood.cpg\n\n\n\n\nALTER TABLE geoname ADD COLUMN centroid_lon float; \nALTER TABLE geoname ADD COLUMN centroid_lat float; \nALTER TABLE geoname ADD COLUMN x_min float; \nALTER TABLE geoname ADD COLUMN y_min float; \nALTER TABLE geoname ADD COLUMN x_max float; \nALTER TABLE geoname ADD COLUMN y_max float; \nALTER TABLE geoname ADD COLUMN photos bigint; "
  },
  {
    "path": "quattroshapes/bounds_backfill.py",
    "content": "#!/usr/bin/env python\nimport sys\nfrom time import time\nfrom datetime import timedelta\n\nimport math\nimport numpy\n\nfrom psycopg2 import connect\nfrom optparse import OptionParser\n\n# Database details\nuser_name = ''\ndatabase_name = ''\ntable_name = ''\nplace_type = ''\n# Assumed the photos table is stored in the same database as geoplanet\ndb_photos = ''\ndb_photos_clean = ''\n\n# Database connection using psycopg2\ndb = None\ncur = None\n\nchatty = False\n\n\nparser = OptionParser(usage=\"\"\"%prog [options]\n\nFor all places, find their photos and calculate if each photo is range in or an outlier.\"\"\")\n\nparser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare',\n                  help='Name of Postgres user to connect as.')\n\nparser.add_option('-d', '--db_name', dest='db_name', default='foursquare',\n                  help='Name of Postgres database to connect to.')\n\nparser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-p', '--place_type', dest='place_type', default='Locality',\n                  help='Valid WOE placetypes are Country, State, County, LocalAdmin, Town, and Suburb.')\n\n(options, args) = parser.parse_args()\n\n\n\ndef load_photos( woe_id, place_filter={} ):\n    if place_type == 'Country':\n        cur.execute(\"\"\"\n            SELECT \n                longitude, latitude, photo_id\n            FROM \"\"\" + db_photos + \"\"\"\n            WHERE woe_adm0 = %s\n            \"\"\", (woe_id,))\n    elif place_type == 'State':\n        cur.execute(\"\"\"\n            SELECT \n                longitude, latitude, photo_id\n            FROM \"\"\" + db_photos + \"\"\"\n            WHERE woe_adm1 = %s\n            \"\"\", (woe_id,))\n    elif place_type == 'County':\n        cur.execute(\"\"\"\n            SELECT \n                longitude, latitude, photo_id\n            FROM \"\"\" + db_photos + \"\"\"\n            WHERE woe_adm2 = %s\n            \"\"\", (woe_id,))\n    elif place_type == 'LocalAdmin':\n        cur.execute(\"\"\"\n            SELECT \n                longitude, latitude, photo_id\n            FROM \"\"\" + db_photos + \"\"\"\n            WHERE woe_lau = %s\n            \"\"\", (woe_id,))\n    elif place_type == 'Town':\n        cur.execute(\"\"\"\n            SELECT \n                longitude, latitude, photo_id\n            FROM \"\"\" + db_photos + \"\"\"\n            WHERE woe_locality = %s\n            \"\"\", (woe_id,))\n    elif place_type == 'Suburb':\n        cur.execute(\"\"\"\n            SELECT \n                longitude, latitude, photo_id\n            FROM \"\"\" + db_photos + \"\"\"\n            WHERE woe_locality = %s\n            \"\"\", (woe_id,))\n    \n    photos = cur.fetchall()\n    \n    #print '\\t', len(photos), 'photos'\n    \n    return photos\n    \ndef load_bbox_fallback( woe_id, place_filter={} ):\n    \n    bbox = [1, 1, -1, -1]\n    median = (0,0)\n    accuracy = 'flickr null island'\n    \n    nesting_levels = 10\n    level = 0 \n    \n    while level < nesting_levels:\n        level += 1\n        \n        cur.execute(\"\"\"\n            SELECT \n                placetype, parent_id\n            FROM \n                \"\"\" + db_table_name + \"\"\"\n            WHERE \n                woe_id = (%s);\"\"\", (woe_id,))\n            \n        try:\n            placetype, parent_id = cur.fetchone()\n        except:\n            return (bbox, median, accuracy)\n        \n        #print placetype, parent_id\n        \n        cur.execute(\"\"\"\n            SELECT \n                x_min, y_min, x_max, y_max, centroid_lon, centroid_lat\n            FROM \"\"\" + db_table_name + \n            \"\"\" WHERE woe_id = (%s)\"\"\", (parent_id,))\n\n        try:\n            x_min, y_min, x_max, y_max, centroid_lon, centroid_lat = cur.fetchone()\n            #don't return junk\n            if x_min is None or centroid_lon is None:\n                return (bbox, median, accuracy)\n            #print x_min, y_min, x_max, y_max, centroid_lon, centroid_lat\n            break\n        except:\n            return (bbox, median, accuracy)\n            \n        #set us up for the next loop\n        woe_id = parent_id\n\n    #print '\\t', len(photos), 'photos'\n    \n    bbox = [x_max, y_max, x_min, y_min]\n    median = (centroid_lon, centroid_lat)\n\n    try:\n        cur.execute(\"\"\"\n            SELECT \n                placetype\n            FROM \n                \"\"\" + db_table_name + \"\"\"\n            WHERE \n                woe_id = (%s);\"\"\", (parent_id,))\n        \n        accuracy_place_type = cur.fetchone()\n    except:\n        return (bbox, median, accuracy)\n    \n    if accuracy_place_type[0] == 'Town' or accuracy_place_type[0] == 'Suburb':\n        accuracy = 'flickr aggreate ' + accuracy_place_type[0]\n    else:\n        accuracy = 'flickr parent ' + accuracy_place_type[0]\n    \n    return (bbox, median, accuracy)\n\ndef get_bbox_for_place( photos ):\n    bbox = [180, 90, -180, -90]\n    \n    for pt in photos:\n        for i in range(4):\n            bbox[i] = min(bbox[i], pt[i%2]) if i<2 else max(bbox[i], pt[i%2])\n\n    median = (numpy.median([pt[0] for pt in photos]),\n              numpy.median([pt[1] for pt in photos]))\n\n    return (bbox, median)\n\ndef main():\n    #Get all the places of that placetype\n    cur.execute(\"\"\"\n        SELECT \n            woe_id, name\n        FROM \"\"\" + db_table_name + \n        \"\"\" WHERE placetype = (%s) AND photos IS NULL\"\"\", (place_type,))\n        #\"\"\" WHERE placetype = (%s) AND photos = 0\"\"\", (place_type,))\n    \n    places = cur.fetchall()\n    \n    print 'Evaluating %s places of type %s...' % (len(places), place_type)\n    \n    total_places = len(places)\n    counter = 0\n    for place in places:\n        counter += 1\n        \n        woe_id, name = place\n    \n        if total_places > 10000:\n            if counter % 1000 == 0:\n                print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n        else:\n            print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n    \n        photos = load_photos( woe_id )\n    \n        total_photos = len(photos)\n                \n        if total_photos is None or total_photos == 0:\n            bbox, median, accuracy = load_bbox_fallback( woe_id )\n        else:\n            bbox, median = get_bbox_for_place( photos )\n            accuracy = 'flickr proxy locality-suburb'\n        \n        if total_places > 10000:\n            if counter % 1000 == 0:\n                print '\\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3])\n                print '\\t%s, %s' % (median[0], median[1])\n                print '\\t%s' % (accuracy,)\n        else:\n            print '\\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3])\n            print '\\t%s, %s' % (median[0], median[1])\n            print '\\t%s' % (accuracy,)\n        \n        cur.execute(\"\"\"\n            UPDATE \n                geoplanet_places gp\n            SET \n                centroid_lon = \"\"\" + str(median[0]) + \"\"\",\n                centroid_lat = \"\"\" + str(median[1]) + \"\"\",\n                x_min = \"\"\" + str(bbox[0]) + \"\"\",\n                y_min = \"\"\" + str(bbox[1]) + \"\"\",\n                x_max = \"\"\" + str(bbox[2]) + \"\"\",\n                y_max = \"\"\" + str(bbox[3]) + \"\"\",\n                photos = -\"\"\" + str(len(photos)) + \"\"\",\n                accuracy = '\"\"\" + accuracy + \"\"\"'\n            WHERE gp.woe_id = \"\"\" + str(woe_id) )\n\n        db.commit()\n                \n    return total_places\n\nif __name__ == '__main__':\n    app_time_start = time()\n\n    db_user_name = options.db_user_name\n    \n    db_name = options.db_name\n    db_table_name = options.db_table_name\n    place_type = options.place_type\n    \n    #woe_locality | woe_lau  | woe_adm2 | woe_adm1 | woe_adm0\n    # Normalize the WOE placetype and determine which table to read photos from\n    if place_type == 'Country':\n        search_place_type = 'woe_adm0'\n        db_photos = 'flickr_merged_data'\n    elif place_type == 'Admin' or place_type == 'State':\n        search_place_type = 'woe_adm1'\n        place_type = 'State'\n        db_photos = 'flickr_merged_data'\n    elif place_type == 'Admin2' or place_type == 'County':\n        search_place_type = 'woe_adm2'\n        place_type = 'County'\n        db_photos = 'flickr_merged_data'\n    elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU':\n        search_place_type = 'woe_lau'\n        #print 'Admin3 is not supported at this time.'\n        place_type = 'LocalAdmin'\n        db_photos = 'flickr_merged_data'\n    elif place_type == 'Town' or place_type == 'Locality':\n        search_place_type = 'woe_locality'\n        place_type = 'Town'\n        db_photos = 'flickr_merged_data'\n    elif place_type == 'Suburb' or place_type == 'Neighborhood':\n        search_place_type = 'woe_locality'\n        place_type = 'Suburb'\n        db_photos = 'flickr_merged_data'\n    \n    print \"Evaluating\", place_type, \"...\"\n    \n    # Connect to the database        \n    db = connect(user=db_user_name, database=db_name)\n    cur = db.cursor()\n    \n    total_places = main()\n        \n    app_time_end = time()\n    time_display = str( timedelta(seconds=(app_time_end - app_time_start)))\n    app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1)\n    if app_time_total_minutes > 1: \n        ppm = round(float(total_places) / app_time_total_minutes)\n    else:\n        ppm = total_places\n    \n    print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm)    "
  },
  {
    "path": "quattroshapes/bounds_backfill_woe_adjacent.py",
    "content": "#!/usr/bin/env python\nimport sys\nfrom time import time\nfrom datetime import timedelta\n\nimport math\nimport numpy\n\nfrom psycopg2 import connect\nfrom optparse import OptionParser\n\n# Database details\nuser_name = ''\ndatabase_name = ''\ntable_name = ''\nadjacency_db_table_name = ''\nplace_type = ''\n# Assumed the photos table is stored in the same database as geoplanet\ndb_photos = ''\ndb_photos_clean = ''\n\n# Database connection using psycopg2\ndb = None\ncur = None\n\nchatty = False\n\n\nparser = OptionParser(usage=\"\"\"%prog [options]\n\nFor all places, find their photos and calculate if each photo is range in or an outlier.\"\"\")\n\nparser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare',\n                  help='Name of Postgres user to connect as.')\n\nparser.add_option('-d', '--db_name', dest='db_name', default='foursquare',\n                  help='Name of Postgres database to connect to.')\n\nparser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-a', '--adjacency_db_table_name', dest='adjacency_db_table_name', default='geoplanet_adjacencies',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-p', '--place_type', dest='place_type', default='County',\n                  help='Valid WOE placetypes are County, LocalAdmin, Town.')\n\n(options, args) = parser.parse_args()\n\n    \ndef load_bbox_fallback( woe_id, orig_accuracy, place_filter={} ):\n    \n    bbox = [1, 1, -1, -1]\n    median = (0,0)\n    centroids = [median]\n    accuracy = orig_accuracy\n    \n    cur.execute(\"\"\"\n        SELECT \n            neighbor_woe_id\n        FROM \n            \"\"\" + adjacency_db_table_name + \"\"\"\n        WHERE \n            place_woe_id = (%s)\"\"\", (woe_id,))\n    \n    neighbors_list = cur.fetchall()\n       \n    if len(neighbors_list) > 0:                \n        counter = 0\n        accuracy_place_type = 'null'\n    \n        centroids = []\n        \n        for neighbor in neighbors_list:\n            neighbor_id = neighbor[0]\n            try:            \n                cur.execute(\"\"\"\n                    SELECT \n                        placetype, woe_id, x_min, y_min, x_max, y_max, centroid_lon, centroid_lat\n                    FROM \n                        \"\"\" + db_table_name + \"\"\"\n                    WHERE \n                        woe_id = (%s)\n                        AND accuracy IN ('flickr aggregate Suburb','flickr aggregate Town', 'flickr median', 'geonames match', 'geonames match round 2')\n                        AND gn_matchaccuracy NOT IN ('unknown', 'twofish bad checkins extent')\n                        AND gn_matchaccuracy IS NOT NULL;\"\"\", (neighbor_id,))\n\n\n                neighbor_details = cur.fetchone()\n                #print '\\t', len(children), 'children places'\n\n                placetype, woe_id, x_min, y_min, x_max, y_max, centroid_lon, centroid_lat = neighbor_details\n        \n                #print x_min, y_min, x_max, y_max, centroid_lon, centroid_lat\n\n                #don't return junk\n                if x_min is None or centroid_lon is None:\n                    return (bbox, median, accuracy)\n\n                if counter is 0:\n                    bbox = [x_max, y_max, x_min, y_min]\n                    accuracy_place_type = placetype\n                else:\n                    bbox[0] = min(bbox[0], x_min)\n                    bbox[1] = min(bbox[1], y_min)\n                    bbox[2] = max(bbox[2], x_max)\n                    bbox[3] = max(bbox[3], y_max)\n                                    \n                centroids.append( (centroid_lon,centroid_lat) )\n        \n                counter = counter + 1\n            except:\n                return (bbox, median, accuracy)\n\n        # bbox is already set\n        median = (numpy.median([pt[0] for pt in centroids]),\n                  numpy.median([pt[1] for pt in centroids]))\n        accuracy = 'flickr neighbor ' + accuracy_place_type\n        \n    return (bbox, median, accuracy)\n\n\ndef main():\n    #Get all the places of that placetype\n    cur.execute(\"\"\"\n        SELECT \n            woe_id, name, accuracy\n        FROM \"\"\" + db_table_name + \n        \"\"\" WHERE placetype = (%s) \n            AND accuracy IN ('flickr parent State','flickr parent Country', 'flickr parent County', 'flickr parent LocalAdmin', 'flickr null island', 'flickr proxy locality-suburb') \n        \"\"\", (place_type,))\n        #\"\"\" WHERE placetype = (%s) AND photos = 0\"\"\", (place_type,))\n    \n    places = cur.fetchall()\n    \n    print 'Evaluating %s places of type %s...' % (len(places), place_type)\n    \n    total_places = len(places)\n    counter = 0\n    for place in places:\n        counter += 1\n        \n        woe_id, name, orig_accuracy = place\n    \n        if total_places > 1000:\n            if counter % 100 == 0:\n                print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n        else:\n            print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n    \n        bbox, median, accuracy = load_bbox_fallback( woe_id, orig_accuracy )\n        \n        if total_places > 1000:\n            if counter % 100 == 0:\n                print '\\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3])\n                print '\\t%s, %s' % (median[0], median[1])\n                print '\\t%s' % (accuracy,)\n        else:\n            print '\\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3])\n            print '\\t%s, %s' % (median[0], median[1])\n            print '\\t%s' % (accuracy,)\n            \n        if orig_accuracy != accuracy:\n            cur.execute(\"\"\"\n                UPDATE \n                    geoplanet_places gp\n                SET \n                    centroid_lon = \"\"\" + str(median[0]) + \"\"\",\n                    centroid_lat = \"\"\" + str(median[1]) + \"\"\",\n                    x_min = \"\"\" + str(bbox[0]) + \"\"\",\n                    y_min = \"\"\" + str(bbox[1]) + \"\"\",\n                    x_max = \"\"\" + str(bbox[2]) + \"\"\",\n                    y_max = \"\"\" + str(bbox[3]) + \"\"\",\n                    accuracy = '\"\"\" + accuracy + \"\"\"'\n                WHERE gp.woe_id = \"\"\" + str(woe_id) )\n\n            db.commit()\n                \n    return total_places\n\nif __name__ == '__main__':\n    app_time_start = time()\n\n    db_user_name = options.db_user_name\n    \n    db_name = options.db_name\n    db_table_name = options.db_table_name\n    adjacency_db_table_name = options.adjacency_db_table_name\n    place_type = options.place_type\n    \n    #woe_locality | woe_lau  | woe_adm2 | woe_adm1 | woe_adm0\n    # Normalize the WOE placetype and determine which table to read photos from\n    if place_type == 'Admin1' or place_type == 'State':\n        place_type = 'State'\n    elif place_type == 'Admin2' or place_type == 'County':\n        place_type = 'County'\n    elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU':\n        place_type = 'LocalAdmin'\n    elif place_type == 'Town' or place_type == 'Locality':\n        place_type = 'Town'\n    \n    print \"Evaluating\", place_type, \"...\"\n    \n    # Connect to the database        \n    db = connect(user=db_user_name, database=db_name)\n    cur = db.cursor()\n    \n    total_places = main()\n        \n    app_time_end = time()\n    time_display = str( timedelta(seconds=(app_time_end - app_time_start)))\n    app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1)\n    if app_time_total_minutes > 1: \n        ppm = round(float(total_places) / app_time_total_minutes)\n    else:\n        ppm = total_places\n    \n    print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm)    "
  },
  {
    "path": "quattroshapes/bounds_backfill_woe_children.py",
    "content": "#!/usr/bin/env python\nimport sys\nfrom time import time\nfrom datetime import timedelta\n\nimport math\nimport numpy\n\nfrom psycopg2 import connect\nfrom optparse import OptionParser\n\n# Database details\nuser_name = ''\ndatabase_name = ''\ntable_name = ''\nplace_type = ''\n# Assumed the photos table is stored in the same database as geoplanet\ndb_photos = ''\ndb_photos_clean = ''\n\n# Database connection using psycopg2\ndb = None\ncur = None\n\nchatty = False\n\n\nparser = OptionParser(usage=\"\"\"%prog [options]\n\nFor all places, find their photos and calculate if each photo is range in or an outlier.\"\"\")\n\nparser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare',\n                  help='Name of Postgres user to connect as.')\n\nparser.add_option('-d', '--db_name', dest='db_name', default='foursquare',\n                  help='Name of Postgres database to connect to.')\n\nparser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-p', '--place_type', dest='place_type', default='County',\n                  help='Valid WOE placetypes are County, LocalAdmin, Town.')\n\n(options, args) = parser.parse_args()\n\n    \ndef load_bbox_fallback( woe_id, orig_accuracy, place_filter={} ):\n    \n    bbox = [1, 1, -1, -1]\n    median = (0,0)\n    centroids = [median]\n    accuracy = orig_accuracy\n    \n    cur.execute(\"\"\"\n        SELECT \n            placetype, woe_id, x_min, y_min, x_max, y_max, centroid_lon, centroid_lat\n        FROM \n            \"\"\" + db_table_name + \"\"\"\n        WHERE \n            woe_adm2 = (%s)\n            AND accuracy in ('flickr aggregate Suburb','flickr aggregate Town', 'flickr median', 'geonames match', 'geonames match round 2');\"\"\", (woe_id,))\n    \n    children = cur.fetchall()\n    #print '\\t', len(children), 'children places'\n    \n    counter = 0\n    accuracy_place_type = 'null'\n    \n    if len(children) > 0:                \n        centroids = []\n        for child in children:\n            try:\n                placetype, woe_id, x_min, y_min, x_max, y_max, centroid_lon, centroid_lat = child\n            \n                #print x_min, y_min, x_max, y_max, centroid_lon, centroid_lat\n\n                #don't return junk\n                if x_min is None or centroid_lon is None:\n                    return (bbox, median, accuracy)\n\n                if counter is 0:\n                    bbox = [x_max, y_max, x_min, y_min]\n                    accuracy_place_type = placetype\n                else:\n                    bbox[0] = min(bbox[0], x_min)\n                    bbox[1] = min(bbox[1], y_min)\n                    bbox[2] = max(bbox[2], x_max)\n                    bbox[3] = max(bbox[3], y_max)\n                                        \n                centroids.append( (centroid_lon,centroid_lat) )\n            \n                counter = counter + 1\n            except:\n                return (bbox, median, accuracy)\n\n        # bbox is already set\n        median = (numpy.median([pt[0] for pt in centroids]),\n                  numpy.median([pt[1] for pt in centroids]))\n        accuracy = 'flickr children ' + accuracy_place_type #+ ' round 2'\n        \n    return (bbox, median, accuracy)\n\n\ndef main():\n    #Get all the places of that placetype\n    cur.execute(\"\"\"\n        SELECT \n            woe_id, name, accuracy\n        FROM \"\"\" + db_table_name + \n        \"\"\" WHERE placetype = (%s) \n            AND accuracy IN ('flickr parent State','flickr parent Country', 'flickr parent County') \n        \"\"\", (place_type,))\n        #\"\"\" WHERE placetype = (%s) AND photos = 0\"\"\", (place_type,))\n    \n    places = cur.fetchall()\n    \n    print 'Evaluating %s places of type %s...' % (len(places), place_type)\n    \n    total_places = len(places)\n    counter = 0\n    for place in places:\n        counter += 1\n        \n        woe_id, name, orig_accuracy = place\n    \n        if total_places > 1000:\n            if counter % 100 == 0:\n                print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n        else:\n            print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n    \n        bbox, median, accuracy = load_bbox_fallback( woe_id, orig_accuracy )\n        \n        if total_places > 1000:\n            if counter % 100 == 0:\n                print '\\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3])\n                print '\\t%s, %s' % (median[0], median[1])\n                print '\\t%s' % (accuracy,)\n        else:\n            print '\\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3])\n            print '\\t%s, %s' % (median[0], median[1])\n            print '\\t%s' % (accuracy,)\n            \n        if orig_accuracy != accuracy:\n            cur.execute(\"\"\"\n                UPDATE \n                    geoplanet_places gp\n                SET \n                    centroid_lon = \"\"\" + str(median[0]) + \"\"\",\n                    centroid_lat = \"\"\" + str(median[1]) + \"\"\",\n                    x_min = \"\"\" + str(bbox[0]) + \"\"\",\n                    y_min = \"\"\" + str(bbox[1]) + \"\"\",\n                    x_max = \"\"\" + str(bbox[2]) + \"\"\",\n                    y_max = \"\"\" + str(bbox[3]) + \"\"\",\n                    accuracy = '\"\"\" + accuracy + \"\"\"'\n                WHERE gp.woe_id = \"\"\" + str(woe_id) )\n\n            db.commit()\n                \n    return total_places\n\nif __name__ == '__main__':\n    app_time_start = time()\n\n    db_user_name = options.db_user_name\n    \n    db_name = options.db_name\n    db_table_name = options.db_table_name\n    place_type = options.place_type\n    \n    #woe_locality | woe_lau  | woe_adm2 | woe_adm1 | woe_adm0\n    # Normalize the WOE placetype and determine which table to read photos from\n    if place_type == 'Admin2' or place_type == 'County':\n        place_type = 'County'\n    elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU':\n        place_type = 'LocalAdmin'\n    elif place_type == 'Town' or place_type == 'Locality':\n        place_type = 'Town'\n    \n    print \"Evaluating\", place_type, \"...\"\n    \n    # Connect to the database        \n    db = connect(user=db_user_name, database=db_name)\n    cur = db.cursor()\n    \n    total_places = main()\n        \n    app_time_end = time()\n    time_display = str( timedelta(seconds=(app_time_end - app_time_start)))\n    app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1)\n    if app_time_total_minutes > 1: \n        ppm = round(float(total_places) / app_time_total_minutes)\n    else:\n        ppm = total_places\n    \n    print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm)    "
  },
  {
    "path": "quattroshapes/check_neighbors.py",
    "content": "#!/usr/bin/env python\nimport sys\nfrom time import time\nfrom datetime import timedelta\n\nimport math\nimport numpy\n\nfrom psycopg2 import connect\nfrom optparse import OptionParser\n\nfrom itertools import groupby\n\n# Database details\nuser_name = ''\ndatabase_name = ''\ntable_name = ''\nadjacency_db_table_name = ''\nplace_type = ''\nsearch_buffer = 0.2\n\n# Database connection using psycopg2\ndb = None\ncur = None\n\nchatty = False\n\n\nparser = OptionParser(usage=\"\"\"%prog [options]\n\nFor all places, find their photos and calculate if each photo is range in or an outlier.\"\"\")\n\nparser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare',\n                  help='Name of Postgres user to connect as.')\n\nparser.add_option('-d', '--db_name', dest='db_name', default='foursquare',\n                  help='Name of Postgres database to connect to.')\n\nparser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-a', '--adjacency_db_table_name', dest='adjacency_db_table_name', default='geoplanet_adjacencies',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-p', '--place_type', dest='place_type', default='Town',\n                  help='Valid WOE placetypes are County, LocalAdmin, Town.')\n\nparser.add_option('-c', '--compare_place_type', dest='compare_place_type', default='County',\n                  help='Valid WOE placetypes are County, LocalAdmin, Town.')\n\nparser.add_option('-b', '--search_buffer', dest='search_buffer', default=0.1,\n                  help='Distance in map units (usually meters or decimal degrees) from the source place to the reference places to limit search to immediate neighborhood.')\n\n\n(options, args) = parser.parse_args()\n\n    \ndef evaluate_neighbors( woe_id ):    \n    # Where is this place?\n    cur.execute(\"\"\"\n        SELECT \n            ST_ASTEXT(the_geom),\n            woe_adm2\n        FROM \n            \"\"\" + db_table_name + \"\"\"\n        WHERE \n            woe_id = (%s)\"\"\", (woe_id,))\n    \n    this_woe_geom, reference_parent_id = cur.fetchone()\n    \n    # What does GeoPlanet say about this place's neighbors?\n    cur.execute(\"\"\"\n        SELECT \n            neighbor_woe_id\n        FROM \n            \"\"\" + adjacency_db_table_name + \"\"\"\n        WHERE \n            place_woe_id = (%s)\"\"\", (woe_id,))\n    \n    neighbors_list_raw = cur.fetchall()\n    \n    neighbors_list = []\n    \n    #tupples from fetch to basic list of ints\n    for n in neighbors_list_raw:\n        neighbors_list.append(n[0])\n    \n    #print \"neighbors_list\", neighbors_list\n    \n    # How many reference places should exist?\n    neighbors_total = len(neighbors_list)\n    \n    limit = 20\n    \n    # Get all places within <search_buffer> meters of this place point for places of like type. \n    cur.execute(\"\"\"\n        select      woe_id,\n                    {4}\n        from        {0}\n        where       ST_DWITHIN(\n                        the_geom,\n                        ST_SETSRID(ST_GEOMFROMTEXT('{1}'),4326),\n                        {2}\n                    )\n        and         placetype = '{3}'\n        and         woe_id != {6}\n        order by    ST_DISTANCE(\n                        the_geom,\n                        ST_SETSRID(ST_GEOMFROMTEXT('{1}'),4326)\n                    ) asc\n        LIMIT {5};\"\"\".format(db_table_name, this_woe_geom, search_buffer, place_type, compare_place_type, limit, woe_id))\n\n    ref_places = cur.fetchall()\n\n    #Track how many spatial neighbors match expected database neighbors\n    counter = 0\n    parent_cohort_counter = 0\n    \n    parent_woes = []\n    \n    ref_places_len = len(ref_places)\n    \n    # Going nearest to farthest from the source point.\n    for ref_place in ref_places:\n        ref_woe_id, ref_parent_id = ref_place\n        \n        if ref_woe_id in neighbors_list:\n            counter = counter + 1\n\n        parent_woes.append( ref_parent_id )\n        \n    parent_cohort_counter = parent_woes.count(reference_parent_id)\n    \n    #print parent_woes, parent_cohort_counter, reference_parent_id\n\n    accuracy = 'unknown'\n\n    if neighbors_total > 0 and (counter is 0 and parent_cohort_counter is 0):\n        accuracy = 'bad'\n\n    if parent_cohort_counter > 1:\n        if neighbors_total is 0:\n            accuracy = 'good parents, null neighbors'\n        else:\n            accuracy = 'good parents'\n\n    if counter > 0:\n        accuracy = 'good neighbors'\n\n    if counter > 0 and parent_cohort_counter > 0:\n        accuracy = 'good neighbors and parents'\n\n        if neighbors_total is not 0:\n            fraction = float(counter) / neighbors_total\n\n        if ref_places_len is not 0:\n            parent_fraction = float(parent_cohort_counter) / ref_places_len\n        \n        if counter > 4 and fraction > .75 and parent_cohort_counter > 4 and parent_fraction > .75:\n            accuracy = 'great neighbors and parents'\n        \n    #print '\\t', accuracy\n\n    #return (neighbors_total, counter, fraction, parent_cohort_counter, parent_fraction)\n    \n    return accuracy\n\ndef main():\n    #Get all the places of that placetype\n    cur.execute(\"\"\"\n        SELECT \n            woe_id, name\n        FROM \"\"\" + db_table_name + \n        \"\"\" WHERE placetype = (%s) \n            AND accuracy = 'geonames match great'\n            AND spatial_accuracy IS NULL\n        ORDER BY woe_id\n        LIMIT 37000\n        OFFSET (37000 * 0)\n        \"\"\", (place_type,))\n        #\"\"\" WHERE placetype = (%s) AND photos = 0\"\"\", (place_type,))\n    \n    places = cur.fetchall()\n    \n    print 'Evaluating %s places of type %s for parent-type %s...' % (len(places), place_type, compare_place_type)\n    \n    total_places = len(places)\n    counter = 0\n    for place in places:\n        counter += 1\n        \n        woe_id, name = place\n    \n        if total_places > 1000:\n            if counter % 100 == 0:\n                print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n        else:\n            print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n    \n        accuracy = evaluate_neighbors( woe_id )\n        \n        if total_places > 1000:\n            if counter % 100 == 0:\n                print '\\t%s' % (accuracy,)\n        else:\n            print '\\t%s' % (accuracy,)\n            \n        cur.execute(\"\"\"\n            UPDATE \n                geoplanet_places\n            SET \n                spatial_accuracy = '\"\"\" + accuracy + \"\"\"'\n            WHERE \n                woe_id = \"\"\" + str(woe_id) )\n\n        db.commit()\n                \n    return total_places\n\nif __name__ == '__main__':\n    app_time_start = time()\n\n    db_user_name = options.db_user_name\n    \n    db_name = options.db_name\n    db_table_name = options.db_table_name\n    adjacency_db_table_name = options.adjacency_db_table_name\n    place_type = options.place_type\n    compare_place_type = options.compare_place_type\n    search_buffer = options.search_buffer\n    \n    #woe_locality | woe_lau  | woe_adm2 | woe_adm1 | woe_adm0\n    # Normalize the WOE placetype and determine which table to read photos from\n    if place_type == 'Admin1' or place_type == 'State':\n        place_type = 'State'\n    elif place_type == 'Admin2' or place_type == 'County':\n        place_type = 'County'\n    elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU':\n        place_type = 'LocalAdmin'\n    elif place_type == 'Town' or place_type == 'Locality':\n        place_type = 'Town'\n    elif place_type == 'Suburb' or place_type == 'Neighborhood':\n        place_type = 'Suburb'\n    \n    if compare_place_type == 'Admin1' or compare_place_type == 'State':\n        compare_place_type = 'woe_adm1'\n    elif compare_place_type == 'Admin2' or compare_place_type == 'County':\n        compare_place_type = 'woe_adm2'\n    elif compare_place_type == 'Admin3' or compare_place_type == 'LocalAdmin' or compare_place_type == 'LAU':\n        compare_place_type = 'woe_lau'\n    else:\n        print \"Only Admin1, Admin2, and LocalAdmin are valid comparisions\"\n        exit (0)\n    \n    print \"Evaluating\", place_type, \"...\"\n    \n    # Connect to the database        \n    db = connect(user=db_user_name, database=db_name)\n    cur = db.cursor()\n    \n    total_places = main()\n        \n    app_time_end = time()\n    time_display = str( timedelta(seconds=(app_time_end - app_time_start)))\n    app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1)\n    if app_time_total_minutes > 1: \n        ppm = round(float(total_places) / app_time_total_minutes)\n    else:\n        ppm = total_places\n    \n    print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm)    "
  },
  {
    "path": "quattroshapes/neighborhoods_diss_and_add_admin_ids_and_names.sql",
    "content": "-- 1. First the points for the voronoi\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quatroshapes_neighborhoods_pts.shp \\\n\t-nlt POLYGON PG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-sql \"SELECT woe_id, name, the_geom FROM quatroshapes_neighborhoods\"\n\n\n-- 2. Then the core quattroshapes part\n\n-- do the dissolve union\nCREATE TABLE quatroshapes_neighborhoods_diss AS\nSELECT woe_id, count(woe_id) as quad_count, sum(photo_count) as photo_sum, max(photo_count) as photo_max,\n\t   ST_Union(f.poly_geom) as singlegeom\n\t FROM quatroshapes_neighborhoods As f\nGROUP BY woe_id;\n\n-- Update the geometry_columns table\nSELECT Populate_Geometry_Columns();\n\n\n\n-- Then add the attrs back\n\n-- Add the columns\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN geoname_id numeric;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_adm0 numeric;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_adm1 numeric;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_adm2 numeric;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_lau numeric;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_locality numeric;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_en character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_adm0 character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_adm1 character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_adm2 character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_lau character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN name_locality character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_version character varying(10);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN placetype character varying(50);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN woe_funk character varying(50);\n\n-- set the default\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\twoe_version = 'unknown';\n\n-- Populate the columns, from GeoPlanet 7.10.0\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\tname = geoplanet_places.name,\n\tname_en = geoplanet_places.english_name,\n\tgeoname_id = geoplanet_places.gn_id,\n\twoe_adm0 = geoplanet_places.woe_adm0,\n\twoe_adm1 = geoplanet_places.woe_adm1,\n\twoe_adm2 = geoplanet_places.woe_adm2,\n\twoe_lau = geoplanet_places.woe_lau,\n\twoe_locality = geoplanet_places.woe_locality,\n\tname_adm0 = geoplanet_places.name_adm0,\n\tname_adm1 = geoplanet_places.name_adm1,\n\tname_adm2 = geoplanet_places.name_adm2,\n\tname_lau = geoplanet_places.name_lau,\n\tname_locality = geoplanet_places.name_locality,\n\tplacetype = geoplanet_places.placetype,\n\twoe_funk = geoplanet_places.woe_funk,\n\twoe_version = '7.10.0'\nFROM\n\tgeoplanet_places\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_id = geoplanet_places.woe_id;\n\n-- make sure the locality is right on the one's \nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\twoe_locality = geoplanet_places.woe_locality,\n\tname_locality = geoplanet_places.name_locality\nFROM\n\tgeoplanet_places\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_locality = geoplanet_places.woe_id AND\n\tquatroshapes_neighborhoods_diss.woe_funk = 'Parented by a neighborhood' AND\n\tgeoplanet_places.placetype = 'Town';\n\n-- we changed a bunch of other ones\n-- make sure the locality is right on the one's \nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\twoe_locality = geoplanet_places.woe_locality,\n\tname_locality = geoplanet_places.name_locality\nFROM\n\tgeoplanet_places\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_id = geoplanet_places.woe_id\n\t--AND quatroshapes_neighborhoods_diss.woe_lau = quatroshapes_neighborhoods_diss.woe_locality\n\t;\n\n\n-- SPECIAL CASES\n\n-- Laguna Heights, San Francisco, CA\nUPDATE geoplanet_places SET\twoe_locality = 2487956, name_locality = 'San Francisco' WHERE woe_id = 2434643; \n\n-- Le Frak City, New York, NY\nUPDATE geoplanet_places SET woe_locality = 2459115, name_locality = 'New York' WHERE woe_id = 23511863; \n\n\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\twoe_locality = geoplanet_places.woe_locality,\n\tname_locality = geoplanet_places.name_locality\nFROM\n\tgeoplanet_places\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_id IN (23511863, 2434643) AND\n\tquatroshapes_neighborhoods_diss.woe_locality = geoplanet_places.woe_id;\n\n-- post lau=locality fix\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\twoe_locality = geoplanet_places.woe_locality,\n\tname_locality = geoplanet_places.name_locality\nFROM\n\tgeoplanet_places\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_id = geoplanet_places.woe_id;\n\n\n\n-- General case\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\twoe_locality = geoplanet_places.woe_locality,\n\tname_locality = geoplanet_places.name_locality\nFROM\n\tgeoplanet_places\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_locality = geoplanet_places.woe_id;\n\n\nWITH \n\tparentlocality_woe AS \n\t\t( SELECT name, woe_id, placetype FROM geoplanet_places )\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\twoe_locality = geoplanet_places.woe_locality,\n\tname_locality = geoplanet_places.name_locality\nFROM\n\tgeoplanet_places, parentlocality_woe\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_id = geoplanet_places.woe_id AND\n\tgeoplanet_places.woe_locality = parentlocality_woe.woe_id AND\n\tquatroshapes_neighborhoods_diss.woe_funk = 'Parented by a neighborhood' AND\n\tquatroshapes_neighborhoods_diss.woe_version = '7.10.0' AND\n\tparentlocality_woe.placetype = 'Town';\n\n\n-- some localadmin don't have localites and the suburbs are parented directly.\n-- while that makes sense administratively, it's poor in terms of map display\n\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\n\twoe_locality = woe_lau,\n\tname_locality = name_lau\nWHERE \n\tquatroshapes_neighborhoods_diss.woe_locality IS NULL;\n\n\n\n-- add the GN versions of the same\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_name character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_fcode character varying(10);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_adm0_cc character varying(2);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_name_adm1 character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_locality numeric;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN gn_name_locality character varying(200);\n\n\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\tgn_name = geoname.name,\n\tgn_fcode = geoname.fcode,\n\tgn_adm0_cc = geoname.cc2,\n\tgn_name_adm1 = geoname.admin1\nFROM\n\tgeoname\nWHERE\n\tquatroshapes_neighborhoods_diss.geoname_id = geoname.geonameid;\n\n\nWITH \n\tparentlocality_woe AS \n\t\t( SELECT name, woe_id, gn_id, gn_name FROM geoplanet_places )\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\tgn_locality = parentlocality_woe.gn_id,\n\tgn_name_locality = parentlocality_woe.gn_name\nFROM\n\tparentlocality_woe\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_locality = parentlocality_woe.woe_id;\n\n-- fill in more cc\nWITH \n\tparentlocality_woe AS \n\t\t( SELECT name, woe_id, gn_id, gn_name FROM geoplanet_places ),\n\tparentlocality_gn AS \n\t\t( SELECT name, geonameid, country FROM geoname )\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\tgn_adm0_cc = parentlocality_gn.country\nFROM\n\tparentlocality_woe, parentlocality_gn\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_locality = parentlocality_woe.woe_id AND\n\tparentlocality_woe.gn_id = parentlocality_gn.geonameid AND\n\tquatroshapes_neighborhoods_diss.gn_adm0_cc IS NULL;\n\n-- fill in more admin1\nWITH \n\tparentlocality_woe AS \n\t\t( SELECT name, woe_id, gn_id, gn_name FROM geoplanet_places ),\n\tparentlocality_gn AS \n\t\t( SELECT name, geonameid, admin1 FROM geoname )\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\t\n\tgn_name_adm1 = parentlocality_gn.admin1\nFROM\n\tparentlocality_woe, parentlocality_gn\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_locality = parentlocality_woe.woe_id AND\n\tparentlocality_woe.gn_id = parentlocality_gn.geonameid AND\n\tquatroshapes_neighborhoods_diss.gn_name_adm1 IS NULL AND\n\tquatroshapes_neighborhoods_diss.woe_locality = quatroshapes_neighborhoods_diss.woe_lau;\n\n\n-- how many are missing from GeoPlanet 7.10\nSELECT \n\tcount(*)\nFROM\n\tquatroshapes_neighborhoods_diss\nLEFT OUTER JOIN \n\tgeoplanet_places\nON \n\tgeoplanet_places.woe_id = quatroshapes_neighborhoods_diss.woe_id\nWHERE \n\tgeoplanet_places.woe_id IS null;\n\t\n-- let's set those from GeoPlanet 7.3.1 instead\nWITH missing AS (\n\tSELECT \n\t\tquatroshapes_neighborhoods_diss.woe_id\n\tFROM\n\t\tquatroshapes_neighborhoods_diss\n\tLEFT OUTER JOIN \n\t\tgeoplanet_places\n\tON \n\t\tgeoplanet_places.woe_id = quatroshapes_neighborhoods_diss.woe_id\n\tWHERE \n\t\tgeoplanet_places.woe_id IS null\n)\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\n\tname = geoplanet_places_7_3_1.name,\n\tname_en = geoplanet_places_7_3_1.name,\n\twoe_adm0 = geoplanet_places_7_3_1.woe_adm0,\n\twoe_adm1 = geoplanet_places_7_3_1.woe_adm1,\n\twoe_adm2 = geoplanet_places_7_3_1.woe_adm2,\n\twoe_lau = geoplanet_places_7_3_1.woe_lau,\n\twoe_locality = geoplanet_places_7_3_1.woe_locality,\n\tname_adm0 = geoplanet_places_7_3_1.name_adm0,\n\tname_adm1 = geoplanet_places_7_3_1.name_adm1,\n\tname_adm2 = geoplanet_places_7_3_1.name_adm2,\n\tname_lau = geoplanet_places_7_3_1.name_lau,\n\tname_locality = geoplanet_places_7_3_1.name_locality,\n\tplacetype = geoplanet_places_7_3_1.placetype,\n\twoe_funk = geoplanet_places_7_3_1.woe_funk,\n\twoe_version = '7.3.1'\nFROM\n\tmissing, geoplanet_places_7_3_1\nWHERE \n\tquatroshapes_neighborhoods_diss.woe_id = missing.woe_id AND\n\tquatroshapes_neighborhoods_diss.woe_id = geoplanet_places_7_3_1.woe_id;\n\t\n-- woe_id  | name | name_en \n----------+------+---------\n-- 55999165 |      | \n-- 55999062 |      | \n-- 55999530 |      | \n-- 55999278 |      | \n-- 20162160 |      | \n\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\n\tname = 'Limehouse',\n\tname_en = 'Limehouse',\n\twoe_adm0 = 23424775,\n\twoe_adm1 = 2344922,\n\twoe_adm2 = 29375078,\n\twoe_lau = NULL,\n\twoe_locality = 4348,\n\tname_adm0 = 'Canada',\n\tname_adm1 = 'Ontario',\n\tname_adm2 = 'Halton',\n\tname_lau = '',\n\tname_locality = 'Acton'\nWHERE \n\tquatroshapes_neighborhoods_diss.woe_id = 55999165;\n\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\n\tname = 'Belfountain',\n\tname_en = 'Belfountain',\n\twoe_adm0 = 23424775,\n\twoe_adm1 = 2344922,\n\twoe_adm2 = 29375178,\n\twoe_lau = NULL,\n\twoe_locality = 23396905,\n\tname_adm0 = 'Canada',\n\tname_adm1 = 'Ontario',\n\tname_adm2 = 'Peel',\n\tname_lau = '',\n\tname_locality = 'Caledon'\nWHERE \n\tquatroshapes_neighborhoods_diss.woe_id = 55999062;\n\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\n\tname = 'Inglewood',\n\tname_en = 'Inglewood',\n\twoe_adm0 = 23424775,\n\twoe_adm1 = 2344922,\n\twoe_adm2 = 29375178,\n\twoe_lau = NULL,\n\twoe_locality = 23396905,\n\tname_adm0 = 'Canada',\n\tname_adm1 = 'Ontario',\n\tname_adm2 = 'Peel',\n\tname_lau = '',\n\tname_locality = 'Caledon'\nWHERE \n\tquatroshapes_neighborhoods_diss.woe_id = 55999530;\n\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\n\tname = 'Claremont',\n\tname_en = 'Claremont',\n\twoe_adm0 = 23424775,\n\twoe_adm1 = 2344922,\n\twoe_adm2 = 29375180,\n\twoe_lau = NULL,\n\twoe_locality = 4364,\n\tname_adm0 = 'Canada',\n\tname_adm1 = 'Ontario',\n\tname_adm2 = 'Durham',\n\tname_lau = '',\n\tname_locality = 'Pickering'\nWHERE \n\tquatroshapes_neighborhoods_diss.woe_id = 55999278;\n\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\n\tname = 'Gemeinde Mühltal',\n\tname_en = 'Gemeinde Muhltal',\n\twoe_adm0 = 23424829,\n\twoe_adm1 = 2345485,\n\twoe_adm2 = 12596968,\n\twoe_lau = NULL,\n\twoe_locality = NULL,\n\tname_adm0 = 'Germany',\n\tname_adm1 = 'Hesse',\n\tname_adm2 = 'Darmstadt-Dieburg',\n\tname_lau = '',\n\tname_locality = ''\nWHERE \n\tquatroshapes_neighborhoods_diss.woe_id = 20162160;\n\n\n\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN hoods int;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN local_sum int;\nALTER TABLE quatroshapes_neighborhoods_diss ADD COLUMN local_max int;\n\nWITH \n\tlocality_hoods AS \n\t\t( 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 )\nUPDATE \n\tquatroshapes_neighborhoods_diss\nSET\n\thoods = locality_hoods.neighbhoods,\n\tlocal_sum = locality_hoods.local_sum,\n\tlocal_max = locality_hoods.local_max\nFROM\n\tlocality_hoods\nWHERE\n\tquatroshapes_neighborhoods_diss.woe_locality = locality_hoods.woe_locality;\n\n\n-- now back in the shell, let's export\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quatroshapes_neighborhoods_diss.shp -nlt POLYGON \\\n\tPG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-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\"\n\n\n-- 3. Then the buffer quattroshapes part (to clip the voronoi)\n\n-- do the dissolve union\nCREATE TABLE quatroshapes_neighborhoods_buffer_diss AS\n(SELECT 1,\n\t   ST_Union(f.buffer_geom) as singlegeom\n\t FROM quatroshapes_neighborhoods As f);\n\n-- Update the geometry_columns table\nSELECT Populate_Geometry_Columns();\n\n-- there is only 1 shape, so no attr to join\n\n-- now back in the shell, let's export\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quatroshapes_neighborhoods_buffer_diss.shp \\\n\t-nlt POLYGON PG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-sql \"SELECT * FROM quatroshapes_neighborhoods_buffer_diss\"\n\n\t\n\n\n\n-- locality dissolve version (for attr only)\n\n-- do the dissolve union\nDROP TABLE quatroshapes_neighborhoods_diss_as_locality;\n\nCREATE TABLE quatroshapes_neighborhoods_diss_as_locality AS\nSELECT woe_locality as woe_id, count(*) as localhoods, sum(photo_sum) as local_sum, max(photo_sum) as local_max,\n\t   ST_Union(f.singlegeom) as singlegeom\n\t FROM quatroshapes_neighborhoods_diss As f\nGROUP BY woe_locality;\n\n-- Update the geometry_columns table\nSELECT Populate_Geometry_Columns();\n\n\n-- Add the columns\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN geoname_id numeric;\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_adm0 numeric;\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_adm1 numeric;\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_adm2 numeric;\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_lau numeric;\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_locality numeric;\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_en character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_adm0 character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_adm1 character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_adm2 character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_lau character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN name_locality character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_version character varying(10);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN placetype character varying(50);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN woe_funk character varying(50);\n\n-- set the default\nUPDATE \n\tquatroshapes_neighborhoods_diss_as_locality\nSET\t\n\twoe_version = 'unknown';\n\n-- Populate the columns, from GeoPlanet 7.10.0\nUPDATE \n\tquatroshapes_neighborhoods_diss_as_locality\nSET\t\n\tname = geoplanet_places.name,\n\tname_en = geoplanet_places.english_name,\n\tgeoname_id = geoplanet_places.gn_id,\n\twoe_adm0 = geoplanet_places.woe_adm0,\n\twoe_adm1 = geoplanet_places.woe_adm1,\n\twoe_adm2 = geoplanet_places.woe_adm2,\n\twoe_lau = geoplanet_places.woe_lau,\n\twoe_locality = geoplanet_places.woe_locality,\n\tname_adm0 = geoplanet_places.name_adm0,\n\tname_adm1 = geoplanet_places.name_adm1,\n\tname_adm2 = geoplanet_places.name_adm2,\n\tname_lau = geoplanet_places.name_lau,\n\tname_locality = geoplanet_places.name_locality,\n\tplacetype = geoplanet_places.placetype,\n\twoe_funk = geoplanet_places.woe_funk,\n\twoe_version = '7.10.0'\nFROM\n\tgeoplanet_places\nWHERE\n\tquatroshapes_neighborhoods_diss_as_locality.woe_id = geoplanet_places.woe_id;\n\t\n\n-- add the GN versions of the same\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_name character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_fcode character varying(10);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_adm0_cc character varying(2);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_name_adm1 character varying(200);\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_locality numeric;\nALTER TABLE quatroshapes_neighborhoods_diss_as_locality ADD COLUMN gn_name_locality character varying(200);\n\nUPDATE \n\tquatroshapes_neighborhoods_diss_as_locality\nSET\t\n\tgn_name = geoname.name,\n\tgn_fcode = geoname.fcode,\n\tgn_adm0_cc = geoname.country,\n\tgn_name_adm1 = geoname.admin1,\n\tgn_locality = geoname.geonameid,\n\tgn_name_locality = geoname.name\nFROM\n\tgeoname\nWHERE\n\tquatroshapes_neighborhoods_diss_as_locality.geoname_id = geoname.geonameid;\n\t\n-- now back in the shell, let's export\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quatroshapes_neighborhoods_diss_as_locality.shp -nlt POLYGON \\\n\tPG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-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\"\n\n"
  },
  {
    "path": "quattroshapes/outliers.py",
    "content": "#!/usr/bin/env python\nimport sys\nfrom time import time\n\nimport math\nimport numpy\n\nfrom psycopg2 import connect\nfrom optparse import OptionParser\n\n# Outlier storage\nMEDIAN_THRESHOLD = 5.0\n\n# Database details\nuser_name = ''\ndatabase_name = ''\ntable_name = ''\nplace_type = ''\n# Assumed the photos table is stored in the same database as geoplanet\ndb_photos = ''\ndb_photos_clean = ''\n\n# Database connection using psycopg2\ndb = None\ncur = None\n\nchatty = False\n\n\nparser = OptionParser(usage=\"\"\"%prog [options]\n\nFor all places, find their photos and calculate if each photo is range in or an outlier.\"\"\")\n\nparser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare',\n                  help='Name of Postgres user to connect as.')\n\nparser.add_option('-d', '--db_name', dest='db_name', default='foursquare',\n                  help='Name of Postgres database to connect to.')\n\nparser.add_option('-t', '--db_table_name', dest='db_table_name', default='geoplanet_places',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-p', '--place_type', dest='place_type', default='Locality',\n                  help='Valid WOE placetypes are Country, State, County, LocalAdmin, Town, and Suburb.')\n\n(options, args) = parser.parse_args()\n\n\n\ndef median_distances(pts, aggregate=numpy.median):\n    median = (numpy.median([pt[0] for pt in pts]),\n              numpy.median([pt[1] for pt in pts]))\n    distances = []\n    for pt in pts:\n        dist = math.sqrt(((median[0]-pt[0])*math.cos(median[1]*math.pi/180.0))**2+(median[1]-pt[1])**2)\n        distances.append((dist, pt))\n\n    median_dist = aggregate([dist for dist, pt in distances])\n    return (median_dist, distances, median)\n    \ndef mean_distances(photos):\n    return median_distances(photos, numpy.mean)\n\ndef load_photos( woe_id, place_filter={} ):\n    cur.execute(\"\"\"\n        SELECT \n            longitude, latitude, photo_id\n        FROM \"\"\" + db_photos + \"\"\"\n        WHERE woe_id = (%s)\n        \"\"\", (woe_id,))\n    \n    photos = cur.fetchall()\n\n    #print '\\t', len(photos), 'photos'\n    \n    return photos\n\ndef discard_outliers(photos, threshold=MEDIAN_THRESHOLD):\n    count = 0\n    discarded = 0\n    result = {}\n    \n    total_photos = len(photos)\n    \n    if chatty: \n        print '\\tComputing outliers...'\n    \n    median_dist, distances, median = median_distances( photos )\n    \n    if chatty: \n        print '\\tmedian_dist:', median_dist\n    \n    if median_dist > 0:\n        keep = [pt for dist, pt in distances if dist < median_dist * threshold]\n        discarded += total_photos - len(keep)\n\n        if chatty: \n            print '\\t%d photos discarded of %d total' % (discarded, total_photos)\n        \n        return (keep, median, discarded)\n    else:\n        if chatty: \n            print '\\t%d photos discarded of %d total (dense cluster)' % (0, total_photos)\n\n        return (photos, median, 0)\n\ndef get_bbox_for_place( photos ):\n    bbox = [180, 90, -180, -90]\n    \n    for pt in photos:\n        for i in range(4):\n            bbox[i] = min(bbox[i], pt[i%2]) if i<2 else max(bbox[i], pt[i%2])\n            \n    return bbox\n\ndef main():\n    #Get all the places of that placetype\n    cur.execute(\"\"\"\n        SELECT \n            woe_id, name\n        FROM \"\"\" + db_table_name + \n        \"\"\" WHERE placetype = (%s)\"\"\", (place_type,))\n    \n    places = cur.fetchall()\n    \n    print 'Evaluating %s places of type %s...' % (len(places), place_type)\n    \n    total_places = len(places)\n    counter = 0\n    for place in places:\n        counter += 1\n        \n        woe_id, name = place\n    \n        if total_places > 10000:\n            if counter % 1000 == 0:\n                print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n        else:\n            print '%s of %s: %s (%s)' % (counter, total_places, name, woe_id)\n    \n        photos = load_photos( woe_id )\n        \n        if len(photos) > 0:\n            photos, median, discarded = discard_outliers( photos )\n        \n            bbox = get_bbox_for_place( photos )\n            \n            #print '\\t%s: %s %s, %s %s' % (woe_id, bbox[0], bbox[1], bbox[2], bbox[3])\n            #print '\\t%s, %s' % (median[0], median[1])\n            \n            #Store result\n            # Clear out the table first!\n            #   DELETE FROM db_photos_clean;\n            for photo in photos:            \n                cur.execute(\"\"\"\n                    INSERT \n                    INTO \"\"\" + db_photos_clean + \"\"\"\n                        (photo_id, woe_id, longitude, latitude)\n                    VALUES \n                        (\"\"\" + str(photo[2]) + \"\"\",\"\"\" \n                             + str(woe_id) + \"\"\",\"\"\" \n                             + str(photo[0]) + \"\"\",\"\"\" \n                             + str(photo[1]) + \"\"\")\"\"\" )\n\n                db.commit()\n                \n            cur.execute(\"\"\"\n                UPDATE \n                    geoplanet_places gp\n                SET \n                    centroid_lon = \"\"\" + str(median[0]) + \"\"\",\n                    centroid_lat = \"\"\" + str(median[1]) + \"\"\",\n                    x_min = \"\"\" + str(bbox[0]) + \"\"\",\n                    y_min = \"\"\" + str(bbox[1]) + \"\"\",\n                    x_max = \"\"\" + str(bbox[2]) + \"\"\",\n                    y_max = \"\"\" + str(bbox[3]) + \"\"\",\n                    photos = \"\"\" + str(len(photos)) + \"\"\",\n                    outliers = \"\"\" + str(discarded) + \"\"\"\n                WHERE gp.woe_id = \"\"\" + str(woe_id) )\n\n            db.commit()\n\n        #if counter > 1000:\n        #    break\n\n\nif __name__ == '__main__':\n    app_time_start = time()\n\n    db_user_name = options.db_user_name\n    \n    db_name = options.db_name\n    db_table_name = options.db_table_name\n    place_type = options.place_type\n    \n    # Normalize the WOE placetype and determine which table to read photos from\n    if place_type == 'Country':\n        db_photos = 'flickr_adm0_data'\n    elif place_type == 'Admin' or place_type == 'State':\n        place_type = 'State'\n        db_photos = 'flickr_adm1_data'\n    elif place_type == 'Admin2' or place_type == 'County':\n        place_type = 'County'\n        db_photos = 'flickr_adm2_data'\n    elif place_type == 'Admin3' or place_type == 'LocalAdmin' or place_type == 'LAU':\n        print 'Admin3 is not supported at this time.'\n        place_type = 'LocalAdmin'\n    elif place_type == 'Town' or place_type == 'Locality':\n        place_type = 'Town'\n        db_photos = 'flickr_locality_data'\n    elif place_type == 'Suburb' or place_type == 'Neighborhood':\n        place_type = 'Suburb'\n        db_photos = 'flickr_neighborhood_data'\n        \n    db_photos_clean = db_photos + '_clean'\n\n    # Connect to the database        \n    db = connect(user=db_user_name, database=db_name)\n    cur = db.cursor()\n    \n    main()\n    \n    app_time_end = time()\n    app_time_total_minutes = round((app_time_end - app_time_start) / 1000 / 60, 1)\n    \n    print 'Outliers calculated in %s minutes.' % (app_time_total_minutes)"
  },
  {
    "path": "quattroshapes/outliers_mark_ignore.py",
    "content": "#!/usr/bin/env python\nimport sys\nfrom time import time\nfrom datetime import timedelta\n\nimport math\nimport numpy\n\nfrom psycopg2 import connect\nfrom optparse import OptionParser\n\n# Database details\nuser_name = ''\ndatabase_name = ''\ntable_name = ''\n\n# Assumed the photos table is stored in the same database as geoplanet\ndb_photos = ''\ndb_photos_clean = ''\n\n# Explicate write and read database settings\ndb_write_results = ''\ndb_write_unique_id = ''\ndb_read_unique_id = ''\n\n# Database connection using psycopg2\ndb = None\ncur = None\n\nchatty = False\n\n\nparser = OptionParser(usage=\"\"\"%prog [options]\n\nFor all places, find their photos and calculate if each photo is range in or an outlier.\"\"\")\n\nparser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare',\n                  help='Name of Postgres user to connect as.')\n\nparser.add_option('-d', '--db_name', dest='db_name', default='foursquare',\n                  help='Name of Postgres database to connect to.')\n\nparser.add_option('-t', '--db_table_name', dest='db_table_name', default='quatroshapes_extras',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-c', '--count', dest='count', default=1,\n                  help='How many neighbors must match to NOT be an outlier.')\n\n(options, args) = parser.parse_args()\n\n\n\ndef load_parts( wkt, place_filter={} ):\n    cur.execute(\"\"\"\n        SELECT \n            \"\"\" + db_write_unique_id + \"\"\" as id,\n            COUNT(\"\"\" + db_write_unique_id + \"\"\") as neighbors\n        FROM \n            \"\"\" + db_table_name + \"\"\"\n        WHERE \n            ST_Touches( poly_geom, ST_GeomFromText('\"\"\" + wkt + \"\"\"', 4326) )\n        GROUP BY \n            \"\"\" + db_write_unique_id + \"\"\"\n        ORDER BY \n            neighbors DESC;\n        \"\"\")\n    \n    neighbors = cur.fetchall()\n    #print '\\t', len(neighbors), 'neighbors'\n    \n    return neighbors\n\ndef main():\n    #Get all the places of that placetype\n    cur.execute(\"\"\"\n        SELECT \n            \"\"\" + db_bounds_unique_id + \"\"\", \"\"\" + db_bounds_placename + \"\"\"\n            ST_AsText( db_bounds_geom_name ) as wkt\n        FROM \"\"\" + db_bounds_table_name )\n    \n    places = cur.fetchall()\n    \n    print 'Evaluating %s places...' % (len(places),)\n    \n    total_places = len(places)\n    counter = 0\n    \n    for place in places:\n        counter += 1\n        \n        unique_id, name, zoom, row, col, wkt = place\n    \n        if total_places > 10000:\n            if counter % 1000 == 0:\n                print '%s of %s: %s (%s) at %s/%s/%s' % (counter, total_places, name, unique_id)\n        else:\n            print '%s of %s: %s (%s) at %s/%s/%s' % (counter, total_places, name, unique_id)\n    \n        parts = load_parts( unique_id )\n        total_parts = len(parts)\n            \n        if total_parts > 0:\n            \n            # is at least one of the neighbors of the same id? if not:\n            outlier = True\n            c = 0\n            \n            #This should always be length of 8\n            for n in parts:\n                if n[0] == unique_id:\n                    c = c + 1\n                    \n            if c >= count_threshold:\n                outlier = False\n            \n            if outlier:\n                cur.execute(\"\"\"\n                    UPDATE \n                        \"\"\" + db_write_results + \"\"\"\n                    SET \n                        \"\"\" + db_write_unique_id + \"\"\" = \"\"\" + str(neighbors[0][0]) + \"\"\"\n                    WHERE \n                        zoom = \"\"\" + str(zoom) + \"\"\" AND \n                        row = \"\"\" + str(row) + \"\"\" AND \n                        col = \"\"\" + str(col) )\n                db.commit()\n                \n    return total_places\n\nif __name__ == '__main__':\n    app_time_start = time()\n\n    db_user_name = options.db_user_name\n    \n    db_name = options.db_name\n    db_table_name = options.db_table_name\n    count_threshold = options.count\n    \n    db_photos = 'quatroshapes_extras'\n    db_write_results = 'quatroshapes_extras'\n    db_write_unique_id = 'woe_id'\n    db_read_unique_id = 'woe_id'\n    db_bounds_table_name = 'geoname_checkin_counts'\n    db_bounds_geom_name = 'poly_geom'\n    db_bounds_unique_id = 'geoname_id'\n    db_bounds_placename = 'gn_placename'\n        \n    # Connect to the database        \n    db = connect(user=db_user_name, database=db_name)\n    cur = db.cursor()\n    \n    total_places = main()\n        \n    app_time_end = time()\n    time_display = str( timedelta(seconds=(app_time_end - app_time_start)))\n    app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1)\n    if app_time_total_minutes > 1: \n        ppm = round(float(total_places) / app_time_total_minutes)\n    else:\n        ppm = total_places\n    \n    print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm)    "
  },
  {
    "path": "quattroshapes/quattroshapes_gazetteer.sql",
    "content": "--http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html\n\nDROP TABLE quattroshapes_gazetteer;\n\nCREATE TABLE quattroshapes_gazetteer AS\n(WITH\n\tgn_with_woe AS\n\t(\tSELECT \n\t\t\tgeonameid as gn_id, woe_id, name, country, photos as checkins, population, asciiname, admin1, admin2, fclass, fcode, the_geom\n\t\tFROM \n\t\t\tgeoname\n\t\tWHERE \n\t\t\tpopulation > 0 OR\n\t\t\tfclass = 'A' OR\n\t\t\tfcode IN ('PPLG','PPLC','PPLCH','PPLA','PPLA2','PPLA3','PPLA4') OR \n\t\t\twoe_id IS NOT NULL\n \t),\n\twoe_with_gn AS\n\t(\tSELECT \n\t\t\twoe_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\n\t\tFROM \n\t\t\tgeoplanet_places\n\t\tWHERE \n\t\t\tphotos > 0 OR\n\t\t\tplacetype IN ('Country','State','County','LocalAdmin') OR \n\t\t\tgn_id IS NOT NULL OR\n\t\t\taccuracy IN ('flickr aggregate Suburb','flickr aggregate Town','flickr median', 'flickr children Town','geonames match great','geonames match','geonames match round 2','other match great')\n \t)\nSELECT\n-- \tcount(*)\n \t--gn_with_woe.name, gn_with_woe.gn_id, woe_with_gn.woe_id, woe_with_gn.gn_id, gn_with_woe.country, checkins\n \tgn_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\nFROM \n \tgn_with_woe\nFULL OUTER JOIN\n \twoe_with_gn\nON\n \tgn_with_woe.woe_id = woe_with_gn.woe_id AND\n \tgn_with_woe.gn_id = woe_with_gn.gn_id);\n\n-- http://www.kindle-maps.com/blog/retrospectivly-adding-a-unique-primary-id-column-to-a-table-in-postgresql.html\nCREATE SEQUENCE qs_ids2;\nALTER TABLE quattroshapes_gazetteer ADD qs_id INT UNIQUE;\nUPDATE quattroshapes_gazetteer SET qs_id = NEXTVAL('qs_ids2');\n\nALTER TABLE quattroshapes_gazetteer ADD COLUMN checkins_index float;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN photos_index float;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN photos_all_index float;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN checkins_rank int;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN photos_rank int;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN photos_all_rank int;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN population_rank int;\n\nSELECT max(photos), stddev_pop(photos) FROM quattroshapes_gazetteer;\n--  max  |    stddev_pop     \n---------+-------------------\n-- 50015 | 1645.364073003709\n\nSELECT max(photos_all), stddev_pop(photos_all) FROM quattroshapes_gazetteer;\n--   max    |   stddev_pop   \n------------+----------------\n-- 46598243 | 75209.47951609\n\n\nUPDATE quattroshapes_gazetteer SET photos_index = round(1.0 * photos / (1645*3) * 1000) WHERE photos > 0;\nUPDATE quattroshapes_gazetteer SET photos_all_index = round(1.0 * photos_all / (75209*3) * 1000.0) WHERE photos_all > 0;\n\nUPDATE quattroshapes_gazetteer SET checkins_index = 1 WHERE checkins_index = 0 and checkins > 0;\nUPDATE quattroshapes_gazetteer SET photos_index = 1 WHERE photos_index = 0 and photos > 0;\nUPDATE quattroshapes_gazetteer SET photos_all_index = 1 WHERE photos_all_index = 0 and photos_all > 0;\n\nUPDATE quattroshapes_gazetteer SET checkins_index = 1000 WHERE checkins_index > 1000;\nUPDATE quattroshapes_gazetteer SET photos_index = 1000 WHERE photos_index > 1000;\nUPDATE quattroshapes_gazetteer SET photos_all_index = 1000 WHERE photos_all_index > 1000;\n\n\nSELECT AddGeometryColumn('quattroshapes_gazetteer', 'blended_geom', 4326, 'POINT', 2, true);\n\nUPDATE quattroshapes_gazetteer SET blended_geom = checkins_geom where checkins_geom IS NOT NULL;\nUPDATE quattroshapes_gazetteer SET blended_geom = photos_geom where checkins_geom IS NULL;\n\nSELECT AddGeometryColumn('quattroshapes_gazetteer', 'blended_geom_gp', 4326, 'POINT', 2, true);\n\nUPDATE quattroshapes_gazetteer SET blended_geom_gp = photos_geom where photos_geom IS NOT NULL;\nUPDATE quattroshapes_gazetteer SET blended_geom_gp = checkins_geom where photos_geom IS NULL;\n\n-- where there wasn't a value in GeoPlanet side of the join, let's fill in with Geonames\nUPDATE quattroshapes_gazetteer SET name = gn_name where name IS NULL;\n\n\n--ALTER TABLE quattroshapes_gazetteer ADD COLUMN poprank smallint;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN scalerank smallint;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN natscale smallint;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN adm0cap numeric;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN featurecla character varying(50);\nALTER TABLE quattroshapes_gazetteer ADD COLUMN worldcity smallint;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN megacity smallint;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN metro_core smallint;\nALTER TABLE quattroshapes_gazetteer ADD COLUMN micro_core smallint;\n\n-- the combo file has two different columns for unique ID, normalize them\nUPDATE \n\tpop12_comp_dedup_merge \nSET \n\tgeonameid = ï»¿geon\nWHERE\n\tgeonameid = 0;\n\n-- make sure there is a difference between 0 and null (-99)\nUPDATE \n\tquattroshapes_gazetteer \nSET \n--\tpoprank = -99,\n\tscalerank = -99,\n\tnatscale = -99;\n\n-- set many attributes for the gazetteer of the main file with 135k features.\nUPDATE \n\tquattroshapes_gazetteer \nSET \n--\tpoprank = pop12_comp_dedup_merge.poprank,\n\tscalerank = pop12_comp_dedup_merge.scalerank,\n\tnatscale = pop12_comp_dedup_merge.natrlScl,\n\tadm0cap = pop12_comp_dedup_merge.adm0cap,\n\tfeaturecla = pop12_comp_dedup_merge.featurecla,\n\tworldcity = pop12_comp_dedup_merge.worldcity,\n\tmegacity = pop12_comp_dedup_merge.megacity,\n\tmetro_core = pop12_comp_dedup_merge.metro_core\nFROM\n\tpop12_comp_dedup_merge\nWHERE\n\tgn_id = pop12_comp_dedup_merge.geonameid;\n\n-- redo this (not sure it's necc twice)\nUPDATE \n\tquattroshapes_gazetteer \nSET \n--\tpoprank = pop12_comp_dedup_merge.poprank,\n\tscalerank = pop12_comp_dedup_merge.scalerank,\n\tnatscale = pop12_comp_dedup_merge.natrlScl\nFROM\n\tpop12_comp_dedup_merge\nWHERE\n\tgn_id = pop12_comp_dedup_merge.geonameid;\n\n-- prefer the population rank from my edited 135k features over GN population derived values\nUPDATE \n\tquattroshapes_gazetteer \nSET \n\tpopulation_rank = poprank\nWHERE\n\tpopulation_rank < poprank;\n\n\n-- version 2.0 of Natural Earth had better scale ranks\nUPDATE \n\tquattroshapes_gazetteer \nSET \n\tpoprank = ne_10m_populated_places.rank_max,\n\tscalerank = ne_10m_populated_places.scalerank,\n\tnatscale = ne_10m_populated_places.natscale\nFROM\n\tne_10m_populated_places\nWHERE\n\tquattroshapes_gazetteer.gn_id = ne_10m_populated_places.geonameid;\n\n\nUPDATE \n\tquattroshapes_gazetteer \nSET \n\tmicro_core = 1,\n\tmetro_core = 0\nFROM\n\tpop12_comp_dedup_merge\nWHERE\n\tgn_id = pop12_comp_dedup_merge.geonameid AND\n\tpop12_comp_dedup_merge.metro_type = 'micro';\n\n\nUPDATE \n\tquattroshapes_gazetteer \nSET \n\tgn_population = pop12_comp_dedup_merge.population\nFROM\n\tpop12_comp_dedup_merge\nWHERE\n\tgn_id = pop12_comp_dedup_merge.geonameid AND\n\tgn_population IS NULL;\n\nUPDATE \n\tquattroshapes_gazetteer \nSET \n\tgn_population = pop12_comp_dedup_merge.pop_2000\nFROM\n\tpop12_comp_dedup_merge\nWHERE\n\tgn_id = pop12_comp_dedup_merge.geonameid AND\n\tgn_population IS NULL;\n\nUPDATE \n\tquattroshapes_gazetteer \nSET \n\tgn_population = pop12_comp_dedup_merge.epspop\nFROM\n\tpop12_comp_dedup_merge\nWHERE\n\tgn_id = pop12_comp_dedup_merge.geonameid AND\n\tgn_population IS NULL;\n\nUPDATE \n\tquattroshapes_gazetteer \nSET \n\tmetro_core = 1\nFROM\n\tus_admin_2_counties_d10m_d\nWHERE\n\tgn_id = us_admin_2_counties_d10m_d.gn1n AND\n\tus_admin_2_counties_d10m_d.metro = 1;\n\nUPDATE \n\tquattroshapes_gazetteer \nSET \n\tmicro_core = 1\nFROM\n\tus_admin_2_counties_d10m_d\nWHERE\n\tgn_id = us_admin_2_counties_d10m_d.gn1n AND\n\tus_admin_2_counties_d10m_d.micro = 1;\n\nUPDATE quattroshapes_gazetteer\nSET population_rank = CASE\n\tWHEN gn_population > 15000000 THEN 15\n\tWHEN gn_population > 10000000 THEN 14\n\tWHEN gn_population > 5000000 THEN 13\n\tWHEN gn_population > 1000000 THEN 12\n\tWHEN gn_population > 500000 THEN 11\n\tWHEN gn_population > 200000 THEN 10\n\tWHEN gn_population > 100000 THEN 9\n\tWHEN gn_population > 50000 THEN 8\n\tWHEN gn_population > 20000 THEN 7 \n\tWHEN gn_population > 10000 THEN 6\n\tWHEN gn_population > 5000 THEN 5\n\tWHEN gn_population > 2000 THEN 4\n\tWHEN gn_population > 1000 THEN 3\n\tWHEN gn_population > 200 THEN 2\n\tWHEN gn_population > 0 THEN 1\n\tELSE 0\n END;\n\nUPDATE quattroshapes_gazetteer\nSET photos_rank = CASE\n\tWHEN photos > 42000 THEN 30\n\tWHEN photos > 30000 THEN 29\n\tWHEN photos > 22000 THEN 28\n\tWHEN photos > 15000 THEN 27\n\tWHEN photos > 10500 THEN 26\n\tWHEN photos > 6800 THEN 25\n\tWHEN photos > 4850 THEN 24\n\tWHEN photos > 4300 THEN 23\n\tWHEN photos > 3850 THEN 22\n\tWHEN photos > 3500 THEN 21\n\tWHEN photos > 3050 THEN 20\n\tWHEN photos > 2750 THEN 19\n\tWHEN photos > 2500 THEN 18\n\tWHEN photos > 2250 THEN 17\n\tWHEN photos > 2050 THEN 16\n\tWHEN photos > 1850 THEN 15\n\tWHEN photos > 1650 THEN 14\n\tWHEN photos > 1500 THEN 13\n\tWHEN photos > 1250 THEN 12\n\tWHEN photos > 1000 THEN 11\n\tWHEN photos > 850 THEN 10\n\tWHEN photos > 750 THEN 9\n\tWHEN photos > 550 THEN 8\n\tWHEN photos > 450 THEN 7 \n\tWHEN photos > 350 THEN 6\n\tWHEN photos > 250 THEN 5\n\tWHEN photos > 150 THEN 4\n\tWHEN photos > 75 THEN 3\n\tWHEN photos > 25 THEN 2\n\tWHEN photos > 0 THEN 1\n\tELSE 0\n END;\n\n\nUPDATE quattroshapes_gazetteer\nSET photos_all_rank = CASE\n\tWHEN photos_all > 600000 THEN 30\n\tWHEN photos_all > 500000 THEN 29\n\tWHEN photos_all > 375000 THEN 28\n\tWHEN photos_all > 250000 THEN 27\n\tWHEN photos_all > 73000 THEN 26\n\tWHEN photos_all > 55000 THEN 25\n\tWHEN photos_all > 44000 THEN 24\n\tWHEN photos_all > 33500 THEN 23\n\tWHEN photos_all > 25000 THEN 22\n\tWHEN photos_all > 20000 THEN 21\n\tWHEN photos_all > 18000 THEN 20\n\tWHEN photos_all > 15000 THEN 19\n\tWHEN photos_all > 13000 THEN 18\n\tWHEN photos_all > 11500 THEN 17\n\tWHEN photos_all > 10000 THEN 16\n\tWHEN photos_all > 6500 THEN 15\n\tWHEN photos_all > 4900 THEN 14\n\tWHEN photos_all > 4300 THEN 13\n\tWHEN photos_all > 3500 THEN 12\n\tWHEN photos_all > 2800 THEN 11\n\tWHEN photos_all > 2300 THEN 10\n\tWHEN photos_all > 1800 THEN 9\n\tWHEN photos_all > 1500 THEN 8\n\tWHEN photos_all > 1000 THEN 7 \n\tWHEN photos_all > 750 THEN 6\n\tWHEN photos_all > 300 THEN 5\n\tWHEN photos_all > 150 THEN 4\n\tWHEN photos_all > 75 THEN 3\n\tWHEN photos_all > 25 THEN 2\n\tWHEN photos_all > 0 THEN 1\n\tELSE 0\n END;\n\n\n-- geoname lat-long locations, then if there is not one, geoplanet / flickr lat-long locations\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quattroshapes_gazetteer_gn_then_gp.shp -nlt POINT \\\n\tPG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-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\"\n\t\nrm -f shp/quattroshapes_gazetteer_gn_then_gp.zip\nzip shp/quattroshapes_gazetteer_gn_then_gp.zip shp/quattroshapes_gazetteer_gn_then_gp.*\n\t\n\t\n-- geoplanet lat-long locations, then if there is not one, geonames lat-long locations\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quattroshapes_gazetteer_gp_then_gn.shp -nlt POINT \\\n\tPG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-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\"\n\nrm -f shp/quattroshapes_gazetteer_gp_then_gn.zip\nzip shp/quattroshapes_gazetteer_gp_then_gn.zip shp/quattroshapes_gazetteer_gp_then_gn.*\n\n\t\n-- geoname lat-long locations, then if there is not one, geoplanet / flickr lat-long locations\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quattroshapes_gazetteer_gn_then_gp_with_content.shp -nlt POINT \\\n\tPG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-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\"\n\nrm shp/quattroshapes_gazetteer_gn_then_gp_with_content.zip\nzip shp/quattroshapes_gazetteer_gn_then_gp_with_content.zip shp/quattroshapes_gazetteer_gn_then_gp_with_content.*\n\n-- again but for any locality or P class\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quattroshapes_gazetteer_gn_then_gp_locality.shp -nlt POINT \\\n\tPG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-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')\"\n\nrm -f shp/quattroshapes_gazetteer_gn_then_gp_locality.zip\nzip shp/quattroshapes_gazetteer_gn_then_gp_locality.zip shp/quattroshapes_gazetteer_gn_then_gp_locality.*\n\n\n\n\n-- geoname lat-long locations\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quattroshapes_gazetteer_gn.shp -nlt POINT \\\n\tPG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-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\"\n\n-- geoplanet / flickr lat-long locations\nogr2ogr -f \"ESRI Shapefile\" -lco ENCODING=\"UTF-8\" -s_srs EPSG:4326 -t_srs EPSG:4326 \\\n\t-overwrite shp/quattroshapes_gazetteer_gp.shp -nlt POINT \\\n\tPG:\"host=localhost user=foursquare dbname=foursquare\" \\\n\t-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\""
  },
  {
    "path": "quattroshapes/smooth.py",
    "content": "#!/usr/bin/env python\nimport sys\nfrom time import time\nfrom datetime import timedelta\n\nimport math\nimport numpy\n\nfrom psycopg2 import connect\nfrom optparse import OptionParser\n\n# Database details\nuser_name = ''\ndatabase_name = ''\ntable_name = ''\n\n# Assumed the photos table is stored in the same database as geoplanet\ndb_photos = ''\ndb_photos_clean = ''\n\n# Explicate write and read database settings\ndb_write_results = ''\ndb_write_unique_id = ''\ndb_read_unique_id = ''\n\n# Database connection using psycopg2\ndb = None\ncur = None\n\nchatty = False\n\n\nparser = OptionParser(usage=\"\"\"%prog [options]\n\nFor all places, find their photos and calculate if each photo is range in or an outlier.\"\"\")\n\nparser.add_option('-u', '-U', '--db_user_name', dest='db_user_name', default='foursquare',\n                  help='Name of Postgres user to connect as.')\n\nparser.add_option('-d', '--db_name', dest='db_name', default='foursquare',\n                  help='Name of Postgres database to connect to.')\n\nparser.add_option('-t', '--db_table_name', dest='db_table_name', default='quatroshapes_extras',\n                  help='Name of table in Postgres database.')\n\nparser.add_option('-c', '--count', dest='count', default=1,\n                  help='How many neighbors must match to NOT be an outlier.')\n\n(options, args) = parser.parse_args()\n\n\n\ndef load_neighbors( wkt, place_filter={} ):\n    cur.execute(\"\"\"\n        SELECT \n            \"\"\" + db_write_unique_id + \"\"\" as id,\n            COUNT(\"\"\" + db_write_unique_id + \"\"\") as neighbors\n        FROM \n            \"\"\" + db_table_name + \"\"\"\n        WHERE \n            ST_Touches( poly_geom, ST_GeomFromText('\"\"\" + wkt + \"\"\"', 4326) )\n        GROUP BY \n            \"\"\" + db_write_unique_id + \"\"\"\n        ORDER BY \n            neighbors DESC;\n        \"\"\")\n    \n    neighbors = cur.fetchall()\n    #print '\\t', len(neighbors), 'neighbors'\n    \n    return neighbors\n\ndef main():\n    #Get all the places of that placetype\n    cur.execute(\"\"\"\n        SELECT \n            \"\"\" + db_write_unique_id + \"\"\", name, zoom, row, col,\n            ST_AsText( poly_geom ) as wkt\n        FROM \"\"\" + db_table_name )\n    \n    places = cur.fetchall()\n    \n    print 'Evaluating %s places...' % (len(places),)\n    \n    total_places = len(places)\n    counter = 0\n    \n    for place in places:\n        counter += 1\n        \n        unique_id, name, zoom, row, col, wkt = place\n    \n        if total_places > 10000:\n            if counter % 1000 == 0:\n                print '%s of %s: %s (%s) at %s/%s/%s' % (counter, total_places, name, unique_id, zoom, row, col)\n        else:\n            print '%s of %s: %s (%s) at %s/%s/%s' % (counter, total_places, name, unique_id, zoom, row, col)\n    \n        neighbors = load_neighbors( wkt )\n        total_neighbors = len(neighbors)\n            \n        if total_neighbors > 0:\n            \n            # is at least one of the neighbors of the same id? if not:\n            outlier = True\n            c = 0\n            \n            #This should always be length of 8\n            for n in neighbors:\n                if n[0] == unique_id:\n                    c = c + 1\n                    \n            if c >= count_threshold:\n                outlier = False\n            \n            if outlier:\n                cur.execute(\"\"\"\n                    UPDATE \n                        \"\"\" + db_write_results + \"\"\"\n                    SET \n                        \"\"\" + db_write_unique_id + \"\"\" = \"\"\" + str(neighbors[0][0]) + \"\"\"\n                    WHERE \n                        zoom = \"\"\" + str(zoom) + \"\"\" AND \n                        row = \"\"\" + str(row) + \"\"\" AND \n                        col = \"\"\" + str(col) )\n                db.commit()\n                \n    return total_places\n\nif __name__ == '__main__':\n    app_time_start = time()\n\n    db_user_name = options.db_user_name\n    \n    db_name = options.db_name\n    db_table_name = options.db_table_name\n    count_threshold = options.count\n    \n    db_photos = 'quatroshapes_extras'\n    db_write_results = 'quatroshapes_extras'\n    db_write_unique_id = 'woe_id'\n    db_read_unique_id = 'woe_id'\n        \n    # Connect to the database        \n    db = connect(user=db_user_name, database=db_name)\n    cur = db.cursor()\n    \n    total_places = main()\n        \n    app_time_end = time()\n    time_display = str( timedelta(seconds=(app_time_end - app_time_start)))\n    app_time_total_minutes = round((app_time_end - app_time_start) / 60, 1)\n    if app_time_total_minutes > 1: \n        ppm = round(float(total_places) / app_time_total_minutes)\n    else:\n        ppm = total_places\n    \n    print 'Caluclated %d bounds in %s (%s places per minute)' % (total_places, time_display, ppm)    "
  },
  {
    "path": "quattroshapes/tile_renderer_full_database.py",
    "content": "import csv, sys\nfrom sys import argv, stdout, stderr\nfrom subprocess import Popen\nfrom os import stat, unlink\n\ntry:\n    from json import JSONEncoder, loads as json_loads\nexcept ImportError:\n    from simplejson import JSONEncoder, loads as json_loads\n\nimport json\n\nfrom stat import ST_SIZE\nfrom time import time\nfrom re import sub\n\nfrom math import pow, log, floor, ceil\n\nfrom psycopg2 import connect\n#http://initd.org/psycopg/docs/usage.html#unicode-handling\nimport psycopg2.extensions\n\nfrom PIL.ImageDraw import ImageDraw\nfrom PIL import Image\n\nfrom ModestMaps.Core import Coordinate\nfrom ModestMaps.Tiles import toMicrosoft\nfrom ModestMaps.Core import Coordinate\nfrom ModestMaps.OpenStreetMap import Provider\n\nfrom TileStache.Core import KnownUnknown\nfrom TileStache.Vector import VectorResponse\n\nfrom tilestacheexceptions import NothingMoreToSeeHere\nfrom tilestacheexceptions import NothingToSeeHere\n\nosm = Provider()\n\ncolors = [\n    (0,0,0),\n    (8,29,88),\n    (37,52,148),\n    (34,94,168),\n    (29,145,192),\n    (65,182,196),\n    (127,205,187),\n    (199,233,180),\n    (237,248,177),\n    (255,255,217)\n    ]\n\n\ncell_size = 8\nmin_size = 1\nmax_size = 1000000\nlog_base = (max_size - min_size) ** (1./len(colors))\nmethod = \"\" \n\nfat_pixel_count = 32\n\ninput_field = \"\"\nwoe_field = \"\"\n\ndb_user_name = \"\"\ndb_read_name = \"\"\ndb_read_table_name = \"\"\ndb_write_name = \"\"\ndb_write_table_name = \"\"\n        \ndb = None\ncur = None\n\n\ndef size_color(size):\n    \"\"\" Return an interpolated color for a given byte size.\n    \"\"\"\n    index = 0\n    if size > 0:\n        index = 1\n    if size > 29:\n        index = 2\n    if size > 49:\n        index = 3\n    if size > 74:\n        index = 4\n    if size > 99:\n        index = 5\n    if size > 199:\n        index = 6\n    if size > 499:\n        index = 7\n    if size > 999:\n        index = 8\n    if size > 1999:\n        index = 9\n\n    if( index > len(colors) ):\n        index = len(colors) - 1\n    if( index < 0 ):\n        index = 0\n            \n    low_index = int(index)\n    high_index = low_index + 1\n    \n    high_mix = index - low_index\n    low_mix = 1 - high_mix\n    \n    r1, g1, b1 = colors[low_index]\n\n    try:\n        r2, g2, b2 = colors[high_index]\n    except IndexError:\n        return colors[-1]\n    \n    return (int(r1 * low_mix + r2 * high_mix),\n            int(g1 * low_mix + g2 * high_mix),\n            int(b1 * low_mix + b2 * high_mix))\n            \n\ndef size_color_log(size):\n    \"\"\" Return an interpolated color for a given byte size.\n    \"\"\"\n    try:\n        index = log(size - min_size) / log(log_base)\n        if( index > len(colors) ):\n            index = len(colors) - 1\n        if( index < 0 ):\n            index = 0\n    except ValueError:\n        index = 0\n    \n    low_index = int(index)\n    high_index = low_index + 1\n    \n    high_mix = index - low_index\n    low_mix = 1 - high_mix\n    \n    r1, g1, b1 = colors[low_index]\n\n    try:\n        r2, g2, b2 = colors[high_index]\n    except IndexError:\n        return colors[-1]\n    \n    return (int(r1 * low_mix + r2 * high_mix),\n            int(g1 * low_mix + g2 * high_mix),\n            int(b1 * low_mix + b2 * high_mix))\n\n\ndef size_color_unique_id(unique_id=999999999):\n    \"\"\" Return an interpolated color for a given byte size.\n    \"\"\"\n    #r1 = size[-3:]\n    #g1 = size[-6:-3]\n    #b1 = size[-9:-6]\n    \n    red = (unique_id >> 16) & 0xff\n    green = (unique_id >> 8) & 0xff\n    blue = unique_id & 0xff\n    \n    try:\n        red = int( float(red) / 1000 * 255)\n        green = int( float(green) / 1000 * 255)\n        blue = int( float(blue) / 1000 * 255)\n        return (red,green,blue)\n    except:\n        return (255,255,255)\n        \ndef count_votes( self, coord ):\n    cood_start_time = time()\n    \n    #Defaults\n    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]\n    woe_id_1, name_1, photo_count_1 = [-1,u\"-1\",-1]\n    #woe_id_2, name_2, photo_count_2 = [-1,u\"-1\",-1]\n    #woe_id_3, name_3, photo_count_3 = [-1,u\"-1\",-1]\n    #woe_id_4, name_4, photo_count_4 = [-1,u\"-1\",-1]\n\n    ne = osm.coordinateLocation(coord.right())\n    sw = osm.coordinateLocation(coord.down())\n\n    #print \"db_user_name:\", self.db_user_name, \" db_read_name: \", self.db_read_name\n    #self.db = connect(user=self.db_user_name, database=self.db_read_name)\n    #curs = self.db.cursor()\n\n    curs = self.db.cursor()\n    psycopg2.extensions.register_type(psycopg2.extensions.UNICODE, curs)\n\n    curs.execute(\"\"\"\n        SELECT \n            \"\"\" + self.woe_field + \"\"\"\n        FROM \"\"\" + self.db_read_table_name + \n        \"\"\" WHERE photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326)\n        LIMIT 1\n    \"\"\", (sw.lon, sw.lat, ne.lon, ne.lat))\n\n        #AND\n        #\"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\" NOT IN (1648473,1625084,1646678,1642911,1645524,1649378) AND \n        #\"\"\" + self.db_read_table_name + \"\"\".level IN (7,14,35)\n\n    \n    # if we have photos\n    # if we've done the subquads for a quad who's WOE is only itself (identity)\n    # if we've got some photos but not a lot of photos and we're at the minimum viable zoom\n    # or we're at the max zoom\n    \n    is_saveable = False\n    \n    # Do we want to do the min_zoom + 1 logic again?\n    try:\n        photo_count_total = curs.fetchone()[0]\n\n        curs.execute(\"\"\"\n            SELECT \n                COUNT(\"\"\" + self.db_read_table_name + \"\"\".latitude) as \"photos\"\n            FROM \"\"\" + self.db_read_table_name + \n            \"\"\" WHERE photo_geom && ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326)\n        \"\"\", (sw.lon, sw.lat, ne.lon, ne.lat))\n            \n            #AND\n            #\"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\" NOT IN (1648473,1625084,1646678,1642911,1645524,1649378) AND \n            #\"\"\" + self.db_read_table_name + \"\"\".level IN (7,14,35)\n\n        photo_count_total = curs.fetchone()[0]\n\n        if photo_count_total > 0:\n            # Are we at the last requested zoom?\n            if coord.zoom == self.max_zoom:\n                is_saveable = True\n            if (coord.zoom >= self.min_zoom): # and (photo_count_total <= self.min_size):\n                is_saveable = True\n    \n    except:\n        is_saveable = False\n        photo_count_total = 0\n    \n    #print 'photo_count_total', photo_count_total, 'is_saveable', is_saveable\n\n    if is_saveable:\n        #sw = { 'lon':-123.04962, 'lat': 38.23387 }\n        #ne = { 'lon': -121.81091, 'lat': 37.54675 }\n\n        #SELECT\n        #    flickr_locality_data.woe_id as \"woe_id\", geoplanet_places.name as \"name\", COUNT(flickr_locality_data.latitude) as \"photos\"\n        #FROM\n        #    flickr_locality_data, geoplanet_places\n        #WHERE\n        #    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;\n\n        #curs.execute(\"\"\"\n            #SELECT \n            #    \"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\" as \"woe_id\", \n            #    \"\"\" + self.db_read_table_name + \"\"\".woe_lau as \"woe_lau\", \n            #    \"\"\" + self.db_read_table_name + \"\"\".woe_adm2 as \"woe_adm2\", \n            #    \"\"\" + self.db_read_table_name + \"\"\".woe_adm1 as \"woe_adm1\", \n            #    \"\"\" + self.db_read_table_name + \"\"\".woe_adm0 as \"woe_adm0\", \n            #    geoplanet_places.name as \"name\", \n            #    COUNT(\"\"\" + self.db_read_table_name + \"\"\".latitude) as \"photos\"\n            #FROM\n            #    \"\"\" + self.db_read_table_name + \"\"\", geoplanet_places\n            #WHERE \n            #    \"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\" = geoplanet_places.woe_id AND \n            #    \"\"\" + self.db_read_table_name + \"\"\".photo_geom && \n            #    ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326)\n            #GROUP BY \n            #    \"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\",\n            #    \"\"\" + self.db_read_table_name + \"\"\".woe_lau,\n            #    \"\"\" + self.db_read_table_name + \"\"\".woe_adm2,\n            #    \"\"\" + self.db_read_table_name + \"\"\".woe_adm1,\n            #    \"\"\" + self.db_read_table_name + \"\"\".woe_adm0,\n            #    geoplanet_places.name ORDER BY photos DESC LIMIT 5;\n            #\"\"\", (sw.lon, sw.lat, ne.lon, ne.lat))\n\n        if self.woe_method == \"woe\":\n            try:\n                curs.execute(\"\"\"\n                    SELECT \n                        \"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\" as \"woe_id\", \n                        'lookup' as \"name\", \n                        COUNT(\"\"\" + self.db_read_table_name + \"\"\".latitude) as \"photos\"\n                    FROM\n                        \"\"\" + self.db_read_table_name + \"\"\"\n                    WHERE \n                        \"\"\" + self.db_read_table_name + \"\"\".photo_geom && \n                        ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326)\n                    GROUP BY \n                        \"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\"\n                        ORDER BY photos DESC LIMIT 2;\n                    \"\"\", (sw.lon, sw.lat, ne.lon, ne.lat))\n\n                #curs.execute(\"\"\"\n                #    SELECT \n                #        \"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\" as \"woe_id\", \n                #        geoplanet_places.name as \"name\", \n                #        COUNT(\"\"\" + self.db_read_table_name + \"\"\".latitude) as \"photos\"\n                #    FROM\n                #        \"\"\" + self.db_read_table_name + \"\"\", geoplanet_places\n                #    WHERE \n                #        \"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\" = geoplanet_places.woe_id AND \n                #        \"\"\" + self.db_read_table_name + \"\"\".photo_geom && \n                #        ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326)\n                #    GROUP BY \n                #        \"\"\" + self.db_read_table_name + \"\"\".\"\"\" + self.woe_field + \"\"\",\n                #        geoplanet_places.name ORDER BY photos DESC LIMIT 3;\n                #    \"\"\", (sw.lon, sw.lat, ne.lon, ne.lat))\n\n                #wait(dbs)\n                #gevent_psycopg2.gevent_wait_callback(dbs)\n\n                #result = curs.fetchall()\n            except Exception, e:\n                print e\n                pass\n        if self.woe_method == \"checkins\":\n            woe_adm0_0 = -100\n            try:\n                curs.execute(\"\"\"\n                    SELECT \n                        \"\"\" + self.db_read_table_name + \"\"\".geoname_id as \"woe_id\", \"\"\"\n                        #\"\"\" + self.db_read_table_name + \"\"\".gn_placename as \"name\", \n                        \"\"\"COUNT(\"\"\" + self.db_read_table_name + \"\"\".latitude) as \"photos\"\n                    FROM\n                        \"\"\" + self.db_read_table_name + \"\"\"\n                    WHERE \n                        \"\"\"+ self.db_read_table_name + \"\"\".photo_geom && \n                        ST_SetSRID(ST_MakeBox2D(ST_MakePoint((%s), (%s)), ST_MakePoint((%s), (%s))), 4326)\n                    GROUP BY \n                        \"\"\" + self.db_read_table_name + \"\"\".geoname_id\n                    ORDER BY photos DESC LIMIT 2;\n                    \"\"\", (sw.lon, sw.lat, ne.lon, ne.lat))\n\n                        #\"\"\" + self.db_read_table_name + \"\"\".geoname_id NOT IN (1648473,1625084,1646678,1642911,1645524,1649378) AND \n                        #\"\"\" + self.db_read_table_name + \"\"\".level IN (7,14,35) AND \n                        #\"\"\" + self.db_read_table_name + \"\"\".gn_placename\n\n                        #\"\"\" + self.db_read_table_name + \"\"\".level IN (8,9,10,12) AND \n                #wait(dbs)\n                #gevent_psycopg2.gevent_wait_callback(dbs)\n\n                #result = curs.fetchall()\n            except Exception, e:\n                print e\n                pass\n        \n        try:\n            #woe_id_0, woe_lau_0, woe_adm2_0, woe_adm1_0, woe_adm0_0, name_0, photo_count_0 = curs.fetchone()\n            woe_id_0, photo_count_0 = curs.fetchone()\n            name_0 = 'lookup'\n        except Exception, e:\n            #print 'oops', e\n            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]\n        \n        try:\n            #woe_id_1, woe_lau_1, woe_adm2_1, woe_adm1_1, woe_adm0_1, name_1, photo_count_1 = curs.fetchone()\n            woe_id_1, photo_count_1 = curs.fetchone()\n            name_1 = 'lookup'\n        except Exception, e:\n            #print 'oops', e\n            woe_id_1, name_1, photo_count_1 = [-1,u\"-1\",-1]\n\n        #try:\n            #woe_id_2, woe_lau_2, woe_adm2_2, woe_adm1_2, woe_adm0_2, name_2, photo_count_2 = curs.fetchone()\n        #    woe_id_2, name_2, photo_count_2 = curs.fetchone()\n        #except:\n        #    woe_id_2, name_2, photo_count_2 = [-1,u\"-1\",-1]\n\n        #try:\n            #woe_id_3, woe_lau_3, woe_adm2_3, woe_adm1_3, woe_adm0_3, name_3, photo_count_3 = curs.fetchone()\n        #    woe_id_3, name_3, photo_count_3 = curs.fetchone()\n        #except:\n        #    woe_id_3, name_3, photo_count_3 = [-1,\"-1\",-1]\n\n        #try:\n            #woe_id_4, woe_lau_4, woe_adm2_4, woe_adm1_4, woe_adm0_4, name_4, photo_count_4 = curs.fetchone()\n        #    woe_id_4, name_4, photo_count_4 = curs.fetchone()\n        #except:\n        #    woe_id_4, name_4, photo_count_4 = [-1,\"-1\",-1]\n    \n    \n    if photo_count_0 > 0:\n        margin = 1\n    \n    if photo_count_0 > 0 and photo_count_1 > 0:\n        percent_0 = float(photo_count_0) / float(photo_count_total)\n        percent_1 = float(photo_count_1) / float(photo_count_total)\n        margin = percent_0 - percent_1\n    \n    if photo_count_1 == -1:\n        margin = -1\n        \n    #print 'woe_id_0', woe_id_0, 'name_0', name_0, 'photo_count_0', photo_count_0\n    \n    result = {  \"zoom\":coord.zoom, \n                \"column\":coord.column, \n                \"row\":coord.row, \n                \"time\":(time() - cood_start_time), \n                \"photo_count_total\":photo_count_total, \n                \"size\":photo_count_total, # for compatibility\n                \"woe_id0\":woe_id_0, \n                \"woe_id0_lau\":woe_lau_0, \n                \"woe_id0_adm2\":woe_adm2_0, \n                \"woe_id0_adm1\":woe_adm1_0, \n                \"woe_id0_adm0\":woe_adm0_0, \n                \"name0\":name_0, \n                \"photo_count0\":photo_count_0, \n                \"margin0\":margin\n#                \"woe_id1\":woe_id_1, \n#                \"name1\":name_1, \n#                \"photo_count1\":photo_count_1, \n#                \"woe_id2\":woe_id_2, \n#                \"name2\":name_2, \n#                \"photo_count2\":photo_count_2 #, \n#                \"woe_id3\":woe_id_3, \n#                \"name3\":name_3, \n#                \"photo_count3\":photo_count_3, \n#                \"woe_id4\":woe_id_4, \n#                \"name4\":name_4, \n#                \"photo_count4\":photo_count_4\n            }\n            \n    #print result\n\n    return result\n\ndef getAdmins( woe_id ):\n        # don't expect every coord to exist in the data file\n        adm0_woe_id0, adm1_woe_id0, adm2_woe_id0, lau_woe_id0 = [\"-1\",\"-1\",\"-1\",\"-1\"]\n        \n        #if neighborhood, then most often it's geoplanet_places.parent_id of that object?\n        #SELECT\n        #     geoplanet_admins.country_woe_id AS \"country_woe_id\", \n        #     geoplanet_admins.state_woe_id AS \"state_woe_id\", \n        #     geoplanet_admins.county_woe_id AS \"county_woe_id\", \n        #     geoplanet_admins.local_admin_woe_id AS \"local_admin_woe_id\"\n        #FROM\n        #    geoplanet_admins\n        #WHERE\n        #    geoplanet_admins.woe_id = 2355561;\n                \n        if db_read_table_name == 'flickr_neighborhood_data':\n            cur.execute(\"\"\"\n                SELECT \n                    parent_id\n                FROM\n                    geoplanet_places\n                WHERE \n                    woe_id = \"\"\" + str(woe_id) + \"\"\";\"\"\")\n            locality = cur.fetchone()[0]\n        else: \n            locality = woe_id\n        \n        locality = str(locality)\n\n        if locality != \"-1\":\n            cur.execute(\"\"\"\n                SELECT \n                    geoplanet_admins.country_woe_id,\n                    geoplanet_admins.state_woe_id,\n                    geoplanet_admins.county_woe_id,\n                    geoplanet_admins.local_admin_woe_id\n                FROM\n                    geoplanet_admins\n                WHERE \n                    woe_id = \"\"\" + locality + \"\"\";\"\"\")\n            \n            adm0_woe_id0, adm1_woe_id0, adm2_woe_id0, lau_woe_id0 = cur.fetchone()\n        \n        adm0_name0, adm1_name0, adm2_name0, lau_name0 = [\"-1\",\"-1\",\"-1\",\"-1\"]\n                \n        if adm0_woe_id != \"-1\":\n            cur.execute(\"\"\"\n                SELECT \n                    name\n                FROM\n                    geoplanet_places\n                WHERE \n                    woe_id = \"\"\" + str(adm0_woe_id) + \"\"\";\"\"\")\n            try:\n                adm0_name = cur.fetchone()[0]\n            except:\n                pass\n        \n        if adm1_woe_id != \"-1\":\n            cur.execute(\"\"\"\n                SELECT \n                    name\n                FROM\n                    geoplanet_places\n                WHERE \n                    woe_id = \"\"\" + str(adm1_woe_id) + \"\"\";\"\"\")\n            try:\n                adm1_name = cur.fetchone()[0]\n            except:\n                pass\n        \n        if adm2_woe_id != \"-1\":\n            cur.execute(\"\"\"\n                SELECT \n                    name\n                FROM\n                    geoplanet_places\n                WHERE \n                    woe_id = \"\"\" + str(adm2_woe_id) + \"\"\";\"\"\")\n            try:\n                adm2_name = cur.fetchone()[0]\n            except:\n                pass\n            \n        if lau_woe_id != \"-1\":\n            cur.execute(\"\"\"\n                SELECT \n                    name\n                FROM\n                    geoplanet_places\n                WHERE \n                    woe_id = \"\"\" + str(lau_woe_id) + \"\"\";\"\"\")\n            try:\n                lau_name = cur.fetchone()[0]\n            except:\n                pass\n        \n        woe_name = '-1'\n        \n        if locality != \"-1\":\n            cur.execute(\"\"\"\n                SELECT \n                    name\n                FROM\n                    geoplanet_places\n                WHERE \n                    woe_id = \"\"\" + str(locality) + \"\"\";\"\"\")\n            try:\n                woe_name = cur.fetchone()[0]\n            except:\n                pass\n        \n        admins = {}\n        \n        admins['adm0_woe_id'] = str(adm0_woe_id)\n        admins['adm1_woe_id'] = str(adm1_woe_id)\n        admins['adm2_woe_id'] = str(adm2_woe_id)\n        admins['lau_woe_id'] = str(lau_woe_id)\n        admins['locality_woe_id'] = str(locality)\n        \n        admins['adm0_name'] = adm0_name\n        admins['adm1_name'] = adm1_name\n        admins['adm2_name'] = adm2_name\n        admins['lau_name'] = lau_name\n        admins['locality_name'] = woe_name\n        \n        #print 'admins', admins\n        \n        return admins\n\ndef saveTileToDatabase( self, interactivity_array ):\n    for fat_pixel in interactivity_array:\n        #if fat_pixel[\"woe_id\"] == -1:\n        #    continue\n        \n        #print 'getting admins...'\n        #admins = getAdmins( fat_pixel[\"woe_id\"] )        \n        #print 'admins:', admins\n                #(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)\n        \n        #print \"saving...\", fat_pixel\n        #print \"saving...\", fat_pixel[\"photo_count\"], \" in \", fat_pixel[\"name\"]\n        \n        curs = self.db.cursor()\n        psycopg2.extensions.register_type(psycopg2.extensions.UNICODE, curs)\n\n        curs.execute(\"\"\"\n            INSERT \n            INTO \"\"\" + self.db_write_table_name + \"\"\"\n                (woe_id, name, photo_count, photo_count_total, margin, latitude, longitude, x1, y1, x2, y2, row, col, zoom)\n            VALUES \n                (\"\"\" + str(fat_pixel[\"woe_id\"]) + \"\"\",E'\"\"\" \n                     + sub(\"'\", \"\\\\'\", fat_pixel[\"name\"]) + \"\"\"',\"\"\" \n                     + str(fat_pixel[\"photo_count\"]) + \"\"\",\"\"\" \n                     + str(fat_pixel[\"photo_count_total\"]) + \"\"\",\"\"\" \n                     + str(fat_pixel[\"margin\"]) + \"\"\",\"\"\"\n                     + str(fat_pixel[\"latitude\"]) + \"\"\",\"\"\" \n                     + str(fat_pixel[\"longitude\"]) + \"\"\",\"\"\" \n                     + fat_pixel[\"x1\"] + \"\"\",\"\"\" \n                     + fat_pixel[\"y1\"] + \"\"\",\"\"\" \n                     + fat_pixel[\"x2\"] + \"\"\",\"\"\" \n                     + fat_pixel[\"y2\"] + \"\"\",\"\"\" \n                     + fat_pixel[\"row\"] + \"\"\",\"\"\" \n                     + fat_pixel[\"col\"] + \"\"\",\"\"\" \n                     + str(fat_pixel[\"zoom\"]) + \"\"\")\"\"\" )\n\n                     #+ admins['adm0_woe_id'] + \"\"\",\"\"\" \n                     #+ admins['adm1_woe_id'] + \"\"\",\"\"\" \n                     #+ admins['adm2_woe_id'] + \"\"\",\"\"\" \n                     #+ admins['lau_woe_id'] + \"\"\",\"\"\" \n                     #+ admins['locality_woe_id'] + \"\"\",\"\"\" \n                     #+ admins['adm0_name'] + \"\"\",\"\"\" \n                     #+ admins['adm1_name'] + \"\"\",\"\"\" \n                     #+ admins['adm2_name'] + \"\"\",\"\"\" \n                     #+ admins['lau_name'] + \"\"\",\"\"\" \n                     #+ admins['locality_name'] + \"\"\",\"\"\" \n\n        self.db.commit()\n                    \ndef create_utf_grid( self, interactivity_array ):\n    # https://github.com/mapbox/utfgrid-spec/blob/master/1.2/utfgrid.md\n    \n    #3. Figure out how many unique WOEIDs you have present\n    grid = []   # new \"\" string for each row, columns are by UTF chars; \n    keys = []   # keys in utf order as strings\n    data = {}   # data that appears in the interactivity popup, key as in keys, value is arbitrary\n    \n    #4. Make a dictionary of attributes for those WOEIDs and populate it\n    for fat_pixel in interactivity_array:\n        if fat_pixel[\"woe_id\"] == -1:\n            character = ''\n        else:\n            character = str(fat_pixel[\"woe_id\"])\n        data[ character ] = fat_pixel[\"name\"]\n        # + \"\\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\"\n    \n    for k, v in data.iteritems():\n        #print k, v\n        keys.append( k )\n        \n    #JSON doesn't allow control characters, \" and \\ to be encoded as their literal UTF-8 representation. \n    #Encoding an ID works as follows:\n    #Add 32 to the key index. (avoiding gibberish 32 non-displaying characters at beginning of code page)\n    #If the result is >= 34, add 1. (avoiding \" quote character)\n    #If the result is >= 92, add 1. (avoiding \\ back-slash character)\n    \n    row_counter = 0\n    row_content = \"\"\n    \n    for x in range(len(interactivity_array)):\n        fat_pixel = interactivity_array[x]\n        \n        # find the index in the keys for this cell value\n        try:\n            code = keys.index( str(fat_pixel[\"woe_id\"]) )\n        except:\n            code = 0\n\n        code = code + 32\n        if code >= 34: \n            code = code + 1\n        if code >= 92:\n            code = code + 1\n        \n        # are we at a new row, and not the first row?\n        if x % fat_pixel_count == 0 and x > 0:\n            grid.append( row_content )\n            #print row_content\n            row_content = \"\"\n        else:\n            row_content += unichr( code )\n    \n    utf_grid_result = { 'grid':grid, 'keys':keys, 'data':data } \n    \n    #print \"utf_grid_result: \", utf_grid_result\n    \n    return utf_grid_result\n\nclass Provider:\n    \n    def __init__(self,  layer, \n                        cell_size=8, #fatbits, yo\n                        min_zoom=7, # min zoom before we start saving results\n                        max_zoom=8, # or don't go any farther\n                        input_field=\"size\", \n                        woe_field=\"woe_id\",\n                        output_format=\"image\", #or geojson, or interactivity\n                        min_size=1, \n                        max_size=1000000, \n                        margin_percent=1,\n                        method=\"size_log\",\n                        db_user_name=\"foursquare\", \n                        db_read_name=\"foursquare\",\n                        db_read_table_name=\"flickr_locality_data\",\n                        db_write_name=\"\",   #not used\n                        db_write_table_name=\"\", #not used\n                        num_processes=1,\n                        woe_method = \"woe\"\n                        \n                ):\n        \"\"\"\n        \"\"\"\n        self.layer = layer\n        self.cell_size = cell_size\n        self.min_zoom = min_zoom\n        self.max_zoom = max_zoom\n        self.min_size = min_size\n        self.max_size = max_size\n        self.margin_percent = margin_percent\n        self.method = method \n        self.input_field = input_field\n        self.woe_field = woe_field\n        self.output_format = output_format\n        self.woe_method = woe_method\n        \n        self.db_user_name = db_user_name\n        self.db_read_name = db_read_name\n        self.db_read_table_name = db_read_table_name\n        self.db_write_name =db_write_name\n        self.db_write_table_name = db_write_table_name\n        self.num_processes = num_processes\n        \n        if len(self.db_write_name) > 0 and len(self.db_write_table_name) > 0:\n            self.db_export = True\n        \n        self.log_base = (max_size - min_size) ** (1./len(colors))\n\n        #print \"db_user_name:\", self.db_user_name, \" db_read_name: \", self.db_read_name\n        \n        # Connect to the database        \n        self.db = connect(user=self.db_user_name, database=self.db_read_name)\n        self.cur = self.db.cursor()\n        psycopg2.extensions.register_type(psycopg2.extensions.UNICODE, self.cur)\n        \n    def renderTile(self, width, height, srs, coord):\n        \"\"\"\n        \"\"\"\n        img = Image.new('RGB', (width, height), colors[0])\n        draw = ImageDraw(img)\n        \n        interactivity_array = []\n        \n        base_zoom = coord.zoom\n        base_row = coord.row\n        base_column = coord.column\n        \n        #We're showing detail for three zooms in from here, as fat pixels (32 pix)\n        #256 pixels / tile = 8 pixels / tile = 32 pixels (which is 2^5)\n\n        tile_pixel_width = 256\n        #print 'coord:', coord\n        #print 'base_zoom:', base_zoom\n        \n        # 256 pixel tile == 2^8 pixel tile, so this is a constant\n        tile_power_of_two = 8\n        \n        # we want 8x8 fatbits == 2^3 pixel fatbits\n        #TODO: use self.cell_size to find log of 2 to x?\n        pixel_power_of_two = int(log( self.cell_size, 2 ))\n        \n        fat_pixel_width = 2**pixel_power_of_two\n        self.fat_pixel_count = 2**(tile_power_of_two - pixel_power_of_two)\n\n        # adjust the coord to be the pixel zoom\n        coord = coord.zoomBy(tile_power_of_two - pixel_power_of_two)\n        \n        #print \"fat_pixel_count: \", fat_pixel_count\n        #print \"coord: \", coord       \n        #print 'over_sample_zoom_tile_width: ', over_sample_zoom_tile_width\n        \n        #find the fat_pixel with the maximum photo count\n        max_count = 0\n        top_count = 0\n        top_margin = 0\n        \n        #We should be seeing 64 cells (8x8) output image\n        for row in range( self.fat_pixel_count ):\n            for col in range( self.fat_pixel_count ):\n                \n                ul = coord.right(col).down(row)\n                lr = ul.right().down()\n                \n                #Calculate key for the size dict\n                subquad = Coordinate(ul.row, ul.column, ul.zoom)\n                \n                #print 'subquad:', subquad\n                \n                # these values should always be within (0, 256)\n                x1 = col * fat_pixel_width\n                x2 = (col + 1) * fat_pixel_width\n                y1 = row * fat_pixel_width\n                y2 = (row + 1) * fat_pixel_width\n                \n                #Draw fat pixel based on the returned color based on count (size) in that subquad in the dictionary\n                #Implied that no-data is color[0], above where the img is instantiated\n                \n                enumeration = count_votes( self, subquad )\n                                \n                if max_count < enumeration[\"photo_count_total\"]:\n                    max_count = enumeration[\"photo_count_total\"]\n                \n                if top_count < enumeration[\"photo_count0\"]:\n                    top_count = enumeration[\"photo_count0\"]\n                    \n                if self.output_format == \"utf_grid\":\n                    nw = osm.coordinateLocation(subquad)\n                    se = osm.coordinateLocation(subquad.right().down())\n\n                    lat = (nw.lat - se.lat) / 2 + se.lat\n                    lon = (se.lon - nw.lon) / 2 + nw.lon\n                                        \n                    interactivity_array.append( {   \"photo_count_total\":enumeration[\"photo_count_total\"], \n                                                    \"woe_id\":enumeration[\"woe_id0\"], \n                                                    #\"woe_id_lau\":enumeration[\"woe_id0_lau\"], \n                                                    #\"woe_id_adm2\":enumeration[\"woe_id0_adm2\"], \n                                                    #\"woe_id_adm1\":enumeration[\"woe_id0_adm1\"], \n                                                    \"woe_id_adm0\":enumeration[\"woe_id0_adm0\"],\n                                                    \"name\":enumeration[\"name0\"], \n                                                    \"photo_count\":enumeration[\"photo_count0\"],\n                                                    \"margin\":enumeration[\"margin0\"],\n                                                    \"latitude\":lat,\n                                                    \"longitude\":lon, \n                                                    \"x1\": str(nw.lon),\n                                                    \"y1\": str(se.lat),\n                                                    \"x2\": str(se.lon),\n                                                    \"y2\": str(nw.lat),\n                                                    \"row\":str(base_row + row),\n                                                    \"col\":str(base_column + col),\n                                                    \"zoom\": coord.zoom } )\n                elif self.method == \"size_log\":\n                    draw.rectangle((x1, y1, x2, y2), size_color_log(int( enumeration[self.input_field]) ))\n                elif self.method == \"size\":\n                    draw.rectangle((x1, y1, x2, y2), size_color(int( enumeration[self.input_field]) ))\n                elif self.method == \"unique_id\":\n                    draw.rectangle((x1, y1, x2, y2), size_color_unique_id(int( enumeration[self.input_field]) )) \n\n        if self.output_format == \"utf_grid\":\n            #print \"interactivity_array: \", interactivity_array\n            #grid_utf = create_utf_grid( self, interactivity_array )\n            grid_utf = { 'grid':['','.'] }\n                \n            if max_count == 0:\n                raise NothingToSeeHere()\n            \n            is_saveable = False\n            \n            # Are we at the last requested zoom?\n            if coord.zoom == self.max_zoom:\n                is_saveable = True\n            # Are we at the minimum viable zoom but with little to no data?\n            if (coord.zoom >= self.min_zoom) and (max_count <= self.min_size):\n                is_saveable = True\n            # Are we viable zoom, viable count, and no ambiguity as to the 100% within margin the winner?\n            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)):\n                is_saveable = True\n            # Don't want to dig for needles\n            #if coord.zoom == 17 and base_row == 50816 and base_column == 21045:\n            #    print '(coord.zoom >= (self.min_zoom + 1)) and ((max_count - top_count) < self.min_size):'\n            #    print coord.zoom,(self.min_zoom + 1),max_count, top_count, self.min_size\n            if (coord.zoom >= (self.min_zoom + 1)) and ((max_count - top_count) < self.min_size):\n            #(max_count > self.min_size) and \n                is_saveable = True\n\n            # and (interactivity_array[\"margin\"] >= self.margin_percent)\n\n            if is_saveable:\n                #print \"should save to DB\"\n                #print \"interactivity_array: \", interactivity_array                \n                saveTileToDatabase( self, interactivity_array )\n                raise NothingMoreToSeeHere( SaveableResponse(json.dumps(grid_utf)) )\n            else:            \n                return SaveableResponse(json.dumps(grid_utf))\n                \n        elif self.output_format == \"geojson\":\n            grid_utf = create_utf_grid( self, interactivity_array )\n            return SaveableResponse(json.dumps(grid_utf))\n        else:\n            return img\n            \n    def getTypeByExtension(self, extension):\n        \"\"\" Get mime-type and format by file extension.\n\n            This only accepts png (image), json (utf_grid interactivity), or geojson (vector)\".\n        \"\"\"\n        \n        if self.output_format == \"utf_grid\":        \n            if extension.lower() != 'json':\n                raise KnownUnknown('FourSquare provider only makes .json tiles, not \"%s\"' % extension)\n\n        if extension.lower() == 'json':\n            return 'text/json', 'JSON'\n\n        if extension.lower() == 'geojson':\n            return 'text/json', 'GeoJSON'\n        \n        if extension.lower() == 'png':\n            return 'image/png', 'PNG'\n    \n        raise KnownUnknown('FourSquare Provider only makes .geojson, .json, and .png tiles, not \"%s\"' % extension)\n\nclass SaveableResponse:\n    \"\"\" Wrapper class for JSON response that makes it behave like a PIL.Image object.\n\n        TileStache.getTile() expects to be able to save one of these to a buffer.\n    \"\"\"\n    def __init__(self, content):\n        self.content = content\n\n    def save(self, out, format):\n        #\n        # Serialize\n        #\n        if format in ('GeoJSON'):\n            #print \"GeoJSON: \", self.content\n            content = self.content\n            \n            #if 'wkt' in content['crs']:\n            #    content['crs'] = {'type': 'link', 'properties': {'href': '0.wkt', 'type': 'ogcwkt'}}\n            #else:\n            #    del content['crs']\n\n        elif format in ('PNG'):\n            content = self.content\n        \n        else:\n            raise KnownUnknown('FourSquare response only saves .png, .json, and .geojson tiles, not \"%s\"' % format)\n\n        #\n        # Encode\n        #\n        if format in ('GeoJSON'):\n            #indent = self.verbose and 2 or None\n            indent = 2\n            \n            encoded = JSONEncoder(indent=indent).iterencode(content)\n            out.write(encoded)\n\n        elif format in ('JSON'):\n            out.write(content)\n\n        elif format in ('PNG'):\n            out.write(content)\n    \nif __name__ == '__main__':\n    p = Provider(None)\n            \n    #This is done in an odd order where the Zoom is last\n    p.renderTile(256, 256, '', Coordinate(3, 2, 3)).save('out.png')"
  },
  {
    "path": "quattroshapes/tilestache-seed.py",
    "content": "#!/usr/bin/env python\n\"\"\"tilestache-seed.py will warm your cache.\n\nThis script is intended to be run directly. This example seeds the area around\nWest Oakland (http://sta.mn/ck) in the \"osm\" layer, for zoom levels 12-15:\n\n    tilestache-seed.py -c ./config.json -l osm -b 37.79 -122.35 37.83 -122.25 -e png 12 13 14 15\n\nSee `tilestache-seed.py --help` for more information.\n\"\"\"\n\nfrom sys import stderr, path\nfrom os.path import realpath, dirname\nfrom optparse import OptionParser\nfrom urlparse import urlparse\nfrom urllib import urlopen\nimport itertools\nfrom time import time\nfrom datetime import timedelta\nfrom math import pow\n\nfrom ModestMaps.OpenStreetMap import Provider\n\nfrom tilestacheexceptions import NothingMoreToSeeHere\nfrom tilestacheexceptions import NothingToSeeHere\n\nimport imerge\n\ntry:\n    from json import dump as json_dump\n    from json import load as json_load\nexcept ImportError:\n    from simplejson import dump as json_dump\n    from simplejson import load as json_load\n\nosm = Provider()\ncoordinates = None\n\n#\n# Most imports can be found below, after the --include-path option is known.\n#\n\nparser = OptionParser(usage=\"\"\"%prog [options] [zoom...]\n\nSeeds a single layer in your TileStache configuration - no images are returned,\nbut TileStache ends up with a pre-filled cache. Bounding box is given as a pair\nof lat/lon coordinates, e.g. \"37.788 -122.349 37.833 -122.246\". Output is a list\nof tile paths as they are created.\n\nExample:\n\n    tilestache-seed.py -b 52.55 13.28 52.46 13.51 -c tilestache.cfg -l osm 11 12 13\n\nProtip: extract tiles from an MBTiles tileset to a directory like this:\n\n    tilestache-seed.py --from-mbtiles filename.mbtiles --output-directory dirname\n\nConfiguration, bbox, and layer options are required; see `%prog --help` for info.\"\"\")\n\ndefaults = dict(padding=0, verbose=True, enable_retries=False, reconnoiter=False, bbox=(37.777, -122.352, 37.839, -122.226))\n\nparser.set_defaults(**defaults)\n\nparser.add_option('-c', '--config', dest='config',\n                  help='Path to configuration file, typically required.')\n\nparser.add_option('-l', '--layer', dest='layer',\n                  help='Layer name from configuration, typically required.')\n\nparser.add_option('-b', '--bbox', dest='bbox',\n                  help='Bounding box in floating point geographic coordinates: south west north east. Default value is %.3f, %.3f, %.3f, %.3f.' % defaults['bbox'],\n                  type='float', nargs=4)\n\nparser.add_option('-p', '--padding', dest='padding',\n                  help='Extra margin of tiles to add around bounded area. Default value is %s (no extra tiles).' % repr(defaults['padding']),\n                  type='int')\n\nparser.add_option('-e', '--extension', dest='extension',\n                  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.')\n\nparser.add_option('-f', '--progress-file', dest='progressfile',\n                  help=\"Optional JSON progress file that gets written on each iteration, so you don't have to pay close attention.\")\n\nparser.add_option('-q', action='store_false', dest='verbose',\n                  help='Suppress chatty output, --progress-file works well with this.')\n\nparser.add_option('-i', '--include-path', dest='include_paths',\n                  help=\"Add the following colon-separated list of paths to Python's include path (aka sys.path)\")\n\nparser.add_option('-d', '--output-directory', dest='outputdirectory',\n                  help='Optional output directory for tiles, to override configured cache with the equivalent of: {\"name\": \"Disk\", \"path\": <output directory>, \"dirs\": \"portable\", \"gzip\": []}. More information in http://tilestache.org/doc/#caches.')\n\nparser.add_option('--to-mbtiles', dest='mbtiles_output',\n                  help='Optional output file for tiles, will be created as an MBTiles 1.1 tileset. See http://mbtiles.org for more information.')\n\nparser.add_option('--to-s3', dest='s3_output',\n                  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.',\n                  nargs=3)\n\nparser.add_option('--from-mbtiles', dest='mbtiles_input',\n                  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).')\n\nparser.add_option('--tile-list', dest='tile_list',\n                  help='Optional file of tile coordinates, a simple text list of Z/X/Y coordinates. Overrides --bbox and --padding.')\n\nparser.add_option('--error-list', dest='error_list',\n                  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.')\n\nparser.add_option('--enable-retries', dest='enable_retries',\n                  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']),\n                  action='store_true')\n                  \nparser.add_option('--recon', '--reconnoiter', dest='reconnoiter',\n                  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']),\n                  action='store_true')\n\nparser.add_option('-x', '--ignore-cached', action='store_true', dest='ignore_cached',\n                  help='Re-render every tile, whether it is in the cache already or not.')\n\nparser.add_option('--jsonp-callback', dest='callback',\n                  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.')\n\ndef generateCoordinates(ul, lr, zooms, padding):\n    \"\"\" Generate a stream of (offset, count, coordinate) tuples for seeding.\n    \n        Flood-fill coordinates based on two corners, a list of zooms and padding.\n    \"\"\"\n    # start with a simple total of all the coordinates we will need.\n    count = 0\n    \n    for zoom in zooms:\n        ul_ = ul.zoomTo(zoom).container().left(padding).up(padding)\n        lr_ = lr.zoomTo(zoom).container().right(padding).down(padding)\n        \n        rows = lr_.row + 1 - ul_.row\n        cols = lr_.column + 1 - ul_.column\n        \n        count += int(rows * cols)\n\n    # now generate the actual coordinates.\n    # offset starts at zero\n    offset = 0\n    \n    for zoom in zooms:\n        ul_ = ul.zoomTo(zoom).container().left(padding).up(padding)\n        lr_ = lr.zoomTo(zoom).container().right(padding).down(padding)\n\n        for row in range(int(ul_.row), int(lr_.row + 1)):\n            for column in range(int(ul_.column), int(lr_.column + 1)):\n                coord = Coordinate(row, column, zoom)\n                \n                yield (offset, count, coord)\n                \n                offset += 1\n\ndef generateSubquads2(coord, increment):\n    increment = int(increment)\n    origin = coord.zoomBy(increment)\n    \n    count = int(pow(2, increment) * pow(2, increment))\n    offset = -1\n    \n    for a in range(0,int(pow(2, increment))):\n        for b in range(0,int(pow(2, increment))):\n            this = origin.right(a)\n            this = this.down(b)\n            offset += 1\n            yield (offset, count, coord)\n        \n    \n\ndef generateSubquads(row, column, zoom):\n    row0, col0, row1, col1, zoom1 \\\n        = row*2, column*2, row*2+1, column*2+1, zoom+1\n    \n    count = 4\n    \n    offset = 0\n\n    for r in range(2):\n        for c in range(2):\n            if r==0 and c==0:\n                coord = Coordinate(row0, col0, zoom1)\n            if r==0 and c==1:\n                coord = Coordinate(row0, col1, zoom1)\n            if r==1 and c==0:\n                coord = Coordinate(row1, col0, zoom1)\n            if r==1 and c==1:\n                coord = Coordinate(row1, col1, zoom1)\n            \n            #print coord\n            \n            # Ensure we only yield coords in the area of interest\n            #if extentContainsCoord( render_bbox, coord ):\n            #print '\\t', coord\n            yield (offset, count, coord)\n            #else:\n            #    continue\n\n            offset += 1\n            \ndef extentContainsCoord( container_extent, coord ):\n    \"\"\" Tests contains extent of coordinate compared to  bounding box.\n    \"\"\"\n    nw = osm.coordinateLocation(coord)\n    se = osm.coordinateLocation(coord.right().down())\n\n    coord_bounds = [ nw.lon, nw.lat, se.lon, se.lat ]\n    \n    # Assumes a cylindrical projection like Web Mercator with perpendicular latitudes and longitudes\n    return not ( coord_bounds[0] > container_extent[2] \n                or coord_bounds[2] < container_extent[0]\n                or coord_bounds[1] > container_extent[3]\n                or coord_bounds[3] < container_extent[2]);\n        \ndef listCoordinates(filename):\n    \"\"\" Generate a stream of (offset, count, coordinate) tuples for seeding.\n    \n        Read coordinates from a file with one Z/X/Y coordinate per line.\n    \"\"\"\n    coords = (line.strip().split('/') for line in open(filename, 'r'))\n    coords = (map(int, (row, column, zoom)) for (zoom, column, row) in coords)\n    coords = [Coordinate(*args) for args in coords]\n    \n    count = len(coords)\n    \n    for (offset, coord) in enumerate(coords):\n        yield (offset, count, coord)\n\ndef tilesetCoordinates(filename):\n    \"\"\" Generate a stream of (offset, count, coordinate) tuples for seeding.\n    \n        Read coordinates from an MBTiles tileset filename.\n    \"\"\"\n    coords = MBTiles.list_tiles(filename)\n    count = len(coords)\n    \n    for (offset, coord) in enumerate(coords):\n        yield (offset, count, coord)\n\ndef parseConfigfile(configpath):\n    \"\"\" Parse a configuration file and return a raw dictionary and dirpath.\n    \n        Return value can be passed to TileStache.Config.buildConfiguration().\n    \"\"\"\n    config_dict = json_load(urlopen(configpath))\n    \n    scheme, host, path, p, q, f = urlparse(configpath)\n    \n    if scheme == '':\n        scheme = 'file'\n        path = realpath(path)\n    \n    dirpath = '%s://%s%s' % (scheme, host, dirname(path).rstrip('/') + '/')\n    \n    return config_dict, dirpath\n\ndef c():\n    yield coordinates.next()\n\nif __name__ == '__main__':\n    options, zooms = parser.parse_args()\n\n    if options.include_paths:\n        for p in options.include_paths.split(':'):\n            path.insert(0, p)\n\n    from TileStache import getTile, Config\n    from TileStache.Core import KnownUnknown\n    from TileStache.Config import buildConfiguration\n    from TileStache import MBTiles\n    import TileStache\n    \n    from ModestMaps.Core import Coordinate\n    from ModestMaps.Geo import Location\n\n    try:\n        # determine if we have enough information to prep a config and layer\n        \n        time_start = time()\n        tiles_renderd = 0\n        \n        has_fake_destination = bool(options.outputdirectory or options.mbtiles_output)\n        has_fake_source = bool(options.mbtiles_input)\n        \n        if has_fake_destination and has_fake_source:\n            config_dict, config_dirpath = parseConfigfile(options.config)\n            layer_dict = dict()\n            \n            config_dict['cache'] = dict(name='test')\n            config_dict['layers'][options.layer or 'tiles-layer'] = layer_dict\n        \n        elif options.config is None:\n            raise KnownUnknown('Missing required configuration (--config) parameter.')\n        \n        elif options.layer is None:\n            raise KnownUnknown('Missing required layer (--layer) parameter.')\n    \n        else:\n            config_dict, config_dirpath = parseConfigfile(options.config)\n            \n            if options.layer not in config_dict['layers']:\n                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()))))\n            \n            layer_dict = config_dict['layers'][options.layer]\n            layer_dict['write_cache'] = True # Override to make seeding guaranteed useful.\n        \n        # override parts of the config and layer if needed\n        \n        extension = options.extension\n\n        if options.mbtiles_input:\n            layer_dict['provider'] = dict(name='mbtiles', tileset=options.mbtiles_input)\n            n, t, v, d, format, b = MBTiles.tileset_info(options.mbtiles_input)\n            extension = format or extension\n        \n        # determine or guess an appropriate tile extension\n        \n        if extension is None:\n            provider_name = layer_dict['provider'].get('name', '').lower()\n            \n            if provider_name == 'mapnik grid':\n                extension = 'json'\n            elif provider_name == 'vector':\n                extension = 'geojson'\n            else:\n                extension = 'png'\n        \n        # override parts of the config and layer if needed\n        \n        tiers = []\n        \n        if options.mbtiles_output:\n            tiers.append({'class': 'TileStache.MBTiles:Cache',\n                          'kwargs': dict(filename=options.mbtiles_output,\n                                         format=extension,\n                                         name=options.layer)})\n        \n        if options.outputdirectory:\n            tiers.append(dict(name='disk', path=options.outputdirectory,\n                              dirs='portable', gzip=[]))\n\n        if options.s3_output:\n            access, secret, bucket = options.s3_output\n            tiers.append(dict(name='S3', bucket=bucket,\n                              access=access, secret=secret))\n        \n        if len(tiers) > 1:\n            config_dict['cache'] = dict(name='multi', tiers=tiers)\n        elif len(tiers) == 1:\n            config_dict['cache'] = tiers[0]\n        else:\n            # Leave config_dict['cache'] as-is\n            pass\n        \n        # create a real config object\n        \n        config = buildConfiguration(config_dict, config_dirpath)\n        layer = config.layers[options.layer]\n        \n        # do the actual work\n        \n        lat1, lon1, lat2, lon2 = options.bbox\n        south, west = min(lat1, lat2), min(lon1, lon2)\n        north, east = max(lat1, lat2), max(lon1, lon2)\n        \n        render_bbox = [ west, north, east, south ]\n\n        northwest = Location(north, west)\n        southeast = Location(south, east)\n\n        ul = layer.projection.locationCoordinate(northwest)\n        lr = layer.projection.locationCoordinate(southeast)\n                \n        for (i, zoom) in enumerate(zooms):\n            if not zoom.isdigit():\n                raise KnownUnknown('\"%s\" is not a valid numeric zoom level.' % zoom)\n\n            zooms[i] = int(zoom)\n                    \n        if options.padding < 0:\n            raise KnownUnknown('A negative padding will not work.')\n\n        padding = options.padding\n        tile_list = options.tile_list\n        error_list = options.error_list\n\n    except KnownUnknown, e:\n        parser.error(str(e))\n\n    if tile_list:\n        coordinates = listCoordinates(tile_list)\n    elif options.mbtiles_input:\n        coordinates = tilesetCoordinates(options.mbtiles_input)\n    elif options.reconnoiter:\n        #tiles_max_coverage = len(list(generateCoordinates(ul, lr, zooms, padding)))\n        zoom_min = min(zooms)\n        coordinates = generateCoordinates(ul, lr, [zoom_min], padding)\n    else:\n        coordinates = generateCoordinates(ul, lr, zooms, padding)\n    \n    coordinates = list(coordinates)\n    \n    for (offset, count, coord) in coordinates:\n    #while coordinates:\n        #offset, count, coord = coordinates.pop(0)\n        \n        path = '%s/%d/%d/%d.%s' % (layer.name(), coord.zoom, coord.column, coord.row, extension)\n\n        progress = {\"tile\": path,\n                    \"offset\": offset + 1,\n                    \"total\": count}\n\n        #\n        # Fetch a tile.\n        #\n        \n        attempts = options.enable_retries and 3 or 1\n        rendered = False\n        \n        while not rendered:\n            if options.verbose:\n                print >> stderr, '%(offset)d of %(total)d...' % progress,\n    \n            try:\n                mimetype, content = getTile(layer, coord, extension, options.ignore_cached)\n                \n                if 'json' in mimetype and options.callback:\n                    js_path = '%s/%d/%d/%d.js' % (layer.name(), coord.zoom, coord.column, coord.row)\n                    js_body = '%s(%s);' % (options.callback, content)\n                    js_size = len(js_body) / 1024\n                    \n                    layer.config.cache.save(js_body, layer, coord, 'JS')\n                    print >> stderr, '%s (%dKB)' % (js_path, js_size),\n            \n                elif options.callback:\n                    print >> stderr, '(callback ignored)',\n            \n            except NothingMoreToSeeHere:\n                #print 'NothingMoreToSeeHere'\n\n                rendered = True\n                #progress['size'] = '%dKB' % (len(content) / 1024)\n    \n                tiles_renderd = tiles_renderd + 1\n            \n                #if options.verbose:\n                #    print >> stderr, '%(tile)s (%(size)s)' % progress\n                #    print >> stderr, \"Skipping tile %s's children.\" % (progress['tile'],)\n            \n                break\n\n            except NothingToSeeHere:\n                #print 'NothingToSeeHere'\n\n                if options.verbose:\n                    print >> stderr, \"Skipping %s and all it's children.\" % (progress['tile'],)\n\n                break\n\n            except Exception as e:\n                #\n                # Something went wrong: try again? Log the error?\n                #\n                \n                #if options.reconnoiter:\n                #    break\n\n                attempts -= 1\n\n                if options.verbose:\n                    print >> stderr, 'Failed %s, will try %s more.' % (progress['tile'], ['no', 'once', 'twice'][attempts])\n            \n                if attempts == 0:\n                    if not error_list:\n                        raise\n                \n                    fp = open(error_list, 'a')\n                    fp.write('%(zoom)d/%(column)d/%(row)d\\n' % coord.__dict__)\n                    fp.close()\n                    break\n            \n            else:\n                #\n                # Successfully got the tile.\n                #\n                rendered = True\n                progress['size'] = '%dKB' % (len(content) / 1024)\n                        \n                if options.verbose:\n                    print >> stderr, '%(tile)s (%(size)s)' % progress\n                    \n                if options.reconnoiter:\n                    #print \"got to reconnoiter...\"\n                    #if len(content) > 350:\n                    if (coord.zoom+1) in zooms and (coord.zoom+1) <= max(zooms):\n                        #coordinates.extend(generateSubquads2(coord, 2))\n                        #coordinates = imerge(coordinates, generateSubquads2(coord, 1))\n                        coordinates.extend( generateSubquads(coord.row, coord.column, coord.zoom) )\n                        #coordinates = imerge(coordinates, generateSubquads(coord.row, coord.column, coord.zoom))\n                        #coordinates = itertools.chain(coordinates, generateSubquads(coord.row, coord.column, coord.zoom))\n                else:\n                    tiles_renderd = tiles_renderd + 1            \n                \n        if options.progressfile:\n            fp = open(options.progressfile, 'w')\n            json_dump(progress, fp)\n            fp.close()\n            \n    time_end = time()\n    time_display = str( timedelta(seconds=(time_end - time_start)))\n    time_total_minutes = round((time_end - time_start) / 60, 1)\n    if time_total_minutes > 1: \n        tpm = round(float(tiles_renderd) / time_total_minutes)\n    else:\n        tpm = tiles_renderd\n    \n    print 'Stached %s tiles in %s (%s tpm)' % (tiles_renderd, time_display, tpm)\n\n    #if options.reconnoiter:\n    #    tiles_skipped = tiles_max_coverage - tiles_renderd\n    #    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)"
  },
  {
    "path": "quattroshapes/tilestache.cfg",
    "content": "{\n    \"cache\": {\"name\": \"Disk\", \"path\":\"tiles/\", \"dirs\":\"portable\", \"gzip\": []},\n    \"layers\":\n    {\n        \"flickr_locality_interactivity\":\n        {\n            \"provider\": {\"class\": \"tile_renderer_full_database:Provider\",\n\t\t\t\t\"kwargs\": { \"input_field\": \"size\", \n\t\t\t\t\t\t\t\"woe_field\": \"woe_locality\", \n\t\t\t\t\t\t\t\"output_format\": \"utf_grid\", \n\t\t\t\t\t\t\t\"cell_size\": 256, \n\t\t\t\t\t\t\t\"min_zoom\": 15, \n\t\t\t\t\t\t\t\"max_zoom\": 18, \n\t\t\t\t\t\t\t\"min_size\": 30, \n\t\t\t\t\t\t\t\"max_size\": 300, \n\t\t\t\t\t\t\t\"margin_percent\": 0.9,\n\t\t\t\t\t\t\t\"method\": \"size_log\", \n\t\t\t\t\t\t\t\"db_user_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_read_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_read_table_name\": \"flickr_merged_data\", \n\t\t\t\t\t\t\t\"db_write_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_write_table_name\": \"quatroshapes\",\n\t\t\t\t\t\t\t\"num_processes\": 1 }\n\t\t\t},\n            \"preview\": { \"zoom\": 5,\n            \t\t\t \"ext\": \"png\" }\n        },\n        \"checkins_matchme\":\n        {\n            \"provider\": {\"class\": \"tile_renderer_full_database:Provider\",\n\t\t\t\t\"kwargs\": { \"input_field\": \"size\", \n\t\t\t\t\t\t\t\"woe_field\": \"geoname_id\", \n\t\t\t\t\t\t\t\"output_format\": \"utf_grid\", \n\t\t\t\t\t\t\t\"cell_size\": 256, \n\t\t\t\t\t\t\t\"min_zoom\": 15, \n\t\t\t\t\t\t\t\"max_zoom\": 18, \n\t\t\t\t\t\t\t\"min_size\": 30, \n\t\t\t\t\t\t\t\"max_size\": 300, \n\t\t\t\t\t\t\t\"margin_percent\": 0.9,\n\t\t\t\t\t\t\t\"method\": \"size_log\", \n\t\t\t\t\t\t\t\"db_user_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_read_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_read_table_name\": \"checkins_r5\", \n\t\t\t\t\t\t\t\"db_write_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_write_table_name\": \"quatroshapes\",\n\t\t\t\t\t\t\t\"num_processes\": 1,\n\t\t\t\t\t\t\t\"woe_method\": \"checkins\" }\n\t\t\t},\n            \"preview\": { \"zoom\": 5,\n            \t\t\t \"ext\": \"png\" }\n        },\n        \"checkins_city\":\n        {\n            \"provider\": {\"class\": \"tile_renderer_full_database:Provider\",\n\t\t\t\t\"kwargs\": { \"input_field\": \"size\", \n\t\t\t\t\t\t\t\"woe_field\": \"cityname\", \n\t\t\t\t\t\t\t\"output_format\": \"utf_grid\", \n\t\t\t\t\t\t\t\"cell_size\": 256, \n\t\t\t\t\t\t\t\"min_zoom\": 15, \n\t\t\t\t\t\t\t\"max_zoom\": 18, \n\t\t\t\t\t\t\t\"min_size\": 20, \n\t\t\t\t\t\t\t\"max_size\": 200, \n\t\t\t\t\t\t\t\"margin_percent\": 0.9,\n\t\t\t\t\t\t\t\"method\": \"size_log\", \n\t\t\t\t\t\t\t\"db_user_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_read_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_read_table_name\": \"checkins_r5\", \n\t\t\t\t\t\t\t\"db_write_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_write_table_name\": \"quatroshapes_extras\",\n\t\t\t\t\t\t\t\"num_processes\": 1,\n\t\t\t\t\t\t\t\"woe_method\": \"checkins\" }\n\t\t\t},\n            \"preview\": { \"zoom\": 5,\n            \t\t\t \"ext\": \"png\" }\n        },\n        \"flickr_neighborhoods\":\n        {\n            \"provider\": {\"class\": \"tile_renderer_full_database:Provider\",\n\t\t\t\t\"kwargs\": { \"input_field\": \"size\", \n\t\t\t\t\t\t\t\"woe_field\": \"woe_id\", \n\t\t\t\t\t\t\t\"output_format\": \"utf_grid\", \n\t\t\t\t\t\t\t\"cell_size\": 256, \n\t\t\t\t\t\t\t\"min_zoom\": 16, \n\t\t\t\t\t\t\t\"max_zoom\": 20, \n\t\t\t\t\t\t\t\"min_size\": 30, \n\t\t\t\t\t\t\t\"max_size\": 300, \n\t\t\t\t\t\t\t\"margin_percent\": 0.9,\n\t\t\t\t\t\t\t\"method\": \"size_log\", \n\t\t\t\t\t\t\t\"db_user_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_read_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_read_table_name\": \"flickr_neighborhood_data\", \n\t\t\t\t\t\t\t\"db_write_name\": \"foursquare\", \n\t\t\t\t\t\t\t\"db_write_table_name\": \"quatroshapes_neighborhoods\",\n\t\t\t\t\t\t\t\"num_processes\": 1,\n\t\t\t\t\t\t\t\"woe_method\": \"woe\" }\n\t\t\t},\n            \"preview\": { \"zoom\": 5,\n            \t\t\t \"ext\": \"png\" }\n        },\n        \"flickr_locality_density\":\n        {\n            \"provider\": {\"class\": \"tile_renderer_full_database:Provider\",\n\t\t\t\t\"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\" }\n\t\t\t},\n            \"preview\": {\"zoom\": 5}\n        },\n        \"flickr_locality_woe_id\":\n        {\n            \"provider\": {\"class\": \"tile_renderer_full_database:Provider\",\n\t\t\t\t\"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\" }\n\t\t\t},\n            \"preview\": {\"zoom\": 5}\n        }\n    }\n}\n"
  },
  {
    "path": "quattroshapes/tilestacheexceptions.py",
    "content": "#!/usr/bin/env python\n\nfoo = 123\n\nclass NothingMoreToSeeHere(Exception):\n    \"\"\" Don't recon any farther.\n    \n        This exception can be thrown in a provider to signal to\n        TileStache.getTile() that the result tile should be returned,\n        and saved in a cache, but no further child tiles should be rendered.\n        Useful in cases where data is not well distributed geographically.\n        \n        The one constructor argument is an instance of PIL.Image or\n        some other object with a save() method, as would be returned\n        by provider renderArea() or renderTile() methods.\n    \"\"\"\n    def __init__(self, tile):\n        self.tile = tile\n        Exception.__init__(self, tile)\n\nclass NothingToSeeHere(Exception):\n    \"\"\" Don't recon any farther.\n    \n        This exception can be thrown in a provider to signal to\n        TileStache.getTile() that the result tile should be returned,\n        and but not saved in a cache and no further child tiles should be rendered.\n        Useful in cases where data is not well distributed geographically.\n    \"\"\"\n    def __init__(self):\n        Exception.__init__(self)"
  }
]