擅长:python、mysql、java
<p>根据<a href="https://github.com/SciTools/cartopy/issues/368" rel="nofollow noreferrer">this github issue</a>,这是预期的行为,因为<code>PlateCarree</code>是投影坐标系</p>
<blockquote>
<p>The PlateCarree coordinate system is Cartesian where a line between two points is straight (in that coordinate system). The Cartesian system has no knowledge of datelines/antimeridians and so when you ask for a line between -170 and +170 you get a line of length 340. It can never be the case that the PlateCarree projection interprets these numbers and chooses to draw a non-cartesian line</p>
</blockquote>
<p>一种解决方案是在绘图调用中使用大地坐标变换:</p>
<pre><code>plt.plot(clons[bidx:eidx], clats[bidx:eidx], transform=ccrs.Geodetic())
</code></pre>
<p>或者在使用<code>PlateCarree</code>系统时修改数据以使其更有意义,例如,通过标识值从360->;0,然后将360添加到所有值。您可以将它们移到不同的范围(例如-180..180),但数据交叉+/-180的问题与当前0/360的问题相同</p>