זוהי הפקודה r.costgrass שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.
תָכְנִית:
שֵׁם
r.cost - יוצר מפת רסטר המציגה את העלות המצטברת של מעבר בין מקומות שונים
מיקומים גיאוגרפיים על גבי מפת רסטר קלט שערכי קטגוריות התאים שלה מייצגים עלות.
מילות מפתח
רסטר, משטח עלויות, עלויות מצטברות, הקצאת עלויות
תַקצִיר
r.cost
r.cost - עזרה
r.cost [-קני] קלט=שם תפוקה=שם [קרוב=שם] [outdir=שם]
[נקודות_התחלה=שם] [נקודות_עצירה=שם] [start_raster=שם]
[start_coordinates=צפון מזרח[,צפון מזרח,...]]
[stop_coordinates=צפון מזרח[,צפון מזרח,...]] [עלות_מקסימלית=ערך] [null_cost=ערך]
[זיכרון=ערך] [--להחליף] [--לעזור] [--מִלוּלִי] [--שֶׁקֶט] [--ui]
דגלים:
-k
השתמש ב'מהלך האביר'; איטי יותר, אך מדויק יותר
-n
שמור ערכי אפס במפת רסטר פלט
-r
התחל עם ערכים במפת רסטר
-i
הדפס מידע על דרישות שטח דיסק וזיכרון וצא
--לכתוב
אפשר לקבצי פלט לדרוס קבצים קיימים
- עזרה
הדפס סיכום שימוש
--מִלוּלִי
פלט מודול מפורט
--שֶׁקֶט
פלט מודול שקט
--ui
הפעלת דו-שיח של ממשק משתמש לאלץ
פרמטרים:
קלט=שם [נדרש]
שם מפת רסטר הקלט המכילה מידע על עלות תאי רשת
תפוקה=שם [נדרש]
שם עבור מפת רסטר פלט
קרוב=שם
שם למפת רסטר של הפלט עם נקודת ההתחלה הקרובה ביותר
outdir=שם
שם עבור מפת רסטר פלט שתכיל כיווני תנועה
נקודות_התחלה=שם
שם מפת הנקודות הווקטוריות ההתחלתיות
או מקור נתונים לגישה ישירה ל-OGR
נקודות_עצירה=שם
שם מפת נקודות וקטור עצירה
או מקור נתונים לגישה ישירה ל-OGR
start_raster=שם
שם מפת נקודות רסטר ההתחלתית
start_coordinates=מזרח, צפון[, מזרח, צפון,...]
קואורדינטות של נקודות התחלה (E,N)
stop_coordinates=מזרח, צפון[, מזרח, צפון,...]
קואורדינטות של נקודות עצירה (E,N)
עלות_מקסימלית=ערך
עלות מצטברת מקסימלית
ברירת מחדל: 0
null_cost=ערך
עלות הוקצתה לתאים אפסים. כברירת מחדל, תאים אפסים אינם נכללים
זיכרון=ערך
מקסימום זיכרון לשימוש ב-MB
ברירת מחדל: 300
תיאור
r.cost קובע את העלות המצטברת של מעבר לכל תא ב- עלות משטח ( קלט
מפת רסטר) מתא/ים אחרים שצוינו על ידי המשתמש שמיקומם מצוין על ידי
קואורדינטות גיאוגרפיות. כל תא במפת פני השטח המקורית של העלות יכיל
ערך קטגוריה המייצג את עלות חציית התא הזה. r.cost ייצר 1)
an תפוקה מפת רסטר שבה כל תא מכיל את העלות הכוללת הנמוכה ביותר של חציית ה
רווח בין כל תא לנקודות שצוינו על ידי המשתמש (עלויות אלכסוניות מוכפלות ב-
גורם שתלוי במידות התא) ו-2) שכבת מפת רסטר שנייה
הצגת כיוון התנועה לתא הבא בנתיב חזרה לנקודת ההתחלה (ראה
כיוון תנועה). מודול זה משתמש בהגדרות האזור הגיאוגרפי הנוכחיות. תפוקה
המפה תהיה באותו פורמט נתונים כמו קלט מפה, מספר שלם או נקודה צפה.
אפשרויות
השמיים קלט שם הוא שם של מפת רסטר שערכי הקטגוריות שלה מייצגים את פני השטח
עלות. ה תפוקה שם הוא שם מפת הרסטר המתקבלת של העלות המצטברת.
outdir שם הוא שם מפת הרסטר המתקבלת של כיווני התנועה (ראה תנועה
כיוון).
r.cost ניתן להריץ זאת באמצעות שלוש שיטות שונות לזיהוי נקודת/ות ההתחלה. אחת
ניתן לספק נקודות או יותר (זוגות קואורדינטות גיאוגרפיות) כפי שצוין
start_coordinates בשורת הפקודה, מקובץ נקודות וקטוריות, או ממפת רסטר.
כל התאים שאינם NULL נחשבים לנקודות התחלה.
כל אחד x, y start_coordinates זוג נותן את המיקום הגיאוגרפי של נקודה שממנה
יש לחשב את עלות ההובלה. ניתן להזין כמה נקודות רצויות על ידי
משתמש. ניתן לקרוא נקודות התחלה אלו גם מקובץ נקודות וקטוריות דרך
נקודות_התחלה אפשרות או ממפת רסטר דרך ה start_raster אוֹפְּצִיָה.
r.cost יפסיק לצבור עלויות כאשר אחד מהם עלות_מקסימלית מגיעים, או לאחת התחנות
נקודות שניתנו עם stop_coordinates מגיעים. לחלופין, ניתן לקרוא את נקודות העצירה
מקובץ נקודות וקטוריות עם ה- נקודות_עצירה אפשרות. במהלך הביצוע, לאחר שה
נקבעה העלות המצטברת לכל נקודות העצירה, עיבוד עצירות.
שני האתרים נקראים מקובץ נקודות וקטוריות ואלו שניתנו בשורת הפקודה יהיו
מעובד.
תאי ה-null ב- קלט ניתן להקצות למפה עלות (נקודה צפה חיובית) עם
null_cost אוֹפְּצִיָה.
כאשר תאי ריק במפת קלט מקבלים עלות עם null_cost אפשרות, המתאים
תאים במפת הפלט אינם עוד תאי ריק. באמצעות ה- -n דגל, תאי הריקים של
מפת הקלט נשמרת כתאי ריק במפת הפלט.
As r.cost יכול לפעול במשך זמן רב מאוד, זה יכול להיות שימושי להשתמש ב- --v דגל מפורט ל
לעקוב אחר ההתקדמות.
המהלך של האביר (-k דגל) עשוי לשמש לשיפור דיוק הפלט. ב-
בתרשים למטה, המיקום המרכזי (O) מייצג תא רשת שממנו מצטבר
מרחקים מחושבים. השכנים המסומנים ב-X תמיד נלקחים בחשבון עבור
עדכוני עלות מצטברת. עם ה -k אפשרות, השכנים המסומנים ב-K גם הם
נחשב.
. . . . . . . . . . . . . . .
... ק... ק...
. . . . . . . . . . . . . . .
... ק. אקס. אקס. אקס. ק.
. . . . . . . . . . . . . . .
... איקס. איקס. איקס. ...
. . . . . . . . . . . . . . .
... ק. אקס. אקס. אקס. ק.
. . . . . . . . . . . . . . .
... ק... ק...
. . . . . . . . . . . . . . .
דוגמה למהלך של אביר:
שטוח עלות משטח לְלֹא (שמאלה שִׁמשָׁה) ו עם מה היא של אביר
המהלך (ימין שִׁמשָׁה). השמיים ברירת מחדל is ל לגדול מה היא עלות כלפי חוץ
in 8 הוראות. שימוש מה היא של אביר המהלך גדל it כלפי חוץ
in 16 הוראות.
אם קרוב אם פרמטר הפלט מצוין, המודול יחשב עבור כל תא את
נקודת ההתחלה הקרובה ביותר בהתבסס על העלות המצטברת הממוזערת תוך כדי מעבר מעל העלות
מפה
NULL תאים
כברירת מחדל, תאי ריק במפת הרסטר של הקלט אינם כלולים באלגוריתם, ולכן
נשמר במפת הפלט.
אם מישהו רוצה r.cost כדי לחצות באופן שקוף כל אזור של תאים ריקים, ה- null_cost= 0.0
יש להשתמש באפשרות. לאחר מכן, תאי ריק פשוט מפיצים את העלויות הסמוכות. תאים אלה יכולים
יישמרו כתאי ריק במפת הפלט באמצעות ה- -n דגל.
אורים
לפעמים, כאשר ההבדלים בין ערכי קטגוריות תאים שלמים ב r.cost
תפוקת פני השטח המצטברת קטנה, תפוקת עלות מצטברת זו לא יכולה להיות מוגדרת במדויק
משמש כקלט ל r.drain (r.drain (יוציא תוצאות גרועות). בעיה זו יכולה להיות
עקיפה על ידי יצירת ההבדלים בין ערכי קטגוריות התאים בעלות המצטברת
פלט גדול יותר. מומלץ שאם הפלט מ r.cost ישמש כקלט ל
r.drain, המשתמש מכפיל את מפת פני השטח של עלות הקלט ל- r.cost לפי ערך המפה
רזולוציית תאים, לפני הפעלה r.costניתן לעשות זאת באמצעות r.mapcalcהמפה
ניתן למצוא את הרזולוציה באמצעות G.Regionבעיה זו אינה מתעוררת עם נקודה צפה
מפות.
אַלגוֹרִיתְם הערות
הגישה הבסיסית לחישוב עלות נסיעה מינימלית היא כדלקמן:
המשתמש יוצר מפת רסטר המציינת את עלות חציית כל תא ב
כיוונים צפון-דרום ומזרח-מערב. מפה זו, יחד עם סט נקודות התחלה, הן
הוגש ל r.costנקודות ההתחלה מוכנסות לתאי רשימה שמהם עלויות ל...
יש לחשב תאים סמוכים. התא ברשימה עם העלות המצטברת הנמוכה ביותר
נבחר לחישוב עלויות לתאים השכנים. העלויות מחושבות ואלו
תאים מוכנסים לרשימה והתא המקורי סוכם. תהליך זה של בחירה
תא העלות המצטברת הנמוך ביותר, חישוב עלויות לשכנים, הצבת השכנים
ברשימה והסרת התא המקורי מהרשימה ממשיכה עד שהרשימה
ריק.
ההיבט הגוזל ביותר זמן באלגוריתם זה הוא ניהול רשימת התאים.
שעבורם חושבו לפחות בתחילה עלויות מצטברות. r.cost משתמש בינארי
עץ עם רשימה מקושרת בכל צומת בעץ לאחזקה יעילה של תאים עם
עלויות מצטברות זהות.
r.cost, כמו רוב תוכניות הרסטר של GRASS, מיועדת גם היא להפעלה על מפות גדולות מזה
יכול להיכנס לזיכרון המחשב הזמין. כפי שהאלגוריתם עובד דרך הרשימה הדינמית של
תאים הוא יכול לנוע כמעט באקראי ברחבי האזור כולו. r.cost מחלק את כל השטח
למספר חלקים ומחליף את החלקים הללו בזיכרון ומחוצה לו (לדיסק וממנו) כ
נָחוּץ. זה מספק גישת זיכרון וירטואלי שתוכננה בצורה מיטבית עבור מפות רסטר דו-ממדיות.
כמות הזיכרון שיש להשתמש בו r.cost ניתן לשלוט באמצעות זיכרון אוֹפְּצִיָה,
ברירת המחדל היא 300 MB. עבור מערכות עם פחות זיכרון ערך זה יצטרך להיות נמוך יותר
ערך.
דוגמאות
שקול את הדוגמה הבאה:
קלט:
משטח עלות
. . . . . . . . . . . . . . .
. 2 . 2 . 1 . 1 . 5 . 5 . 5 .
. . . . . . . . . . . . . . .
. 2 . 2 . 8 . 8 . 5 . 2 . 1 .
. . . . . . . . . . . . . . .
. 7 . 1 . 1 . 8 . 2 . 2 . 2 .
. . . . . . . . . . . . . . .
. 8 . 7 . 8 . 8 . 8 . 8 . 5 .
... . . . . . . . . . . _____ . .
. 8 . 8 . 1 . 1 . 5 | 3 | 9.
... . . . . . . . . . . |___| . .
. 8 . 1 . 1 . 2 . 5 . 3 . 9 .
. . . . . . . . . . . . . . .
פלט (באמצעות -k): פלט (לא באמצעות -k):
משטח עלות מצטברת משטח עלות מצטברת
... * * * * * . . . . . .
21. 21. 20. 19. 17. 15. 14. 22. 21* 21 * 20 * 17. 15. 14.
... * * * * * . . . . . .
20. 19. 22. 19. 15. 12. 11. 20. 19. 22* 20 * 15. 12. 11.
... * * * * * . . . .
22. 18. 17. 17. 12. 11. 9. 22. 18. 17* 18 * 13 * 11. 9.
... * * * * * . . . .
21. 14. 13. 12. 8. 6. 6. 21. 14. 13. 12. 8. 6. 6.
... . . . . . . . . . . . _____. . . . . . . . . . . . . . . . .
16. 13. 8. 7. 4 | 0 | 6. . 16. 13. 8. 7. 4. 0. 6.
... . . . . . . . . . . |___|. . . . . . . . . . . . . . . . .
14. 9. 8. 9. 6. 3. 8. 14. 9. 8. 9. 6. 3. 8.
... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
מיקום ההתחלה שסיפק המשתמש בדוגמה לעיל הוא המסגרת 3 בקלט הנ"ל
מפה. העלויות במפת הפלט מייצגות את העלות הכוללת של המעבר מכל תיבה ("תא")
למיקום התחלה אחד או יותר (כאן, רק אחד). תאים המוקפים בכוכביות הם
אלו השונים בין פעולות המשתמשות במהלך האביר לבין פעולות שלא משתמשות בו (-k)
אוֹפְּצִיָה.
תְפוּקָה אנליזה
ניתן לראות את מפת הפלט, לדוגמה, כמודל גובה שבו ההתחלה
המיקום/ים הוא/הם הנקודה/ות הנמוכה/ות ביותר. תפוקות מ r.cost יכולים לשמש כקלטים ל
r.drain עם דגל הכיוון -d, על מנת להתחקות אחר המסלול בעלות הזולה ביותר שניתן על ידי זה
מודל בין כל תא נתון לבין r.cost מיקום/י התחלה. שתי התוכניות, כאשר
בשימוש יחד, יוצרים נתיבים או מסדרונות בעלות הנמוכה ביותר בין שני מיקומים במפה
(תאים).
הקצר ביותר מרחק משטחים
השמיים r.cost מודול מאפשר חישוב המרחק הקצר ביותר של כל פיקסל מהרסטר
קווים, כגון קביעת המרחקים הקצרים ביותר של משקי בית לכביש הסמוך. עבור
משטחי עלות אלו עם ערך עלות 1 משמשים. החישוב מתבצע באמצעות r.cost as
להלן (דוגמה לאזור Spearfish):
g.region raster=כבישים -p
r.mapcalc "שטח.אחד = 1"
r.cost -k קלט=שטח.אחד פלט=מרחק start_raster=כבישים
מרחק ד. רסט
מרחק d.rast.num
#המרה למרחק מטרי ממרחק תא באמצעות רזולוציית הרסטר:
r.mapcalc "dist_meters = distance * (ewres()+nsres())/2."
d.rast dist_meters
סוג מנגנון כיוון
משטח כיוון התנועה נוצר כדי לתעד את רצף התנועות שנוצרו
משטח צבירת העלות. בלי זה r.drain לא ייצור כראוי נתיב מ
נקודת סיום חזרה לנקודת ההתחלה. הכיוון של כל תא מצביע לעבר הבא
תָא. הכיוונים נרשמים במעלות CCW ממזרח:
112.5 67.5 כלומר תא עם הערך 135
157.5 135 90 45 22.5 אומר שהתא הבא נמצא בצפון מערב
X 180 360
202.5 225 270 315 337.5
247.5 292.5
עלות הַקצָאָה
דוגמה: חישוב מפת הקצאת העלויות "costalloc" ומפת העלויות המצטברות
"costsurf" עבור נקודות התחלה נתונות ("מקורות" של המפה) ומפת רסטר עלויות נתונה "costs":
r.cost input=costs start_raster=sources output=costsurf nearest=costalloc
מה היא מינימום עלות נתיב
פעם r.cost מחשב את מפת העלויות המצטברות, r.drain ניתן להשתמש בו כדי למצוא את העלות המינימלית
נתיב. ודא להשתמש ב -d דגל ומפת הרסטר של כיוון התנועה בעת ריצה
r.drain כדי להבטיח שהנתיב מחושב בהתאם לכיווני התנועה הנכונים.
השתמש ב-r.costgrass באופן מקוון באמצעות שירותי onworks.net