Effectuer l'extraction des digues du DEM?

14

J'ai un DEM de 1x1 mètre et un nuage de points LiDAR original en .las, ce DEM est fait. J'ai besoin d'extraire des digues de rivière (points les plus élevés des digues) pour les vectoriser (point, polyligne).

Une idée de l'algorithme ou d'un outil existant?

Les digues sont en gris clair sur la 1ère image et ci-dessous est l'image du nuage de points pour la zone d'exemple avec les digues. Ligne centrale de la rivière en bleu.

Les digues sont en gris clair

Nuage de points avec les digues

Un outil pour l'extraction d'entités linéaires à partir de DEM?

Je crois que j'ai besoin de quelque chose comme le module d'extraction de fonctionnalités spatiales d'ENVI (page 7), mais sans la partie d'ENVI, car je ne peux pas me le permettre :)

Tomek
la source
1
Quel système SIG utilisez-vous?
Hornbydd
Commercial - ArcInfo 10 (SA, 3D, extensions géostatistiques). Open source - tout.
Tomek
1
Je pensais à une idée, en supposant que vous aviez une ligne centrale de vecteur pour votre rivière que vous pourriez tamponner cela et l'utiliser pour masquer le DEM et seuil les valeurs. Cela suppose que la digue est parallèle au canal de la rivière. Donc, quelle que soit la logique que vous utilisez, elle doit être suffisamment intelligente pour capturer les digues lorsqu'elles deviennent «en retrait» de la rivière.
Hornbydd
Malheureusement, les digues ne sont pas toujours parallèles au canal de la rivière et sont souvent éloignées du canal de la rivière. Je pensais qu'il y aurait de l'algorytm comme squelettisation? Pour l'extraction de la ou des entités linéaires à partir de DEM, avec une telle entité, je pouvais dériver les points les plus élevés du nuage de points.
Tomek
2
Je suis tombé sur ce document, peut être utile? asprs.org/a/publications/pers/2004journal/december/…
Hornbydd

Réponses:

8

Tout dépend de l'endroit où vous tracez la ligne. Quoi qu'il en soit, ce problème semble pouvoir être facilement résolu en utilisant les fonctions morphologiques disponibles dans Spatial Analyst, en particulier le seuillage (effectué avec les opérations locales "<" et ">") et "RegionGroup" pour identifier et extraire les composants.

Bien que je n'aie pas accès au DEM pour l'illustrer, la première image est presque assez bonne pour faire le travail de toute façon. Par exemple, voici une séquence de versions régionales de la bande rouge (avec des valeurs échelonnées de 0,0 = noir à 1,0 = blanc), commençant à un seuil de 0 et se déplaçant de gauche à droite, de haut en bas, par incréments de 0,02:

Digues

(Ces images ont été réduites pour être reproduites ici: toutes les analyses ont été effectuées à la résolution de l'image d'origine.)

Les digues émergent autour de la limite de la région noire au début de la deuxième rangée (seuil = 0,08). Au début de la troisième rangée (seuil = 0,16), les digues forment leurs propres composants (en bleu foncé) et à ce stade peuvent être facilement extraites sous forme de grilles ou de polygones séparés (et leurs limites peuvent être extraites sous forme de polylignes après une étape de détection de bord ). Seules les digues les plus larges restent à la dernière ligne (seuil = 0,24 et plus). Vous devrez sélectionner un seuil approprié afin d'obtenir précisément ce que vous voulez.

Dans le DEM d'origine, les élévations jouent le rôle de l'intensité, de sorte que ces procédures devraient être tout aussi efficaces avec le DEM lui-même. Si le MNT a une grande étendue (y compris des entités éloignées de la rivière ou des digues), les entités pertinentes peuvent être sélectionnées comme celles adjacentes au composant dans lequel se trouve l'entité fluviale.

Les régions minces indésirables trouvées par RegionGroup peuvent être éliminées en appliquant une petite érosion (tampon négatif) suivie d'une dilatation équivalente (tampon positif). Les petites régions indésirables peuvent être exclues sur un critère de taille (nombre total de cellules ou surface). Les points les plus élevés sur chaque digue (si c'est ce qui est vraiment nécessaire) peuvent être trouvés en comparant le DEM aux grilles maximales zonales (en utilisant les digues comme zones).


Par ailleurs, cette séquence d'images a été produite dans Mathematica 8. Voici les commandes pour ceux qui souhaitent poursuivre cette option.

original = Import["http://i.stack.imgur.com/gV7Du.jpg"];
{r, g, b} = ColorSeparate[original];
frames = ParallelTable[Colorize[MorphologicalComponents[Binarize[r, t/100]], 
                       ColorFunction -> "ThermometerColors"], {t, 0, 30, 2}];
Rasterize @ TableForm[Partition[frames, 4]]

Le temps total d'horloge (après l'importation de l'image) était de 0,94 seconde, dont la moitié était nécessaire pour rétrécir et exporter les 16 images: les opérations morphologiques ont tendance à être rapides (ce qui est bien, car les DEM LIDAR peuvent être énormes).

whuber
la source
L'ensemble du concept semble correct, mais je ne comprends pas la partie "... seuillage (effectuée avec" <"et"> "opérations locales)". Comment y parvenir avec l'ensemble d'outils de généralisation (SA)?
Tomek
@Tomek One ne le fait pas. Voir l' ensemble d'outils logiques .
whuber
9

J'ai lu sur une variété d'algorithmes pour le travail (c'est-à-dire selon le lien @Hornbydds ).

J'ai essayé quelques appos, et les meilleurs résultats dans mon cas ont donné l'analyse de terrain standard de SAGA. Voici ce que j'ai fait et pourquoi:

Les digues sont généralement la caractéristique la plus élevée à proximité du canal de la rivière, je les ai donc transformées en canaux en inversant le DEM (MapAlgebra DEM * -1 ou pour exagérer les pentes -10). À partir de ce point, je pouvais utiliser n'importe quel ensemble d'outils hydrologiques (ArcHydro, HEC-GeoRas ou les outils hydrauliques SAGA). J'ai choisi SAGA / Analyse de terrain -Analyse composée / Analyse de terrain standard car elle produit River Network en quelques clics. River Network est ce que je voulais réaliser, car il produit des polylignes, qui indiquent le meilleur itinéraire pour l'écoulement de l'eau, ce qui en cas de digues inversées - donne leur point le plus élevé.

Le fichier de forme produit est un peu désordonné (beaucoup de polylignes plus petites), mais après quelques ajustements, les résultats sont satisfaisants. Un autre inconvénient est qu'une digue est composée de 300 polylignes courtes, mais je pense que je trouverai un moyen de gérer cela.

Voici un exemple de résultats:

entrez la description de l'image ici

Bien sûr, c'est une solution assez approximative et je vais probablement enquêter davantage sur le problème, mais j'ai pensé que cela valait la peine d'être partagé.

Tomek
la source
5

Une combinaison des éléments suivants avec le DEM d'origine devrait aider à mettre en évidence les informations raster que vous souhaitez et à jeter le reste. Ceux-ci peuvent être effectués à différentes échelles et tailles de voisinage pour affiner l'effet.

  • Rééchantillonner, puis Quartier -> Filtre: passe-haut
  • Surface -> Courbure
  • Quartier -> Statistiques focales: écart type
  • "Hauteur relative" = (Pixel) - (Quartier -> Statistiques focales: médiane)
  • Inverser, rééchantillonner, puis voisinage -> Flux focal

Après cela, la reclassification et les contours devraient donner un aperçu assez bon de la digue elle-même. Si les digues sont à pente plate et que vous souhaitez une couverture plus large, vous pouvez également essayer quelque chose comme la somme de la courbure et de la pente, mise à l'échelle d'une certaine quantité, ou même faire des contours de pente séparément et les assembler ensemble.

Voici un didacticiel sur l'extraction de lignes de crêtes vectorielles à partir d'un DEM raster à l'aide de Spatial Analyst, qui devrait être hautement applicable:

MappingTomorrow
la source
Je vais jeter un oeil à la combinaison d'outils - peut donner de bons résultats. Merci. Comme je le vois, le tutoriel ESRI décrit le processus +/- comme je l'ai fait :) Cool. Merci.
Tomek
0

Je pense que cela ne pourrait être qu'une partie de la réponse, mais vous pourriez peut-être commencer par créer des contours / polygones à partir de vos images à des intervalles donnés / en fonction des valeurs d'élévation. Je pensais que les digues devraient avoir des valeurs d'élévation plus élevées et, par conséquent, si vous convertissez votre DEM en polygones, vous pourriez constater que les zones qui vous intéressent sont représentées par des polygones centains. Vous pouvez également commencer par reclasser simplement le DEM et voir si cela produit les résultats que vous recherchez. Si vous avez d'autres données d'image qui couvrent la zone qui vous intéresse, essayez de les ajouter à votre classification d'images et voyez si cela vous aide. Bonne chance!!

dango
la source