Suite

Carte des risques d'inondation QGIS

Carte des risques d'inondation QGIS


J'utilise les données RADAR pour créer une carte des estimations de la biomasse.

Je souhaite masquer toutes les terres susceptibles d'être inondées car les sols gorgés d'eau affectent la rétrodiffusion… et auront un impact sur l'estimation de la biomasse. Pour une partie de ce processus, je veux juste masquer les zones sujettes aux inondations autour des plans d'eau.

Ce sera une opération très basique (car je le fais sur une très grande surface) et je suis heureux si cela signifie que je masque des régions qui ne sont pas inondées.

J'ai:

  • un DEM pour la région en question
  • un raster binaire de masses d'eau/zones hors masses d'eau

Mon approche suggérée consiste à masquer toutes les cellules du raster radar qui se trouvent à moins de x mètres de hauteur des plans d'eau.

J'utilise QGIS mais je n'ai pas été en mesure d'identifier une solution simple pour le faire. Quelqu'un peut-il aider?

… Une de mes réflexions avait été d'identifier les bassins versants des masses d'eau et de masquer toutes les cellules du bassin qui se trouvent à moins de x m du plan d'eau… c'est problématique pour les rivières… qui ont une gamme complète de hauteurs/bassins de drainage.


Une solution robuste mais programmatique serait quelque chose du genre (en gros, du pseudocode Pythonic) :

# D est le DEM, W est le masque de masse d'eau vrai/faux # delta est la différence de hauteur maximale pour les zones sujettes aux inondations F = D * W # F est le DEM avec la terre sèche masquée (positions de départ des inondations) tandis que True : modifié = False pour c dans F : # pour chaque index de cellule dans le raster si F[c] : # inondation à partir des cellules déjà immergées # inondation de tous les pixels voisins éligibles # nécessite un voisinage défini (4/8 cellules environ) pour n dans voisins(c): # inonde tous les pixels secs dans la tolérance et remarque ceux qui sont trop grands # la deuxième condition empêche le pixel d'eau le plus élevé d'inonder toute la zone si (F[n] == 0 et (F[c] + delta < = D[n])) ou F[c] < (F[n] - delta) : F[n] = F[c] modifié = Vrai si non modifié : # s'arrête si aucune modification n'a été apportée pendant le parcours

Au final, F marque tous les pixels sujets aux inondations avec des valeurs supérieures à 0 et peut donc être utilisé comme masque.

Je ne peux pas donner de solution QGIS par manque d'expérience mais la mise en œuvre devrait être assez simple.

(En y repensant, l'algorithme ne fonctionnera probablement pas si le MNT est trop grossier, ce qui fait de grandes différences dans les hauteurs des cellules des masses d'eau voisines. Sans les rivières, le problème deviendrait beaucoup plus facile.)


Voir la vidéo: Délimitation le niveau dinondation in ArcGis