Document 7308477

Download Report

Transcript Document 7308477

Digital Elevation Models and
TIN Algorithms
Marc van Kreveld
‫מרינה סדצקי‬
‫אילנית מודחי‬
‫הרצאה זו תעסוק ב‪-‬‬
‫‪ .1‬מודלים שונים לייצוג פני‪-‬קרקע (‪.)terrain‬‬
‫‪ .2‬אלגוריתמי גישה ל‪.TIN-‬‬
‫‪ .3‬אלגוריתמי המרה בין המודלים השונים‪.‬‬
‫יישום‬
‫‪Geographic Information System -GIS‬‬
‫(מערכת מידע גיאוגרפי)‪ -‬מערכת ממוחשבת‬
‫לאיסוף‪ ,‬ניתוח והצגת נתונים בצורת גיאוגרפית‪.‬‬
‫רוב הניתוחים מושפעים מפני‪-‬הקרקע‪ ,‬לכן יש צורך‬
‫להגדיר את המפות בצורה תלת‪-‬מימדית‪.‬‬
‫‪ – f:A⊂Ŗ×Ŗ→Ŗ‬פונקציה הנותנת גובה לכל‬
‫נקודה ‪ -A( ,p∈A‬שטח פני‪-‬הקרקע המנותחים‪.‬‬
‫גובה הנקודות בשטח לא ידוע במדויק‪ ,‬פרט‬
‫למספר סופי של נקודות המהוות את נקודות‬
‫המדגם (חישוב הגובה‪-‬קירוב לפי נקודות המדגם)‪.‬‬
‫חלק זה יעסוק ב‪-‬‬
‫‪ .1‬מודלים שונים לייצוג פני‪-‬קרקע‬
‫(‪.)terrain‬‬
‫‪ .2‬אלגוריתמי גישה ל‪.TIN-‬‬
‫‪ .3‬אלגוריתמי המרה בין המודלים השונים‪.‬‬
:‫קרקע‬-‫מודלים בסיסיים לייצוג פני‬
.The regular square grid .1
.The contour line .2
.The triangulated irregular network .3
‫‪The regular square grid‬‬
‫מבנה המחלק את השטח ל‪ n-‬מלבנים זהים‪.‬‬
‫מאוחסן במחשב כמערך דו‪-‬מימדי בגודל ‪.n×n‬‬
‫עבור כל מלבן‪ ,‬נשמר בדיוק ערך גובה אחד‬
‫(מיקום הנקודה הנבחרת במלבן זהה עבור כל‬
‫המלבנים ויכולה להיות לדוגמא ממוקמת במרכז‬
‫המלבן)‪.‬‬
Sample of regular square grid
‫חישוב גובה נקודת ‪: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‬‬
‫‪22‬‬
‫‪22‬‬
‫‪25‬‬
‫‪9‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪36‬‬
‫‪53‬‬
‫‪18‬‬
‫‪20‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪17‬‬
‫‪12‬‬
‫‪10‬‬
‫‪15‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪12‬‬
‫‪The Contour line model‬‬
‫‪ - Contour line‬אוסף מקטעים מחוברים בעלי גובה אחיד‪.‬‬
‫המודל מורכב מאוסף של ‪.contour lines‬‬
‫כל ‪ contour line‬מאוחסן כאוסף של נקודות עם קואורדינאטות‬
‫‪ x, y‬בהם הקו עובר‪.‬‬
‫‪ Contour line‬הוא קו עקום סגור‪ ,‬או קו שנקודות הקצה שלו‬
‫נמצאות על גבולות השטח‪ ,‬לכן השטח מחולק לפוליגונים‪.‬‬
Sample of Contour line model
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) .1
.The adjacency structure .2
‫‪The adjacency structure‬‬
‫ישנם שני סוגים של קודקודים‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫קודקוד המתאר פוליגון (חלק משטח פני‪-‬הקרקע)‪ -‬מאוחסן‬
‫שם הפוליגון‪( .‬מסומן ב‪.) -‬‬
‫קודקוד המתאר ‪ -contour line‬מאוחסנים הנקודות דרכם‬
‫)‪.‬‬
‫הקו עובר וגובהו‪( .‬מסומן ב‪-‬‬
‫יש קשת בין פוליגון ל‪ contour line-‬אם קו זה מופיע‬
‫כחלק מגבול הפוליגון‪.‬‬
‫מכיוון ש‪ contour line-‬אינם חוצים זה את זה אזי‬
‫המבנה הנוצר הוא עץ וכל ‪ contour line‬הוא גבול‬
‫של שני פוליגונים בדיוק‪.‬‬
t9
The adjacency structure
l7
l10
t10
t10
t7
l9
t3
l10
l6
t1
t2
l8
t6
t3
l4
l9
l2
t8
l1
t2
t4
l3
l8
t1
l2
t5
l1
t8
t5
l3
t4
l4 t6 t7
l6
l7
t9
‫חישוב ‪: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-‬עם פחות נקודות מדגם‪.‬‬
‫המודל ההיררכי מאפשר למשתמש לבחור רמת דיוק עבור כל‬
‫משימה‪ ,‬בהתאם למשימה‪.‬‬
‫סיכום מודלים לייצוג פני‪-‬קרקע‬
‫המודלים הבסיסיים –‬
‫‪.1‬‬
‫‪ -Grid‬מודל המאפשר גישה ישירה לשטחים השונים‪ .‬צפיפות‬
‫נקודות המדגם קבועה‪ .‬משתמשים במודל זה לצורך סימולציה‬
‫של פני הקרקע‪.‬‬
‫‪.2‬‬
‫‪ -Contour line‬מודל המחלק את השטח לפוליגונים‪ ,‬בהתאם‬
‫לקווי גובה מסוימים‪ .‬מודל זה אינו מתאים לסימולציות‪ .‬מתאים‬
‫לחלוקה השטח לפי איזורים‪.‬‬
‫‪.3‬‬
‫‪ -TIN‬מודל המחלק את השטח למשולשים‪ .‬אין גישה ישירה‬
‫לשטחים השונים וצפיפות נקודות המדגם יכולה להשתנות‪.‬‬
‫משתמשים במודל זה לצורך סימולציה של פני הקרקע‪.‬‬
‫מודל מורכב (המודל ההיררכי)‪ -‬מודל המאפשר בחירה של רמת‬
‫הדיוק בהתאם למשימה הדרושה לביצוע‪.‬‬
‫חלק זה יעסוק ב‪-‬‬
‫‪ .1‬מודלים שונים לייצוג פני‪-‬קרקע (‪.)terrain‬‬
‫‪ .2‬אלגוריתמי גישה ל‪.TIN-‬‬
‫‪ .3‬אלגוריתמי המרה בין המודלים השונים‪.‬‬
Access to TIN
:TIN-‫נתאר שתי שיטות גישה ל‬
Traversal of a TIN
.1
Efficient access to a TIN
.2
‫‪Traversal of a TIN‬‬
‫שיטה ישנה‪ ,‬המבצעת מעבר על ‪ ,TIN‬ומבקרת‬
‫בכל הקודקודים‪ ,‬הצלעות והמשולים של המודל‪.‬‬
‫יתרון השיטה‪ -‬אין צורך באחסון נוסף פרט‬
‫למצביע אחד לנקודה ב‪.TIN-‬‬
‫‪Traversal of a TIN cont ...‬‬
‫תיאור השיטה ‪-‬‬
‫יהי ‪ ,TIN T‬המאוחסן בצורת ‪ .network structure‬יהי‬
‫‪ v‬הקודקוד השמאלי התחתון של ‪.T‬‬
‫לכל משולש ‪ t‬ב‪ T-‬ניתן תווית לכל צלע‪.‬‬
‫יהי ‪ t‬משולש כלשהו ב‪ .T-‬ניתן לצלע ‪ e‬של ‪ t‬את התווית‬
‫‪ in‬אם הקו העובר דרך ‪ e‬מחלק את המישור לשני‬
‫חלקים כך שבחלק אחד נמצא ‪ t‬ובחלק השני ‪ ,v‬אחרת‬
‫ניתן את התווית ‪.out‬‬
‫‪in‬‬
‫‪out‬‬
‫‪in‬‬
‫‪v‬‬
‫‪Traversal of a TIN cont ...‬‬
‫אם הקו העובר דרך ‪ e‬מכיל את ‪ ,v‬אזי אם ‪ t‬נמצא‬
‫משמאל לקו‪ ,‬ניתן ל‪ e-‬תווית ‪ ,out‬אחרת ניתן ל‪e-‬‬
‫תווית ‪.in‬‬
‫‪out‬‬
‫‪v‬‬
‫בכל משולש יש לפחות צלע אחת עם תווית ‪ in‬ולפחות‬
‫צלע אחת עם תווית ‪.out‬‬
‫כאשר במעבר על ‪ TIN‬נגיע לצלע עם תווית ‪ ,in‬נכניס‬
‫את המשולש המתאים לרשימה‪.‬‬
‫משולש בעל שתי צלעות עם תוויות ‪-in‬‬
‫שתי הצלעות בעלות קודקוד משותף ’‪ .v‬נסמן ב‪ in-‬את‬
‫הצלע הנמצאת משמאל לישר העובר דרך הצלע )’‪,(v,v‬‬
‫וב‪ in-and-back-‬את הצלע השניה‪.‬‬
‫‪out‬‬
‫‪in‬‬
‫’‪v‬‬
‫‪In-and-back‬‬
‫‪v‬‬
‫כאשר מגיעים לצלע עם תווית ‪ in-and-back‬תהיה‬
‫כניסה למשולש דרך צלע זו‪ ,‬אולם מיד אחר‪-‬כך תהיה‬
‫חזרה (יציאה) דרך צלע זו‪.‬‬
‫משולש בעל שתי צלעות עם תווית ‪-out‬‬
‫נסמן את הצלעות ב‪ first-out-‬ו‪.second-out-‬‬
‫הצלע עם התווית ‪ ,first-out‬תהיה הצלע הנמצאת‬
‫משמאל לקו העובר דרך הצלע )’‪ (v,v‬כאשר ’‪ v‬הוא‬
‫הקודקוד המשותף לשתי הצלעות‪.‬‬
‫’‪v‬‬
‫‪first-out‬‬
‫‪in‬‬
‫‪second-out‬‬
‫‪v‬‬
‫בהינתן משולש‪ ,‬מתן התוויות לצלעות מחושב בזמן‬
‫קבוע‪.‬‬
‫האלגוריתם‬
‫קלט ‪:‬‬
‫‪ .1‬משולש ‪.t‬‬
‫‪ .2‬צלע ‪.e‬‬
‫ההרצה מתחילה במשולש ‪ t‬שהקודקוד ‪ v‬הוא אחד‬
‫הקודקודים שלו‪ ,‬ובעל צלע ‪ e‬הנמצאת על הגבול‬
‫השמאלי של השטח‪.‬‬
‫האלגוריתם עובר ממשולש למשולש על‪-‬ידי חציה של‬
‫צלעות והחלטה איזה צלע לחצות בשלב הבא‪.‬‬
‫ההחלטה מתבססת על סוג הצלע ‪ e‬וסוג המשולש ‪.t‬‬
‫האלגוריתם ‪-‬‬
:‫דוגמא‬
Traversing a TIN; numbers at arrows correspond
to the algorithm
‫סימולציה של האלגוריתם‬
5
3
2
18
out
in
9
4
10
1
8
10
16
6
Second-out
5
7
in
in
in
in
11
15
Second-out
20
14
13
Second-out
10
12
25