זוהי הפקודה greenslinegmt שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
greenspline - אינטרפולציה באמצעות הפונקציות של Green עבור splines ב-1-3 מימדים
תַקצִיר
greenspline [ שולחן ] [ [1|2|3|4|5,]gradfile ] [ [n|v]לחתוך[/פילה] ] [ מצב ] [ grdfile ] [
שינק[/yinc[/אבץ]] ] [ ] [ nodefile ] [ az|x/y/z ] [ מערב/מזרח/דרום/צפון[/zmin/zmax][r]
] [ c|t|l|r|p|q[pars] ] [ רשת מסכות ] [ [רָמָה] ] [ ] [ -b] [ -d] [
-f] [ -h] [ -o] [ -x[[-]n] ] [ -:[i|o]]
הערה: אין רווח בין דגל האפשרות לארגומנטים המשויכים.
תיאור
greenspline משתמש בפונקציה של הירוק G(x; x') עבור השדרה והגיאומטריה שנבחרו ל
אינטרפולציה של נתונים במיקומי פלט רגילים [או שרירותיים]. מבחינה מתמטית, הפתרון
מורכב כ w(x) = סכום {c(i) G(x'; x(i))}, ל i = 1, n, מספר נקודות הנתונים
{x(i), w(i)}. פעם ה n מקדמים c(i) נמצאו ניתן להעריך את הסכום בכל מקרה
נקודת פלט x. בחר בין עקמומיות מינימלית, עקמומיות מסודרות או מתמשכות
קווים במתח עבור קואורדינטות קרטזיות 1-D, 2-D או 3-D או משטח כדורי
קואורדינטות. לאחר הסרת תחילה מגמה ליניארית או מישורית (גיאומטריות קרטזיות) או ממוצע
ערך (משטח כדורי) ומנרמל את השאריות הללו, מטריצת הריבועים הקטנים ביותר
פתרון עבור מקדמי השדרה c(i) נמצא על ידי פתרון ה n by n מערכת לינארית
w(j) = סכום-על-i {c(i) G(x(j); x(i))}, ל j = 1, n; פתרון זה נותן תוצאה מדויקת
אינטרפולציה של נקודות הנתונים שסופקו. לחלופין, תוכל לבחור לבצע א
פירוק ערך יחיד (SVD) ולבטל את התרומה מהקטנה ביותר
ערכים עצמיים; גישה זו מניבה פתרון משוער. מגמות וקנה מידה משוחזרים
בעת הערכת הפלט.
נדרש טיעונים
אין.
אופציונאלי טיעונים
שולחן שם של ASCII אחד או יותר [או בינארי, ראה -דוּ] קבצים המכילים את x, w נתונים
נקודות. אם לא ניתן קובץ, אנו קוראים קלט סטנדרטי במקום זאת.
-A[1|2|3|4|5,]gradfile
הפתרון יהיה מוגבל בחלקו על ידי שיפועים פני השטח v = v*n, שם v is
גודל השיפוע ו n כיוון הווקטור של היחידה שלו. כיוון השיפוע עשוי
יצוין על ידי רכיבים קרטזיים (כל אחד וקטור יחידה n וגודל v
בנפרד או רכיבי שיפוע v ישירות) או זוויות מול צירי הקואורדינטות.
ציין אחד מחמישה פורמטי קלט: 0: עבור נתונים 1-D אין כיוון, רק
גודל שיפוע (שיפוע) כך שפורמט הקלט הוא x, מדרון. אפשרויות 1-2 מיועדות ל
מערכי נתונים דו מימדיים: 1: רשומות מכילות x, y, אזימוט, מדרון (אזימוט במעלות הוא
נמדד בכיוון השעון מהאנך (צפונה) [ברירת מחדל]). 2: רשומות מכילות x, y,
מדרון, אזימוט (אזימוט במעלות נמדד בכיוון השעון מהאנך
(צָפוֹן)). אפשרויות 3-5 מיועדות לנתונים דו-ממדיים או תלת-ממדיים: 3: רשומות מכילות x,
כיוונים, v (כיוונים במעלות נמדדים נגד כיוון השעון מה
אופקי (ועבור תלת מימד הציר האנכי). 4: רשומות מכילות x, v. 5: רשומות
להכיל x, n, v. הוסף שם של קובץ ASCII עם שיפועים פני השטח (בעקבות א
פסיק אם צוין פורמט).
-C[n|v]לחתוך[/פילה]
מצא התאמה משוערת של פני השטח: פתור את המערכת הליניארית עבור השדרה
מקדמים לפי SVD ולבטל את התרומה מכל הערכים העצמיים שהיחס ביניהם
לערך העצמי הגדול ביותר הוא פחות מ לחתוך [ברירת מחדל משתמשים בחיסול גאוס-ירדן
לפתור את המערכת הליניארית ולהתאים את הנתונים בדיוק]. לחלופין, הוסף /פילה ל
שמור את יחסי הערך העצמי לקובץ שצוין לניתוח נוסף. לבסוף, אם
שלילי לחתוך ניתן אז /פילה נדרש והביצוע ייפסק לאחר השמירה
הערכים העצמיים, כלומר, לא מופק פלט משטח. לפרט -קו"ח להשתמש
הערכים העצמיים הגדולים ביותר הדרושים להסבר לחתוך % מהשונות בנתונים. לחלופין,
להשתמש -Cn כדי לבחור את לחתוך הערכים העצמיים הגדולים ביותר. אם פילה ניתן עם -קו"ח אז אנחנו
שמור את הערכים העצמיים במקום את היחסים.
-Dמצב מגדיר את דגל המרחק שקובע כיצד אנו מחשבים מרחקים בין נתונים
נקודות. בחר מצב 0 עבור אינטרפולציה קרטזיאנית 1-D spline: -D0 אומר (x) במשתמש
יחידות, מרחקים קרטזיניים, בחר מצב 1-3 עבור משטח קרטזיאני דו-ממדי
שִׁרבּוּב: -D1 אומר (x,y) ביחידות משתמש, מרחקים קרטזיים, -D2 עבור (x,y) ב
מעלות, מרחקי כדור הארץ שטוחים ו -D3 עבור (x,y) במעלות, מרחקים כדוריים ב
ק"מ. לאחר מכן, אם PROJ_ELLIPSOID הוא כדורי, אנו מחשבים קשתות עיגול גדולות, אחרת
גיאודזה. אוֹפְּצִיָה מצב = 4 חל על אינטרפולציה של ספליין משטח כדורי בלבד:
-D4 עבור (x,y) במעלות, השתמש בקוסינוס של קשתות עיגול גדול (או גאודזיות). בחר
מצב 5 עבור אינטרפולציה קרטזיאנית תלת-ממדית משטח ספליין: -D5 אומר (x,y,z) במשתמש
יחידות, מרחקים קרטזיניים.
-Ggrdfile
שם קובץ הפלט שנוצר. (1) אם אפשרויות -R, -I, ואולי -r מוגדרים אנחנו
לייצר טבלת פלט במרחק שווה. זה ייכתב ל-stdout אלא אם כן -G is
נָקוּב. הערה: עבור רשתות דו-ממדיות -G נדרשת אפשרות. (2) אם אפשרות -T is
נבחר אז -G נדרש וקובץ הפלט הוא קובץ רשת בינארי דו-ממדי. חל
לאינטרפולציה דו מימדית בלבד. (2) אם -N נבחר ואז הפלט הוא ASCII (או
בינארי; לִרְאוֹת -בו) שולחן; אם -G לא ניתנת אז טבלה זו נכתבת בתקן
תְפוּקָה. התעלמו אם -C or -Cניתן 0.
-Iשינק[/yinc[/אבץ]]
ציין מרווחי דגימה במרחק שווה, מופעל עבור כל ממד, מופרדים על ידי
מקצץ.
-L Do לֹא הסר מגמה ליניארית (1-D) או פלנר (2-D) כאשר -D בוחר מצב 0-3 [עבור
המקרים הקרטזיאניים האלה, קו או מישור מרובעים פחות מעוצב ומוסר, אז
שוחזר לאחר התאמת ספליין לשאריות]. עם זאת, במקרים מעורבים עם
גם ערכי נתונים וגם שיפועים, או עבור נתוני משטח כדוריים, רק הנתונים הממוצעים
הערך מוסר (ובהמשך ומשוחזר).
-Nnodefile
קובץ ASCII עם קואורדינטות של מיקומי פלט רצויים x בעמודה/ים הראשונים.
התוצאה w ערכים מצורפים לכל רשומה ונכתבים לקובץ המופיע ב
-G [או stdout אם לא צוין]; לִרְאוֹת -בו עבור פלט בינארי במקום זאת. אפשרות זו
מבטל את הצורך לציין אפשרויות -R, -I, ו -r.
-Qaz|x/y/z
במקום להעריך את פני השטח, קח את הנגזרת הכיוונית ב- az אזימוט
ולהחזיר את הגודל של נגזרת זו במקום. עבור אינטרפולציה תלת מימדית, ציין
שלושת המרכיבים של כיוון הווקטור הרצוי (הווקטור יהיה מנורמל
לפני השימוש).
-Rxmin/xmax[/ymin/ymax[/zminzmax]]
ציין את התחום עבור סריג במרחק שווה, שבו נמצאות תחזיות הפלט
נדרש. דורש -I ובאופציה -r.
דו-ממדי: לתת xmin/xmax, המינימום והמקסימום x קואורדינטות.
דו-ממדי: לתת xmin/xmax/ymin/ymax, המינימום והמקסימום x ו y קואורדינטות. אלה
יכול להיות קרטזיאני או גיאוגרפי. אם גיאוגרפי, אז מערב, מזרח, דרום, ו
צפון ציין את אזור העניין, ותוכל לציין אותם במעלות עשרוניות
או בפורמט [+-]dd:mm[:ss.xxx][W|E|S|N]. שני הקיצורים -רג ו -מחקר ופיתוח לעמוד על
תחום גלובלי (0/360 ו-180/+180 בקו אורך בהתאמה, עם -90/+90 ב
קו רוחב).
דו-ממדי: לתת xmin/xmax/ymin/ymax/zmin/zmax, המינימום והמקסימום x, y ו z
קואורדינטות. עיין בסעיף הדו-ממדי אם הקואורדינטות האופקיות שלך הן גיאוגרפיות;
שימו לב לקיצורים -רג ו -מחקר ופיתוח לא ניתן להשתמש אם צוין תחום תלת-ממדי.
-Sc|t|l|r|p|q[pars]
בחר אחד משישה ספליין שונים. השניים הראשונים משמשים עבור 1-D, 2-D, או 3-D
ספליין קרטזיאני (ראה -D לדיון). שימו לב שכל ערכי המתח הם
צפוי להיות מתח מנורמל בטווח 0 t < 1: (c) עקמומיות מינימלית
ספליין [סנדוול, 1987], (t) ספליין עקמומיות מתמשך במתח [ווסל ו
ברקוביץ', 1998]; לְצַרֵף מתח[/סולם] עם מתח בטווח 0-1 ו
ספק אופציונלי סולם אורך [ברירת המחדל היא מרווח הרשת הממוצע]. הבא הוא
ספליין 1-D או 2-D: (l) שדרה קווית (1-D) או Bilinear (2-D); התוצרת הללו
פלט שאינו חורג מטווח הנתונים הנתונים. הבא הוא 2-D או 3-D
ספליין: (r) ספליין מוסדר במתח [מיטאסובה ו מיטאס, 1993]; שוב, צרף
מתח ו אופציונלי סולם. השניים האחרונים הם שסעי משטח כדוריים ושניהם
לִרְמוֹז -D4: (p) ספליין עקמומיות מינימלי [פרקר, 1994], (q) עקמומיות מתמשכת
ספליין במתח [ווסל ו בקר, 2008]; לְצַרֵף מתח. ה-G(x'; x') בשביל ה
השיטה האחרונה איטית יותר לחישוב (פתרון סדרה) ולכן אנו מחשבים מראש ערכים ו
השתמש במקום זאת בחיפוש אינטרפולציית ספליין מעוקב. אופציונלי לצרף +nN (מוזר
מספר שלם) כדי לשנות את מספר הנקודות להשתמש בהגדרת ה-spline [10001]. הסופי
ל- Legendre sum יש שגיאת חיתוך [1e-6]; אתה יכול להוריד את זה על ידי הוספה +eלהגביל
על חשבון זמן ריצה ארוך יותר.
-Tרשת מסכות
עבור אינטרפולציה דו מימדית בלבד. הערך את הפתרון רק בצמתים ב- רשת מסכות
שאינם שווים ל-NaN. אפשרות זו מבטלת את הצורך לציין אפשרויות -R,
-I, ו -r.
-V[רָמָה] (יותר ...)
בחר רמת מילוליות [c].
-W צפו למשקולות נתונים בעמודת הקלט הסופית, בדרך כלל כמשקל = 1 /
sigma, אי הוודאות של הנתונים. זה מביא להתאמה של הריבועים הקטנים ביותר משוקלל. הערה
שזה משפיע רק אם -CC משמש.
-דוּ[ncols][t] (יותר ...)
בחר קלט בינארי מקורי. [ברירת המחדל היא 2-4 עמודות קלט (x,w); המספר תלוי
על המימד הנבחר].
-בו[ncols][סוג] (יותר ...)
בחר פלט בינארי מקורי.
-d[i|o]אין מידע (יותר ...)
החלף עמודות קלט שוות אין מידע עם NaN ועשה הפוך על הפלט.
-f[i|o]colinfo (יותר ...)
ציין סוגי נתונים של עמודות קלט ו/או פלט.
-h[i|o][n][+c][+d][+rהֶעָרָה][+rכותרת] (יותר ...)
דלג או הפק רשומות כותרות.
-iצווארונים[ל][ססולם][oלקזז][,...] (יותר ...)
בחר עמודות קלט (0 הוא העמודה הראשונה).
-oצווארונים[,...] (יותר ...)
בחר עמודות פלט (0 הוא העמודה הראשונה).
-r (יותר ...)
הגדר רישום צומת פיקסל [קו רשת].
-איקס[[-]n] (יותר ...)
הגבל את מספר הליבות בשימוש באלגוריתמים מרובי הליכי (OpenMP נדרש).
-^ or רק -
הדפס הודעה קצרה על התחביר של הפקודה, ואז צא (הערה: ב-Windows
להשתמש רק -).
-+ or רק +
הדפס הודעת שימוש נרחבת (עזרה), כולל הסבר על כל
אפשרות ספציפית למודול (אך לא האפשרויות הנפוצות של GMT), ואז יוצאת.
-? or לא טיעונים
לאחר מכן הדפס הודעת שימוש מלאה (עזרה), כולל הסבר על האפשרויות
יציאות.
--גִרְסָה
הדפס גרסת GMT וצא.
--show-datadir
הדפס את הנתיב המלא לספריית השיתוף של GMT וצא.
1-D דוגמאות
כדי לדגום מחדש את x,y נתונים אקראיים גאוסים שנוצרו על ידי gmtmath ומאוחסן ב-1D.txt,
מבקש פלט בכל שלב של 0.1 מ-0 עד 10, ובאמצעות ספליין מעוקב מינימלי, נסה
gmt math -T0/10/1 0 1 NRAND = 1D.txt
gmt psxy -R0/10/-5/5 -JX6i/3i -B2f1/1 -Sc0.1 -Gblack 1D.txt -K > 1D.ps
gmt greenspline 1D.txt -R0/10 -I0.1 -Sc -V | psxy -R -J -O -Wthin >> 1D.ps
כדי להחיל ספליין במתח במקום זאת, תוך שימוש במתח של 0.7, נסה
gmt psxy -R0/10/-5/5 -JX6i/3i -B2f1/1 -Sc0.1 -Gblack 1D.txt -K > 1Dt.ps
gmt greenspline 1D.txt -R0/10 -I0.1 -St0.7 -V | psxy -R -J -O -Wthin >> 1Dt.ps
2-D דוגמאות
כדי ליצור רשת אחידה באמצעות ספליין העקמומיות המינימלי עבור אותו מערך נתונים קרטזיאני
מ-Davis (1986) המשמש בדוגמה 16 של GMT Technical Reference ו- Cookbook, נסה
gmt greenspline table_5.11 -R0/6.5/-0.2/6.5 -I0.1 -Sc -V -D1 -GS1987.nc
gmt psxy -R0/6.5/-0.2/6.5 -JX6i -B2f1 -Sc0.1 -Gblack table_5.11 -K > 2D.ps
gmt grdcontour -JX6i -B2f1 -O -C25 -A50 S1987.nc >> 2D.ps
להשתמש ב-Cartesian splines במתח אבל רק להעריך את הפתרון שבו מסכת הקלט
רשת זה לא NaN, נסה
gmt greenspline table_5.11 -Tmask.nc -St0.5 -V -D1 -GWB1998.nc
להשתמש ב-Splines קרטזיאנית במתח ולהחזיר את גודל פני השטח
שיפוע לכיוון NW, נסה
gmt greenspline table_5.11 -R0/6.5/-0.2/6.5 -I0.1 -Sr0.95 -V -D1 -Q-45 -Gslopes.nc
לבסוף, להשתמש ב-Splines של עקמומיות מינימלית קרטזיאנית בשחזור משטח שבו
נתוני קלט הם ערך משטח בודד (pt.d) והאילוצים הנותרים מציינים רק את
שיפוע פני השטח וכיוון (slopes.d), שימוש
gmt greenspline pt.d -R-3.2/3.2/-3.2/3.2 -I0.1 -Sc -V -D1 -A1,slopes.d -Gslopes.nc
3-D דוגמאות
כדי ליצור טבלת רשת קרטזית תלת-ממדית אחידה על סמך הנתונים בטבלה_3 בדיוויס
(1986) שמכיל x,y,z מיקומים ומדד של ריכוזי תחמוצת אורניום (ב
אחוז), נסה
gmt greenspline table_5.23 -R5/40/-5/10/5/16 -I0.25 -Sr0.85 -V -D5 -G3D_UO2.txt
2-D כַּדוּרִי משטח דוגמאות
לשחזר את הדוגמה של פארקר [1994] על רשת גלובלית של 1x1 מעלות, בהנחה שהנתונים נמצאים ב
קובץ mag_obs_1990.d, נסה
greenspline -V -Rg -Sp -D3 -I1 -GP1994.nc mag_obs_1990.d
כדי לעשות את אותה בעיה אבל להחיל מתח של 0.85, השתמש
greenspline -V -Rg -Sq0.85 -D3 -I1 -GWB2008.nc mag_obs_1990.d
שיקולים
1. עבור המקרים הקרטזיאניים אנו משתמשים בפונקציות הירוק של שטח פנוי, ומכאן שאין גבול
תנאים מוחלים בקצוות של התחום שצוין. עבור רוב היישומים
זה בסדר מכיוון שהאזור בדרך כלל מוגדר באופן שרירותי לשקף את ההיקף שלך
נתונים. עם זאת, אם היישום שלך דורש תנאי גבול מסוימים, אתה יכול
שקול להשתמש משטח במקום.
2. בכל המקרים, הפתרון מתקבל בהיפוך א n x n מטריצה דיוק כפולה עבור
מקדמי הפונקציה הירוקים, איפה n הוא מספר אילוצי הנתונים. לפיכך, שלך
הזיכרון של המחשב עשוי להציב מגבלות על גודל מערכי הנתונים שאתה יכול לעבד איתם
greenspline . עיבוד מוקדם של הנתונים שלך עם חוסם
, בלוקמדיה , או בלוקמוד is
מומלץ להימנע מכינוי ועשויים גם לשלוט בגודל של n. למידע, אם n
= 1024 אז צריך רק 8 Mb זיכרון, אבל בשביל n = 10240 אנחנו צריכים 800 Mb. ציין זאת
greenspline תואם לחלוטין ל-64 סיביות אם הוא מורכב ככזה. ל
נתונים כדוריים שאתה יכול לשקול להשתמש בהם gmtspatial קרוב
צמצום שכן.
3. ההיפוך למקדמים יכול להפוך לא יציב מבחינה מספרית כאשר שכנים נתונים
קרוב מאוד בהשוואה לטווח הכולל של הנתונים. אתה יכול לתקן את זה על ידי
עיבוד מוקדם של הנתונים, למשל, על ידי ממוצע של שכנים מרווחים קרובים. לחלופין,
אתה יכול לשפר את היציבות על ידי שימוש בפתרון SVD ולהשליך את המידע המשויך
עם הערכים העצמיים הקטנים ביותר (ראה -C).
4. פתרון הסדרה מיושם עבור -Sq פותח על ידי Robert L. Parker, Scripps
מוסד לאוקיאנוגרפיה, שאנו מודים לו בתודה.
5. אם אתה צריך להתאים ספליין 1-D מסוים דרך נקודות הנתונים שלך, ייתכן שתרצה
לשקול sample1d במקום זאת. זה יציע splines מסורתי עם
תנאי גבול סטנדרטיים (כגון השדרה המעוקבת הטבעית, הקובעת את
עקומות בקצוות עד אפס). לעומת זאת, ה-1-D spline של greenspline, כפי שהוא
הוסבר בהערה 1, כן לֹא ציין תנאי גבול בסוף הנתונים
תחום.
מתח
המתח משמש בדרך כלל כדי לדכא תנודות מזויפות הנגרמות על ידי המינימום
דרישת עקמומיות, במיוחד כאשר קיימים שינויים מהירים בשיפוע בנתונים.
ניתן לקבוע את מידת המתח הנכונה רק על ידי ניסוי. באופן כללי, מאוד
נתונים חלקים (כגון שדות פוטנציאליים) אינם דורשים מתח רב, אם בכלל, בעודם מחוספסים יותר
נתונים (כגון טופוגרפיה) בדרך כלל יבצעו אינטרפולציה טובה יותר עם מתח מתון. עשה
הקפד לנסות מגוון ערכים לפני בחירת התוצאה הסופית שלך. הערה: המוסדר
ספליין במתח יציב רק לטווח סופי של סולם ערכים; אתה חייב להתנסות
כדי למצוא את הטווח התקף והגדרה שימושית. למידע נוסף על מתח עיין ב
הפניות למטה.
ביבליוגרפיה
דייוויס, JC, 1986, סטָטִיסטִיקָה ו נתונים אָנָלִיזָה in גאולוגיה, מהדורה שניה, 2 עמ', Wiley,
ניו יורק,
Mitasova, H., and L. Mitas, 1993, Interpolation by regularized spline with tension: I.
תיאוריה ויישום, מתמטיקה. גאול., 25, 641-655.
פרקר, RL, 1994, גיאופיזית הופכי תֵאוֹרִיָה, 386 עמ', Princeton Univ. ללחוץ,
פרינסטון, ניו ג'רזי
Sandwell, DT, 1987, אינטרפולציה ביהרמונית ספליין של Geos-3 ו- Seasat
נתונים, גיאופיס. Res. Lett., 14, 139-142.
Wessel, P., and D. Bercovici, 1998, Interpolation with splines in tension: a Green's
גישת תפקוד, מתמטיקה. גאול., 30, 77-93.
Wessel, P., and JM Becker, 2008, אינטרפולציה באמצעות פונקציה כללית של גרין עבור
שסע משטח כדורי במתח, גיאופיס. J. Int, 174, 21-28.
Wessel, P., 2009, אינטרפולטור של פונקציית גרין לשימוש כללי, מחשבים &
Geosciences, 35, 1247-1254, doi:10.1016/j.cageo.2008.08.012.
השתמש ב-greenslinegmt באינטרנט באמצעות שירותי onworks.net