מערכות רשת לניתוח מרחבי
במאמר הזה מוסבר על המטרה של מערכות רשת גיאו-מרחביות (כמו S2 ו-H3) ועל השיטות לשימוש בהן ב-BigQuery כדי לארגן נתונים מרחביים באזורים גיאוגרפיים סטנדרטיים. בנוסף, נסביר איך לבחור את מערכת הרשת המתאימה לאפליקציה שלכם. המסמך הזה שימושי לכל מי שעובד עם נתונים מרחביים ומבצע ניתוח מרחבי ב-BigQuery.
סקירה כללית ואתגרים בשימוש בניתוח מרחבי
ניתוח מרחבי עוזר להראות את הקשר בין ישויות (חנויות או בתים) לבין אירועים במרחב הפיזי. ניתוח מרחבי שמשתמש בפני כדור הארץ כמרחב הפיזי נקרא ניתוח גיאוגרפי מרחבי. BigQuery כולל תכונות ופונקציות גיאו-מרחביות שמאפשרות לכם לבצע ניתוח גיאו-מרחבי בהיקף נרחב.
הרבה תרחישי שימוש בנתונים גיאו-מרחביים כוללים צבירה של נתונים באזורים מקומיים והשוואה בין צבירות סטטיסטיות של האזורים האלה. האזורים המקומיים האלה מיוצגים כפוליגונים בטבלה של מסד נתונים מרחבי. בהקשרים מסוימים, השיטה הזו נקראת גיאוגרפיה סטטיסטית. כדי לשפר את הדיווח, הניתוח והאינדוקס המרחבי, צריך לקבוע שיטה סטנדרטית להגדרת גודל האזורים הגיאוגרפיים. לדוגמה, קמעונאי יכול לנתח את השינויים במאפיינים הדמוגרפיים לאורך זמן באזורים שבהם ממוקמות החנויות שלו, או באזורים שבהם הוא שוקל לבנות חנות חדשה. לחלופין, חברת ביטוח יכולה לרצות לשפר את ההבנה שלה לגבי סיכונים שקשורים לנכסים, על ידי ניתוח של סיכונים שקשורים לאסונות טבע באזור מסוים.
בגלל תקנות מחמירות בנושא פרטיות נתונים באזורים רבים, צריך להסיר את הפרטים המזהים או להפוך חלק מהנתונים לאנונימיים במערכי נתונים שמכילים מידע על מיקום, כדי להגן על הפרטיות של האנשים שמיוצגים בנתונים. לדוגמה, יכול להיות שתצטרכו לבצע ניתוח של סיכון ריכוז אשראי גיאוגרפי במערך נתונים שמכיל נתונים על הלוואות משכנתא שלא נפרעו. כדי להסיר את הפרטים המזהים ממערך הנתונים ולהתאים אותו לניתוח תואם, צריך לשמור מידע רלוונטי על מיקום הנכסים, אבל להימנע משימוש בכתובת ספציפית או בקואורדינטות של קווי אורך ורוחב.
בדוגמאות הקודמות, המעצבים של הניתוחים האלה נתקלים באתגרים הבאים:
- איך מציירים את גבולות האזור שבו רוצים לנתח את השינויים לאורך זמן?
- איך משתמשים בגבולות אדמיניסטרטיביים קיימים, כמו אזורים סטטיסטיים או מערכת רשתות מרובת רזולוציות?
במסמך הזה ננסה לענות על השאלות האלה באמצעות הסבר על כל אחת מהאפשרויות, תיאור של שיטות מומלצות ועזרה במניעת טעויות נפוצות.
בעיות נפוצות בבחירת אזורים סטטיסטיים
מערכי נתונים עסקיים כמו מכירות נדל"ן, קמפיינים שיווקיים, משלוחים של מסחר אלקטרוני ופוליסות ביטוח מתאימים לניתוח מרחבי. לרוב, מערכי הנתונים האלה מכילים מפתח נוח לצירוף מרחבי, כמו אזור מוגדר למפקד אוכלוסין, מיקוד או שם של עיר. מערכי נתונים ציבוריים שמכילים ייצוגים של אזורי מפקד אוכלוסין, מיקודים וערים זמינים בקלות, ולכן יש פיתוי להשתמש בהם כגבולות אדמיניסטרטיביים לצורך צבירה סטטיסטית.
למרות שהגבולות האלה ואחרים נראים נוחים, יש להם חסרונות. בנוסף, יכול להיות שהגבולות האלה יועילו בשלבים הראשונים של פרויקט ניתוח נתונים, אבל החסרונות שלהם יורגשו בשלבים מאוחרים יותר.
מיקודים
במדינות רבות בעולם משתמשים במיקוד כדי לנתב דואר, ולכן הוא משמש לעיתים קרובות להתייחסות למיקומים ולאזורים גם במערכי נתונים מרחביים וגם במערכי נתונים לא מרחביים. בהתייחס לדוגמה הקודמת לגבי הלוואה למשכנתא, לעיתים קרובות צריך להסיר את הפרטים המזהים ממערך נתונים לפני שאפשר לבצע ניתוח במורד הזרם. מכיוון שכל כתובת של נכס מכילה מיקוד, אפשר לגשת לטבלאות הפניה של המיקוד, ולכן זו אפשרות נוחה למפתח איחוד לניתוח מרחבי.
בעיה בשימוש במיקודים היא שהם לא מיוצגים כמצולעים, ואין מקור אמת יחיד למיקודים. בנוסף, המיקודים לא מייצגים בצורה טובה את ההתנהגות האנושית האמיתית. הנתונים הנפוצים ביותר של מיקוד בארה"ב מגיעים מקובצי הצורה TIGER/Line של לשכת מפקד האוכלוסין של ארה"ב, שמכילים מערך נתונים שנקרא ZCTA5 (אזור לחישוב נתוני מיקוד). קבוצת הנתונים הזו מייצגת קירוב של גבולות המיקוד, שנגזרים מנתיבי מסירת דואר. עם זאת, לחלק מהמיקודים שמייצגים בניינים ספציפיים אין גבולות בכלל. הבעיה הזו קיימת גם במדינות אחרות, ולכן קשה ליצור טבלת עובדות גלובלית אחת שמכילה קבוצה מהימנה של גבולות מיקוד שאפשר להשתמש בהם במערכות ובמערכי נתונים שונים.
בנוסף, אין פורמט מיקוד סטנדרטי שמשמש בכל העולם. חלקם מספריים, באורך של שלוש עד עשר ספרות, וחלקם אלפאנומריים. יש גם חפיפה בין המדינות, ולכן צריך לאחסן את מדינת המוצא בעמודה נפרדת לצד המיקוד. במדינות מסוימות לא משתמשים במיקוד, מה שמסבך עוד יותר את הניתוח.
אזורים מוגדרים למפקד אוכלוסין, ערים ומחוזות
יש יחידות אדמיניסטרטיביות מסוימות, כמו אזורים סטטיסטיים, ערים ומחוזות, שלא סובלות מהבעיה של חוסר גבול סמכותי. לדוגמה, הגבולות של ערים מוגדרים ברוב המקרים על ידי רשויות ממשלתיות. אזורים מוגדרים למפקד אוכלוסין מוגדרים היטב על ידי לשכת מפקד האוכלוסין של ארה"ב, ועל ידי מוסדות דומים ברוב המדינות האחרות.
חיסרון בשימוש בגבולות האלה ובגבולות אדמיניסטרטיביים אחרים הוא שהם משתנים לאורך זמן, ואין ביניהם התאמה גיאוגרפית. מחוזות וערים מתמזגים או מתפצלים, ולפעמים משנים את השם שלהם. מפקדי אוכלוסין בארה"ב מתעדכנים פעם בעשור, ובמדינות אחרות הם מתעדכנים בתדירות שונה. באופן מבלבל, במקרים מסוימים הגבול הגיאוגרפי יכול להשתנות אבל המזהה הייחודי שלו נשאר זהה, ולכן קשה לנתח ולהבין את השינויים לאורך זמן.
חיסרון נוסף שמשותף לחלק מהגבולות המנהליים הוא שהם אזורים נפרדים ללא היררכיה גיאוגרפית. בנוסף להשוואה בין אזורים בודדים, דרישה נפוצה היא להשוות בין צבירות של האזורים עצמם לבין צבירות אחרות. לדוגמה, קמעונאי שמטמיע את מודל האף עשוי לרצות להריץ את הניתוח הזה באמצעות כמה מרחקים, שלא בהכרח תואמים לאזורים מנהליים שמשמשים במקומות אחרים בעסק.
רשתות ברזולוציה יחידה ורב-רזולוציה
רשתות ברזולוציה יחידה מורכבות מיחידות נפרדות שאין להן קשר גיאוגרפי לאזורים גדולים יותר שמכילים את היחידות האלה. לדוגמה, למיקודים יש קשר גיאוגרפי לא עקבי עם הגבולות של יחידות אדמיניסטרטיביות גדולות יותר, כמו ערים או מחוזות שעשויים להכיל מיקודים. בניתוח מרחבי, חשוב להבין את הקשר בין אזורים שונים בלי ידע מעמיק בהיסטוריה ובחקיקה שמגדירות את פוליגון האזור.
לפעמים קוראים לרשתות מרובות רזולוציה רשתות היררכיות, כי התאים בכל רמת זום מחולקים לתאים קטנים יותר ברמות זום גבוהות יותר. רשתות מרובות רזולוציות מורכבות מהיררכיה מוגדרת היטב של יחידות שנכללות ביחידות גדולות יותר. לדוגמה, מפקדי אוכלוסין מכילים קבוצות של בלוקים, שמכילות בלוקים. הקשר ההיררכי העקבי הזה יכול להיות שימושי לצורך צבירה סטטיסטית. לדוגמה, על ידי חישוב ממוצע ההכנסות של כל קבוצות הבלוקים שנכללות באזור מוגדר למפקד אוכלוסין, אפשר להציג את ההכנסה הממוצעת של האזור המוגדר למפקד אוכלוסין הזה. אי אפשר לעשות את זה עם מיקודים כי כל האזורים של המיקודים ממוקמים ברזולוציה אחת. יהיה קשה להשוות את ההכנסה של אזור מסוים עם ההכנסה של האזורים הסמוכים לו, כי אין דרך סטנדרטית להגדיר סמיכות או להשוות הכנסות במדינות שונות.
מערכות רשת S2 ו-H3
בקטע הזה יש סקירה כללית של מערכות הרשת S2 ו-H3.
S2
S2 geometry היא מערכת היררכית של רשתות בקוד פתוח שפותחה על ידי 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.
תרחישים לדוגמה לכל אסטרטגיית אינדוקס
בקטע הזה מובאות כמה דוגמאות שיעזרו לכם להעריך איזו מערכת רשת היא הכי מתאימה לתרחיש השימוש שלכם.
הרבה תרחישי שימוש בניתוח ובדיווח כוללים ויזואליזציה, כחלק מהניתוח עצמו או לצורך דיווח לבעלי עניין עסקיים. ההדמיות האלה מוצגות בדרך כלל ב-Web Mercator, שהיא ההטלה המישורית שמשמשת את מפות 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