מערכות רשת לניתוח מרחבי
במאמר הזה מוסבר על המטרה של מערכות רשת גיאו-מרחביות (כמו S2 ו-H3) ועל השיטות לשימוש בהן ב-BigQuery כדי לארגן נתונים מרחביים באזורים גיאוגרפיים סטנדרטיים. בנוסף, נסביר איך לבחור את מערכת הרשת המתאימה לאפליקציה שלכם. המסמך הזה שימושי לכל מי שעובד עם נתונים מרחביים ומבצע ניתוח מרחבי ב-BigQuery.
סקירה כללית ואתגרים בשימוש בניתוח מרחבי
ניתוח מרחבי עוזר להראות את הקשר בין ישויות (חנויות או בתים) לבין אירועים במרחב הפיזי. ניתוח מרחבי שמשתמש בפני כדור הארץ כמרחב הפיזי נקרא ניתוח גיאוגרפי מרחבי. BigQuery כולל תכונות ופונקציות גיאו-מרחביות שמאפשרות לכם לבצע ניתוח גיאו-מרחבי בהיקף נרחב.
במקרים רבים של שימוש בנתונים גיאו-מרחביים נדרשת צבירה של נתונים באזורים מקומיים והשוואה בין צבירות סטטיסטיות של האזורים האלה. האזורים המקומיים האלה מיוצגים כפוליגונים בטבלת מסד נתונים מרחבי. בהקשרים מסוימים, השיטה הזו נקראת גאוגרפיה סטטיסטית. כדי לשפר את הדיווח, הניתוח והאינדוקס המרחבי, צריך לקבוע שיטה אחידה להגדרת גודל האזורים הגיאוגרפיים. לדוגמה, קמעונאי יכול לנתח את השינויים במאפיינים הדמוגרפיים לאורך זמן באזורים שבהם ממוקמות החנויות שלו, או באזורים שבהם הוא שוקל לבנות חנות חדשה. לחלופין, חברת ביטוח יכולה לנתח את הסיכונים הנפוצים של מפגעים טבעיים באזור מסוים כדי להבין טוב יותר את הסיכונים שקשורים לנכסים.
בגלל תקנות מחמירות בנושא פרטיות נתונים באזורים רבים, צריך להסיר את הפרטים המזהים או להפוך חלק מהנתונים לאנונימיים במערכי נתונים שמכילים מידע על מיקום, כדי להגן על הפרטיות של האנשים שמיוצגים בנתונים. לדוגמה, יכול להיות שתצטרכו לבצע ניתוח של סיכון ריכוז אשראי גיאוגרפי במערך נתונים שמכיל נתונים על הלוואות משכנתא שלא נפרעו. כדי להסיר פרטי זיהוי ממערך הנתונים ולהתאים אותו לניתוח תואם, צריך לשמור מידע רלוונטי על מיקום הנכסים, אבל להימנע משימוש בכתובת ספציפית או בקואורדינטות של קווי אורך ורוחב.
בדוגמאות הקודמות, המעצבים של הניתוחים האלה נתקלים באתגרים הבאים:
- איך מציירים את גבולות האזור שבו רוצים לנתח שינויים לאורך זמן?
- איך משתמשים בגבולות אדמיניסטרטיביים קיימים, כמו אזורי מפקד או מערכת רשתות מרובת רזולוציות?
במסמך הזה אנחנו מנסים לענות על השאלות האלה באמצעות הסבר על כל אחת מהאפשרויות, תיאור של שיטות מומלצות ועזרה במניעת טעויות נפוצות.
בעיות נפוצות בבחירת אזורים סטטיסטיים
מערכי נתונים עסקיים כמו מכירות נדל"ן, קמפיינים שיווקיים, משלוחים של מסחר אלקטרוני ופוליסות ביטוח מתאימים לניתוח מרחבי. לרוב, מערכי הנתונים האלה מכילים מפתח איחוד (join) מרחבי נוח, כמו אזור מוגדר למפקד אוכלוסין, מיקוד או שם של עיר. מערכי נתונים ציבוריים שמכילים ייצוגים של אזורים סטטיסטיים, מיקודים וערים זמינים בקלות, ולכן יש פיתוי להשתמש בהם כגבולות אדמיניסטרטיביים לצורך צבירה סטטיסטית.
למרות שהגבולות האלה ואחרים נראים נוחים, יש להם חסרונות. בנוסף, יכול להיות שהגבולות האלה יועילו בשלבים הראשונים של פרויקט ניתוח נתונים, אבל החסרונות שלהם יורגשו בשלבים מאוחרים יותר.
מיקוד
המיקוד משמש לניתוב דואר במדינות שונות ברחבי העולם, ולכן הוא משמש לעיתים קרובות להתייחסות למיקומים ולאזורים במערכי נתונים מרחביים ולא מרחביים. בהתייחס לדוגמה הקודמת לגבי הלוואה למשכנתא, לעיתים קרובות צריך להסיר את הפרטים המזהים ממערך נתונים לפני שאפשר לבצע ניתוח במורד הזרם. מכיוון שכל כתובת של נכס מכילה מיקוד, אפשר לגשת לטבלאות הפניה של המיקודים, ולכן זו אפשרות נוחה למפתח איחוד לניתוח מרחבי.
בעיה בשימוש במיקודים היא שהם לא מיוצגים כמצולעים, ואין מקור אמת יחיד לנתוני אזורי המיקוד. בנוסף, המיקודים לא מייצגים בצורה טובה את ההתנהגות האנושית האמיתית. הנתונים הנפוצים ביותר של מיקודים בארה"ב מגיעים מקובצי ה-shapefile TIGER/Line של לשכת מפקד האוכלוסין של ארה"ב, שמכילים מערך נתונים שנקרא ZCTA5 (אזור לחישוב מיקוד). מערך הנתונים הזה מייצג קירוב של גבולות המיקוד, שנגזרים מנתיבי מסירת דואר. עם זאת, לחלק ממיקודים שמייצגים בניינים ספציפיים אין גבול בכלל. הבעיה הזו קיימת גם במדינות אחרות, ולכן קשה ליצור טבלת עובדות גלובלית יחידה שמכילה קבוצה מהימנה של גבולות מיקוד שאפשר להשתמש בהם במערכות ובמערכי נתונים שונים.
בנוסף, אין פורמט מיקוד סטנדרטי שמשמש בכל העולם. חלקם מספריים, באורך של שלוש עד עשר ספרות, וחלקם אלפאנומריים. יש גם חפיפה בין המדינות, ולכן צריך לאחסן את מדינת המוצא בעמודה נפרדת לצד המיקוד. במדינות מסוימות לא משתמשים במיקוד, מה שמסבך עוד יותר את הניתוח.
אזורי מפקד אוכלוסין, ערים ומחוזות
יש יחידות אדמיניסטרטיביות מסוימות, כמו אזורים סטטיסטיים, ערים ומחוזות, שלא סובלות מהבעיה של חוסר גבול סמכותי. לדוגמה, הגבולות של ערים מוגדרים ברוב המקרים על ידי רשויות ממשלתיות. אזורי מפקד אוכלוסין מוגדרים היטב על ידי לשכת מפקד האוכלוסין של ארה"ב, ועל ידי מוסדות מקבילים ברוב המדינות האחרות.
חיסרון בשימוש בגבולות האדמיניסטרטיביים האלה ובגבולות אחרים הוא שהם משתנים לאורך זמן, ואין ביניהם התאמה גיאוגרפית. מחוזות וערים מתמזגים או מתפצלים, ולפעמים משנים את השם שלהם. בארה"ב, נתוני מפקד האוכלוסין מתעדכנים פעם בעשור, ובמדינות אחרות הם מתעדכנים בזמנים שונים. באופן מבלבל, במקרים מסוימים הגבול הגיאוגרפי יכול להשתנות אבל המזהה הייחודי שלו נשאר זהה, ולכן קשה לנתח ולהבין את השינויים לאורך זמן.
חיסרון נוסף שמאפיין חלק מהגבולות האדמיניסטרטיביים הוא שהם אזורים נפרדים ללא היררכיה גיאוגרפית. בנוסף להשוואה בין אזורים נפרדים, דרישה נפוצה היא להשוות בין צבירות של האזורים עצמם לבין צבירות אחרות. לדוגמה, קמעונאי שמטמיע את מודל האף עשוי לרצות להריץ את הניתוח הזה באמצעות כמה מרחקים, שלא בהכרח תואמים לאזורים מנהליים שמשמשים במקומות אחרים בעסק.
רשתות ברזולוציה יחידה וברזולוציות מרובות
רשתות ברזולוציה יחידה מורכבות מיחידות נפרדות שאין להן קשר גיאוגרפי לאזורים גדולים יותר שמכילים את היחידות האלה. לדוגמה, למיקודים יש קשר גיאוגרפי לא עקבי עם הגבולות של יחידות אדמיניסטרטיביות גדולות יותר, כמו ערים או מחוזות שעשויים להכיל מיקודים. בניתוח מרחבי, חשוב להבין את הקשר בין אזורים שונים בלי ידע מעמיק בהיסטוריה ובחקיקה שמגדירות את מצולע האזור.
לפעמים קוראים לרשתות מרובות רזולוציה רשתות היררכיות, כי התאים בכל רמת זום מחולקים לתאים קטנים יותר ברמות זום גבוהות יותר. רשתות מרובות רזולוציות מורכבות מהיררכיה מוגדרת היטב של יחידות שנכללות ביחידות גדולות יותר. לדוגמה, מפקדי אוכלוסין מכילים קבוצות של בלוקים, שבתורן מכילות בלוקים. הקשר ההיררכי העקבי הזה יכול להיות שימושי לצורך צבירה סטטיסטית. לדוגמה, על ידי חישוב ממוצע ההכנסות של כל קבוצות הבלוקים הכלולות באזור מוגדר למפקד אוכלוסין, ניתן להציג את ההכנסה הממוצעת של אזור מוגדר למפקד אוכלוסין זה הכולל את קבוצות הבלוקים. אי אפשר לעשות את זה עם מיקודים כי כל האזורים של המיקודים ממוקמים ברזולוציה אחת. יהיה קשה להשוות את ההכנסה של אזור מסוים להכנסה של האזורים הסמוכים לו, כי אין דרך סטנדרטית להגדיר סמיכות או להשוות הכנסות במדינות שונות.
מערכות רשת S2 ו-H3
בקטע הזה יש סקירה כללית של מערכות הרשת S2 ו-H3.
S2
גיאומטריית S2 היא מערכת היררכית של רשתות בקוד פתוח שפותחה על ידי Google ופורסמה לציבור בשנת 2011. אפשר להשתמש במערכת הרשת S2 כדי לארגן ולאנדקס נתונים מרחביים על ידי הקצאת מספר שלם ייחודי בן 64 ביט לכל תא. יש 31 רמות של רזולוציה. כל תא מיוצג כריבוע ומיועד לפעולות על גיאומטריות כדוריות (לפעמים נקראות גיאוגרפיות). כל ריבוע מחולק לארבעה ריבועים קטנים יותר. היכולת לזהות תאים סמוכים ב-S2, שנקראת מעבר בין תאים סמוכים, מוגדרת בצורה פחות טובה כי לריבועים יכולים להיות ארבעה או שמונה תאים סמוכים רלוונטיים, בהתאם לסוג הניתוח. הדוגמה הבאה מציגה תאי רשת S2 ברזולוציות שונות:
מערכת BigQuery משתמשת בתאי S2 כדי ליצור אינדקס של נתונים מרחביים, ומציגה כמה פונקציות. לדוגמה, S2_CELLIDFROMPOINT
מחזירה את מזהה התא S2 שמכיל נקודה על פני כדור הארץ ברמה נתונה.
H3
H3 היא מערכת היררכית של רשתות בקוד פתוח שפותחה על ידי Uber ומשמשת את Overture Maps. יש 16 רמות של רזולוציה. כל תא מיוצג כמשושה, ובדומה ל-S2, לכל תא מוקצה מספר שלם ייחודי בן 64 ביט. בדוגמה בנושא הדמיה של תאי H3 שמכסים את מפרץ מקסיקו, התאים הקטנים יותר של H3 לא נכללים באופן מושלם בתאים הגדולים יותר.
כל תא מחולק ל-7 משושים קטנים יותר. החלוקה לא מדויקת, אבל היא מספיקה לתרחישי שימוש רבים. לכל תא יש צלע משותפת עם שישה תאים שכנים, מה שמפשט את המעבר בין תאים שכנים. לדוגמה, בכל רמה, יש 12 מחומשים, שכל אחד מהם חולק צלע עם חמישה שכנים במקום עם שישה. למרות שאין תמיכה ב-H3 ב-BigQuery, אפשר להוסיף תמיכה ב-H3 ל-BigQuery באמצעות Carto Analytics Toolbox for BigQuery.
הספריות S2 ו-H3 הן קוד פתוח וזמינות במסגרת רישיון Apache 2, אבל בספריית H3 יש תיעוד מפורט יותר.
HEALPix
שיטה נוספת לחלוקת הספירה למשבצות, שמשמשת בדרך כלל בתחום האסטרונומיה, נקראת HEALPix (חלוקה היררכית למשבצות של איזו-קווי רוחב שווים). HEALPix לא תלוי בעומק הפיקסלים ההיררכי, אבל זמן החישוב נשאר קבוע.
HEALPix היא תוכנית היררכית לפיקסול של אזורים שווים על פני כדור. היא משמשת לייצוג ולניתוח של נתונים על הכדור השמימי (או על כדור אחר). בנוסף לזמן חישוב קבוע, לרשת HEALPix יש את המאפיינים הבאים:
- התאים ברשת הם היררכיים, והקשרים בין הורה לצאצא נשמרים.
- ברמה ספציפית בהיררכיה, התאים הם באותו גודל.
- התאים מתפלגים לפי קו רוחב איזומטרי, מה שמאפשר ביצועים טובים יותר לשיטות ספקטרליות.
BigQuery לא תומך ב-HEALPix, אבל יש הרבה הטמעות בשפות שונות, כולל JavaScript, ולכן נוח להשתמש בו בפונקציות מוגדרות על ידי המשתמש (UDF) ב-BigQuery.
תרחישים לדוגמה לכל אסטרטגיית אינדוקס
בקטע הזה מופיעות כמה דוגמאות שיעזרו לכם להעריך איזו מערכת רשת היא הכי מתאימה לתרחיש השימוש שלכם.
הרבה תרחישי שימוש בניתוח ובדיווח כוללים ויזואליזציה, כחלק מהניתוח עצמו או לצורך דיווח לבעלי עניין עסקיים. ההדמיות האלה מוצגות בדרך כלל בהטלת מרקטור, שהיא הטלה מישורית שמשמשת את מפות Google ואפליקציות רבות אחרות למיפוי באינטרנט. במקרים שבהם להדמיה יש תפקיד חיוני, תאי H3 מספקים חוויית הדמיה טובה יותר באופן סובייקטיבי. תאי S2, במיוחד בקווי רוחב גבוהים יותר, נוטים להיראות מעוותים יותר מתאי H3, ולא נראים עקביים עם תאים בקווי רוחב נמוכים יותר כשהם מוצגים בהטלה מישורית.
תאי H3 מפשטים את ההטמעה במקרים שבהם השוואה בין תאים סמוכים ממלאת תפקיד חשוב בניתוח. לדוגמה, ניתוח השוואתי בין אזורים בעיר יכול לעזור להחליט איזה מיקום מתאים לפתיחת חנות קמעונאית חדשה או מרכז הפצה. הניתוח דורש חישובים סטטיסטיים של מאפיינים של תא נתון בהשוואה לתאים הסמוכים לו.
תאים מסוג S2 יכולים להיות יעילים יותר בניתוחים שהם גלובליים באופיים, כמו ניתוחים שכוללים מדידות של מרחקים וזוויות. Pokemon Go של Niantic משתמש בתאי S2 כדי לקבוע איפה נכסי המשחק ממוקמים ואיך הם מופצים. המאפיין המדויק של חלוקת המשנה של תאי S2 מבטיח שאפשר לחלק את נכסי המשחק באופן שווה ברחבי העולם.
המאמרים הבאים
- שיטות מומלצות ליצירת אשכולות מרחביים זמינות במאמר Spatial Clustering on BigQuery - Best Practices.
- איך יוצרים היררכיה מרחבית מנתונים לא מושלמים
- מידע נוסף על גיאומטריית S2 ב-GitHub
- מידע נוסף על גיאומטריית H3 ב-GitHub
- דוגמאות לשימוש ב-H3, ב-BigQuery וב-Earth Engine