【问题标题】:Python how to plot (x,y) data on a netcdf imagePython如何在netcdf图像上绘制(x,y)数据
【发布时间】:2015-08-11 13:54:36
【问题描述】:

我有一个像 [x,y,diameter] 这样的大型涡流数据集,并且我绘制了一个 1440*720 像素的背景图,如何在地图上以圆圈的形式绘制涡流位置? 感谢大家的帮助!

【问题讨论】:

  • 我读过的地图是一个 .nc 文件,它是海平面异常,在笛卡尔网格上的空间分辨率是 1/4°x1/4°。所以x(经度)是0-1440,y(纬度)是0-720。我有涡流的 (x,y) 数据,如何在地图上放置标记以显示涡流的位置?

标签: python plot netcdf


【解决方案1】:

你可以使用matplotlib

假设您的数据集具有以下格式:

data = [[x1,y1,d1], [x2,y2,d2], ...]

然后

import matplotlib.pyplot as plt
from math import pi 
im = plt.imread(image_name)
implot = plt.imshow(im)

for elem in data:
    # put a blue dot at (elem[0], elem[1]) with diameter elem[2]
    plt.scatter([elem[0]], [elem[1]], s=pi*(elem[2]**2)/4)

plt.show()

【讨论】:

  • 谢谢!但是我读到的地图是一个 netcdf 文件,它是海平面异常,在笛卡尔网格上的空间分辨率是 1/4°x1/4°。所以x(经度)是0-1440,y(纬度)是0-720。那么如何放置标记来显示涡流的位置呢?
  • 使用this 绘制netcdf 文件,然后进行分散操作。
【解决方案2】:

假设您知道如何显示图像(例如pyplot.imshow)并绘制数据(例如pyplot.plot),然后执行以下操作:

from matplotlib import pyplot as plt
plt.imshow(map_image)
# the next line prevents subsequent calls to pyplot.plot from changing axes
plt.autoscale(False)
plt.plot(data)
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2021-03-01
    • 2022-01-02
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多