יותר

כיצד להשתמש במשולש דלאונאי ב- QGIS?


אני צריך ליצור מצולע של Thiessen לאתר בניו ג'רזי וכל מה שיש לי כרגע זה הריכוזים מדגימות שלקחנו באזור. מה עוד אני צריך ואיך אני מכניס אותו ל- QGIS כדי להשיג את התוצאה הרצויה? מה זה לחלק את החפירה הכוללת למצולעים על בסיס ריכוזים? כל מידע יעזור.


הדרך הקלה ביותר להכין את הנתונים שלך לייבוא ​​ב- QGIS היא בדרך כלל ליצור CSV דומה ל-

x, y, ריכוז 1,2,12.5 1,3,20.7 2,2,30.1

לאחר שטענת את ה- CSV, תוכל להשתמש בשכבה המתקבלת כקלט למשולש, אינטרפולציה או כל ניתוח אחר שתרצה.


CGAL: משולש דלאוני לעומת משולש בדוגמה של CGAL

בעבודתי עלי להשיג מעטפת ראשונה של שכני וורונוי עבור חלקיק מוקד. לשם כך אני משתמש במשולש דלאונאי שהוא הגרף הכפול של טסלציה של וורונוי. הגרסה של CGAL בה אני משתמש היא 4.7. תמיד השתמשתי בקוד הבסיסי ב- CGAL manual_4.7 כתבנית ליצירת משולש של דלאונאי. הבעיה שלי היא עם הכותרות והסוגים בדוגמה הזו, מכיוון שגיליתי לאחרונה שהם שונים מ- CGAL 4.14 שהיא הגרסה האחרונה שיש. ב- CGAL 4.7:

ואז בדקתי פעמיים את המדריך כדי לראות אם ההתפוצצויות שונות או לא. למיטב הבנתי, עיצוב תוכנה 4.14 ועיצוב תוכנה 4.7 זהים ותואמים לדוגמא שנייה. מכיוון שאני צריך משולש עם מאפיין מעגל ריק, ואני רק צריך לאחזר את המדדים של קודקודים שכנים במשולש דלאוני, האם הראשון גם מוביל לאותן תוצאות? אני יכול לבדוק אם יש כמה נקודות, אבל אני רק בספק אם אם הם מפיקים את אותן התוצאות עבור כל קבוצת נקודות?


האם ניתן ליצור משולש דלאונאי רק במאונך (מימד Z)?

אני עובד על תוסף ב- QGIS שיוצר מודל תלת-ממדי מנתוני סריקה. במקרה כזה עלי ליצור משולש רק במישור האנכי (ללא חיבור פנים אנכיות עם נקודות שכנות).

זה הקוד והדוגמה שלי עם האפקט הנוכחי.

לאחר פונקציית דלאוניי אני יוצר קובץ stl מנקודות ופנים. להלן מה שאני צריך, אך האלגוריתם פועל כראוי רק כאשר קיבלתי קו ישר אחד. אני צריך את זה לכל הנקודות.

ניסיתי את הרעיון שלך אבל זה לא עבד.

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

זו דוגמה לרסטר שאותו ברצוני להמיר למודל STL 3D. פיקסל אחד קיבל X, Y וערך גובה (בקוד זה block.value)

Edit2: אני צריך לעשות פרצופים בין זה. זו הדמיה טובה יותר המיוצרת ב- ArcScene.


3 תשובות 3

לאחר התנסות, הפתרון נראה פשוט (פוסט זה היה מועיל למדי):

שיטת המפתח להבנה היא טרנספורמציה המתועדת בקצרה, אולם בתיעוד כתוב כל מה שצריך לומר. עבור כל סימפלקס, שנה [. n,: n] מכיל את מטריצת השינוי, והטרנספורמציה [:, n ,:] מכילה את הווקטור r שאליו קשורה המטריצה. נראה כי וקטור r נבחר לקודקוד האחרון של הסימפלקס.

נקודה מסובכת נוספת היא איך להשיג b, כי מה שאני רוצה לעשות זה משהו כמו

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

כעת, v מכיל מדדים של נקודות קודקוד עבור כל סימפלקס ו- w מחזיקים משקולות תואמות. כדי לקבל את הערכים האינטרפולציה p_values ​​בערכת הנקודות p, אנו עושים זאת (שימו לב: הערכים חייבים להיות מערך NumPy בשביל זה):

לחלופין, אנו עשויים לעשות זאת בשלב יחיד באמצעות "np.einsum" שוב:

יש לנקוט בזהירות מסוימת במצבים, כאשר חלק מהנקודות המשולבות נמצאות מחוץ לרשת. במקרה כזה, find_simplex (p) מחזיר -1 עבור הנקודות האלה ואז תצטרך להסוות אותן (אולי באמצעות מערכים רעולי פנים).


תְבִיעָה. זה לא אפשרי באופן כללי.

הוכחה. אם אין ארבע נקודות במערך הנקודות שלך מעגליות, הרי שהמשולש של דלאוניי הוא ייחודי. כך שכל עוד מצולע המכשול מכיל לפחות קצה אחד שאינו דלאונאי, לא תוכלו להגיע למשולש הדלאונאי הייחודי של נקודת הנקודה. זה קל למדי לראות: שקול, כמו באלגוריתם ההתהפכות, מיקום רביעי במצב כללי שצריך להעיף את האלכסון שלו כדי להיות דלאונאי. עכשיו תן לאחד המשולשים הרעים להיות המכשול והמערכת של ארבעת הקודקודים של רבוע הדרך תהיה קבוצת הנקודות. אז ברור, אתה לעולם לא יכול להגיע לשלשול דלאונאי.

עדכון: הבעיה שתיארת היא מקרה מיוחד של בעיית המשולש המוגבלת של דלאונאי. במקרה שלך, הקצוות המוגבלים הם רק קצוות גבולות המכשולים שלך. ישנן מספר ספריות פיתון שיכולות לעשות זאת. לדוגמה


1 תשובה 1

הדוגמה שלך היא מודל תלת ממדי. אתה רואה שאין שום צומת חיבור בכל מעבר. למשטחים שאינם ישרים לפניך יש רשת משולשים צפופה ככל הנראה.

יש הרבה תוכנות תלת מימד המציגות משטחים כמשולשים. חלקם מאפשרים ייצוא מסגרת קווית דו-ממדית, אשר התחזיות המשולשים הם וקטורים. לצערי אין לי תוכנה כזו. בכל חלק שיש לי, ייצוא רשת משולש כתמונת וקטור דו-ממדית מושבת.

מבלי ללכת לתלת ממד ניתן לשלש צורה. ניתן לעשות זאת באופן ידני או באמצעות תוכנת משולש כלשהי. משולש דלאוני הוא שיטה ידועה לעשות זאת איכשהו בצורה אופטימלית. שיטה זו היא בערך 90 שנה של מתמטיקה והיא מתוכנתת לתוכנות גרפיות רבות.

אם יש לך תמונת רסטר שמשתמשת בהצללה כדי להציג טפסים תלת מימדיים, אתה יכול לעשות וקטור (= עקוב אחר מפת סיביות) למספר מוגבל של גוונים או גוונים. ואז משולשים אזורים שונים לצפיפות משולשים שונה. בדרך זו תוכלו לדמות את ההצללה בצפיפות כמו בדוגמה שלכם.

נניח שיש לך סוף סוף כמה משולשים. כך תוכלו להוסיף את הצמתים ואת אפקט הזוהר ב- Inkscape:

המשולשים. אם הם במקרה פלחי קו נפרדים, אין צורך לשבור אותם. משולשים אלה הם צורות סגורות (למעשה מצולעי 3 צדדים של Inkscape שיש להמיר בהתחלה לנתיבים)

לשבור את המשולשים לקטעי קו נפרדים

  • בחר הכל
  • אם יש צורך, בטל קבוצה
  • אם יש צורך, עבור לנתיב> אובייקט לנתיב
  • בעזרת כלי הצומת בחר את כל הצמתים על ידי גרירה מעל המשולשים והחזק את המשמרת בו זמנית
  • בסרגל אפשרויות הכלים לחץ על "שבור נתיב בצמתים שנבחרו". דרך נתיב> להתפרק זה שובר את כל המשולשים לקטעי קו נפרדים

בחר הכל, בחלונית סגנון קו נותנים סמני התחלה נקודה לכל שורה

בחר הכל, שכפל הכל, הגדר כפילויות 3. 5% טשטוש

לְהוֹסִיף: ב- Illustrator תוכלו גם לשבור משולשים לקווים עם פונקציית "Outline" בחלונית Pathfinder. התוצאה שונה, תזדקק לעבודה ידנית נוספת. שבילים נחתכים בכל נקודת מעבר. פינות בודדות זקוקות לכלי המספריים. הצד החיובי הוא שאין צורך בשכפול וטשטוש. ניתן להוסיף אפקט מסוגנן> זוהר חיצוני. יישור ראש החץ זקוק להגדרה בחלונית Strokes כדי למנוע מקבצי נקודות שבהם מספר קווים נפגשים באותה נקודה.

הוסף 2 דוגמה פשוטה שמתחילה בתלת מימד ניתנת לקריאה כאן איזו תוכנית משמשת להכנת איור רשת משולש ?. הקבלה הנתונה יכולה לייצר זאת תוך מספר דקות:


שלב 2: הצגת טבלאות ושכבות נתונים¶

שימוש ב- WPSBuilder¶

  • ניתן לצפות בתוכן מסד הנתונים באמצעות תצוגה_מאגר.
  • ניתן לדמיין שכבה מרחבית באמצעות טבלה_וויזואליזציה_מפה.
  • ניתן להמחיש טבלת נתונים באמצעות טבלה_וויזואליזציה_נתונים.

הצגת מסד הנתונים¶

אפשר גם לייצא את הטבלאות באמצעות טבלת ייצוא בפורמט Shapefile, CSV או GeoJSON.

לאחר מכן ייבא טבלאות אלה למערכת המידע הגיאוגרפית המועדפת עליך (לְמָשָׁל OrbisGIS, QGIS). לאחר מכן תוכל לדמיין גרפית את שכבת הנתונים שלך, אך גם את הנתונים שהיא מכילה. קח את הזמן להכיר את ה- GIS שבחרת.

OrbisGIS / QGIS מאפשרים לכם להוסיף מפת רקע של OSM: https://wiki.openstreetmap.org/wiki/QGIS

OrbisGIS / QGIS מאפשרים לך לשנות צבעי שכבה (למשל Surface_osm בירוק, Buildings_OSM באפור, ROADS באדום).


רשת לא סדירה משולשת

א רשת לא סדירה משולשת (פַּח) (משולש ['traɪæ ɳgjʊleɪt] verbo transitivo משולש) הוא מבנה נתונים דיגיטלי המשמש במערכת מידע גיאוגרפית (GIS) לייצוג של משטח. TIN הוא ייצוג מבוסס וקטור של פני הקרקע הפיזיים או קרקעית הים, המורכב מצמתים וקווים מפוזרים באופן לא סדיר עם קואורדינטות תלת מימד (x, y ו- z) המסודרים ברשת משולשים לא חופפים. מספרי TIN נגזרים לעיתים קרובות מנתוני הגובה של מודל גובה דיגיטלי רסטר (DEM). יתרון בשימוש ב- TIN על פני DEM במיפוי ובניתוח הוא שהנקודות של TIN מופצות באופן משתנה על סמך אלגוריתם שקובע אילו נקודות הכי נחוצות לייצוג מדויק של השטח. לכן קלט הנתונים הוא גמיש ויש צורך לאחסן פחות נקודות מאשר ב- DEM עם נקודות המופצות באופן קבוע. בעוד ש- TIN עשוי להתאים פחות מסריקת DEM עבור סוגים מסוימים של יישומי GIS, כגון ניתוח שיפוע פני השטח וההיבט, ל- TIN יש את היתרון בכך שהם יכולים לתאר שטח בתלת מימד. עם זאת, למספרי TIN חסרונות ואינם מתאימים לכל פרויקט. בעת שימוש במספרי TIN, פרטים על המשולשים בפועל עלולים לאבד. כמו כן, מכיוון ש- TIN הם ליניאריים, קצוות רבים יופיעו משוננים מה שמעוות את התמונה. [1]

רשת לא סדירה משולשת מייצגת משטח גובה טופוגרפי על ידי צמצום של משולשים שאינם חופפים, עם גבהים בפינותיהם. ויזואליזציות תלת מימדיות נוצרות בקלות על ידי עיבוד ההיבטים המשולשים. באזורים שבהם יש מעט שינויים בגובה פני השטח, הנקודות עשויות להיות מרווחות באופן נרחב ואילו באזורים בעלי גיוון שונה יותר בגובה צפיפות הנקודות מוגברת.

TIN מבוסס בדרך כלל על משולש של דלאוניי, אך השירות שלו יוגבל על ידי בחירת נקודות נתוני קלט: נקודות שנבחרו היטב ימוקמו כדי לתפוס שינויים משמעותיים בצורת פני השטח, כמו פסגות טופוגרפיות, הפסקות שיפוע, רכסים , רצפות עמק, בורות ועמודים.

ניתן מבחינה טכנית ליצור TIN עם היבטים חופפים. [2] מספרי TIN כאלה יכולים להיות שימושיים עבור דוגמנות לתכונות גיאוגרפיות מסוימות, כולל מתלים ומערות אולם לא כל חבילות ה- GIS מיועדות לטפל ב- TIN כאלה. החלק של TIN שאינו חופף את עצמו מכונה לפעמים שטח פונקציונלי.

למרות שקשורים בדרך כלל לנתונים תלת מימדיים (x, y ו- z) וטופוגרפיה, מספרי TIN שימושיים גם לתיאור וניתוח של התפלגויות וקשרים אופקיים (x ו- y).

תוכנית הרשת הלא סדירה המשולשת הראשונה של GIS נכתבה על ידי רנדולף פרנקלין באוניברסיטת סיימון פרייזר בשנת 1973. [3]


תחביר

מערך TIN שייווצר.

יש להגדיר את ההתייחסות המרחבית של פלט ה- TIN למערכת קואורדינטות מוקרנת. מערכות קואורדינטות גיאוגרפיות אינן מומלצות מכיוון שלא ניתן להבטיח משולש דלאונאי כאשר קואורדינטות XY באות לידי ביטוי ביחידות זוויתיות, מה שעלול להשפיע לרעה על דיוק החישובים מבוססי המרחק, כגון שיפוע, נפח וקו ראייה.

תכונות הקלט ותכונותיהם הקשורות אשר יתרמו להגדרת ה- TIN.

  • in_features - התכונה שגיאומטריה שלה יובא ל- TIN.
  • גובה שדה - מקור הגובה של תכונות הקלט. ניתן לציין כל שדה מספרי מטבלת התכונות של תכונת הקלט, יחד עם Shape.Z לערכי Z של תכונות תלת ממדיות, ו- Shape.M לערכי M המאוחסנים בגיאומטריה. בחירת מילת המפתח & ltNone & gt תביא לכך שגובה התכונה יטופל על פני השטח שמסביב.
  • sf_type - תפקיד תכונת הקלט בהגדרת משטח ה- TIN. האפשרויות התקפות תלויות בגיאומטריה של תכונות הקלט. ניתן להגדיר מאפייני נקודה ומרובת נקודות כ Mass_Points, התורמים לערכי גובה המאוחסנים כצמתים של נתוני TIN. ניתן להגדיר את מאפייני הקווים כמאס_פוינטים או כפסים על ידי ציון Hard_Line או Soft_Line. תכונות מצולע יכולות לייצג את גבול האינטרפולציה על ידי ציון Hard_Clip או Soft_Clip, חלקים פנימיים ללא נתונים על ידי בחירת Hard_Erase או Soft_Erase, או אזורים בגובה קבוע על ידי ציון Hard_Rlace או Soft_Rlace. בנוסף, ניתן להשתמש בפוליגונים גם להקצאת ערכי תכונה שלמים על ידי ציון Hardvalue_Fill או Softvalue_Fill.
  • tag_field - מאפיין מספרי שמקורו בשדה שלם בטבלת התכונות של תכונת הקלט שבערכים שלה ניתן להשתמש כדי להקצות צורת ייחוס בסיסית לאלמנטים הנתונים של ה- TIN. ציון & ltNone & gt יביא לכך שלא יוקצו ערכי תג.

מציין את טכניקת המשולש המשמשת לאורך שברי ה- TIN.

  • DELAUNAY - ה- TIN ישתמש במשולש תואם דלאונאי, אשר עשוי לצפוף כל קטע של ההפרות כדי לייצר מספר קצוות משולשים. זו ברירת המחדל.
  • CONSTRAINED_DELAUNAY - ה- TIN ישתמש במשולש מאולץ של דלאונאי, שיוסיף כל קטע כקצה יחיד. כללי המשולש של דלאונאי מכובדים בכל מקום למעט לאורך פרצות, שלא יצטופפו.


צפו בסרטון: QGIS Basic 71: Delaunay Triangulation (אוֹקְטוֹבֶּר 2021).