<div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Alyssa,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Normally I would suggest googling something like "great circle numpy" and you are likely to find a number of functions that calculate the same thing as NCL's nggcog.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">However, as an exercise, since I knew the nggcog Fortran routine was pretty short, I decided to see what it took to convert it to python. This routine calls an internal Fortran routine called ngritd, so I had to convert that too.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I didn't try to do this the "pythonic" way, using array arithmetic instead of looping, because doing a line-by-line conversion was simply faster.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">See the attached nggcog.py which defines both nggcog and ngritd and has some driver code that generates and plot a great circle. I attached the NCL version for comparison. You should be able to run these as-is:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">python nggcog.py</div><div class="gmail_default" style="font-size:small">ncl nggcog.ncl</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I'm in the process of learning how to create Python versions of NCL scripts, so this was a good exercise.  :-)</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Note: the Python version of the nggcog routine is not tested, other than this plotting program. You might want to look at the Fortran code yourself to compare it with the Python code.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">The Fortran routines can be found on github:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default"><a href="https://github.com/NCAR/ncl">https://github.com/NCAR/ncl</a><br></div><div class="gmail_default"><br></div><div class="gmail_default">and then navigate down to this path:</div><div class="gmail_default"><br></div><div class="gmail_default">ncarg2d/src/libncarg/ngmisc</div><div class="gmail_default"><br></div><div class="gmail_default">and the nggcog.f and ngridt.f Fortran code can be found on that page:</div><div class="gmail_default"><br></div><div class="gmail_default"><a href="https://github.com/NCAR/ncl/tree/master/ncarg2d/src/libncarg/ngmisc">https://github.com/NCAR/ncl/tree/master/ncarg2d/src/libncarg/ngmisc</a><br></div><div class="gmail_default"><br></div><div class="gmail_default">--Mary</div><div class="gmail_default"><br></div><div class="gmail_default"><br></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 17, 2018 at 7:29 PM, Alyssa Stansfield via pyngl-talk <span dir="ltr"><<a href="mailto:pyngl-talk@ucar.edu" target="_blank">pyngl-talk@ucar.edu</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">Hello,<div><br></div><div>I am trying to plot a circle with a radius of 200 km around a certain latitude and longitude on a map. I know that NCL has the nggcog command, but does pyngl have anything similar? Or do you know of a workaround using pyngl commands?</div><div><br></div><div>Thank you,</div><div>Alyssa</div></div>
<br>______________________________<wbr>_________________<br>
pyngl-talk mailing list<br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/pyngl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/<wbr>mailman/listinfo/pyngl-talk</a><br>
<br></blockquote></div><br></div>