1 | ALTER TABLE clc.surf_area RENAME TO surf_area_bretagne; |
---|
2 | ALTER TABLE clc.surf_area1 RENAME TO surf_area1_bretagne; |
---|
3 | DROP TABLE IF EXISTS clc.clipped1; |
---|
4 | CREATE TABLE clc.clipped1 AS ( |
---|
5 | SELECT gid,code_00, |
---|
6 | ST_Multi(ST_Collect(f.the_geom)) as the_geom |
---|
7 | FROM (SELECT gid, code_00,(ST_Dump(the_geom)).geom As the_geom |
---|
8 | FROM |
---|
9 | clc.clipped |
---|
10 | ) As f |
---|
11 | GROUP BY gid,code_00); -- 5s |
---|
12 | ALTER TABLE clc.clipped1 add column id serial PRIMARY KEY; |
---|
13 | alter table clc.clipped1 add CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2); |
---|
14 | alter table clc.clipped1 add CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL); |
---|
15 | alter table clc.clipped1 add CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 3035); |
---|
16 | CREATE INDEX indexclc00clipped1 ON clc.clipped1 |
---|
17 | USING GIST ( the_geom GIST_GEOMETRY_OPS ); |
---|
18 | ALTER TABLE clc.clipped1 add constraint c_ck_ukclipped1 UNIQUE(gid,code_00); -- contrainte d'unicité OK ! |
---|
19 | |
---|
20 | |
---|
21 | ALTER TABLE clc.clipped1 add column area numeric; |
---|
22 | UPDATE clc.clipped1 set area=ST_Area(the_geom); -- 9s |
---|
23 | |
---|
24 | DROP TABLE IF EXISTS clc.surf_area; |
---|
25 | CREATE TABLE clc.surf_area AS ( |
---|
26 | SELECT DISTINCT ON (init.gid) init.gid, |
---|
27 | artificial_surfaces_11_13, |
---|
28 | artificial_vegetated_14, |
---|
29 | arable_land_21, |
---|
30 | permanent_crops_22, |
---|
31 | pastures_23, |
---|
32 | heterogeneous_agricultural_24, |
---|
33 | forest_31, |
---|
34 | natural_32_33, |
---|
35 | wetlands_4, |
---|
36 | inland_waterbodies_51 , |
---|
37 | marine_water_52 |
---|
38 | -- SELECT * |
---|
39 | FROM ( |
---|
40 | SELECT gid from clc.clipped1 ) as init |
---|
41 | FULL OUTER JOIN (SELECT gid,sum(area) AS artificial_surfaces_11_13 FROM clc.clipped1 WHERE |
---|
42 | substring(code_00 from 1 for 2)='11' |
---|
43 | OR substring(code_00 from 1 for 2)='12' |
---|
44 | OR substring(code_00 from 1 for 2)='13' |
---|
45 | GROUP BY gid) AS artificial_surfaces |
---|
46 | on (init.gid) =(artificial_surfaces.gid) |
---|
47 | FULL OUTER JOIN (SELECT gid,sum(area) AS artificial_vegetated_14 FROM clc.clipped1 WHERE |
---|
48 | substring(code_00 from 1 for 2)='14' |
---|
49 | GROUP BY gid) AS artificial_vegetated |
---|
50 | on artificial_vegetated.gid =init.gid |
---|
51 | FULL OUTER JOIN (SELECT gid,sum(area) AS arable_land_21 FROM clc.clipped1 WHERE |
---|
52 | substring(code_00 from 1 for 2)='21' |
---|
53 | GROUP BY gid) AS arable_land |
---|
54 | on arable_land.gid =init.gid |
---|
55 | FULL OUTER JOIN (SELECT gid, sum(area) AS permanent_crops_22 FROM clc.clipped1 WHERE |
---|
56 | substring(code_00 from 1 for 2)='22' |
---|
57 | GROUP BY gid) AS permanent_crops |
---|
58 | on permanent_crops.gid =init.gid |
---|
59 | FULL OUTER JOIN (SELECT gid,sum(area) AS pastures_23 FROM clc.clipped1 WHERE |
---|
60 | substring(code_00 from 1 for 2)='23' |
---|
61 | GROUP BY gid) AS pastures |
---|
62 | on pastures.gid =init.gid |
---|
63 | FULL OUTER JOIN (SELECT gid, sum(area) AS heterogeneous_agricultural_24 FROM clc.clipped1 WHERE |
---|
64 | substring(code_00 from 1 for 2)='24' |
---|
65 | GROUP BY gid) AS heterogeneous_agricultural |
---|
66 | on heterogeneous_agricultural.gid =init.gid |
---|
67 | FULL OUTER JOIN (SELECT gid,sum(area) AS forest_31 FROM clc.clipped1 WHERE |
---|
68 | substring(code_00 from 1 for 2)='31' |
---|
69 | GROUP BY gid) AS forest |
---|
70 | ON forest.gid =init.gid |
---|
71 | FULL OUTER JOIN (SELECT gid,sum(area) AS natural_32_33 FROM clc.clipped1 WHERE |
---|
72 | substring(code_00 from 1 for 2)='32' |
---|
73 | OR substring(code_00 from 1 for 2)='33' |
---|
74 | GROUP BY gid) AS nature |
---|
75 | ON nature.gid =init.gid |
---|
76 | FULL OUTER JOIN (SELECT gid, sum(area) AS wetlands_4 FROM clc.clipped1 WHERE |
---|
77 | substring(code_00 from 1 for 1)='4' |
---|
78 | GROUP BY gid) AS wetlands |
---|
79 | on wetlands.gid =init.gid |
---|
80 | FULL OUTER JOIN (SELECT gid,sum(area) AS inland_waterbodies_51 FROM clc.clipped1 WHERE |
---|
81 | substring(code_00 from 1 for 2)='51' |
---|
82 | GROUP BY gid) AS waterbodies |
---|
83 | on waterbodies.gid =init.gid |
---|
84 | FULL OUTER JOIN (SELECT gid,sum(area) AS marine_water_52 FROM clc.clipped1 WHERE |
---|
85 | substring(code_00 from 1 for 2)='52' |
---|
86 | GROUP BY gid) AS marine_water |
---|
87 | on marine_water.gid =init.gid); --375 ms |
---|
88 | ALTER TABLE clc.surf_area ADD CONSTRAINT c_pk_gid_surf_area_ PRIMARY KEY (gid); -- both 36 min |
---|