antonv wrote: > It seems that I just cannot grasp the way the data needs to be formatted for > this to work... > I've used the griddata sample that James posted but it takes about 10 > minutes to prep the data for plotting so that solution seems to be out of > discussion. > > I guess my issue is that I don't know what type of data is required by > contourf function. Also as Jeff was saying earlier, the data is read from a > grib file so supposedly it's already gridded. I've also looked at the > basemap demo > (http://matplotlib.sourceforge.net/users/screenshots.html#basemap-demo) and > the data is read from 3 files, one for Lat one for Long and the Last for Z > Data. Is there a way to automatically extract the data from the grib file to > a format similar to the one used in the basemap example? >
Anton: I just looked at your csv file and I think I know what the problem is. Whatever program you used to dump the grib data did not write all the data - the missing land values were skipped. That means you don't have the full rectangular array of data. I think you have two choices: 1) insert the missing land values into the array, either in the csv file or into the array after it is read in from the csv file. What program did you use to dump the GRIB data to a CSV file? 2) use a python grib interface. If you're on Windows, PyNIO won't work. I've written my own module (pygrib2 - http://code.google.com/p/pygrib2) which you should be able to compile on windows. You'll need the png and jasper (jpeg2000) libraries, however. I recommend (2) - in the time you've already spent messing with that csv file, you could have already gotten a real python grib reader working! -Jeff > > > Jeff Whitaker wrote: > >> Mauro Cavalcanti wrote: >> >>> Dear Anton, >>> >>> 2008/12/23 antonv <vasilescu_an...@yahoo.com>: >>> >>> >>>> 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? >>>> >>>> >>> Here is a short recipe: >>> >>> import numpy as np >>> >>> f = open("file.csv", "r") >>> coords = np.loadtxt(f, delimiter=",", skiprows=1) >>> lon = coords[:,0] >>> lat = coords[:,1] >>> dat = coords[:,2] >>> >>> where "file.csv" is a regular comma-separated values file in the format: >>> >>> Lat,Lon,Dat >>> -61.05,10.4,20 >>> -79.43,9.15,50 >>> -70.66,9.53,10 >>> -63.11,7.91,40 >>> ... >>> >>> Hope this helps! >>> >>> Best regards, >>> >>> >>> >> Since the arrays are 2D (for gridded data), a reshape is also needed, i.e. >> >> lon.shape = (nlats,nlons) >> lat.shape = (nlats,nlons) >> data.shape = (nlats,nlons) >> >> You'll need to know what the grid dimensons (nlats,nlons) are. >> >> -Jeff >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> >> >> > > ------------------------------------------------------------------------------ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users