Kysymys:
Kuinka laskea du / dx ja dv / dy kosteusvirtauksen lähentymisessä?
Kay
2017-02-09 14:35:05 UTC
view on stackexchange narkive permalink

Minulla on $ u $ -tuuli, $ v $ -tuuli ja ominaiskosteus. Haluaisin laskea kosteusvirtauksen lähentymisen ruudukkopisteessä. Joten minun on laskettava arvon $ q (\ frac {du} {dx} + \ frac {dv} {dy}) $

Kysymykseni on, kuinka lasketaan $ \ frac {du} { dx} $ ja $ \ frac {dv} {dy} $ alkaen $ u $ -tuulesta ja $ v $ -tuulesta vyötäröpisteessä $ (x, y) $?

En tehnyt sitä. Lisäksi tämä tapahtui NCL: n kanssa. Haluaisin tehdä sen käyttämällä ohjelmaa, kuten FORTRAN-koodia tai shell-komentosarjaa.
Tätä laskutoimitusta varten tarvitset todennäköisesti naapuriverkkosolujen _u_-tuuli ja _v_-tuuli sekä etäisyydet naapuriverkkosoluihin.
Katso kohta 3 osoitteessa http://earthscience.stackexchange.com/questions/19/how-do-weather-models-work/666#666
@milancurcic: Paljon kiitoksia. Juuri sitä etsin.
-1
@gansub: Kiitos paljon kommentistasi. Olin etsinyt paljon Googlesta. Mutta FuzzyLeapfrog ja milancurcic selvittivät epäilyni täällä.
@Kay, ovatko annetut vastaukset sopivia kysymykseesi? Harkitse heidän hyväksymistä :)
Kaksi vastused:
ouranos
2017-06-23 01:09:28 UTC
view on stackexchange narkive permalink

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!

keskitetyt äärelliset erot toimivat vain muissa kuin rajan ruudukkopisteissä. Ruudukkopisteiden rajoissa (kuten pylväät) sinun on käytettävä eteenpäin ja taaksepäin olevia eroja.
Tarkistamalla tämän vastauksen myöhemmin, olet oikeassa @gansub: ssä budjettien suhteen. Divergenssin ja pyörteisyyden laskeminen GrADS: n avulla käyttämällä "hdivg" ja "hcurl" palauttaa puuttuvat arvot myös ruudukon soluihin. Luulen, että se on hieno useimmissa sovelluksissa.
se on hieno, jos käytät useimpia alueellisia verkkoja. Se ei ole OK, jos haluat laskea napakierroksen käpristyksen (suoraan napojen yli).
BarocliniCplusplus
2017-06-28 19:44:36 UTC
view on stackexchange narkive permalink

Helppo vastaus on käyttää rajallista eroa. Kumpi on täysin valinta. Esimerkiksi valitsen yksinkertaisen keskitetyn erotusjärjestelmän.

Sanot, että sinulla on ruudukko, ja pisteesi ($ x $, $ y $) ovat i: n ja j: n ruudukkopisteessä, missä i osoittaa vasen-oikea indeksi ruudukossa ja j ilmaisee pohjoinen-etelä-indeksin ruudukossa. Siksi $ u $ ja $ v $ voidaan ilmaista $ u (x_ {i, j}, y_ {i, j}) $ ja $ v (x_ {i, j}, y_ {i, j}) $.

$$ \ frac {du} {dx} \ approx \ frac {\ Delta u} {\ Delta x} = \ frac {u (x + \ Delta x, y) -u (x- \ Delta x, y)} {\ Delta x} = \ frac {u (x_ {i + 1, j}, y) -u (x_ {i-1, j}, y)} {x_ {i + 1, j} -x_ {i-1, j}} = \ frac {u_ {i + 1, j} -u_ {i-1, j}} {x_ {i + 1, j} -x_ {i-1, j}} $$

V-komponentille voidaan soveltaa samanlaista prosessia, muuta vain hakemisto ja muuttujat



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...