Changes between Version 12 and Version 13 of OriaEda


Ignore:
Timestamp:
Nov 23, 2010 2:56:20 PM (14 years ago)
Author:
cedric
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TabularUnified OriaEda

    v12 v13  
    139139copy oria.obstacles  from 'c:/base/obstacles.csv' with csv delimiter as ';' header; 
    140140}}} 
     141= Corinne landcover = 
     142{{{ 
     143-------------------------------------------- 
     144--------------------------------------------- 
     145-- Corinne Landcover 
     146--------------------------------------------- 
     147--------------------------------------------- 
     148-------------------------------------- 
     149-------------------------------------- 
     150--SURFACE CUT 
     151-------------------------------------- 
     152-------------------------------------- 
     153DROP TABLE IF EXISTS clc.clipped_spain; 
     154CREATE TABLE clc.clipped_spain AS 
     155SELECT intersected.clcgid, intersected.gid, code_00,the_geom 
     156FROM (SELECT clc.gid as clcgid, c.gid,code_00, ST_Multi(ST_Intersection(clc.the_geom, c.the_geom)) the_geom 
     157        FROM  clc.clc00_v2_europe clc INNER JOIN  
     158        (select * from ccm21.catchments c WHERE c.wso_id IN (SELECT wso_id FROM europe.wso WHERE area='Spain_Atl')) as c 
     159        ON  ST_Intersects (c.the_geom,clc.the_geom) 
     160         
     161       -- AND substring(code_00 from 1 for 1)='1' 
     162       )  AS intersected; --2h30 min 
     163ALTER TABLE clc.clipped_spain ADD column id serial PRIMARY KEY; 
     164alter table clc.clipped_spain add CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2); 
     165alter table clc.clipped_spain add  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL); 
     166alter table clc.clipped_spain add  CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 3035); 
     167CREATE INDEX indexclc00clipped_spain ON clc.clipped_spain 
     168  USING GIST ( the_geom GIST_GEOMETRY_OPS );  
     169-------------------------------------- 
     170-------------------------------------- 
     171--MERGING 
     172-------------------------------------- 
     173-------------------------------------- 
     174DROP TABLE IF EXISTS clc.clipped_spain1; 
     175CREATE TABLE clc.clipped_spain1 AS ( 
     176SELECT gid,code_00, 
     177           ST_Multi(ST_Collect(f.the_geom)) as the_geom 
     178         FROM (SELECT gid, code_00,(ST_Dump(the_geom)).geom As the_geom 
     179                                FROM 
     180                                 clc.clipped_spain 
     181                                ) As f 
     182GROUP BY gid,code_00); -- 5s 
     183ALTER TABLE clc.clipped_spain1 add column id serial PRIMARY KEY; 
     184alter table clc.clipped_spain1 add CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2); 
     185alter table clc.clipped_spain1 add  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL); 
     186alter table clc.clipped_spain1 add  CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 3035); 
     187CREATE INDEX indexclc00clipped_spain1 ON clc.clipped_spain1 
     188  USING GIST ( the_geom GIST_GEOMETRY_OPS ); 
     189ALTER TABLE clc.clipped_spain1 add constraint c_ck_uk  UNIQUE(gid,code_00); -- contrainte d'unicité 
     190-------------------------------------- 
     191-------------------------------------- 
     192--AREA 
     193-------------------------------------- 
     194-------------------------------------- 
     195ALTER TABLE clc.clipped_spain1 add column area numeric; 
     196UPDATE clc.clipped_spain1 set area=ST_Area(the_geom); -- 9s 
     197-------------------------------------- 
     198-------------------------------------- 
     199--AREA PER COLUMN FOR CLC TYPE (agregation) 
     200-------------------------------------- 
     201-------------------------------------- 
     202SELECT gid,code_00, id,round(area) as area FROM clc.clipped_spain1 order by gid, code_00 limit 10; 
     203DROP TABLE IF EXISTS clc.surf_area; 
     204CREATE TABLE clc.surf_area AS ( 
     205SELECT DISTINCT ON (init.gid) init.gid, 
     206        artificial_surfaces_11_13, 
     207        artificial_vegetated_14, 
     208         arable_land_21, 
     209         permanent_crops_22, 
     210         pastures_23, 
     211         heterogeneous_agricultural_24, 
     212         forest_31, 
     213         natural_32_33, 
     214         wetlands_4, 
     215         inland_waterbodies_51 , 
     216         marine_water_52 
     217        -- SELECT *  
     218         FROM ( 
     219        SELECT  gid from clc.clipped_spain1    ) as init         
     220        FULL OUTER JOIN (SELECT gid,sum(area) AS artificial_surfaces_11_13 FROM clc.clipped_spain1 WHERE  
     221                        substring(code_00 from 1 for 2)='11'  
     222                        OR  substring(code_00 from 1 for 2)='12' 
     223                        OR substring(code_00 from 1 for 2)='13'  
     224                        GROUP BY gid) AS artificial_surfaces 
     225                       on (init.gid) =(artificial_surfaces.gid)          
     226        FULL OUTER JOIN (SELECT gid,sum(area) AS artificial_vegetated_14 FROM clc.clipped_spain1 WHERE  
     227                        substring(code_00 from 1 for 2)='14' 
     228                        GROUP BY gid) AS artificial_vegetated 
     229                        on artificial_vegetated.gid =init.gid 
     230        FULL OUTER JOIN (SELECT gid,sum(area) AS arable_land_21 FROM clc.clipped_spain1 WHERE  
     231                        substring(code_00 from 1 for 2)='21' 
     232                        GROUP BY gid) AS arable_land 
     233                        on arable_land.gid =init.gid 
     234        FULL OUTER JOIN (SELECT gid, sum(area) AS permanent_crops_22 FROM clc.clipped_spain1 WHERE  
     235                        substring(code_00 from 1 for 2)='22' 
     236                        GROUP BY gid) AS permanent_crops 
     237                        on permanent_crops.gid =init.gid 
     238        FULL OUTER JOIN (SELECT gid,sum(area) AS pastures_23 FROM clc.clipped_spain1 WHERE  
     239                        substring(code_00 from 1 for 2)='23' 
     240                        GROUP BY gid) AS pastures 
     241                        on pastures.gid =init.gid 
     242        FULL OUTER JOIN (SELECT gid, sum(area) AS heterogeneous_agricultural_24 FROM clc.clipped_spain1 WHERE  
     243                        substring(code_00 from 1 for 2)='24' 
     244                        GROUP BY gid) AS heterogeneous_agricultural 
     245                        on heterogeneous_agricultural.gid =init.gid 
     246        FULL OUTER JOIN (SELECT gid,sum(area) AS forest_31 FROM clc.clipped_spain1 WHERE  
     247                        substring(code_00 from 1 for 2)='31' 
     248                        GROUP BY gid) AS forest 
     249                        ON forest.gid =init.gid 
     250        FULL OUTER JOIN (SELECT gid,sum(area) AS natural_32_33 FROM clc.clipped_spain1 WHERE  
     251                        substring(code_00 from 1 for 2)='32' 
     252                        OR  substring(code_00 from 1 for 2)='33' 
     253                        GROUP BY gid) AS nature 
     254                        ON nature.gid =init.gid 
     255        FULL OUTER JOIN (SELECT gid, sum(area) AS wetlands_4  FROM clc.clipped_spain1 WHERE  
     256                        substring(code_00 from 1 for 1)='4' 
     257                        GROUP BY gid) AS wetlands 
     258                        on wetlands.gid =init.gid 
     259        FULL OUTER JOIN (SELECT gid,sum(area) AS inland_waterbodies_51 FROM clc.clipped_spain1 WHERE  
     260                        substring(code_00 from 1 for 2)='51' 
     261                        GROUP BY gid) AS waterbodies 
     262                        on waterbodies.gid =init.gid 
     263        FULL OUTER JOIN (SELECT gid,sum(area) AS marine_water_52 FROM clc.clipped_spain1 WHERE  
     264                        substring(code_00 from 1 for 2)='52' 
     265                        GROUP BY gid) AS marine_water 
     266                        on marine_water.gid =init.gid); --375 ms 
     267ALTER TABLE clc.surf_area ADD CONSTRAINT c_pk_gid_surf_area PRIMARY KEY (gid); 
     268SELECT * FROM clc.surf_area; 
     269-------------------------------------- 
     270-------------------------------------- 
     271--REMOVING ZEROS AND JOINING RIVERSEGMENTS AND CATCHMENTS TABLES 
     272-------------------------------------- 
     273-------------------------------------- 
     274DROP TABLE IF EXISTS clc.surf_area1; 
     275CREATE TABLE clc.surf_area1 AS(  
     276SELECT  
     277        r.gid, 
     278        area/1e6 as catchment_area, 
     279        CASE WHEN artificial_surfaces_11_13 IS NOT NULL THEN artificial_surfaces_11_13/1e6 
     280        ELSE 0 
     281        END AS artificial_surfaces_11_13, 
     282        CASE WHEN artificial_vegetated_14 IS NOT NULL THEN artificial_vegetated_14/1e6  
     283        ELSE 0 
     284        END AS artificial_vegetated_14, 
     285        CASE WHEN arable_land_21 IS NOT NULL THEN arable_land_21/1e6  
     286        ELSE 0 
     287        END AS arable_land_21, 
     288        CASE WHEN permanent_crops_22 IS NOT NULL THEN permanent_crops_22/1e6  
     289        ELSE 0 
     290        END AS permanent_crops_22, 
     291        CASE WHEN pastures_23 IS NOT NULL THEN pastures_23/1e6  
     292        ELSE 0 
     293        END AS pastures_23, 
     294        CASE WHEN heterogeneous_agricultural_24 IS NOT NULL THEN heterogeneous_agricultural_24/1e6 
     295        ELSE 0 
     296        END AS heterogeneous_agricultural_24, 
     297        CASE WHEN forest_31 IS NOT NULL THEN forest_31/1e6  
     298        ELSE 0 
     299        END AS forest_31, 
     300        CASE WHEN natural_32_33 IS NOT NULL THEN natural_32_33/1e6  
     301        ELSE 0 
     302        END AS natural_32_33, 
     303        CASE WHEN wetlands_4 IS NOT NULL THEN wetlands_4/1e6  
     304        ELSE 0 
     305        END AS wetlands_4, 
     306        CASE WHEN inland_waterbodies_51 IS NOT NULL THEN inland_waterbodies_51 /1e6  
     307        ELSE 0 
     308        END AS inland_waterbodies_51, 
     309        CASE WHEN  marine_water_52 IS NOT NULL THEN marine_water_52/1e6  
     310        ELSE 0 
     311        END AS marine_water_52, 
     312        c.wso1_id, 
     313        c.the_geom       
     314FROM clc.surf_area p 
     315JOIN ccm21.catchments c ON c.gid=p.gid 
     316JOIN ccm21.riversegments r on r.wso1_id=c.wso1_id 
     317); 
     318-------------------------------------- 
     319-------------------------------------- 
     320--COMPARISON OF SURFACES FROM THE CCM AND CLC 
     321-------------------------------------- 
     322-------------------------------------- 
     323DROP TABLE IF EXISTS clc.surf_area_analyse; 
     324CREATE TABLE clc.surf_area_analyse AS(  
     325SELECT  
     326        gid, 
     327        wso1_id, 
     328        catchment_area, 
     329        artificial_surfaces_11_13+ 
     330         artificial_vegetated_14+ 
     331         arable_land_21+ 
     332         permanent_crops_22+ 
     333         pastures_23+ 
     334         heterogeneous_agricultural_24+ 
     335         forest_31+ 
     336         natural_32_33+ 
     337         wetlands_4+ 
     338         inland_waterbodies_51 + 
     339         marine_water_52 as sum_clc_area , 
     340        (artificial_surfaces_11_13+ 
     341         artificial_vegetated_14+ 
     342         arable_land_21+ 
     343         permanent_crops_22+ 
     344         pastures_23+ 
     345         heterogeneous_agricultural_24+ 
     346         forest_31+ 
     347         natural_32_33+ 
     348         wetlands_4+ 
     349         inland_waterbodies_51 + 
     350         marine_water_52)/catchment_area AS pourc_clc, 
     351         the_geom 
     352         FROM clc.surf_area1); 
     353ALTER TABLE clc.surf_area_analyse add CONSTRAINT c_pk_gid_area_analyse PRIMARY KEY (gid); 
     354alter table clc.surf_area_analyse add CONSTRAINT enforce_dims_the_geom CHECK (ndims(the_geom) = 2); 
     355alter table clc.surf_area_analyse add  CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'MULTIPOLYGON'::text OR the_geom IS NULL); 
     356alter table clc.surf_area_analyse add  CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 3035); 
     357CREATE INDEX indexclc00area_analyse ON clc.surf_area_analyse 
     358  USING GIST ( the_geom GIST_GEOMETRY_OPS ); 
     359 
     360}}}