Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Thu 06 July 2017 18:23

meonais
Participant occasionnel
Date d'inscription: 17 Jan 2017
Messages: 35

Altitude moyenne d'un tronçon de cours d'eau

Bonjour,


Je cherche à récupérer rapidement l'altitude moyenne de plusieurs (beaucoup) tronçons de cours d'eau, afin de la comparer ensuite avec celle de points en amont et/ou en aval de ces cours d'eau.

Technique 1 (qui ne me satisfait pas du tout) :
Identifier le milieu de la ligne (création d'un point) et calculer son altitude.
Mais comme je travaille sur des cours d'eau, la définition n'est pas suffisante et je me retrouve de temps en temps avec une altitude en amont plus basse que celle en aval du tronçon.

Technique 2 (qui donne de bons résultats mais est très longue avec le nombre de tronçons à analyser) :
Créer une série de points le long de chaque ligne,
Identifier l'altitude de chaque point de cette ligne,
Calculer l'altitude moyenne pour la ligne

Code:

DROP TABLE IF EXISTS moysplitang CASCADE;
CREATE TEMP TABLE moysplitang AS (
    SELECT idsplit, ((ST_DumpPoints(geom))).geom as geom 
    FROM splitang 
    GROUP BY idsplit);
ALTER TABLE moysplitang ADD COLUMN alti NUMERIC (8,4);
UPDATE moysplitang 
    SET alti = (ST_intersection(geom, alti.rast)).val::NUMERIC(8,4)
    FROM  bdaltirm alti
    WHERE (ST_Intersects(geom, alti.rast) )
    ;
DROP TABLE IF EXISTS ptmoysplitang CASCADE;
CREATE TEMP TABLE ptmoysplitang AS (
    SELECT idsplit, avg(alti) as alti
    FROM moysplitang 
    GROUP BY idsplit);
ALTER TABLE ptmoysplitang ADD COLUMN idpt SERIAL PRIMARY KEY;

Auriez-vous une technique moins chronophage ? Voire plus efficace sur les résultats (sachant que je n'ai pas encore vérifié si la technique 2 était suffisante pour l'ensemble de mes données à traiter par la suie) ?

Merci d'avance de vos retours :-)

Hors ligne

 

#2 Thu 06 July 2017 18:47

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Altitude moyenne d'un tronçon de cours d'eau

Bonjour,

Oui, c'est la bonne méthode.
Mais sans index spatial, normal que ca prenne des plombes.
Il faut indexer raster et geometry, et lancer un analyse sur les tables ensuite.

Nicolas

Hors ligne

 

#3 Wed 26 July 2017 08:44

meonais
Participant occasionnel
Date d'inscription: 17 Jan 2017
Messages: 35

Re: Altitude moyenne d'un tronçon de cours d'eau

Bonjour,

Juste pour vous confirmer qu'avec des index ça marche très très très bien ! :-)

Toutes proportions gardées bien sûr :
pour environ 1700 points, j'ai le résultat en un peu plus de 2 min
pour environ 72000 points, j'ai le résultat en 2h environ

Merci !

Dernière modification par meonais (Thu 27 July 2017 18:36)

Hors ligne

 

Pied de page des forums

Powered by FluxBB