wiki:Noeuds mer RHT

Version 7 (modified by cedric, 14 years ago) (diff)

--

Noeuds mer RHT

Céline je ne retrouve pas tes scripts pour les noeuds mer... Ce serait bien de les coller ici.

Intégration des noeuds mer dans la table rht_topology.

alter table rht.rht_topology add column noeudmer boolean default FALSE;
update rht.rht_topology set noeudmer=TRUE
where id_drain in (select id_drain from rht.noeudmer where noeudmer); --1083

Identification des différentes zones, manche, Bretagne, Méditerranée, Golfe de Gascogne, Est France, Pyrénnées, pb topologie centre France.

alter table rht.noeudmer add column zonegeo character varying(30);
update rht.noeudmer_polygon set location='pb topologie centre france' where location is null;
update rht.noeudmer n set zonegeo=location from(
Select location,id_drain from rht.noeudmer_polygon p
join  rht.noeudmer n on st_intersects(p.the_geom,n.the_geom)) s
where s.id_drain=n.id_drain; -- 1114
update rht.noeudmer set zonegeo='Golfe de Gascogne' where zonegeo='Biscaye';
select * from rht.noeudmer where zonegeo is null; -- zero lignes

comment aller chercher les infos sur le nombre de barrages et la distance mer, les données sont dans la ccm ?

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

/* cross database query*/
-- je crée une table contenant la ccm.riversegments pour la France avec les colonnes qui m'intéressent.

select dblink_connect('connectionccm','hostaddr=93.20.247.238 port=5432 dbname=eda2 user=postgres password=petromyzon***');
create schema ccm;
drop table if exists ccm.riversegments_france;
create table ccm.riversegments_france as (
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''')
 AS  t(wso1_id int, cs_nbdams integer, cum_len_sea numeric,the_geom geometry)
);

-- je vais chercher dans la ccm les informations sur les distances mer et les cumuls de barrages

select distinct on (zonegeo) zonegeo from rht.noeudmer;

alter table rht.noeudmer add column cumnbbar integer;
alter table rht.noeudmer add column dmer numeric;
alter table rht.noeudmer add column wso1_id integer;


update rht.noeudmer set (cumnbbar,dmer,wso1_id)= (jointure.cs_nbdams,jointure.cum_len_sea,jointure.wso1_id) from
	-- resultat final de la jointure spatiale entre ccm et noeudfrontiere
	(select distinct on (id_drain) id_drain, min(distance) as distance, wso1_id,cs_nbdams, cum_len_sea from (
		-- requete intermédiaire dont on prend le min (sub)
		select id_drain, ST_distance(noeudfrontiere.the_geom,ccmrs.the_geom) as distance,ccmrs.*
		FROM ccm.riversegments_france ccmrs join
		(select id_drain, the_geom from rht.noeudmer where noeudmer and zonegeo in ('Est','pyrénées')) as noeudfrontiere
		on ST_DWithin(noeudfrontiere.the_geom,ccmrs.the_geom, 500)) as sub
	group by id_drain, distance, wso1_id,cs_nbdams, cum_len_sea) as jointure
where noeudmer.id_drain=jointure.id_drain; --100 lignes modifiées