יום שני, 29 בפברואר 2016

איך לדלל את מספר הנקודות במסלול מוקלט

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

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


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

אז כתבתי סקריפט (ניתן להוריד מפה), שלמעשה מדלל את כמות הנקודות ע"י מחיקת כל נקודה שניה כך שלמעשה מסלול המכיל 4000 נקודות הופך להכיל 2000, הסקריפט מקבל כפרמטר את מספר הפעמים עליו לבצע את פעולת הדילול, לדוגמא: מסלול בן 5500 נקודות, כאשר בכל כ-10 מטר ישנה נקודה, לאחר 2 ריצות יכיל 1375 נקודות בצפיפות ממוצעת של נקודה כל כ-30 מטר (מקווה שלא סיבכתי)

כדי להשתמש בו יש לשמור את קובצי המסלול בפורמט gpx (ולא twl) ולהריץ באמצעות Powershell שמנצא בכל מחשב המריץ מערכת הפעלה Windows


 בחלון שנפתח הרץ את הסקריפט שהורדת מהקישור למעלה תוך מתן נתיב לקובצי המסלול המקורי והחדש ואת מספר הפעמים שעל הדילול להתרחש:
אם לא נציין מספר factor הפעולה תתבצע פעם אחת.
אם לא נציין נתיב לקובץ חדש הקובץ המקורי ידרס לאחר הדילול.

.\Set-GpxFileThiner.ps1 -in "C:\Path\to\OriginalTrack.gpx" -out "C:\Path\to\NewTrack.gpx" -factor 2
בפלט הסקריפט ניתן יהיה לראות את כמות הנקודות במסלול המקורי ובמסלול החדש, אם עדיין כמות הנקודות גדולה מ 2000 ניתן להריץ שוב עם Factor יותר גדול.