קורס Grads - שיעור מס' 5 - אוטומציה א'

נתנאל531

Well-known member
הקדמה

קישור לשיעורים קודמים -
שיעור 4 - הפקת מפת t2m - http://www.tapuz.co.il/forums/viewmsg/393/180181662/טבע_ומזג_אוויר/מזג_האוויר
שיעור 3 - כניסה לתוך הקוד (חלק ב) - http://www.tapuz.co.il/forums/viewmsg/393/179954727/טבע_ומזג_אוויר/מזג_האוויר
שיעור 3 - כניסה לתוך הקוד (חלק א) -
http://www.tapuz.co.il/forums/viewmsg/393/179848382/טבע_ומזג_אוויר/מזג_האוויר
שיעור 2 - יצירת מפת משקעים -
http://www.tapuz.co.il/forums/viewmsg/393/179827275/טבע_ומזג_אוויר/מזג_האוויר
שיעור 1 - התקנה -
http://www.tapuz.co.il/forums/viewmsg/393/179813942/טבע_ומזג_אוויר/מזג_האוויר

לאחר הפסקה לא-קצרה, תזכורת לשיעורים הקודמים שבהם הפקנו מפת משקעים ומפת טמפרטורה לגובה הקרקע (2m). כזכור, בשיעורים הקודמים הופקה מפה בודדת לכל טווח, וכאשר היה רצון לשנות את הטווח (מפת משקעים של 24 שעות לעוד 3 ימים, מפת t2m לעוד 72 שעות) היה צורך לערוך את ערכי הזמן בסקריפט, וכל הרצה הפיקה מפה אחת. ניתן עקרונית להעתיק את הסקריפט אין סוף פעמים ובכל העתקה לשנות את ערכי הזמן (ואת שם קובץ הפלט), אך ישנה שיטה פשוטה יותר שתובא כאן.
 

נתנאל531

Well-known member
מנהלות

חלק המנהלות מבוסס על השיעורים הקודמים, מצטרף חדש (או שנתקל בשגיאות על קבצים חסרים), לשים לב לקבצים שצורפו לפרקי המנהלות של השיעורים הקודמים, בלעדיהם ההפקה תהיה חסרה.

הורידו את שני הקבצים הבאים והציבו אותם בתיקייה c:\aaa
(משתמשי לינוקס - בתיקיה home/user/grads/, להחליף את user בשם האמיתי)
http://or-avner.net/grads/gfs-precip-ranges.gs
http://or-avner.net/grads/gfs-t2m-ranges.gs

הורידו את שני הקבצים הבאים והציבו אותו בתיקייה c:\aaa\helpers
(משתמשי לינוקס - בתיקיה home/user/grads/helpers/, להחליף את user בשם האמיתי)
http://or-avner.net/grads/helperscript1.gs
http://or-avner.net/grads/helperscript2.gs

משתמשי לינוקס - עברו על שני הקבצים האחרונים והחליפו את התיוג '#' בשורות הרלוונטיות למשתמשי לינוקס. בשני הקבצים הראשונים נדרשת פעולת חיפוש והחלפה מקיפה מאחר וישנם עשרות קריאות לקובץ העזר ולקובץ הפלט, ויש להתאים את הניתוב לנכון. מספיקה כמובן פעולת חיפוש-והחלפה אוטומטית אחת לכל האזכורים, אין צורך בהחלפה ידנית של כל מופע.
 

נתנאל531

Well-known member
סקאלת t2m

בשיעור הקודם ניתן קישור לקובץ סקאלת צבעים ל־t2m, במתכונת חורף. כעת האביב-קיץ הגיע, ואיתם הטמפרטורות הגבוהות. יש להתאים את הסקאלה לטמפרטורות האופייניות לקיץ, לפי הסבר שניתן בשיעור הקודם (שיעור מס' 4) בחלק ההרחבות.
או בקיצור להחליף את השורות הפעילות (השורות בסוף שלא מתחילות בתיוג '#') בקובץ t2m-scale.gs שבתיקיה 'helpers' בשורות הבאות:

'set clevs 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45'
'set ccols 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71'

לשים לב לגרש־ים בתחילת ובסוף שורה.
 

מוסא20

New member
תמדי אתה תותח ... עוד אני עובר על התוכן ומנסה

להתחיל לעבוד ..
 

נתנאל531

Well-known member
הפעלת הסקריפט למשקעים בטווח משתנה

תזכורת לפני ההרצה - לערוך את הקובץ gfs-link.gs להרצה האחרונה שזמינה בשרת! הסבר לעריכת הקובץ מובא בשיעור מספר 2 - "תוכן ועריכת הקובץ gfs-link.gs".

נפתח את ה־Grads (מי שלא זוכר איך, שיעור מס' 1 - "הפעלת התוכנה" ו"הפעלה").

בחלון שמחכה לפקודה נקליד:
run /cygdrive/c/aaa/gfs-precip-ranges.gs
(משתמשי לינוקס - run /home/user/grads/gfs-precip-ranges.gs, לשנות את user לשם האמיתי)

כעת אמורה להיות פעולת עבודה ארוכה, במהלכה תצוייר מפת משקעים לטווח משתנה (6 שעות, 12 שעות...) ובנקודת התחלה שונה. הפלט יחכה בתיקייה 'output', כאשר לכל טווח ונקודת התחלה - שם משלו.

תזכורת: בחלון פקודה ניתן להשתמש בכפתור <tab> כדי לבצע השלמה אוטומטית, ולחסוך הקלדה ארוכה, נסו ותהנו.
 

נתנאל531

Well-known member
הערה

מסיבה שאינה ברורה לי ישנו צורך באיפוס ('reset') לאחר כל ציור מפת משקעים לטווח, ואין די בניקוי חלונית הציור ('clear'), בלעדי איפוס המפה הבאה לא תצוייר כהלכה. האיפוס מבוצע באופן אוטומטי בראשית כל פעולת ציור, וכתופעת לוואי ממנו מוצגת הודעה בחלון הפקודות כי כל המשתנים אופסו, מה שגורם בהפעלת סקריפט זה פלט של כמה עשרות שורות זהות...
 

נתנאל531

Well-known member
הפעלת הסקריפט למפת טמפרטורה t2m בטווח משתנה

תזכורת - לערוך את הקובץ gfs-link.gs להרצה הרלוונטית, פרטים בהודעה הקודמת

בחלון ה־Grads (אם אינו פתוח - נפתח אותו כמובן) נקליד:
run /cygdrive/c/aaa/gfs-t2m-ranges.gs

כעת אמורה להיות פעולת ציור ארוכה, קבצי הפלט יחכו בתיקיה 'output', כאשר כל קובץ פלט שונה בשמו מחברו בטווח התחזית שלו (+000, +018, +102 וכן הלאה)
 

נתנאל531

Well-known member
הסבר פעולת הסקריפט

הרעיון בגדול הוא שקבצי ההפעלה הראשיים מעבירים את פרמטרי הזמן לקבצי העזר (helperscript1.gs ו־helperscipt2.gs), מציירים מפה ומחזירים את ההובלה לסקריפט הראשי, שיוצר מהפלט קובץ בשם רלוונטי. לאחר מכן שולחים את סקריפט העזר למשימה נוספת, וכן הלאה עד שמסתיימת רשימת פרמטרי הזמן.

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

העברת פרמטרי הזמן מבוצעת באמצעות הוספתם בסוף הפקודה 'run' שקוראת לקבצי העזר. בקובץ המשקעים מדובר בטווח ולכן ישנם 2 פרמטרים (נקודת התחלה וסוף), בקובץ ה־t2m מדובר בנקודת זמן בודדת (הטמפרטורה בנקודת זמן מסויימת), ולכן מדובר בפרמטר אחד.

 

נתנאל531

Well-known member
ביצוע על ידי סקריפט העזר

סקריפט העזר מקבל לידיו את פרמטרי הזמן (כמספרים) מהסקריפט הראשי, אבל לא יודע מה משמעותם או מה לעשות איתם. לכן בתחילתו מופיעה פונקציה קצרה שמגדירה לו כי הערך הראשון שהתקבל (בסקריפט המשקעים) יוגדר כמשתנה t1, והערך השני שהתקבל יוגדר כמשתנה t2. הפקודה subwrd משמעה לתפוס את ה'מילה' הראשונה / שניה / (אחר כפי שהוגדר) מהביטוי שהתקבל, במקרה הזה מדובר בשני פרמטרי הזמן שהועברו מהסקריפט הראשי, ומובדלים ביניהם ברווח (רווח משמש להפרדה בין 'מילים' לפקודה זו). במקרה של סקריפט ה־t2m מועבר רק פרמטר אחד, ולכן מוגדר משתנה אחד בלבד.

לאחר מכן מצויירת מפת משקעים / t2m לפי טווחי הזמן שהוגדרו, מאחר ובהמשך הקובץ נעשה שימוש במשתנים שהוגדרו בהתחלה כנקודות זמן. קובץ העזר זהה לגמרי לסקריפט ציור המשקעים / t2m משיעורים 3 ו־4, וההסברים לפקודות השונות שבו מובאים שם, למעט פקודת הציור לקובץ שהושמטה ומבוצעת על ידי הסקריפט הראשי. ישנו גם שינוי קטן נוסף כדי לוודא שתמיד מצויירת סקאלת צבעים, פרטים במדור ההרחבות.

 

נתנאל531

Well-known member
התאמות

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

בסקריפט המשקעים ישנה חלוקה לפי טווחי זמן (6 / 12 / 24 / 48 שעות והלאה). משקעי GFS כזכור הם לטווח של 6 שעות (ולא לטווח של 3 שעות! הסבר ניתן בשיעורים הקודמים על מפת המשקעים), ויכולים לקבל כל טווח זמן שמתחלק ב־6 (18, 30, 42...) ולהתחיל בכל טווח זמן שמתחלק ב־6, (בפועל כל המספרים האי-זוגיים, לדוגמא 3-9 - משקעים לטווח זמן של 18 שעות שמתחילים ב־6+, וממשיכים עד 24+). מטעמי נוחות נעשה שימוש בחלקי יממה ובטווחי זמן קלים להבנה, מי שמבין את העקרון ויש לו צורך - יכול לבצע פה סדרה ארוכה של התאמות לצורכו.

כאשר מבינים את שיטת העבודה, ניתן לבצע התאמות אישיות. לשים לב שפרמטר הזמן אינו יוצר את שם הקובץ (בניגוד לכותרת בראש המפה, שכן נוצר אוטומטית לפי פרמטרי הזמן), כלומר אם משנים את פרמטרי הזמן, יש להתאים אליהם את שם קובץ הפלט.
 

נתנאל531

Well-known member
הוספת ערך זעיר לשדה המשקעים לצורך הצגת הסקאלה

מסיבה מורכבת שאינה ידועה לי, במידה ומוצגת מפת משקעים ריקה (לבנה לגמרי, חסרת משקעים), מושמטת סקלאת הצבעים שאמורה להופיע כמקרא. כדי לעקוף את הבאג / פייצ'ר הזה, נוסף סכום זעיר לשדה המשקעים, שאינו בא לידי ביטוי במפה. התוצאה היא שהמפה נשארת לבנה, אבל המקרא מופיע.
&nbsp
הנוסחה הזו שמוסיפה ערך זעיר לשדה המשקעים (לא התעמקתי בה ואיני מבין את משמעותה, בינתיים מסתפק בכך שהיא 'עובדת') ניתנה כמענה לשאלה של ידידנו avik2 ברשימת הדיוור של gradsusr על ידי אחד המשתתפים, העתקתי משם.

 

נתנאל531

Well-known member
הערה לעתיד (הקרוב)

כברירת מחדל כל ערך בפרמטר זמן של GFS מייצג 3 שעות (1=אנליזה, שעה ה־ש', 2=3+, 9=24+, 41=120+, 81=240+ וכן הלאה), בהתאם למצב העדכני של המודל. אבל לפי שדרוג קרוב ומתוכנן של המודל, המודל יתחיל להביא נתונים שעתיים לטווח של עד 120 שעות. לאחר השדרוג ערכי הזמן ישתנו כמובן, ויהיה צורך לבצע התאמות בשמות הקבצים בהתאם לפרמטרים.

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

מוסא20

New member
עבודה יוצאת דופן תודה רבה ... זה מה שיצא לי בסוף

נראה שמפת טמפ' הקרקע עבדה כהלכה
אבל היתה בעיה במפות המשקעים כפי שמצורף



 

מוסא20

New member
תודה רבה נתנאל ... השקעה יוצת מן הכלל ..כן ירבו

אנשים משכילים כמוך
 
למעלה