<div dir="ltr"><div><div>Ben,<br></div>        Thanks ! Can you explain a bit more on what you mean by path simplification ? Here is the code as I see it right now.<br><code><span class="gmail-pln"></span></code><br></div>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? <br><div><code><span class="gmail-pln"></span></code><pre class="gmail-lang-py gmail-prettyprint gmail-prettyprinted"><code><span class="gmail-pln">import numpy as np<br>from netCDF4 import Dataset<br>import matplotlib.pyplot as plt<br><br>clevs = np.arange(5300.,5900.,20.)<br>cs = plt.contourf(lons, lats, np.squeeze(hgt),clevs)<br>for cc in cs.collections:<br>    paths = []<br>    for pp in cc.get_paths():<br>        xy = []<br>        for vv in pp.iter_segments():<br>            xy.append(vv[0])<br>            paths.append(np.vstack(xy))<br>        contours.append(paths)<br></span></code></pre></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 19, 2017 at 2:38 AM, Benjamin Root <span dir="ltr"><<a href="mailto:ben.v.root@gmail.com" target="_blank">ben.v.root@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>If you passed the coordinate arrays in with the call to contourf(), then you will get what you expect.<br><br></div>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.<br><br></div>Cheers!<br>Ben Root<br><br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Wed, Oct 18, 2017 at 4:59 PM, ashwin .D <span dir="ltr"><<a href="mailto:winash12@gmail.com" target="_blank">winash12@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div><div>Hello,<br></div>         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 - <a href="https://stackoverflow.com/questions/18304722/python-find-contour-lines-from-matplotlib-pyplot-contour/" target="_blank">https://stackoverflow.com/ques<wbr>tions/18304722/python-find-<wbr>contour-lines-from-matplotlib-<wbr>pyplot-contour/</a> will this give me what I am looking for or is there a scaling required to latitude and longitude that I need to include? <br><br></div>Best regards,<br></div>Ashwin. <br><div><div><pre class="m_7061589203003972122m_8012991541054128659gmail-lang-py m_7061589203003972122m_8012991541054128659gmail-prettyprint m_7061589203003972122m_8012991541054128659gmail-prettyprinted"><code><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">import</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> numpy </span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">as</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> np

</span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">def</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> get_contour_verts</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">(</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">cn</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">):</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
    contours </span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">=</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> </span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">[]</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
    </span><span class="m_7061589203003972122m_8012991541054128659gmail-com"># for each contour line</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
    </span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">for</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> cc </span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">in</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> cn</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">.</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">collections</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">:</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
        paths </span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">=</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> </span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">[]</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
        </span><span class="m_7061589203003972122m_8012991541054128659gmail-com"># for each separate section of the contour line</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
        </span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">for</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> pp </span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">in</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> cc</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">.</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">get_paths</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">():</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
            xy </span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">=</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> </span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">[]</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
            </span><span class="m_7061589203003972122m_8012991541054128659gmail-com"># for each segment of that section</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
            </span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">for</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> vv </span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">in</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> pp</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">.</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">iter_segments</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">():</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
                xy</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">.</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">append</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">(</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">vv</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">[</span><span class="m_7061589203003972122m_8012991541054128659gmail-lit">0</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">])</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
            paths</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">.</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">append</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">(</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">np</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">.</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">vstack</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">(</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">xy</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">))</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">
        contours</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">.</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">append</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">(</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">paths</span><span class="m_7061589203003972122m_8012991541054128659gmail-pun">)</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln">

    </span><span class="m_7061589203003972122m_8012991541054128659gmail-kwd">return</span><span class="m_7061589203003972122m_8012991541054128659gmail-pln"> contours<br><br></span></code></pre><pre class="m_7061589203003972122m_8012991541054128659gmail-lang-py m_7061589203003972122m_8012991541054128659gmail-prettyprint m_7061589203003972122m_8012991541054128659gmail-prettyprinted"><code><span class="m_7061589203003972122m_8012991541054128659gmail-pln"><br></span></code></pre></div></div></div>
<br></div></div>______________________________<wbr>_________________<br>
Matplotlib-users mailing list<br>
<a href="mailto:Matplotlib-users@python.org" target="_blank">Matplotlib-users@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/matplotlib-users" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/matplotlib-users</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>