יצירת Cache לאורתופוטו ארצי באמצעות ArcGIS Pro
תהליך יצירת Cache לאורתופוטו ארצי הוא תהליך מורכב, שבדרך כלל מבוצע על ידי שרת ה-GIS הארגוני. אך לא תמיד עומד לרשותנו שרת ArcGIS Enterprise, וגם אם קיים לנו שרת – בדרך כלל עומדות לרשותנו 4 ליבות עיבוד (Cores) בלבד, והן צריכות להספיק גם עבור השירותים האחרים המונגשים על ידי השרת […]
בתהליך יצירת ה-Cache נוצרת כמות גדולה מאד של אריחים/קבצי תמונה מסוג JPG או PNG ברזולוציה 256*256 פיקסלים, על פי סכמת רמות קנ"מ שאנו מגדירים. בכל רמת קנ"מ מתבצעת בניית אריחים עבור אותו קנה מידה. בצורה כזו אנו מחלקים את האורתופוטו שלנו למספר רב של קבצים קטנים מאד. כאשר המשתמשים מתמקדים באזור מסויים – נטענת כמות קטנה מאד של קבצים קטנים ואנו מקבלים חוויית משתמש וביצועים מעולים.
ArcGIS Pro היא תוכנת ה-Desktop המתקדמת של Esri, ובאפשרותה לעזור לנו בבניית ה-Tile Cache ללא צורך בשרת. לשימוש ב-ArcGIS Pro שני יתרונות מרכזיים:
- תוכנת 64 Bit המאפשרת ניצול מלא של משאבי המחשב
ככל שהמחשב שלנו יהיה חזק יותר, בעל יותר ליבות עיבוד וזיכרון RAM – התהליך יתבצע במהירות גבוהה יותר ויסתיים מהר יותר. בארגונים, בהם התשתית מאפשרת לבנות מכונות וירטואליות חזקות מאד, אפילו לא נדרש לרכוש חומרה מיוחדת, אלא להגדיר מכונה וירטואלית חזקה לצורך ביצוע העבודה ואחר כך למחוק אותה. - שימוש בפורמט ECW
מקובל מאד להשתמש בפורמט רסטרי זה לתצלומי אוויר. הוא פורמט יעיל ומהיר, אך החיסרון הוא שלא ניתן לפרסם שירות המבוסס על פורמט זה ללא רישוי מתאים ויקר.
לאחרונה, בניתי עבור משרד ממשלתי Tile Cache ארצי, המבוסס על אורתופוטו משנת 2020 ברזולוציה של 20 ס"מ/פיקסל. במאמר זה אסקור את שיטת העבודה בה השתמשתי לבניית ה-Cache. בתהליך השתמשתי בתוכנת ArcGIS Pro 2.6 עם רישיון Standard.
השלבים אותם אסקור הינם:
- פרמטרים ודרישות מחשב לבניית Tile Cache ארצי
- יצירת Mosaic Dataset
- יצירת Overviews
- הגדרת סכמת הקנ"מ ותיחום לבניית ה-Cache
- בניית ה Cache
פרמטרים ודרישות מחשב
את ה-Cache הארצי בניתי לפי סכמת ברירת המחדל של ArcGIS Online ועד קנה מידה של 1:282 (Level 21). מדובר בתהליך שנמשך מספר ימים והוא מצריך מחשב חזק, שיריץ את התהליך מהר יחסית, וכן כונן אחסון מספיק גדול להכיל את כל האריחים שייבנו.
הוקצה עבורי מחשב עם מעבד בעל 8 ליבות וזיכרון RAM 32 GB. כמו כן, הוקצה כונן רשת מהיר בנפח של 2 TB. התהליך עתיר תהליכי קריאה וכתיבה מממקום אחסון הרסטרים למקום כתיבת ה-Cache, לכן פקטור משמעותי מאד בתהליך הוא מהירות הרשת ומהירות הכתיבה לכונן (רצוי מאד SSD במחשב פיסי), על מנת למנוע צווארי בקבוק, שיקשו על סיום התהליך.
לצורך בניית ה-Cache השתמשתי ב-1190 קבצי רסטר מסוג Sid Mr, ברזולוציה של 20 סנטימטר פיקסל כל אחד.
הגדרת רשת קואורדינטות
עוד בטרם תחילת העבודה עלינו לוודא שכל הקבצים מוגדרים ברשת ישראל החדשה (Israel_TM_Grid). במקרה שלי, הגדרת הרשת לא היתה נכונה, או יותר נכון לא מתאימה לשימוש ב-ArcGIS. יכולתי לבדוק את זה באמצעות גישה למאפייני רסטר בודד (Layer Properties) ובדיקת הגדרת רשת הקואורדינטות שלו. מאחר ולא ניתן לבדוק באופן ידני כל אחד מהרסטרים, אני מציע למנוע טעויות מראש ולהריץ כלי להגדרת רשת הקואורדינטות באופן גורף. השתמשתי בכלי Define Projection לכל הרסטרים באמצעות לחיצה על המקש הימני של העכבר על הכלי ובחירת האופציה Batch. לאחר מכן טענתי את כל הרסטרים אל הכלי והגדרתי את מערכת הקואורדינטות הנכונה – Israel_TM_Grid (קוד 2039).
יצירת Mosaic Dataset ו- Overviews
לאחר הגדרת מערכת הקואורדינטות של הרסטרים, ניגשתי לבנות Mosaic Dataset. במקום לטעון 1190 רסטרים לפרוייקט שלנו אנו בונים שכבת ניהול, אשר יוצרת באופן אוטומטי קטלוג מכל הרסטרים שנעבוד איתם.
>> עוד על Mosaic Dataset תוכלו לקרוא – לחצו כאן!
בצורה הזו נטען שכבה בודדת לפרוייקט, שמנהל עבורנו את הפנייה לכל הרסטרים. את ה-Mosaic Dataset צריך לבנות בתוך Geodatabase (אני השתמשתי ב-File GDB, אבל בהחלט אפשר להשתמש ב-GDB ארגוני). חשוב להגדיר ל-Mosaic את מערכת הקואורדינטות של קבצי הרסטר, כלומר רשת ישראל החדשה במקרה שלנו. בתוך ה-File GDB נבנה מוזאיקה חדשה.
ניתן שם למוזאיקה ונגדיר את רשת הקואורדינטות. כל שאר הפרמטרים יישארו ללא שינוי.
בהמשך, נוסיף את הרסטרים אל המוזאיקה מתיקיית המקור של הרסטרים באמצעות לחיצה במקש הימני על ה-Mosaic Dataset ובחירה ב Add Rasters:
התהליך לא טוען את הרסטרים לתוך המוזאיקה. הוא יוצר פוליגונים בשכבת ניהול, אשר מפנים למיקום הרסטרים המקוריים. כל פוליגון תיחום מייצג רסטר אחד. שימו לב שבחרתי לטעון רסטרים (Raster Dataset) מתוך תיקיה (Folder), כלומר כל הרסטרים בתיקייה זו ייטענו למוזאיקה.
כאשר נסתכל על המוזאיקה שנוצרה נראה רשת צפופה של פוליגונים (Footprints), המייצגים את תיחומי 1190 הרסטרים שנטענו. לא נראה את קבצי האורתופוטו. אנו לא מעוניינים להציג את כל הרסטרים בנפרד. המערכת 'תתאמץ' מאד לצייר בנפרד 1190 רסטרים. רק אם נתמקד לתיחום של מספר רסטרים קטן, נוכל לצפות ברסטרים עצמם.
על מנת לאפשר לנו לצפות בכל הרסטרים ביחד, כאילו היו רסטר אחד גדול, אנו נדרשים לבנות Overviews. קבצי ה- Overview הם קבצי TIF ברזולוציות וגדלים משתנים. עיקרון העבודה איתם דומה מאד לפירמידות של רסטר בודד. מדובר בתמונות ברזולוציה נמוכה יותר, שנוצרות בכדי לשפר מאד את מהירות התצוגה ולהפחית את השימוש האינטנסיבי במעבד המחשב לצורך ציור מספר רב של רסטרים, מאחר ואנו צופים בפחות רסטרים בכל קנ"מ.
בנייה של Overviews מתבצעת בשני שלבים. בשלב הראשון צריך להגדיר את התיקייה בה יבנו ה Overviews. נלחץ במקש הימני על ה Mosaic ß Optimize ß Define Overviews. בכלי נגדיר את תיקיית היעד בה ייבנו ה-Overviews. יש לוודא שהתיחום המוגדר מכיל את כל שטח המוזאיקה.
השלב השני יהיה בניית ה Overviews. לוחצים במקש הימני על ה Mosaic ß Optimize ß Build Overviews. כאשר הכלי נפתח צריך לוודא שהוא מסתכל על ה Mosaic שלנו ולהריץ אותו. מכיוון שמדובר בשטח גדול ובכמות רבה של קבצים רסטריים ייתכן ובניית הOverviews תיקח זמן מה. על מנת להאיץ את התהליך כדאי לעבור ללשונית Environments ולהציב בפרמטר – Parallel Processing Factor את הערך 100%. פרמטר זה מאפשר שימוש בכל ליבות העיבוד בתהליך. ככל שבמחשב יש יותר ליבות עיבוד – תהליך זה יהיה קצר משמעותית.
אתם מוזמנים לקרוא עוד על בנייה של Overviews ועל האפשרויות השונות בבנייה שלהם באמצעות התיעוד של ESRI (התיעוד הוא של ArcMap, אבל העקרונות זהים) – לחצו כאן!
כעת לאחר שבנינו Overviews ניתן לראות את כל המוזאיקה בשלמותה בכל רמות הקנ"מ.
הגדרת תיחום לבניית ה-Cache
לאחר שהמוזאיקה מוכנה, אנחנו צריכים להגדיר את התיחום בו יבנה ה-Cache. על מנת לא לייצר נתונים מיותרים ולבנות cache באזורים לא רצויים – חשוב לבנות פוליגון תיחום מצומצם ככל האפשר. זה יכול לחסוך נפח רב ולקצר את זמן היצירה. לצורך כך עשיתי שימוש בפוליגון של ישראל ברשת ישראל החדשה. על הפוליגון בניתי Buffer של 1 ק"מ כדי לעבד את האריחים שסמוכים לגבולות המדינה בשלמותם. אחרי שיצרתי את הפוליגון התוחם, ניגשתי להגדרות המפה (Map Properties) והגדרתי את התיחום שלה לפי פוליגון התיחום שיצרתי.
את הפוליגון התוחם צריך להפוך לשקוף לגמרי כדי שלא יופיע ב-Cache. מומלץ למקם אותו מתחת למוזאיקה בתוכן העניינים של הפרויקט ולכבות את שכבת ה-Footprints.
הגדרת רשת קואורדינטות, סכמת קנ"מ ופורמט תמונה
בשלב האחרון לפני הרצת ה-Cache, אנחנו צריכים להגדיר את מערכת הקואורדינטות הרצוייה של ה-Cache שייבנה. מקור הנתונים הוא רשת ישראל החדשה, אך מאד ייתכן שאת ה-Cache נרצה לבנות ברשת אחרת. במקרה הנוכחי, הרצון היה לייצר Cache שיתאים לעבודה ביחד עם מפות הרקע של ArcGIS Online. לכן שיניתי את הגדרת רשת הקואורדינטות של המפה לרשת קואורדינטות WGS 1984 Web Mercator (auxiliary sphere). אפשר להגיע להגדרת הרשת גם באמצעות חיפוש הקוד 3857.
דגש נוסף וחשוב – עלינו לוודא שהגדרות הטרנספורמציה של המפה מוגדרות כמו שצריך. במקרה שלנו, ההמרה בין רשת ישראל החדשה (המוזאיקה) ל-WGS 1984 Web Mercator (המפה) נקראת WGS 1984 to Israel CoordFrame.
כאמור, בניית ה-cache תתבצע לפי סכמת הקנ"מים שאנו נגדיר, וכדאי גם לבחור את פורמט התמונה של האריחים. האפשרויות העומדות לרשותנו הן PNG ו-JPG. במקרה שלנו – Cache של רסטר אורתופוטו, ההעדפה תהיה פורמט JPG. זהו פורמט יעיל וקומפקטי יותר לדחיסת רסטר כזה. הבעייה היחידה בפורמט זה היא שאין תמיכה בשקיפות. אם אנו רוצים שה-cache שלנו 'ישב' מעל מפה עולמית, לא נרצה שאזור ללא נתונים (אזור הים לדוגמה) יהיה לבן ויסתיר את הרקע שמתחתיו. פורמט PNG הוא פורמט שתומך בשקיפות. לכן במקרה הזה נעדיף לבנות בפורמט Mixed. פורמט זה משלב בין PNG במקומות בהם יש אזורים ללא נתונים, לבין JPG באזורים בהם יש נתונים. פרמטר נוסף שאנו צריכים לבחור הוא רמת דחיסת ה-JPG. ככל שנדחס יותר – גודל האריח יהיה קטן יותר, איך איכות הרסטר תהיה נמוכה יותר. השיקול שלנו צריך להיות מבוסס על הצורך וצורת השימוש ב-cache. ברירת המחדל היא דחיסה של 75 (מתוך 100), אבל מבדיקות שלנו וגם של Esri ניתן להשתמש בדחיסה חזקה יותר של 55, מבלי לפגוע בחוויית המשתמש.
כדאי מאד לעשות מספר ניסיונות על שטח קטן, עם רמות דחיסה שונות. בצורה כזו ניתן לבחון את איכות ה-cache וגם את נפחו. נקבל מושג לגבי האיכות הסופית וגם לאיזה נפח נתונים לצפות.
על מנת ליצור את סכמת הקנ"מ ולהגדיר את פורמט ה-cache נשתמש בכלי Generate Tile Cache Tiling Scheme. לכלי נטען את סכמת הקנ"מ של ArcGIS Online מתוך התיקייה:
C:\Program Files\ArcGIS\Pro\Resources\TilingSchemes . לאחר מכן נגדיר את פורמט ה-Cache כ-Mixed 55 ונשמור את קובץ ה-xml לצורך שימוש בבניית ה-Cache.
בחירת פורמט ויחס דחיסה
בניית ה-Cache
לאחר שביצענו את כל ההכנה, ניתן לגשת לבניית ה-Cache. אנו נשתמש בכלי Manage Tile Cache שנמצא ב-Toolbox בשם Data Management Tools תחת הקטגוריה Tile Cache. נגדיר בכלי את הפרמטרים הבאים:
- Cache Location – התיקיה בה נבנה את ה-Cache. תיקיית היעד שלנו היא הכונן אותו הקצנו לאחסון. יש לודא שאם הכונן הוא כונן רשת – מהירות הרשת לא מהווה צוואר בקבוק.
- Cache Name – שם ה-Cache.
- Input Data Source – נבחר את המפה כולה כמקור הנתונים. היא מכילה גם את המוזאיקה וגם את התיחום.
- Manage Mode – Recreate All Tiles. יצירה מחדש של כל האריחים, היות והם עדיין לא נוצרו.
- Input Tiling Scheme – סכמת הקנ"מים בה נבנה את הקאש. עלינו לוודא שאנחנו בונים את הקאש עד קנה המידה הרצוי ולא מעבר. אם שינינו את הסכמה בשלב הקודם נבחר אותה.
- Area of Interest – התיחום. במקרה הזה נבחר בפוליגון התוחם אותו הגדרנו בשלבים הקודמים.
פרמטר נוסף וחשוב נמצא בלשונית ה-Environments ושמו Parallel Processing Factor. כמו בחישוב ה-Overviews גם כאן נרצה להשתמש בכל ליבות העיבוד של המחשב, על מנת לקצר את זמן העבודה. כאשר נגדיר 100% יבוצע שימוש בכל ליבות המחשב. כאשר בונים Cache גדול על מחשב שמיועד לכך, מומלץ להזין ערך זה.
מומלץ לוודא שוב שכל הפרמטרים הוגדרו כמו שצריך ואז ניתן להתחיל בתהליך הבניה של ה-Cache.
הרצת תהליך בניית ה-Cache ומעקב אחריו
תהליך העבודה ממושך, בעיקר על מחשבים שאינם חזקים. בהחלט תתכן ריצה של יותר מיום וגם יותר משבוע. כדאי מאד לוודא, לפני התחלת התהליך, שהמחשב/שרת לא מבצע אתחול כל לילה, שאין הגדרות Time Out למערכת, ושאין אנשים נוספים שמבצעים עליו עבודה נוספת ועלולים להפסיק את התהליך. המחשב הזה אמור להיות מוקצה למשימה זו בלבד, עד לסיומה.
במהלך הריצה ניתן לגשת ולבדוק באיזה שלב אנו נמצאים. ניתן לבדוק את גודל התיקיות והאם הן נוצרו. ניתן גם לטעון את ה-Cache ל-ArcGIS Pro גם אם התהליך עדיין לא הסתיים, ולראות מה נוצר עד עכשיו. כלל אצבע אומר שכל רמת קנ"מ גדולה בנפחה מהרמה הקודמת פי 4. כלומר אם נפח רמה 4 יהיה 100 Mb, נפח רמה 5 צפוי להיות 400 Mb. זה יכול לתת אומדן על נפח הנתונים והשלב בו נמצאים.
סיום העבודה
זמן הבניה של ה-Cache הארצי שבניתי עמד על 4 ימים ו15 שעות. גודל ה-Cache הסופי יצא 591 GB בפורמט Mixed 55.
להערכתי, שימוש בפורמט Mixed 75 היה מגדיל את הקאש בכ-150 GB נוספים.
סיכום
השימוש ב-ArcGIS Pro מאפשר ניצול משאבי מחשוב בצורה טובה מאד, לצורך בניית Cache של אורתופוטו ארצי ברמות קנ"מ גבוהות. כדאי להשקיע במשאבי מחשוב מתאימים (ליבות עיבוד, RAM, רשת מהירה, זיכרון מהיר) על מנת לקצר את תהליך היצירה.
בהצלחה.
האם אפשר להריץ את הפעולה הזו גם עם רישיון BASIC?
שלום אביב,
הכלי Manage Tile Cache זמין לרישיון Basic וניתן לייצר קאשים בכל רמת רישוי.
עם זאת, יצירה של Mosaic Dataset היא מרישוי Standard ומעלה.