Hello again,
I finally found the command I was looking for. It is the
to_polygons().
Here is what worked :
# make a LineCollection of contours
col=contour(X,Y,Z,LevelsNumber).collections
for i in np.arange(0,LevelsNumber,1):
polygoni=col[i].get_paths()[0].to_polygons()[0]
print polygoni
All the vertices in each collections are extracted to the "polygoni".
Thanks again to Jeff and Patrick !
By the way, I found out that I do not actually need this procedure to
achieve may goal which was to make a contour plot in ternary coordinates.
Eli
On Tue, Jan 27, 2009 at 11:08 PM, Patrick Marsh >> <patrickmarshwx@...287...> wrote:
On Tue, Jan 27, 2009 at 7:16 PM, Eli Brosh <ebrosh1@...287...> >> wrote:
> Many thanks to Jeff and to Patric !
> I will try to work along the line suggested by Jeff.
> Patric, please send me your code.
> I hope to learn from it.
>
> Thanks again,
> Eli
meteorological
models, but should work with any gridded file.
from mpl_toolkits.basemap import Basemap
f = (some gridded file)
X = np.array(grab longitudes from f)
Y = np.array(grab latitudes from f)
field = np.array(grab field to be contoured from f)
map = Basemap(make a Basemap call here)
level = np.arange(minval, maxval, interval)
col = map.contour(X, Y, field, level).collections
for vertex in col[i].get_paths(): # GET THE PATHS FOR THE
EACH
CONTOUR BY LOOPING THROUGH CONTOURS
for vertex in xy.vertices: # ITERATE OVER THE PATH
OBJECTS
x, y = map(vertex[0],vertex[1],inverse=True) #
vertex[0]
and now 'x' is the longitude of the vertex and vertex[1] and
now 'y'
is the latitude of the vertex
-Patrick
> On Tue, Jan 27, 2009 at 7:09 PM, Patrick Marsh >> <patrickmarshwx@...287...> >> > wrote:
>>
>> On Tue, Jan 27, 2009 at 5:33 PM, Jeff Whitaker >> <jswhit@...146...> wrote:
>> > Eli Brosh wrote:
>> >> Hello,
>> >> I am trying to extract the coordinates of contour lines.
>> >> I tried the following:
>> >>
>> >> cs = *contour*(Z)
>> >> for lev, col in zip(cs.levels, cs.collections):
>> >> s = col._segments
>> >>
>> >> that I found in a previous post (title "contouring", by
Jose
>> >> Gómez-Dans-2
<http://www.nabble.com/user/UserProfile.jtp?user=30071>
>> >> Nov 30, 2007; 07:47am ) .
>> >>
>> >> I hoped that s will be a list of numpy arrays, each
containing the
>> >> (x,y) vertices
>> >> defining a contour line at level lev.
>> >> However, I got an error message:
>> >> AttributeError: 'LineCollection' object has no attribute
'_segments'
>> >>
>> >> How is it possible to get coordinates of the contours,
similar to the
>> >> MATLAB command
>> >> [C,H] = *CONTOUR*(...)
>> >> where the result in C is the coordinates of the
contours.
>> >>
>> >> A similar question appeared in a post "contour data" (by
Albert Swart
>> >> <http://www.nabble.com/user/UserProfile.jtp?user=382945>
May 17, 2006;
>> >> 09:42am) but I could not understand the answer.
>> >> Is it possible to get more specific directions with a
simple example ?
>> >>
>> >> Thanks
>> >> Eli
>> > Eli: Calling get_paths() on each line collection in
CS.collections will
>> > return a list of Path objects. From the Path objects,
you can get a Nx2
>> > array of vertices from the "vertices" attribute. There
are no examples
>> > that I know of, but if you get it to do what you want to
do, it would be
>> > great if you could contribute an example. As you noted,
this question
>> > has come up several times before.
>> >
>> > -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
>> >
------------------------------------------------------------------------------
>> > This SF.net email is sponsored by:
>> > SourcForge Community
>> > SourceForge wants to tell your story.
>> > http://p.sf.net/sfu/sf-spreadtheword
>> > _______________________________________________
>> > Matplotlib-users mailing list
>> > Matplotlib-users@lists.sourceforge.net
>> >
matplotlib-users List Signup and Options
>> >
>>
>> I'm not sure if this is entirely what you (Eli) are looking
for, but I
>> have code that will contour model data on a map and then
extract the
>> lat,lon pairs of all the vertices. If this is what you are
looking
>> for, I'm happy to share what I've done.
>>
>> -Patrick
>>
>> --
>> Patrick Marsh
>> Graduate Research Assistant
>> School of Meteorology
>> University of Oklahoma
>> http://www.patricktmarsh.com
>
Patrick Marsh
Graduate Research Assistant
School of Meteorology
University of Oklahoma
http://www.patricktmarsh.com
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net matplotlib-users List Signup and Options
--
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA