#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: 1554
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