vasilescu_an...@yahoo.com wrote:
> Hi Jeff,
>
> This example is just awesome! I really appreciate the time you put into this 
> but it's way way over my head... There are a couple issues I have especially 
> that I just started using python and matplotlib a couple days ago. First, the 
> direct reading of the grib file is great but I am not able to download Nio. 
> The link they sent me to confirm the registration goes to a page that is not 
> available...
Anton:  I downloaded and installed it this morning and it worked fine.  
If you're having problems, I'd suggest emailing them - they are quite 
responsive.
>  Also, because I figured out the data I need and already have the scripts in 
> place to extract the CSV files I would really like to keep it that way. Would 
> it be possible to just show me how to get from the csv file to the plot?
>   
It's a matter of reading the CSV files into 2D arrays (lons,lats,data).  
I don't have time right now to work that out for your data.  Anyway, I 
think you'll be happier in the long run if you bite the bullet now and 
learn how to use PyNIO to read the data.

-Jeff
> Thanks a lot!
> Anton Vasilescu
>
>
> Jeff Whitaker wrote:
>   
>> antonv wrote:
>>     
>>> Better yet, here is the file that I am using on my testing but keep in
>>> mind
>>> that it's a 33mb file:
>>> http://downloads.75ive.com/enp.t18z.grib.grib2
>>>   
>>>       
>> Anton:  I had already downloaded a file from the ftp site, so here's an 
>> example script:
>>
>> import Nio
>> from mpl_toolkits.basemap import Basemap
>> import matplotlib.pyplot as plt
>> import numpy as np
>> f = Nio.open_file('akw.t00z.grib.grib2')
>> print f.variables.keys()
>> lons = f.variables['lon_0'][:]
>> # flip latitudes so data goes S-->N
>> lats = f.variables['lat_0'][::-1]
>> times = f.variables['forecast_time0'][:]
>> datavar = f.variables['WWSWHGT_P0_L1_GLL0']
>> ntime = 10
>> data = datavar[ntime,::-1]
>> print f.variables['WWSWHGT_P0_L1_GLL0']
>> print data.min(), data.max()
>> m = Basemap(projection='cyl',llcrnrlat=lats[0],llcrnrlon=lons[0],\
>>             urcrnrlat=lats[-1],urcrnrlon=lons[-1],resolution='l')
>> x, y = m(*np.meshgrid(lons, lats))
>> levels = np.arange(0,9.1,0.5)
>> m.contourf(x,y,data,levels)
>> m.drawcoastlines()
>> m.fillcontinents()
>> m.drawparallels(np.arange(40,81,10),labels=[1,0,0,0])
>> m.drawmeridians(np.arange(150,241,10),labels=[0,0,0,1])
>> m.drawparallels(np.arange(40,81,10),labels=[1,0,0,0])
>> m.drawmeridians(np.arange(150,241,10),labels=[0,0,0,1])
>> plt.title(datavar.long_name+' %s hr fcst'%(times[ntime]),fontsize=12)
>> plt.colorbar(orientation='horizontal',shrink=0.9,format="%g")
>> plt.show()
>>
>> The resulting plot is attached.
>>
>> Note you will need the Basemap toolkit (available from the matplotlib 
>> download site).  If you don't want to plot the coastlines, you can just 
>> use plt.contourf.  You'll also need PyNIO 
>> (http://www.pyngl.ucar.edu/Nio.shtml) to read the GRIB file.
>>
>> The png produced by this script is attached.
>>
>> Let me know if you have any questions.
>>
>> -Jeff
>>     
>>>
>>> antonv wrote:
>>>   
>>>       
>>>> Here is the link to the folder that has the grib files. They are updated
>>>> every 3 hours:
>>>> ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/wave/prod/
>>>>
>>>> Any of the files there would have the same info only at different times
>>>> of
>>>> day.
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>>  
>> ------------------------------------------------------------------------------
>>
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>>     
> Quoted from: 
> http://www.nabble.com/Plotting-NOAA-data...-tp21139727p21149409.html
>
>   


------------------------------------------------------------------------------
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to