1 |
11494
|
psarando
|
/*
|
2 |
|
|
SQL statements to generate tables mapping geonames features at each
|
3 |
|
|
relevant administative level (country, state/province, county/parish)
|
4 |
|
|
to GADM2 features.
|
5 |
|
|
|
6 |
|
|
Todo:
|
7 |
|
|
* Be tolerant to presence/absence of administrative qualifiers in
|
8 |
|
|
names? (Already doing this mildly for County/Co/Co.)
|
9 |
|
|
- Municipality
|
10 |
|
|
- Barrio
|
11 |
|
|
- District
|
12 |
|
|
|
13 |
|
|
* Get rid of rudundancy
|
14 |
|
|
* Try matching against GADM2 varname_* columns?
|
15 |
|
|
|
16 |
|
|
Jim Regetz
|
17 |
|
|
NCEAS
|
18 |
|
|
Created Nov 2012
|
19 |
|
|
*/
|
20 |
|
|
|
21 |
|
|
-----------------------
|
22 |
|
|
-- Level 0 (Country) --
|
23 |
|
|
-----------------------
|
24 |
|
|
BEGIN;
|
25 |
|
|
|
26 |
|
|
TRUNCATE gadm_country_lookup;
|
27 |
|
|
|
28 |
|
|
DROP INDEX IF EXISTS "gadm_country_lookup_name_0_idx";
|
29 |
|
|
|
30 |
|
|
-- map gadm2 level0 to geonames countries
|
31 |
|
|
INSERT INTO gadm_country_lookup (countryid)
|
32 |
|
|
SELECT DISTINCT geonameid
|
33 |
|
|
FROM countries
|
34 |
|
|
WHERE geonameid IS NOT NULL;
|
35 |
|
|
-- INSERT 0 250
|
36 |
|
|
-- Time: 20.770 ms
|
37 |
|
|
-- EXPLAIN ANALYZE
|
38 |
|
|
UPDATE gadm_country_lookup lu
|
39 |
|
|
SET name_0 = gadm.name_0
|
40 |
|
|
FROM (SELECT DISTINCT iso, name_0 FROM gadm2) gadm,
|
41 |
|
|
countries c
|
42 |
|
|
WHERE lu.countryid = c.geonameid
|
43 |
|
|
AND c.iso3 = gadm.iso;
|
44 |
|
|
-- UPDATE 248
|
45 |
|
|
-- Time: 3562.601 ms
|
46 |
|
|
|
47 |
|
|
CREATE INDEX "gadm_country_lookup_name_0_idx" ON gadm_country_lookup (name_0);
|
48 |
|
|
|
49 |
|
|
COMMIT;
|