antonv wrote: > Hey Jeff, > > I've got it sorted out a bit now. You're right the data was an output from > Degrib and I had the option to output the csv's with or without data in the > land areas. As before I was using a program that was placing the pixels in > an image based on the X and Y columns it didn't create an issue. That was an > easy fix by switching the option in the Degrib export. > > Also by looking at your example I realized the way the contourf function > requests the Z data and by just reshaping the array I was able to make all > the stuff work properly. Numpy is amazing by the way! I had no idea how easy > you can work with huge arrays! > > My new issue is that I need to mask the land areas in the Z array so I would > have a clean plot over the basemap. Any ideas on how to achieve that? >
Create a masked array. Say the values in the Z array set to 1.e30 over land areas in the CSV file. from numpy import ma Z = ma.masked_values(Z,1.e30) Then plot with contourf as before and the land areas will not be contoured. -Jeff > Thanks, > Anton > > > Jeff Whitaker wrote: > >> 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 >> >> >> > > ------------------------------------------------------------------------------ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users