2016-06-14 8 views
0

Ich habe eine Netcdf-Datei mit der zeitabhängigen Verteilung des Geschwindigkeitsfeldes in einem Wassertank. Ich weiß grob, wie man das große Bild des Geschwindigkeitsfeldes in einem bestimmten Zeitschritt aufträgt, aber ich möchte die zeitliche Veränderung der Geschwindigkeitsvariablen (u, v, w) in einem festen Punkt des Raums darstellen.Zeichnen Sie die Zeitentwicklung einer Variablen in einem Fixpunkt einer Netcdf-Datei mit Python

Alles mit Python.

+0

Wo Ihre vorhandenen Code wird? –

Antwort

0

Sobald Sie die Daten geladen haben, ist dies sehr einfach mit Slicing. Zum Beispiel mit einer NetCDF Datendatei von unserem Modell als Beispiel:

Ausgabe von ncdump -h:

netcdf w.xz { 
dimensions: 
    x = 1024 ; 
    y = 1 ; 
    zh = 512 ; 
    time = UNLIMITED ; // (81 currently) 
variables: 
    float time(time) ; 
     string time:units = "Seconds since start of experiment" ; 
    float x(x) ; 
    float y(y) ; 
    float zh(zh) ; 
    float w(time, zh, x, y) ; 
} 

Wenn Sie sowohl die Zeit und Geschwindigkeit Variablen laden, wie:

import netCDF4 as nc4 

f = nc4.Dataset('w.xz.nc') 
time = f.variables['time'][:] 
w = f.variables['w'][:,:,:,:] # dimensions: time,z,x,y 

können Sie Nehmen Sie eine Zeitscheibe bei zB Lage z,x,y = index{10,5,1}

k = 10; i = 5; j = 1 
data = w[:,k,i,j] 

Oder zeichnen es als:

pl.plot(time, w[:,k,i,j])