Antoine De Pauw wrote:
> Jeff,
>
> I totally agree this is due to missing values
>
> Again I've got difficulties to find good words so forgive me, what I tried
> to say is that the ability to have that border transparent would be a good
> feature in next releases, for people who need to interpolate and plot such
> data and have an aesthetic result
>   

Antoine: First of all, let's not call it a 'border' - it happens to show 
up around the border of the image in your case, but fundamentally it's 
just missing pixels in the image. The missing pixels are already 
transparent - what you're seeing is the axes background showing through 
the missing values.
> Imshow is the ideal candidate for satellite data as it has some nice
> interpolation features and it is fast, so it can be batch-run on the server
> every time we receive data, without too much computation time
>
> The alternative I'm using now is a double or quadruple size grid to reduce
> the width of that border, with background color set to the lower colormap
> color
>
> That way, the border is really hard to see and it makes (almost) quality
> plots for publications
>   
I think you're already doing everything that can be done - aside from 
making the plot region smaller so it's inside the convex hull of the 
data and there are no missing values. I don't see how changing the 
behavior of imshow would help you any further.

-Jeff
> -----Original Message-----
> From: Jeff Whitaker [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, 25 September, 2008 15:34
> To: De Pauw Antoine
> Cc: 'Matplotlib Users'
> Subject: Re: [Matplotlib-users] Information request
>
> De Pauw Antoine wrote:
>   
>> Jeff,
>>
>> Thanks for the tip, it's now working perfectly
>>
>> However, there's still that border with the imshow plot, and I think it
>> would be good to have it transparent
>>
>> There's a zoomed picture I made:
>> http://img218.imageshack.us/img218/5833/imshowborderxz9.png
>>
>> You see the shadow around the data...
>>
>> It would be nice for next releases of Matplotlib to get rid of that, but
>>     
> I'm
>   
>> not able to patch it myself or so... I know there's still a lot of work
>>     
> with
>   
>> the lib but keep the good work, it is really fantastic
>>
>> Thanks for your help!
>>
>> Antoine De Pauw
>> Collaborateur de recherches, Informatique - Research collaborator, IT
>> Laboratoire de chimie quantique et photophysique - Quantum chemistry and
>> photophysics laboratory
>> Université Libre de Bruxelles - ULB
>>   
>>     
>
> Antoine: I thought we agreed that it's not an imshow bug - but rather 
> due to the griddata gridding procedure returning missing values outside 
> the convex hull of the input data. Do you disagree? I see no such border 
> around an imshow plot that contains no missing values. If you shrink the 
> size of the map plotting region so it's fully within the convex hull of 
> the data, the border disappears.
>
> -Jeff
>   
>> -----Original Message-----
>> From: Jeff Whitaker [mailto:[EMAIL PROTECTED] 
>> Sent: jeudi 25 septembre 2008 14:15
>> To: De Pauw Antoine
>> Cc: 'Matplotlib Users'
>> Subject: Re: [Matplotlib-users] Information request
>>
>> De Pauw Antoine wrote:
>>   
>>     
>>> Hi Jeff,
>>>
>>> I finally found out how to fill my figure with a background color using
>>> axes.set_axis_bgcolor(color), but I'm facing the following problem now:
>>>
>>> How could I get the lower color of a colormap? This is quite undocumented
>>> and I don’t know the colormap properties I could use for that
>>>
>>> I know there must be an accessible value somewhere, like for the
>>> ax.get_yticklabels() you gave me
>>>
>>> If someone had the clue, my problems would then be completely solved
>>>
>>> Antoine De Pauw
>>> Collaborateur de recherches, Informatique - Research collaborator, IT
>>> Laboratoire de chimie quantique et photophysique - Quantum chemistry and
>>> photophysics laboratory
>>> Université Libre de Bruxelles - ULB
>>>   
>>>     
>>>       
>> Antoine: To get the RGBA value associated with a particular data value, 
>> just call the colormap as a function as pass it that value. For example
>>
>>  >>> import matplotlib.pyplot as plt
>>  >>> plt.cm.jet(1)
>> (0.0, 0.0, 0.517825311942959, 1.0)
>>
>> BTW: the 'fill_color' kwarg of drawmapboundary basemap method allows you 
>> to set the background color of the map.
>>
>> http://matplotlib.sourceforge.net/basemap/doc/html/api/basemap_api.html
>>
>> It fills only the map region (which for some projections, like the 
>> orthographic, is not the same as the axes region).
>>
>>
>> -Jeff
>>   
>>     
>>> -----Original Message-----
>>> From: Jeff Whitaker [mailto:[EMAIL PROTECTED] 
>>> Sent: mardi 23 septembre 2008 20:38
>>> To: De Pauw Antoine
>>> Cc: 'John Hunter'; 'Matplotlib Users'
>>> Subject: Re: [Matplotlib-users] Information request
>>>
>>> De Pauw Antoine wrote:
>>>   
>>>     
>>>       
>>>> Jeff,
>>>>
>>>> I still don't know how to either remove this artifact or fill my arrays
>>>>     
>>>>       
>>>>         
>>> with
>>>   
>>>     
>>>       
>>>> values to remove empty regions, and I'll make a last attempt to resolve
>>>>       
>>>>         
>> it
>>   
>>     
>>>> I uploaded a data file here: http://scqp.ulb.ac.be/20080821.b56
>>>>
>>>> The actual code snippet is here:
>>>> http://snipplr.com/view/8307/map-plotting-python-code-temporary/
>>>>
>>>> I hope you'll be able to reproduce it, I set the cmap to winter for you
>>>>       
>>>>         
>> to
>>   
>>     
>>>> see the gap... setting it to hot will make the grayish border visible in
>>>> high resolution by zooming it... I think the border (not the empty zone)
>>>> could be an artifact with the hot colormap
>>>>
>>>>
>>>> Antoine De Pauw
>>>> Collaborateur de recherches, Informatique - Research collaborator, IT
>>>> Laboratoire de chimie quantique et photophysique - Quantum chemistry and
>>>> photophysics laboratory
>>>> Université Libre de Bruxelles - ULB
>>>>
>>>>   
>>>>     
>>>>       
>>>>         
>>> Antoine:  Here is a version that just plots the pixels directly, without 
>>> interpolating to a grid.  I personally like this better, since you can 
>>> easily see where you actually have data.
>>>
>>> HTH,
>>>
>>> -Jeff
>>>
>>> from mpl_toolkits.basemap import Basemap
>>> import matplotlib.pyplot as plt
>>> import matplotlib.mlab as mlab
>>> import numpy as np
>>> import os
>>> fileName = '20080821.b56'
>>> titre='SO2'
>>> legende='Delta Brightness Temperature (K)'
>>> nbreligne=long(os.stat(fileName)[6])/(8*int(fileName[-2:]))
>>> rawfile=np.fromfile(open(fileName,'rb'),'<d',-1)
>>> Lat=rawfile[0:nbreligne]
>>> Lon=rawfile[nbreligne:nbreligne*2]
>>> Val=rawfile[nbreligne*21:nbreligne*22]
>>> map=Basemap(projection='mill',llcrnrlat=-90,urcrnrlat=90,\
>>>             urcrnrlon=180,llcrnrlon=-180,resolution='l')
>>> x, y = map(Lon, Lat)
>>>
>>>     
>>>       
> plt.scatter(x,y,s=25,c=Val,marker='s',edgecolor="None",cmap=plt.cm.winter,vm
>   
>>   
>>     
>>> in=-5,vmax=-1.2, 
>>> alpha=0.5)
>>> cb=plt.colorbar(shrink=0.6)
>>> cb.ax.set_ylabel(legende,fontsize=11)
>>> for t in cb.ax.get_yticklabels():
>>>     t.set_fontsize(7)
>>> meridians = np.arange(-180,180,60)
>>> parallels = np.arange(-90,90,30)
>>> map.drawparallels(parallels,labels=[1,0,0,0],fontsize=7,linewidth=0.25)
>>> map.drawmeridians(meridians,labels=[0,0,0,1],fontsize=7,linewidth=0.25)
>>> map.drawcoastlines(0.25,antialiased=1)
>>> plt.title(titre)
>>> plt.show()
>>>   
>>>     
>>>       
>>>> -----Original Message-----
>>>> From: Jeff Whitaker [mailto:[EMAIL PROTECTED] 
>>>> Sent: lundi 22 septembre 2008 13:59
>>>> To: De Pauw Antoine
>>>> Cc: 'John Hunter'; 'Matplotlib Users'
>>>> Subject: Re: [Matplotlib-users] Information request
>>>>
>>>> De Pauw Antoine wrote:
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> Jeff,
>>>>>
>>>>> I included here a figure where you'll see the border problem for imshow
>>>>>       
>>>>>         
>>>>>           
>>> in
>>>   
>>>     
>>>       
>>>>> my case
>>>>>
>>>>> http://img217.imageshack.us/img217/5240/testfigzp3.png
>>>>>
>>>>> The border wraps at -180 and 180 to form the white line
>>>>>
>>>>> PS: it is atmospheric ice and not SO2, I just omitted to change the
>>>>>         
>>>>>           
>> title
>>   
>>     
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>> ^^
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> Antoine De Pauw
>>>>> Collaborateur de recherches, Informatique - Research collaborator, IT
>>>>> Laboratoire de chimie quantique et photophysique - Quantum chemistry
>>>>>           
> and
>   
>>>>> photophysics laboratory
>>>>> Université Libre de Bruxelles - ULB
>>>>>   
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>> Antoine:  I hate to keep repeating myself - but we can't do much if you 
>>>> don't provide a self-contained script, that I can run, which reproduces 
>>>> the problem.  My guess is that the line along the dateline, and the 
>>>> point at the South Pole are missing values (which griddata set to 
>>>> missing because they are outside the extent of the data) - but that's 
>>>> just a guess until I can reproduce it.
>>>>
>>>> -Jeff
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> -----Original Message-----
>>>>> From: Antoine De Pauw [mailto:[EMAIL PROTECTED] 
>>>>> Sent: jeudi 18 septembre 2008 17:23
>>>>> To: Jeff Whitaker; [EMAIL PROTECTED]
>>>>> Cc: 'John Hunter'; 'Matplotlib Users'
>>>>> Subject: re:Re: [Matplotlib-users] Information request
>>>>>
>>>>> Jeff,
>>>>>
>>>>> No the example doesn't show that line
>>>>>
>>>>> If I reduce the amount of data, the border will be on every side of the
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>> plot
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> I'll show you an orthographic plot with no maskinf tomorrow and you
>>>>>           
> will
>   
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>> see
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> the problem easily, it wraps in a white line along the 0° meridian and
>>>>>           
> a
>   
>>>>> white circle in the pole
>>>>>
>>>>> I think it's the imshow layer that is not totally transparent on the
>>>>>           
> map
>   
>>>>> background.. I tried every trick I could for example to put some
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>> zero-valued
>>>>   
>>>>     
>>>>       
>>>>         
>>>>> points on each corner to make imshow interpolate correctly the sides,
>>>>>         
>>>>>           
>> but
>>   
>>     
>>>>> that doesn't make any difference
>>>>>
>>>>>   
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>>>> De Pauw Antoine wrote:
>>>>>>     
>>>>>>       
>>>>>>         
>>>>>>           
>>>>>>             
>>>>>>> Jeff,
>>>>>>>
>>>>>>> Yes they disappear, and they fluctuate with the interpolation method
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>>> used
>>>>   
>>>>     
>>>>       
>>>>         
>>>>>>> For example, nearest interpolation don't show the line
>>>>>>>
>>>>>>> Also, if I reduce the grid resolution, the line is thicker, and if I
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>> use
>>>   
>>>     
>>>       
>>>>>>>       
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>>>> a
>>>>>   
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>>>>> masked array to get rid of undesired values, the border shows really
>>>>>>> strongly
>>>>>>>
>>>>>>> Here's an example everyone will see:
>>>>>>>
>>>>>>> http://img225.imageshack.us/img225/2671/testfigep2.png
>>>>>>>
>>>>>>> (everything except the clouds is noise)
>>>>>>>
>>>>>>> Antoine De Pauw
>>>>>>> Collaborateur de recherches, Informatique - Research collaborator, IT
>>>>>>> Laboratoire de chimie quantique et photophysique - Quantum chemistry
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>> and
>>>   
>>>     
>>>       
>>>>>>> photophysics laboratory
>>>>>>> Université Libre de Bruxelles - ULB
>>>>>>>   
>>>>>>>       
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>>>>> Antoine:  Sorry to seem dense, but I don't see anything wrong with
>>>>>>             
> that
>   
>>>>>>           
>>>>>>             
>>   
>>     
>>>>>> plot. I see a white border along the north and south pole, but I 
>>>>>> intrepret that to be missing values.  However, my eyes are notoriously
>>>>>>             
>
>   
>>>>>> bad.  I'd like to be to run a script that generates the artifacts 
>>>>>> myself, so I can zoom in and see the problem myself.  Does the 
>>>>>> griddata_demo.py script show the same problem for you?
>>>>>>
>>>>>> -Jeff
>>>>>>     
>>>>>>       
>>>>>>         
>>>>>>           
>>>>>>             
>>>>>>> -----Original Message-----
>>>>>>> From: Jeff Whitaker [mailto:[EMAIL PROTECTED] 
>>>>>>> Sent: mercredi 17 septembre 2008 19:05
>>>>>>> To: John Hunter
>>>>>>> Cc: De Pauw Antoine; Matplotlib Users
>>>>>>> Subject: Re: [Matplotlib-users] Information request
>>>>>>>
>>>>>>> John Hunter wrote:
>>>>>>>   
>>>>>>>       
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>>>>>>> On Wed, Sep 17, 2008 at 11:54 AM, John Hunter <[EMAIL PROTECTED]>
>>>>>>>>           
>>>>>>>>             
>>>>>>>>               
>>>>>>>>                 
>>>> wrote:
>>>>   
>>>>     
>>>>       
>>>>         
>>>>>>>>   
>>>>>>>>     
>>>>>>>>         
>>>>>>>>           
>>>>>>>>             
>>>>>>>>               
>>>>>>>>                 
>>>>>>>>> Attached is a screenshot (zoom.png) from the gimp, zoomed in near
>>>>>>>>>                 
>>>>>>>>>                   
>> the
>>   
>>     
>>>>>>>>> axes border.  The black horizontal line is the top axes border, the
>>>>>>>>> horizontal grey line is the artifact, the vertical dashed line is a
>>>>>>>>> grid line.  I don't know if this offers a clue, but if you look at
>>>>>>>>>                   
> a
>   
>>>>>>>>> zoom in the upper right corner, the grey  line seems to break up
>>>>>>>>>                   
> and
>   
>>>>>>>>> curve down and to the right (corner.png)
>>>>>>>>>     
>>>>>>>>>       
>>>>>>>>>           
>>>>>>>>>             
>>>>>>>>>               
>>>>>>>>>                 
>>>>>>>>>                   
>>>>>>>> Sorry, screwed up corner.png (I attached the original and not the
>>>>>>>> screenshot).  The correct screenshot is attached
>>>>>>>>   
>>>>>>>>
>>>>>>>>
>>>>>>>>     
>>>>>>>>         
>>>>>>>>           
>>>>>>>>             
>>>>>>>>               
>>>>>>>>                 
>>>>>>> John:   OK, now I finally see it.  Antoine:  Do these artifacts 
>>>>>>> disappear if you comment out the imshow call?
>>>>>>>
>>>>>>> -Jeff
>>>>>>>
>>>>>>>   
>>>>>>>       
>>>>>>>         
>>>>>>>           
>>>>>>>             
>>>>>>>               
>>>>>> -- 
>>>>>> Jeffrey S. Whitaker         Phone  : (303)497-6313
>>>>>> Meteorologist               FAX    : (303)497-6449
>>>>>> NOAA/OAR/PSD  R/PSD1        Email  : [EMAIL PROTECTED]
>>>>>> 325 Broadway                Office : Skaggs Research Cntr 1D-113
>>>>>> Boulder, CO, USA 80303-3328 Web    : http://tinyurl.com/5telg
>>>>>>
>>>>>>
>>>>>>
>>>>>>     
>>>>>>       
>>>>>>         
>>>>>>           
>>>>>>             
>>>>>   
>>>>>     
>>>>>       
>>>>>         
>>>>>           
>>>>   
>>>>     
>>>>       
>>>>         
>>>   
>>>     
>>>       
>>   
>>     
>
>
>   


-- 
Jeffrey S. Whitaker         Phone : (303)497-6313
NOAA/OAR/CDC  R/PSD1        FAX   : (303)497-6449
325 Broadway                Boulder, CO, USA 80305-3328


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to