title: Loop through netcdf files and run calculations - Python or R
body: <p>This is my first time using netCDF and I'm trying to wrap my head around working with it.</p>
  
  <p>I have multiple version 3 netcdf files (NOAA NARR air.2m daily averages for an entire year).  Each file spans a year between 1979 - 2012.  They are 349 x 277 grids with approximately a 32km resolution.  Data was downloaded from <a href="http://www.esrl.noaa.gov/psd/data/gridded/data.narr.monolevel.html">here</a>.</p>
  
  <p>The dimension is time (hours since 1/1/1800) and my variable of interest is air.  I need to calculate accumulated days with a temperature &lt; 0.  For example</p>
  
  <pre><code>    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
  </code></pre>
  
  <p>I need to store this data in a new netcdf file.  I am familiar with Python and somewhat with R.  What is the best way to loop through each day, check the previous days value, and based on that, output a value to a new netcdf file with the exact same dimension and variable.... or perhaps just add another variable to the original netcdf file with the output I'm looking for.</p>
  
  <p>Is it best to leave all the files separate or combine them?  I combined them with ncrcat and it worked fine, but the file is 2.3gb.</p>
  
  <p>Thanks for the input.</p>
  
  <p>My current progress in python:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>To help me understand this better what type of data structure am I working with?  Is ['air'] the key in the above example and [1,1,1] are also keys? to get the value of 298.37473.  How can I then loop through [1,1,1]?</p>