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:
map plotting python code (temporary) - Python Snipplr Social Repository
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: As I suspected, that gap around the edges of the plot is a consequence of the gridding procedure. griddata doesn't do extrapolation, so there are missing values on the grid outside the convex hull of the input observations. You can either just live with it, or set the plotting region so that it fits entirely within the convex hull of the data. This is what I've done in the modified version of your script below. I've also eliminated the transform_scalar call by gridding directly on the projection grid (instead of gridding to a lat/lon grid, then interpolating to the projection grid). Hope this helps.
-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'
nx = 360; ny = 180
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=-89,urcrnrlat=89,\
urcrnrlon=179,llcrnrlon=-179,resolution='l')
xi=np.linspace(map.xmin,map.xmax,nx)
yi=np.linspace(map.ymin,map.ymax,ny)
x, y = map(Lon, Lat)
zi=mlab.griddata(x,y,Val,xi,yi)
map.imshow(zi,plt.cm.winter,vmin=-5,vmax=-1.2)
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:jswhit@…146…] 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:andepauw@…2144…] Sent: jeudi 18 septembre 2008 17:23
To: Jeff Whitaker; andepauw@...2144...
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:jswhit@…146…] 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 <jdh2358@...287...> >>>>> > 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 : Jeffrey.S.Whitaker@...259...
325 Broadway Office : Skaggs Research Cntr 1D-113
Boulder, CO, USA 80303-3328 Web : Jeffrey S. Whitaker: NOAA Physical Sciences Laboratory
--
Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : Jeffrey.S.Whitaker@...259...
325 Broadway Office : Skaggs Research Cntr 1D-113
Boulder, CO, USA 80303-3328 Web : Jeffrey S. Whitaker: NOAA Physical Sciences Laboratory