To jest mój pierwszy raz, kiedy używam netCDF i staram się owijać moją głowę.Przeprowadź pętlę przez pliki netcdf i wykonaj obliczenia - Python lub R
Mam wiele wersji 3 plików netcdf (NOAA NARR air.2m średnie dzienne przez cały rok). Każdy plik obejmuje rok od 1979 do 2012 roku. Są to siatki 349 x 277 o rozdzielczości około 32 km. Dane zostały pobrane z here.
Wymiar to czas (godziny od 1 stycznia 1800), a moją zmienną będącą przedmiotem zainteresowania jest powietrze. Trzeba obliczyć skumulowane dni z temperaturą < 0. Na przykład
Day 1 = +4 degrees, accumulated days = 0
Day 2 = -1 degrees, accumulated days = 1
Day 3 = -2 degrees, accumulated days = 2
Day 4 = -4 degrees, accumulated days = 3
Day 5 = +2 degrees, accumulated days = 0
Day 6 = -3 degrees, accumulated days = 1
muszę przechowywać te dane w nowym pliku netcdf. Jestem zaznajomiony z Pythonem i nieco z R. Jak najlepiej przechodzić przez każdy dzień, sprawdzać wartość poprzednich dni i na tej podstawie wyprowadzać wartość do nowego pliku netcdf z tym samym wymiarem i zmienną ... lub może po prostu dodaj inną zmienną do oryginalnego pliku netcdf z danymi wyjściowymi, których szukam.
Czy najlepiej pozostawić wszystkie pliki oddzielnie lub połączyć je? Połączyłem je z ncrcat i działało dobrze, ale plik ma 2,3 gb.
Dzięki za wejście.
Mój obecny postęp w Pythonie:
import numpy
import netCDF4
#Change my working DIR
f = netCDF4.Dataset('air7912.nc', 'r')
for a in f.variables:
print(a)
#output =
lat
long
x
y
Lambert_Conformal
time
time_bnds
air
f.variables['air'][1, 1, 1]
#Output
298.37473
Aby pomóc mi to lepiej zrozumieć, jakiego rodzaju struktury danych mam pracy z? Czy ['air'] klucz w powyższym przykładzie i [1,1,1] są również kluczami? aby uzyskać wartość 298,37473. Jak mogę przejść przez [1,1,1]?
Wiem, że jest to dość późno na ten wątek z 2013 roku, ale chciałem tylko wskazać, że przyjęte rozwiązanie nie zapewnia rozwiązania postawionego pytania. Wydaje się, że pytanie dotyczy długości każdego ciągłego okresu temperatur poniżej zera (uwaga w pytaniu licznik resetuje się, gdy temperatura przekroczy zero), podczas gdy to rozwiązanie daje jedynie całkowitą liczbę dni w roku, w których temperatura jest niższa. To nie jest subtelna różnica. Jeśli wymagana jest całkowita liczba dni, to pytanie powinno zostać zmienione, aby to zaznaczyć. –