我每年将每月的气候数据存储在netcdf文件中。涵盖的期间为2011年至2018年(每年一个netcdf文件)。我需要对它们执行不同的操作,但是首先我必须将它们分为多个季节:冬季和春季。到目前为止,我已经设法适应了一个循环,在该循环中,我每年每月应用一次操作,并将结果存储在一个单独的netcdf中。例如,我计算了2011年3月至2011年9月的平均温度,并将其作为一个带存储在输出的netcdf文件中。 我没办法做的是在冬季进行,枯萎的季节是从10月到次年2月。
我已经检查了类似的问题How to loop to extract certain variables from NETCDF files?,但是老实说,我没有将其应用于代码中。我正在使用带有netCDF4,matplotlib和pylab库的python。
下面是循环运行的代码的一小部分。我做了一些注释以表示怀疑。
for year in range(2011, 2019): #period
startYear = 2011
nc_in = "/monthly/TabsM_ch01r.swisscors_" + str(year) + "01010000_" + str(year) + "12010000.nc" #here is where my 8 netcdf files are placed
print(nc_in)
TabsM_SummerList = Dataset(nc_in, 'r') # read the netCDF file
###Here is where the mean for each year supposed to be applied
#Here I select the bands which I will work with !!!
tabsM_912_12 = TabsM_WinterList.variables['TabsM'][9:12 , :, :] # from September to December starting year.. and from January February next year???
#Here I apply the mean to my stack of bands
tabsM_912_12_mean_comp = np.mean(tabsM_912_12, axis=0, keepdims=True)
# Bio1_mean_var is my new variable that will store the means and it will be used further in my code
Bio1_mean_var[year-startYear, :, :] = tabsM_912_12_mean_comp
# Determine the time value
#The time stamp is per year... should I modify something here AND january february next year??
date_format = "%Y-%m-%d"
startdate = datetime.strptime('2011-01-01', date_format)
#
stopdate = datetime.strptime( str(year) + '-12-31' , date_format)
delta = stopdate - startdate # (stopdate - startdate)/30
month = delta.days
time_var[year-startYear] = month
最后,我希望有一个存储7个波段的nectdf文件。每个波段的温度平均值分别为SepDec2011(起始年)和明年JanFeb2012。下一个乐队将是SepDec2012-JanFeb2013 ...等等。
我希望这个解释很清楚。我试图自己找到一些东西,但是我没有设法使我发现的内容适应我的代码
任何提示将不胜感激。