如何执行循环以将不同年份的乐队添加到最终的netcdf存档?

时间:2019-04-03 11:23:02

标签: python loops netcdf

我每年将每月的气候数据存储在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 ...等等。

我希望这个解释很清楚。我试图自己找到一些东西,但是我没有设法使我发现的内容适应我的代码

任何提示将不胜感激。

0 个答案:

没有答案