Luulen, että sinulla on vaakasuuntainen ruudukko (x, y) ja tuulen komponentit u (x, y) ja v (x, y).
Normaalisti teemme 1-leveysasteen vakion (y -mitta) ja yhtä suuri kuin 110000 m. Joten dy
riippuu siitä, kuinka monta astetta ruudukkopistettä kohden sinulla on (yresolution). dx
kuitenkin vaihtelee leveyspiirin mukaan.
dy = 110000 * yesolution;
Nyt voimme käyttää keskitetyt äärelliset erot laskeaksesi haluamasi. (Alla on Matlab-koodi, mutta uskon riittävän yleinen, jotta se voidaan toistaa muilla kielillä).
y = 2: pituus (lat) -1 dx = abs (110000 * cos (latx) (y) * (2 * pi / 360)) * xresoluutio); x = 2: pituus (lon) -1 div (x, y, 1) = (u (x + 1, y, 1) -u (x-1, y, 1)) / (2 * dx) + (v (x, y + 1,1) -v (x, y-1,1) / (2 * dy); loppu
Huomaa, että kehys on tyhjä divergenssikentän ympärillä, kun x = 1, x = max (x), y = 1 ja y = max (y), kun heillä ei ole kahta naapuria erojen laskemiseksi. Sama tapahtuu, kun teet tämän hdivg -toiminto esimerkiksi Gradsissa.
Muuten, tämä perustuu ja antaa saman tuloksen kuin Grads (olen tarkistanut!) cdiff -sovelluksen avulla. toistaa hdivg
.
Huomaa myös, että kosini-funktio toimii täällä radiaaneilla, joten jos lasket kosinit suoraan asteina (ts. funktio cosd
Matlabissa ), sinun on jätettävä pois termi skaalaus (2 * pi / 360)
-muodolla, joka on vain muunnos.
Toivottavasti se auttaa!