[Numpy-discussion] numpy.mean slicing in a netCDF file

Fadzil Mnor fadzilmnor84 at gmail.com
Wed Oct 15 17:20:58 EDT 2014


Thanks for confirming that I'm not the only one having trouble with IRIS
installation. Such a pain!

Back to the first question, I figured that the  NCEP Reanalysis data has
the y axis "from 90N to 90S", means the indexing started from north (90),
not south (-90), which means that my calculation was on 5 S instead of 5 N.

Fadzil

Postgraduate Student Room 1U09 - Dept of Meteorology University of Reading,
Earley Gate Reading RG6 6BB, UK

On Wed, Oct 15, 2014 at 10:04 PM, Benjamin Root <ben.root at ou.edu> wrote:

> Stephen is being a bit modest by putting xray last in the list. I
> recommend it, and it is very painless to install. I could only get iris
> installed via a SciTools repo on binstar and even then, I had to tinker
> with a few things to get it working (and it was only the linux binaries,
> too).
>
> Ben Root
>
> On Wed, Oct 15, 2014 at 3:44 PM, Chris Barker <chris.barker at noaa.gov>
> wrote:
>
>> On Tue, Oct 14, 2014 at 11:30 AM, Fadzil Mnor <fadzilmnor84 at gmail.com>
>> wrote:
>>
>>> I've been trying to install IRIS on my laptop (OS X) for months. Errors
>>> everywhere.
>>> I'll look at that IRIS again, and other links.
>>>
>>
>> IRIS has been an install challeng,e but gotten better.
>>
>> And you ay even find a conda package for it if you use Anaconda -- I put
>> one up during Scipy -- they may be a newer build, though.
>>
>> -Chris
>>
>>
>>
>>
>>> Cheers,
>>>
>>>
>>> Fadzil
>>>
>>> On Tue, Oct 14, 2014 at 7:09 PM, Stephan Hoyer <shoyer at gmail.com> wrote:
>>>
>>>> Hi Fadzil,
>>>>
>>>> My strong recommendation is that you don't just use numpy/netCDF4 to
>>>> process your data, but rather use one of a multitude of packages that have
>>>> been developed specifically to facilitate working with labeled data from
>>>> netCDF files:
>>>> - Iris: http://scitools.org.uk/iris/
>>>> - CDAT: http://uvcdat.llnl.gov/
>>>> - xray (my project): http://xray.readthedocs.org
>>>>
>>>> I can't answer your specific question without taking a careful look at
>>>> your data, but in very general terms, your code will have fewer bugs if you
>>>> can use meaningful labels to refer to your data rather than numeric ranges
>>>> like 396:757:12.
>>>>
>>>> Best,
>>>> Stephan
>>>>
>>>>
>>>> On Tue, Oct 14, 2014 at 3:50 AM, Fadzil Mnor <fadzilmnor84 at gmail.com>
>>>> wrote:
>>>>
>>>>> Hi all,
>>>>> I wrote a script and plot monthly mean zonal wind (from a netcdf file
>>>>> names uwnd.mon.mean.nc) and I'm not sure if I'm doing it correctly.
>>>>> What I have:
>>>>>
>>>>>
>>>>> ********************************************************************************
>>>>> *#this part calculates mean values for january only, from 1980-2010;
>>>>> thus the index looks like this 396:757:12*
>>>>>
>>>>> def ujan():
>>>>>     f = nc.Dataset('~/data/ncep/uwnd.mon.mean.nc')
>>>>>     u10_1 = f.variables['uwnd']
>>>>>     u10_2 = np.mean(u10_1[396:757:12,:,38,39:43],axis=0)
>>>>>     return u10_2
>>>>>
>>>>> uJan = ujan()* #calling function*
>>>>>
>>>>> *#this part is only to define lon, lat and level *
>>>>> q = nc.Dataset('~/data/ncep/uwnd.mon.mean.nc')
>>>>> lon=q.variables['lon']
>>>>> lat=q.variables['lat']
>>>>> lev=q.variables['level']
>>>>>
>>>>> *#for some reason I need to define this unless it gave error "length
>>>>> of x must be number of column in z"*
>>>>>
>>>>> lon=lon[39:43]
>>>>>
>>>>> *#begin plotting*
>>>>>
>>>>> clevs=np.arange(-10.,10.,0.5)
>>>>> fig = plt.figure(figsize=(11, 8))
>>>>> fig.clf()
>>>>> ax = fig.add_subplot(111)
>>>>> ax.axis([97.5, 105., 1000., 10.])
>>>>> ax.tick_params(direction='out', which='both')
>>>>> ax.set_xlabel('Lon (degrees)')
>>>>> ax.set_ylabel('Pressure (mb)')
>>>>> ax.set_xticks(np.arange(97.5, 105., .5))
>>>>> ax.set_yticks([1000, 700, 500, 300, 100, 10])
>>>>> cs=ax.contourf(lon, lev, uJan, clevs, extend='both',cmap='seismic')
>>>>> plt.title('Zonal winds average (Jan, 1981-2010)')
>>>>> cax = fig.add_axes([0.99, 0.1, 0.03, 0.8])
>>>>> aa=fig.colorbar(cs,cax=cax,orientation='vertical')
>>>>> aa.set_label('m/s')
>>>>> plt.savefig('~/uwind-crossection-test.png', bbox_inches='tight')
>>>>>
>>>>> *******************************************************************************
>>>>>
>>>>> the result is attached.
>>>>> I have no idea how to confirm the result (at least until this email is
>>>>> written) , but I believe the lower altitude values should be mostly
>>>>> negative, because over this region, the zonal wind are usually easterly
>>>>> (thus,negative values), but I got positive values.
>>>>>
>>>>> Put the information above aside, *I just want to know if my slicing
>>>>> in the ujan() function is correct*. If it is, then, there must be
>>>>> nothing wrong(except my above mentioned assumption).
>>>>> The data file dimension is:
>>>>> *[time,level,latitude,longitude]*
>>>>>
>>>>> This part:
>>>>> *u10_2 = np.mean(u10_1[396:757:12,:,38,39:43],axis=0)*
>>>>> The line above will calculate the mean of zonal wind (uwnd) in a range
>>>>> of time index 396 to 757 for each year (january only), for all vertical
>>>>> level, at latitude index 38 (5 N) and in between longitude index 39 to 43
>>>>> (97.5E-105E).
>>>>> I assume it will calculate a 30-year average of zonal wind for january
>>>>> only.
>>>>> Is this correct?
>>>>>
>>>>> Thank you.
>>>>>
>>>>> Fadzil
>>>>>
>>>>> _______________________________________________
>>>>> NumPy-Discussion mailing list
>>>>> NumPy-Discussion at scipy.org
>>>>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> NumPy-Discussion mailing list
>>>> NumPy-Discussion at scipy.org
>>>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>>>
>>>>
>>>
>>> _______________________________________________
>>> NumPy-Discussion mailing list
>>> NumPy-Discussion at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>>
>>>
>>
>>
>> --
>>
>> Christopher Barker, Ph.D.
>> Oceanographer
>>
>> Emergency Response Division
>> NOAA/NOS/OR&R            (206) 526-6959   voice
>> 7600 Sand Point Way NE   (206) 526-6329   fax
>> Seattle, WA  98115       (206) 526-6317   main reception
>>
>> Chris.Barker at noaa.gov
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20141015/7b58242a/attachment.html>


More information about the NumPy-Discussion mailing list