[Matplotlib-users] Obtaining the contour data in terms of latitude and longitude
ashwin .D
winash12 at gmail.com
Wed Oct 18 17:32:28 EDT 2017
Ben,
Thanks ! Can you explain a bit more on what you mean by path
simplification ? Here is the code as I see it right now.
Also I had a second question - cs.levels returns the contour levels
associated with the contours. Is there a dictionary that maps a contour
level to the contour coordinates or is cs.collections in the same order as
cs.levels?
import numpy as np
from netCDF4 import Dataset
import matplotlib.pyplot as plt
clevs = np.arange(5300.,5900.,20.)
cs = plt.contourf(lons, lats, np.squeeze(hgt),clevs)
for cc in cs.collections:
paths = []
for pp in cc.get_paths():
xy = []
for vv in pp.iter_segments():
xy.append(vv[0])
paths.append(np.vstack(xy))
contours.append(paths)
On Thu, Oct 19, 2017 at 2:38 AM, Benjamin Root <ben.v.root at gmail.com> wrote:
> If you passed the coordinate arrays in with the call to contourf(), then
> you will get what you expect.
>
> I should note that you should watch out for path simplification (you'll
> want to turn it off). I also recommend using contourf() over contour()
> because it handles the edges of the domain better and NaNs.
>
> Cheers!
> Ben Root
>
>
> On Wed, Oct 18, 2017 at 4:59 PM, ashwin .D <winash12 at gmail.com> wrote:
>
>> Hello,
>> I have data on a 2d lat lon grid(equal grid spacing) in terms of
>> laitude and longitude and heights as enclosed in the image. I need the
>> coordinates(in terms of latitude and longitude) of the contours( as shown
>> in red in the image). From this answer - https://stackoverflow.com/ques
>> tions/18304722/python-find-contour-lines-from-matplotlib-pyplot-contour/
>> will this give me what I am looking for or is there a scaling required to
>> latitude and longitude that I need to include?
>>
>> Best regards,
>> Ashwin.
>>
>> import numpy as np
>> def get_contour_verts(cn):
>> contours = []
>> # for each contour line
>> for cc in cn.collections:
>> paths = []
>> # for each separate section of the contour line
>> for pp in cc.get_paths():
>> xy = []
>> # for each segment of that section
>> for vv in pp.iter_segments():
>> xy.append(vv[0])
>> paths.append(np.vstack(xy))
>> contours.append(paths)
>>
>> return contours
>>
>>
>>
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users at python.org
>> https://mail.python.org/mailman/listinfo/matplotlib-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20171019/78c4c3eb/attachment-0001.html>
More information about the Matplotlib-users
mailing list