| 41 | select count(*) from rht.noeudmervs2; --- 1114 lines |
| 42 | |
| 43 | Intégration des noeuds mer dans la table rhtvs2. |
| 44 | |
| 45 | alter table rht.rhtvs2 add column noeudmer boolean default FALSE; |
| 46 | update rht.rhtvs2 set noeudmer=TRUE |
| 47 | where id_drain in (select id_drain from rht.noeudmervs2 where noeudmer); --1083 |
| 48 | |
| 49 | Identification des différentes zones, manche, Bretagne, Méditerranée, Golfe de Gascogne, Est France, Pyrénnées, pb topologie centre France. |
| 50 | |
| 51 | alter table rht.noeudmervs2 add column zonegeo character varying(30); |
| 52 | alter table rht.noeudmervs2_polygon add column location character varying(30); |
| 53 | update rht.noeudmervs2_polygon set location='pb topologie centre france' where location is null; |
| 54 | update rht.noeudmervs2 n set zonegeo=location from( |
| 55 | Select location,id_drain from rht.noeudmervs2_polygon p |
| 56 | join rht.noeudmervs2 n on st_intersects(p.the_geom,n.the_geom)) s |
| 57 | where s.id_drain=n.id_drain; -- 1114 |
| 58 | update rht.noeudmervs2 set zonegeo='Golfe de Gascogne' where zonegeo='Biscaye'; |
| 59 | select * from rht.noeudmervs2 where zonegeo is null; -- zero lignes |
| 60 | |
| 61 | comment aller chercher les infos sur le nombre de barrages et la distance mer, les données sont dans la ccm ? |
| 62 | |
| 63 | installation de dblink (je suis aller chercher le code sql dans contrib), dblink s'installe dans une base de données PostgreSQL: pgsql/contrib/dblink/dblink.sql |
| 64 | |
| 65 | /* cross database query*/ |
| 66 | -- je crée une table contenant la ccm.riversegments pour la France avec les colonnes qui m'intéressent. |
| 67 | |
| 68 | select dblink_connect('connectionccm','hostaddr=93.20.247.238 port=5432 dbname=eda2 user=postgres password=petromyzon***'); |
| 69 | create schema ccm; |
| 70 | drop table if exists ccm.riversegments_france; |
| 71 | create table ccm.riversegments_france as ( |
| 72 | SELECT * FROM dblink('connectionccm','SELECT wso1_id,cs_nbdams,cum_len_sea,the_geom FROM ccm21.riversegments r join europe.wso w on r.wso_id=w.wso_id where area=''France''') |
| 73 | AS t(wso1_id int, cs_nbdams integer, cum_len_sea numeric,the_geom geometry) |
| 74 | ); |
| 75 | |
| 76 | -- je vais chercher dans la ccm les informations sur les distances mer et les cumuls de barrages |
| 77 | |
| 78 | select distinct on (zonegeo) zonegeo from rht.noeudmervs2; |
| 79 | |
| 80 | alter table rht.noeudmervs2 add column cumnbbar integer; |
| 81 | alter table rht.noeudmervs2 add column dmer numeric; |
| 82 | alter table rht.noeudmervs2 add column wso1_id integer; |
| 83 | |
| 84 | |
| 85 | update rht.noeudmervs2 set (cumnbbar,dmer,wso1_id)= (jointure.cs_nbdams,jointure.cum_len_sea,jointure.wso1_id) from |
| 86 | -- resultat final de la jointure spatiale entre ccm et noeudfrontiere |
| 87 | (select distinct on (id_drain) id_drain, min(distance) as distance, wso1_id,cs_nbdams, cum_len_sea from ( |
| 88 | -- requete intermédiaire dont on prend le min (sub) |
| 89 | select id_drain, ST_distance(noeudfrontiere.the_geom,ccmrs.the_geom) as distance,ccmrs.* |
| 90 | FROM ccm.riversegments_france ccmrs join |
| 91 | (select id_drain, the_geom from rht.noeudmervs2 where noeudmer and zonegeo in ('Est','pyrénées')) as noeudfrontiere |
| 92 | on ST_DWithin(noeudfrontiere.the_geom,ccmrs.the_geom, 500)) as sub |
| 93 | group by id_drain, distance, wso1_id,cs_nbdams, cum_len_sea) as jointure |
| 94 | where noeudmer.id_drain=jointure.id_drain; --100 lignes modifiées |
| 95 | |
| 96 | => sauvegarde pour Céline |
| 97 | |
| 98 | e: |
| 99 | cd E:\IAV\eda\rht |
| 100 | pg_dump -U postgres -p 5432 -t rht.rht_topology -t rht.noeudmervs2 -t rht.noeudmervs2_polygon eda2.0_RHT> sauve3tablesnoeudsmer.sql |
| 101 | |
| 102 | ---Celine |
| 103 | d: |
| 104 | cd D:\CelineJouanin\EDA20RHT |
| 105 | C:\"Program Files"\PostgreSQL\8.4\bin\psql -d eda2.0_RHT -h localhost -U postgres -p 5432 -f sauve3tablesnoeudsmer.sql |
| 106 | |
| 107 | Mise à jour de la table rht_topology |
| 108 | |
| 109 | alter table rht.rht_topology add column cumnbbar integer; |
| 110 | alter table rht.rht_topology add column dmer numeric; |
| 111 | alter table rht.rht_topology drop column wso1_id ; |
| 112 | |
| 113 | update rht.noeudmervs2 set dmer=0 where dmer is null and noeudmer; -- 983 -- a modifier pour prendre peut être la moitié de la distance du tronçon... a voir avec Céline |
| 114 | select * from rht.noeudmervs2 where dmer>0; -- il n'a pas trouvé de bassin dans les pyrénées... bizarre.... Mais on vivra bien avec !!! |
| 115 | -- mise à jour des données dans rht_topology |
| 116 | update rht.rht_topology set (dmer, cumnbbar)=(sub.dmer, sub.cumnbbar) |
| 117 | from (select id_drain,dmer,cumnbbar from rht.noeudmervs2 where dmer is not null and noeudmer) sub |
| 118 | where sub.id_drain=rht_topology.id_drain; --1083 |
| 119 | |
| 120 | |