So my beginner saga continues with another question:
I am trying to create a custom colormap using ListedColormap. The custom
color map is for a range of values between 0 and 20 while the data in my
file is between 0 and 8. Now my issue is that when plotting the graph the
colormap is using the 0 to 8 values from the file. How can I force it to use
all the 21 values in the colormap?

Thanks,
Anton




Jeff Whitaker wrote:
> 
> 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
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Plotting-NOAA-data...-tp21139727p21244624.html
Sent from the matplotlib - users mailing list archive at Nabble.com.


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

Reply via email to