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