בניית Locator באמצעות ArcGIS Pro
מה זה לוקייטור? הLocator הינו קובץ המאפשר איתור כתובות ומקומות על גבי המפה. לאחר בנייה של Locator אפשר יהיה להשתמש בו גם כדי להריץ תהליך עיגון כתובות. תהליך עיגון כתובות, עליו נרחיב בהמשך, מאפשר להפוך טבלת כתובות לשכבה גאוגרפית נקודתית.
מה זה לוקייטור? ה Locator הינו קובץ המאפשר איתור כתובות ומקומות על גבי המפה. לאחר בנייה של Locator אפשר יהיה להשתמש בו גם כדי להריץ תהליך עיגון כתובות. תהליך עיגון כתובות, עליו נרחיב בהמשך, מאפשר להפוך טבלת כתובות לשכבה גאוגרפית נקודתית.
מונחים חשובים בפוסט זה:
- Locator: קובץ המאפשר איתור כתובות על גבי מפה.
- Geocode: תהליך הממיר טבלת כתובות לישויות נקודתיות עם קואורדינטות.
- שכבת ייחוס- מקור מידע אמין עליו נבסס את ה Locator (למשל שכבת רחובות או שכבת יישובים).
עד גרסה 3.0 של ניתן היה להשתמש ב Locator אשר מתבסס על שירות של Esri בשם World Geocode Service. השימוש בשירות המקוון צרך קרדיטים – 40 קרדיטים על כל איתור של 1000 כתובות.
החל מגרסה 3.1 ניתן לבנות Locator. ה Locator שנבנה, מתבסס על שכבות ייחוס ועל סט הגדרות שהוכנסו מראש במהלך הרצת הכלי. הרצת תהליכי Geocode בעזרת Locator כזה לא צורכת קרדיטים ולא דורשת הרחבה ספציפית ל ArcGIS Pro, הכלי קיים גם ברישיון Basic .
הוראות בניית Locator בArcGIS Pro.
נריץ את הכלי Create Locator.
תהליך הבנייה של Locator כולל הגדרה שכבות הייחוס (Reference Data), לכל שכבה צריך להגדיר איזה סוג חיפוש (Role) היא מייצגת ולמפות את השדות בשכבה לפי אותו Role.
דוגמה 1 – בניית Locator "בסיסי" לחיפוש ישובים.
על מנת לבנות את ה Locator כאמור צריך להכין מראש שכבת ייחוס, במקרה הזה נשתמש בשכבה נקודתית של כלל הישובים בארץ.
בכלי Create Locator נגדיר את הדברים הבאים:
נגדיר את ישראל במדינת חיפוש. ועברית כשפת חיפוש.
בחלק של שכבות הייחוס נכניס את ההפנייה לשכבת הישובים ותחת Role נמלא שסוג החיפוש יהיה למטרת חיפוש City.
שימוש לב שלאחר בחירת ה Role נפתחת רשימת מיפוי שדות. כל שדה שהוא חובה למילוי, תופיע לידו כוכבית. במקרה הנ"ל חובה לשייך רק את ה-City, ולשייך אליו את השדה בשכבה אשר מכיל את שם העיר/הישוב.
לאחר הרצת הכלי יווצר קובץ מסוג Locator במיקום שהגדרנו. ה Locator יתווסף אוטמטית למפה שלנו, כך שנוכל כבר עכשיו לחפש מקומות על גבי המפה.
כעת בכל שלב תוכלו להשתמש בכלי ה Locate בכדי לאתר יישוב על גבי המפה.
ה Locator יודע למצוא כתובות שנכתבו בצורה מדויקת אבל גם להשלים את הטקסט ולחפש כתובות שנכתבו עם שגיאות.
שלב הבדיקות:
כל כתובת או מיקום שאותר על ידי ה Locator מקבל ציון בין 0 ל100 לפי ההתאמה שלו לשכבת המקור. לחיצה על תוצאת החיפוש תציג את המידע הנ"ל.
כעת ננסה לאתר כתובת ספציפית.
ראשית חשוב להבין את מבנה הכתובת בישראל.
סוג רחוב שם רחוב מספר בית ישוב
רחוב ז'בוטינסקי 106, תל אביב
תהליך בניית ה Locator הוגדר מול חברת ESRI כדי שיכיל את כל האפשרויות שיכולות להיות, לכתיבה של כתובת בישראל על ידי המשתמש.
חלק מהמשתמשים עלולים לכתוב את הכתובת עם המילה "רחוב" בהתחלה.
חלק יכתבו גבותינסקי
חלק יכתבו עם פסיק אחרי מספר הבית
ועוד…
בתהליך של שנים מול ESRI יצרנו כלי שמתייחס לצורות כתיבת כתובת שונות כדי שה-Locator יבנה בצורה הטובה ביותר
- צורות כתיבה אופייניות
- הכפלה של אותיות (לדוגמה במילה ירושליים/ ירושלים)
- ה' הידיעה
- קיצורים של מקומות
- שמות פרטיים (שדרות בגין / שדרות מנחם בגין)
- שמות אנשים מוכרים
- כתיבה של מספרים בעזרת מילים
- שגיאות כתיב אופייניות
- אותיות שנשמעות דומה
- אותיות דומות בצורה
- אותיות קרובות במקלדת
- זכר / נקבה
- סוגי רחובות (משעול, סמטת, שד' וכו')
- פינות רחוב
דוגמה 2 – בניית Locator אשר מחפש כתובת מדויקת.
על מנת ליצור Locator של איתור כתובת, נבנה Locator מורכב יותר, אשר כולל מספר שכבות חיפוש. ברוב המקרים אנו מעוניינים לתת למשתמש לחפש כתובת מדויקת או שם של רחוב (ללא מספר בית) או שם של ישוב. לכן נבנה Locator מורכב או בשמו Multirole Locator אשר ידע למצוא כתובת לפי יותר משכבה אחת.
אם המשתמש יחפש כתובת מדויקת שלא נמצאה , כמו לדוגמה "ז'בוטינסקי 1000, רמת גן" ואין מספר בית כזה, אז מה שיוחזר בפלט זה מרכז רחוב ז'בוטינסקי רמת גן.
גם כאן אנו צריכים להכניס שכבות יחוס לכלי תוך כדי הבניה. לפי נתונים הזמינים לנו נבחר במה להשתמש:
לדוגמה אפשר להשתמש בנתונים ארציים אשר רכשנו מהמרכז למיפוי ישראל או מאחת החברות: חברת Here או חברת מפה.
ניתן להשתמש בסט נתונים שיש לנו ממקור אחר כמו שכבת כתובות עירונית, שכבת מקומות, נקודות עניין (POI), או שכבת מיקודים (מיקוד 7 ספרות)
הערה חשובה:
- לפני בניית ה Locatorעליכם לעבור על כלל שכבות הייחוס ולהבין איך הן מאורגנות, מה סוגן (נקודות או קווים) ואילו שדות נתונים יש בהן.
- אחד הדברים החשובים שיש לשים לב אליו הוא שדה שם הרחוב בשכבת הכתובות או הרחובות שלכם. בכדי שהחיפוש כתובת יהיה מדויק צריך לוודא שהשדה של שם הרחוב לא יכלול את סוג הרחוב (משעול, סמטת, שד' וכו') ושסוג הרחוב יהיה בשדה משלו – Street Prefix (קיים בדרך כלל בנתוני מפ"י ונתוני Here).
- במידה ושם הרחוב וסוג הרחוב נמצאים באותו שדה, יש להריץ כלי שיפריד אותם לשני שדות. לכלי קוראים Split Address Into Components הכלי יוצר שכבה חדשה עם אותה סכמה של שדות ובסוף הטבלה שדה הרחוב יפוצל ל-2 שדות חדשים – שם רחוב וסוג רחוב. חובה ליצור 2 שדות כאלה על מנת להגיע לתוצאות הרצויות.
לאחר שבדקתם את השדות שלכם. תוכלו ליצור Locator.
הRoles המרכזיים שניתן להגדיר ב create locator הם:
Point address – כתובות נקודתיות (מבוסס שכבה נקודתית של כתובות)
Street Address – כתובות קוויות (מבוסס על שכבה קווית של רחובות עם נתוני כתובות)
POI – נקודות עניין נקודתיות
Postal- מיקודים
City – מרכזי ישובים
לדוגמה לבניית Locator המבוסס על שכבה נקודתית של כתובות, שכבה קווית של רחובות ושכבה נקודתית של ישובים. במקרה הזה מתוך נתוני חברת מפה.
- שימו לב: לפני בניית ה Locator מנתונים אלו יש להריץ את הכלי Split Address Into Components.
בכלי Create Locator יש להכניס את השדות לפי סדר, לכל אחד נגדיר Role ולאחר מכן נעבור לשלב מיפוי השדות.
שימו לב:
- בשכבת הכתובות הנקודתית חובה להגדיר את השדות: מספר הבית, שם הרחוב, סוג הרחוב ושם העיר. שאר השדות הם רשות.
- בשכבת הרחובות בדוגמה זו יש גם את כיוון כתובת הבתים. כלומר לכל רחוב יש את מספרי הבתים בצד שמאל ובצד ימין. התוכנה תדע לאתר כתובות גם לפי השכבה הזאת.
- עליכם למלא במיפוי השדות את מספרי הבתים ב 4 שדות:
תחת city צריך למלא את שם העיר. ב Role של Street Address מופיע של העיר כ left city וכ-right city. זה מתייחס לרחובות שנמצאים בערים שונות בכל צד. אם אין ב DATA שלכם חלוקה כזו אז אתם צריכים להזין את שם העיר פעמיים:
שימו לב, הזנה של אותו שדה פעמיים גוררת הערה בסוף הרצת הכלי. במקרה הזה ספציפית הטעות הייתה מכוונת ולכן אפשר להתעלם מההערה.
הצעות שיפור נוספות ל Locator מורכב:
- ניתן להוסיף עוד עמודות מידע ל Locator – שכבת מיקודים (7 ספרות), שכבת נקודות עניין (POI) ושכבת שכונות.
- ניתן גם לבנות Locator שהחיפוש מתבסס על קוד רחוב וקוד עיר ולא רק על השם.
- כל סוג מידע שתכניסו לכלי ידרוש מיפוי שדות (field mapping) הוא די אינטואיטיבי רק לשים לב למלא את כל שדות החובה מופיעים עם כוכבית.
כעת, לאחר סיום הרצת הכלי יהיה ברשותנו Locator בעל כמה רמות חיפוש אותו יצרתם.
בדוגמה הראנו את תהליך היצירה של multirole locator אשר בא להחליף את composite locator אשר היה נפוץ בתוכנת ArcMap.
הנה כמה דוגמאות לבדיקה של התוצר:
מוצא כתובת מדויקת אם החיפוש נעשה ללא שגיאות כתיב
- מוצא כתובת גם אם יש בה שגיאות
- בעת הקלדה יציע לנו השלמה אוטומטית לכתובות אפשריות עם שם דומה
- במידה ויש כמה "מועמדים" לכתובת המתאימה התוצרים של החיפוש יוצגו בסדר יורד לפי ה-score
הגדרות נוספות
בעת איתור כתובות ב ArcGIS Pro ניתן לשנות את הגדרות ה Locator כדי לקבל תוצאות מתאימות יותר.
- ברירת המחדל של הכלי הינה העדפה לאיתור כתובת באזור תיחום המפה. לדוגמה אם המפה ממוקדת על העיר חיפה ומחפשים את רחוב העצמאות התוצאות שיוצגו יהיו של העיר חיפה. בכדי שהחיפוש לא יהיה מושפע מהתיחום של המפה, יש ללחוץ על ההגדרות בכלי ה Locate ולהוריד את הV שמופיע בתמונה.
- לכל Locator יש מסך הגדרות שניתן להגיע אליו בלחיצה ימנית עם העכבר ואז properties
מסך זה מאשר לעדכן:
מספר הצעות לכתובת בעת חיפוש
מספר הצעות בהשלמה אוטומטית בעת הקלדת חיפוש
ציון (score) מינימלי שיתקבל בעת הקלדת חיפוש ובעת איתור כתובת
יצירת Geocoding
כעת, לאחר שבנינו Locator ובדקנו מספר כתובות בחיפוש ידני נוכל לעבור לשלב של הרצת ה Locator על רשימה של כתובות. לתהליך הזה קוראים Geocoding ובו נבצע איתור כתובות לפי טבלה.
ראשית נכין את הטבלה:
- הטבלה צריכה להיות בפורמט שהArcGIS Pro- יודע לקרוא לדוגמה .csv .xlsx .dbf מומלץ לטעון את הטבלה לתוכנה לפני הרצת הכלי כדי לראות שכל התוכן שלה קריא וקיים.
- הטבלה צריכה להכיל עמודות עם כתובת. כלומר, שדה אחד שכולל את הכתובת המלאה או כמה עמודות שיחד מרכיבות כתובת – עמודת עיר, עמודת כתובת, עמודת קוד רחוב, עמודת מיקוד.
שימו לב: במקרה ויש כמה עמודות אז מספר הבית עדיין צריך להיות יחד עם שם הרחוב. לדוגמה:
הרצת הכלי– Geocode Addresses
הקלט של הכלי הוא הטבלה עם הכתובות וה Locator הרלוונטי.והפלט של יהיה שכבה נקודתית.
ישנן מספר הגדרות שכדאי לשים אליהן לב:
- הגדרת רשת הקואורדינטות של שכבת התוצר נעשת בלשונית ה- environment.
- בתחתית הכלי יש עוד 2 שדות שרות:
- ניתן להגיד חיפוש יתבצע על פי הלוקייטור – כשברירת המחדל היא חיפוש כתובת Address אבל ניתן לאפשר גם איתור צמתים וגם רחובות ללא מספר בית וגם איתור לפי קואורדינטה ולא לפי כתובת.
שימו לב!
- שכבת הפלט של הכלי היא שכבת נקודות המכילה את כל השדות בטבלה המקורית, בנוסף יהיו שדות שיווצרו כתוצאה מהרצת הכלי:
Minimal – בשכבה יהיו רק השדות של הכתובת שנמצאה והציון שלה בLocator
Minimal and user fields -(אופציה מומלצת) – בנוסף לכתובת הפלט ולציון יהיו כל השדות שהיו בטבלת הקלט.
Location only – שבכבה יהיו רק שדות מיקום בלי מידע נוסף
All – בערך 20 שדות עם פירוט מלא על סוג הלוקייטור + הציון של החיפוש+ סוג הכתובת שנמצאה + נתונים נוספים מתוך הלוקייטור
Rematch addresses
לאחר הרצת הכלי geocode addresses תופיע הודעה על כמות הכתובות שנמצאו וכמה לא אותרו. עליכם כעת לעבור על הכתובות שלא אותרו ולעזור לתוכנה לאתר אותם.
על מנת להגיע לתפריט ה Rematch addresses ניתן ללחוץ מקש ימני על השכבה ואז על Data ואז Rematch addresses.
תהליך ה Rematching
לפי שדה Status –
M = Matched מצא כתובת מתאימה
U = Unmatched לא מצא כתובת מתאימה
T = Tied= מתלבט בין כמה אפשרויות
עליכם לעבור בין הכתובות שהן T או U ולאתר לאיזה כתובת התכוונתם בקלט.
דוגמה: יואל 4 ירושלים
עליכם לבחור מבין האפשרויות מה לדעתכם הייתה הכוונה. אם היא לא באפשרויות אפשר למצוא כל נקודה במפה ולהכווין את הנקודה לשם.
כאן מסתיים תהליך הGeocoding. ברשותכם כעת שכבה נקודתית עם כתובות.
אם תרצו לצפות בוובינר בנושא מוזמנים להיכנס ללינק באתר של סיטסמטיקס.