יותר

חישבו נפח על פני קרקע משופעת ב- GRASS GIS


אני מנסה לעשות כמה חישובי נפח על DEM עם GRASS GIS.

עם זאת, אני מאמין כי r.volume מודד הכל מ- 0.

האדמה מתחת לערמה שאני מודד משופעת.

ברצוני לחשב את הנפח כדי לשקף זאת, אך אינני יודע את הדרך הטובה ביותר לעשות זאת.


בהנחה שתתחיל עם DEM שנקרא שטח, הייתי מנסה:

I. ספר את הגבול סביב הערימה. אוֹ:

  1. הכן קובץ טקסט עם קודקודי המצולע. הפורמט נקרא 'סטנדרטי' ומתואר ב https://grass.osgeo.org/grass64/manuals/v.in.ascii.html. זה ייראה בערך כמו:
B N x1 y1 x2 y2 ... xN yN x1 y1

כאשר N הוא מספר הקודקודים בגבול אחד. המבנה חוזר על עצמו יותר מגבול אחד. לאחר מכן, ייבא את קובץ הטקסט:v.in.ascii -n format = קלט סטנדרטי = textFile.txt פלט = pile_boundary

  1. אם אתה משתמש ב- grass6, אולי תוכל פשוט לספר את הגבול באמצעות: v.digit -n map = pile_boundary bgcmd = "d.rast map = terrain_surface"
  2. עבור grass7, v.edit עשוי לעזור אם כי לא השתמשתי בו.

II. צרו משטח שטח חדש על ידי ניקוב הערימה והערכת הקרקע מתחת לכל הערימה

# להמיר את גבול הווקטור הדיגיטלי לאזור הרסטר v.to.rast סוג = שימוש בשטח = קלט חתול = פלט ערימת_ערמה = ערימת שטח # אגרוף החוצה את הערימה והפעל מחדש תחתיה כדי להעריך את פני השטח שמרכיבים את הערימה. # לידיעתך, תחביר mapcalc דשא 6 ו- 7 r הוא קצת שונה. r.mapcalc expression = "terrain_wo_pile = if (isnull (pile_area), terrain, null ())" r.fillnulls input = terrain_wo_pile pile = terrain_below_pile

III. חשב את שטח הערימה עצמה

r.mapcalc ביטוי = "ערימת_גובה_רכבת = שטח-שטח_ערמה תחתון" נתוני נפח = ערימת גובה_גובה_רכב = שטח ערימה


צפו בסרטון: חוק ארכימדס (אוֹקְטוֹבֶּר 2021).