Jeff Whitaker wrote: > Tim Michelsen wrote: > >> Dear Matplotlib-Users, >> I am tryring to create a contour plot over a basemap. >> >> My main problem is creating the array for the Z values as a basis for the >> plt.contour command from a CSV file where latitude, longitude and value are >> stored column-wise: >> >> lat; lon; value >> 50; 10; 6 >> ... >> >> The data represents a regular spaced grid with a datapoint each 0.25 degrees. >> >> I tried various possibilities but didn't have success: >> >> 1) following simpletest.py from the basemap examples: >> X, Y = meshgrid(data[:,1], data[:,0]) >> >> Z = data[:,2] >> >> > Timmie: Try: > > X, Y = meshgrid(data[:,1], data[:,0]) > Z = data[:,2] > nlons = X.shape[1]; nlats = X.shape[0] > Z = Z.reshape(nlats,nlons) >
Timmie: Sorry, but upon further reflection I don't think this will work. You'll need to know the number of lats and the number of lons on the grid beforehand. Then you should be able to do X = X.reshape(nlats,nlons) Y = Y.reshape(nlats,nlons) Z = Z.reshape(nlats,nlons) after reading the data in. (skip the meshgrid call, that's only useful when X is a vector with length nlons and Y is a vector with length nlats). If you still have problems, send us a full example. -Jeff > >> m.contourf(x,y, Z) >> >> => Error: Z must be a 2D array >> -> How do I get Z to be a 2D array? >> >> 2) using the griddata package >> Here I was nearly without orientation how to call griddata correctly. >> >> > You don't need to use griddata since you have regularly gridded data. > >> 3) Using the python bindings of ogr >> Any examples on this one? >> >> > Again, no need. A simple reshape will get you the 2d lat/lon array you > need. > > >> >From my above demonstrated methods the following questions arrise: >> What is the preferred way to plot >> - Points stored in the above descripbed format (lat, lon, value)? >> - Interpolate a grid of data points by using different interpolation >> methods >> like inverse distance wheighting, natural neighbor interpolation, etc. to >> get a >> contour map? >> >> > > For interpolation of irregular, randomly distributed data points see > http://www.scipy.org/Cookbook/Matplotlib/Gridding_irregularly_spaced_data. > > However, if there is some structure to the data grid then it's probably > better not to use these approaches. > > -Jeff > > > > -- Jeffrey S. Whitaker Phone : (303)497-6313 NOAA/OAR/CDC R/PSD1 FAX : (303)497-6449 325 Broadway Boulder, CO, USA 80305-3328 ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users