【问题标题】:How to add a custom grid to an ImageItem?如何将自定义网格添加到 ImageItem?
【发布时间】:2021-08-24 18:11:58
【问题描述】:

我正在研究 pyqtgraph 中的一些地图投影接口代码。我的图像是 aitoff-hammer 投影,大致形状与以下图集示例相同:

aitoff-hammer 地图投影:
.

问题是,我的图像没有那些网格线。我已经验证了将像素值转换为纬度/经度坐标的代码是否有效,但我无法想出一种制作自定义网格的方法。我目前的想法是制作一个只有网格线的新图像,然后将其制作为半透明的 ImageItem。但是,是否可以在 pyqtgraph 中堆叠 ImageItems?

【问题讨论】:

  • 是的,但我更关心的问题是这些平行线的曲线精度。根据用于创建地图的投影和扭曲类型,您可能必须确保曲线正确:它们可能被简化为三次贝塞尔曲线,但我对此并不完全确定。

标签: python pyqt5 pyqtgraph


【解决方案1】:

正如musicamante 指出的那样,我能够堆叠ImageItems。我将评估曲线的准确性,但这里是相关代码:

def draw_grid(self, lon, lat, lon_int, lat_int):
    lon[np.isnan(lon)] = lon_int + 2
    lat[np.isnan(lat)] = lat_int + 2

    lon_cond = lon - (lon_int * (lon // lon_int)) <= 0.5
    lat_cond = lat - (lat_int * (lat // lat_int)) <= 0.5
    inds = np.where(lon_cond | lat_cond)
    
    grid = np.zeros(self.map_data.shape, dtype = np.uint8)
    grid[inds] = 255

    grid_image = pg.ImageItem(grid, axisOrder = 'row-major')
    grid_image.setZValue(10)
    grid_image.setOpacity(0.3)
    
    self.map_plot.addItem(grid_image)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2016-12-06
    • 2021-01-03
    • 2019-03-09
    • 1970-01-01
    相关资源
    最近更新 更多