Suite

Calculer le volume sur un terrain en pente dans GRASS GIS

Calculer le volume sur un terrain en pente dans GRASS GIS


J'essaie de faire des calculs de volume sur un DEM avec GRASS GIS.

Cependant, je crois que r.volume mesure tout à partir de 0.

Le sol sous le tas que je mesure est en pente.

J'aimerais calculer le volume pour refléter cela, mais je ne connais pas la meilleure façon de procéder.


En supposant que vous commenciez avec un DEM appelé terrain, j'essaierais de :

I. Numérisez une bordure autour de la pile. Soit:

  1. Préparez un fichier texte avec les sommets du polygone. Le format est appelé « standard » et est décrit dans https://grass.osgeo.org/grass64/manuals/v.in.ascii.html. Cela ressemblera à quelque chose comme :
B N x1 y1 x2 y2… xN yN x1 y1

où N est le nombre de sommets dans une frontière. La structure se répète pour plusieurs limites. Ensuite, importez le fichier texte :v.in.ascii -n format=standard input=textFile.txt output=pile_boundary

  1. Si vous utilisez grass6, vous pourrez peut-être simplement numériser la limite en utilisant : v.digit -n map=pile_boundary bgcmd="d.rast map=terrain_surface"
  2. Pour grass7, v.edit peut aider même si je ne l'ai pas utilisé.

II. Créez une nouvelle surface de terrain en poinçonnant le pieu et en estimant le sol sous le pieu

# convertir la limite vectorielle numérisée en zone raster v.to.rast type=area use=cat input=pile_boundary output=pile_area # poinçonner la pile et réinterpoler en dessous pour estimer la surface du terrain sous la pile. # Pour info, la syntaxe grass 6 et 7 r.mapcalc est un peu différente. r.mapcalc expression="terrain_wo_pile=if(isnull(pile_area),terrain,null())" r.fillnulls input=terrain_wo_pile output=terrain_below_pile

III. Calculer l'aire de la pile elle-même

r.mapcalc expression="pile_height_above_terrain=terrain-terrain_below_pile" r.volume data=pile_height_above_terrain clump=pile_area

Voir la vidéo: Aari, hehtaari ja neliökilometri