【问题标题】:How to plot geo-referenced image so that it "fits" the plot coordinate system in Matplotlib如何绘制地理参考图像,使其“适合” Matplotlib 中的绘图坐标系
【发布时间】:2012-09-10 22:55:28
【问题描述】:

一个非常相似的问题,用同样的方法解决:how to use 'extent' in matplotlib.pyplot.imshow


我有一个描述地理轨迹的地理坐标列表(“轨迹日志”)。此外,我有办法获得跨越跟踪日志覆盖范围的图像,我知道图像角落的“地理坐标”。

我的情节目前看起来像这样(注意刻度 - x=longitudes, y=latitudes, in UTM, WGS84):

然后假设我知道下图的角坐标(或没有蓝色轨迹的版本),并且想绘制它以使其适合绘图的坐标系。

我该怎么做?

(作为旁注,如果重要的话,我打算使用瓷砖)


根据 Joe Kington 的评论(等待他的实际答案以便我可以接受),以下代码按预期工作,提供了一个可平移和可缩放的固定方面“地理参考”图块,我可以在该图块上进行绘图跟踪日志:

import matplotlib.pyplot as plt
import Image
import numpy

imarray = numpy.asarray(Image.open('map.jpg'))

plt.plot([0,1], [0,1], 'o', c='red', ms=20)  ## some reference circles for debugging
plt.imshow(imarray, extent=[0,1,0,1])   ## some random map whose corners have known coordinates
plt.axis('equal')
plt.show()

【问题讨论】:

  • 您是在问如何投影它(您提到了 UTM 和地理坐标)还是只是如何绘制具有指定范围的图像? (如果是后者,只需使用extents kwarg 到imshow。)
  • @JoeKington 我只想绘制,因为图像已经“投影”(它的网格与绘图网格相同)。我看看extents,但如果你能发布一个有效的答案,我很乐意接受!
  • 据我所见,extents 将轴调整为图像,而不是相反。我正在按照这里的建议尝试使用 OffsetImage:stackoverflow.com/a/4860777/401828
  • 不,它只是在绘图后调用axis(image),这使它看起来像那样。只需将 aspect = "auto" 指定为 imshow 并先绘制图像,或者在绘制图像后重置轴的限制。 (首先绘制它是最简单的)。我是用手机拍的,否则我会举一个完整的例子。偏移图像适用于您希望图像大小位于显示坐标中的情况。无论如何,希望能有所帮助!
  • @JoeKington 它有帮助,但我也需要时间来完全掌握它。现在谢谢!

标签: image plot matplotlib cartography


【解决方案1】:

这里确实没有太多答案,但是如果您使用的是 matplotlib,并且您是 geos-tuff,请查看matplotlib.basemap
默认情况下,所有操作都在 UTM 地图上完成,但您可以选择自己的投影。 还可以查看http://www.geophysique.befor example 中的优秀教程列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2013-04-20
    • 1970-01-01
    • 2021-01-31
    相关资源
    最近更新 更多