370 likes | 603 Views
Digital Elevation Models and TIN Algorithms. Marc van Kreveld. מרינה סדצקי אילנית מודחי. הרצאה זו תעסוק ב-. מודלים שונים לייצוג פני-קרקע ( terrain ). אלגוריתמי גישה ל- TIN . אלגוריתמי המרה בין המודלים השונים. י י ש ו ם.
E N D
Digital Elevation Models and TIN Algorithms Marc van Kreveld מרינה סדצקי אילנית מודחי
הרצאה זו תעסוק ב- • מודלים שונים לייצוג פני-קרקע (terrain). • אלגוריתמי גישה ל-TIN. • אלגוריתמי המרה בין המודלים השונים.
י י ש ו ם • GIS- Geographic Information System (מערכת מידע גיאוגרפי)- מערכת ממוחשבת לאיסוף, ניתוח והצגת נתונים בצורת גיאוגרפית. • רוב הניתוחים מושפעים מפני-הקרקע, לכן יש צורך להגדיר את המפות בצורה תלת-מימדית. • f:A⊂Ŗ×Ŗ→Ŗ – פונקציה הנותנת גובה לכל נקודה p∈A, (A- שטח פני-הקרקע המנותחים. • גובה הנקודות בשטח לא ידוע במדויק, פרט למספר סופי של נקודות המהוות את נקודות המדגם (חישוב הגובה-קירוב לפי נקודות המדגם).
חלק זה יעסוק ב- • מודלים שונים לייצוג פני-קרקע (terrain). • אלגוריתמי גישה ל-TIN. • אלגוריתמי המרה בין המודלים השונים.
מודלים בסיסיים לייצוג פני-קרקע: • The regular square grid. • The contour line. • The triangulated irregular network.
The regular square grid • מבנה המחלק את השטח ל-n מלבנים זהים. • מאוחסן במחשב כמערך דו-מימדי בגודל n×n. • עבור כל מלבן, נשמר בדיוק ערך גובה אחד (מיקום הנקודה הנבחרת במלבן זהה עבור כל המלבנים ויכולה להיות לדוגמא ממוקמת במרכז המלבן).
חישוב גובה נקודת p: • גישה נאיבית – גובה הנקודה הוא גובה המלבן בו הנקודה נמצאת. • מקבלים פונקציה f לא רציפה, שאינה מקרבת את השטח בצורה טבעית.
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 9 22 22 12 12 12 12 12 25 20 18 53 36 12 12 12 12 12 12 12 12 12 17 12 12 15 10 היתרון והחיסרון למודל: • היתרון העיקרי של המודל הוא בגישה ישירה לכל חלק של השטח. • החיסרון העיקרי של המודל הוא שהוא דורש צפיפות זהה של נקודות המדגם.
The Contour line model • Contour line - אוסף מקטעים מחוברים בעלי גובה אחיד. • המודל מורכב מאוסף של contour lines. • כל contour line מאוחסן כאוסף של נקודות עם קואורדינאטות x, y בהם הקו עובר. • Contour line הוא קו עקום סגור, או קו שנקודות הקצה שלו נמצאות על גבולות השטח, לכן השטח מחולק לפוליגונים.
Perspective view of an Elevation model and the contour line map of it
חישוב גובה נקודת p: • אם הנקודה נמצאת על מקטע, אזי הגובה של p הוא גובה ה- contour line המכיל מקטע זה. • אחרת, מוצאים את הפוליגון בו הנקודה שוכנת, ומחשבים את גובהה כערך הביניים של כל ה- contour lines היוצרים פוליגון זה.
אחסון המודל: ישנן מספר שיטות לאחסון ה- contour lines: • Doubly connected edge list (DCEL). • The adjacency structure.
The adjacency structure • ישנם שני סוגים של קודקודים: • קודקוד המתאר פוליגון (חלק משטח פני-הקרקע)- מאוחסן שם הפוליגון. (מסומן ב- ). • קודקוד המתאר contour line- מאוחסנים הנקודות דרכם הקו עובר וגובהו. (מסומן ב- ). • יש קשת בין פוליגון ל-contour line אם קו זה מופיע כחלק מגבול הפוליגון. • מכיוון ש-contour line אינם חוצים זה את זה אזי המבנה הנוצר הוא עץ וכל contour line הוא גבול של שני פוליגונים בדיוק.
t9 l7 l10 t10 t10 t7 l9 l10 t3 l6 t1 t2 l8 t3 t6 l2 l9 l6 t5 t4 l4 l3 l1 l7 t6 t7 l4 t2 t9 t4 l3 l8 t1 l2 t5 t8 l1 The adjacency structure t8
חישוב contour lines: • קלט: הגבהים לפיהם יחושבו ה-contour lines. • האלגוריתם – • מבצעים טריאנגולציה של נקודות המדגם (לדוגמא טריאנגולצית דלוני). (הנחה- אין משולשים אופקיים). • עבור כל גובה בודקים האם קיים מקטע בכל אחד מהמשולשים, ואם קיים אז יוצרים את המקטע המתאים.
טריאנגולציה, וחישוב contour lines מגובה 24
The Triangulated Irregular Network model (TIN) • נתונה קבוצה סופית של נקודות והגבהים לכל נקודה. • המרחק והצפיפות בין הנקודות יכולים להשתנות (בניגוד ל- grid). • מבצעים טריאנגולציה על נקודות מדגם אלו. • כל נקודה בתחום נמצאת בתוך, על צלע או על נקודה של משולש.
Sample of TIN model Perspective view of a triangulated irregular network
חישוב גובה נקודת p: • אם הנקודה נמצאת על נקודה של המשולש, אזי ניתן לקבל את הגובה בצורה מדויקת (נקודת מדגם). • אם הנקודה נמצאת על צלע של משולש – אינטרפולציה ליניארית לפי שתי הנקודות שיוצרות צלע זו. • אם הנקודה נמצאת בתוך המשולש- אינטרפולציה ליניארית לפי שלושת הנקודות שיוצרות משולש זה.
אחסון המודל – Network structure • עבור כל משולש t, צלע e וקודקוד v קיים אובייקט. • לאובייקט משולש ישנם שלושה שדות – כל שדה מצביע לצלע של המשולש. • לאובייקט צלע ישנם ארבעה שדות- • שני שדות שכל אחד מהם מצביע למשולש הנוצר מצלע זו. • שני שדות שכל אחד מהם מצביע לקודקוד של הצלע. • לאובייקט קודקוד ישנם שלושה שדות המכילים את ערכי הקואורדינאטות והגובה של הקודקוד.
The TIN and the network structure for it. The three values of each vertex are not shown.
מודל מורכב-Hierarchical models • מודל היררכי מייצג שטח מסוים של פני הקרקע במספר רמות של אי-דיוק. • רוב המודלים ההיררכיים מבוססים על TIN. • ככל שמספר נקודות המדגם עולה, כך דרגת הדיוק של ה-TIN היא גבוהה יותר, אולם החישוב הוא יקר יותר. • עבור אפליקציות שאינן דורשות רמת דיוק גבוהה יעיל יותר להשתמש ב-TIN עם פחות נקודות מדגם. • המודל ההיררכי מאפשר למשתמש לבחור רמת דיוק עבור כל משימה, בהתאם למשימה.
סיכום מודלים לייצוג פני-קרקע • המודלים הבסיסיים – • Grid- מודל המאפשר גישה ישירה לשטחים השונים. צפיפות נקודות המדגם קבועה. משתמשים במודל זה לצורך סימולציה של פני הקרקע. • Contour line- מודל המחלק את השטח לפוליגונים, בהתאם לקווי גובה מסוימים. מודל זה אינו מתאים לסימולציות. מתאים לחלוקה השטח לפי איזורים. • TIN- מודל המחלק את השטח למשולשים. אין גישה ישירה לשטחים השונים וצפיפות נקודות המדגם יכולה להשתנות. משתמשים במודל זה לצורך סימולציה של פני הקרקע. • מודל מורכב (המודל ההיררכי)- מודל המאפשר בחירה של רמת הדיוק בהתאם למשימה הדרושה לביצוע.
חלק זה יעסוק ב- • מודלים שונים לייצוג פני-קרקע (terrain). • אלגוריתמי גישה ל-TIN. • אלגוריתמי המרה בין המודלים השונים.
Access to TIN נתאר שתי שיטות גישה ל-TIN: • Traversal of a TIN • Efficient access to a TIN
Traversal of a TIN • שיטה ישנה, המבצעת מעבר על TIN, ומבקרת בכל הקודקודים, הצלעות והמשולים של המודל. • יתרון השיטה- אין צורך באחסון נוסף פרט למצביע אחד לנקודה ב-TIN.
in out in v תיאור השיטה - Traversal of a TIN cont ... • יהי TTIN, המאוחסן בצורת network structure. יהי v הקודקוד השמאלי התחתון של T. • לכל משולש t ב-T ניתן תווית לכל צלע. • יהי t משולש כלשהו ב-T. ניתן לצלע e של t את התווית in אם הקו העובר דרך e מחלק את המישור לשני חלקים כך שבחלק אחד נמצא t ובחלק השני v, אחרת ניתן את התווית out.
out v Traversal of a TIN cont ... • אם הקו העובר דרך e מכיל את v, אזי אם t נמצא משמאל לקו, ניתן ל-e תווית out, אחרת ניתן ל-e תווית in. • בכל משולש יש לפחות צלע אחת עם תווית in ולפחות צלע אחת עם תווית out. • כאשר במעבר על TIN נגיע לצלע עם תווית in, נכניס את המשולש המתאים לרשימה.
out in v’ In-and-back v משולש בעל שתי צלעות עם תוויות in- • שתי הצלעות בעלות קודקוד משותף v’. נסמן ב-in את הצלע הנמצאת משמאל לישר העובר דרך הצלע (v,v’), וב-in-and-back את הצלע השניה. • כאשר מגיעים לצלע עם תווית in-and-back תהיה כניסה למשולש דרך צלע זו, אולם מיד אחר-כך תהיה חזרה (יציאה) דרך צלע זו.
first-out v’ in second-out v משולש בעל שתי צלעות עם תווית out- • נסמן את הצלעות ב-first-out ו-second-out. • הצלע עם התווית first-out, תהיה הצלע הנמצאת משמאל לקו העובר דרך הצלע (v,v’) כאשר v’ הוא הקודקוד המשותף לשתי הצלעות. • בהינתן משולש, מתן התוויות לצלעות מחושב בזמן קבוע.
האלגוריתם • קלט : • משולש t. • צלע e. • ההרצה מתחילה במשולש t שהקודקוד v הוא אחד הקודקודים שלו, ובעל צלע e הנמצאת על הגבול השמאלי של השטח. • האלגוריתם עובר ממשולש למשולש על-ידי חציה של צלעות והחלטה איזה צלע לחצות בשלב הבא. • ההחלטה מתבססת על סוג הצלע e וסוג המשולש t.
דוגמא: Traversing a TIN; numbers at arrows correspond to the algorithm
3 2 9 4 8 10 1 5 16 6 7 11 15 13 12 14 סימולציה של האלגוריתם 5 18 out in In-and-back first-out first-out 10 Second-out Second-out in in in first-out first-out in Second-out Second-out 25 20 10