def _make_plot(self, r, az, el, d, vmin=-32, vmax=70, dx=0.0, dy=0.0, cm=None): """ Data are normalized using the min of the data array after replacing missing values with vmin, so vmin should be less than the minimum data value """ x, y, z = antenna_vectors_to_cartesian(r, az, el, edges=True) x += dx y += dy # print(x.shape, y.shape, z.shape, d.shape) verts, faces = mesh_from_quads(x, y, z) squashed = d.filled(vmin).flatten() face_colors = np.empty((faces.shape[0], 4)) if cm is None: squashed -= squashed.min() squashed /= (vmax-vmin) # squashed.max() # print squashed.min(), squashed.max() # print(face_colors[0::2,0].shape, squashed.shape) face_colors[0::2, 0] = squashed # d.flat face_colors[0::2, 1] = squashed # d.flat face_colors[0::2, 2] = squashed # d.flat face_colors[1::2, 0] = squashed # d.flat face_colors[1::2, 1] = squashed # d.flat face_colors[1::2, 2] = squashed # d.flat face_colors[:, 3] = 1.0 # transparency else: colors = cm.to_rgba(squashed) face_colors[0::2] = colors face_colors[1::2] = colors return verts, faces, face_colors
def _init_mesh(self, x,y,z,d): verts, faces = mesh_from_quads(x,y,z) face_colors = np.empty((faces.shape[0], 4)) face_colors[0::2,0] = d.flat face_colors[0::2,1] = d.flat face_colors[0::2,2] = d.flat face_colors[1::2,0] = d.flat face_colors[1::2,1] = d.flat face_colors[1::2,2] = d.flat face_colors[:,3] = 1.0 # transparency mdata = MeshData(vertices=verts, faces=faces, face_colors=face_colors) mesh = Mesh(meshdata=mdata) # mesh.transform = ChainTransform([STTransform(translate=(0, 0, 0), # scale=(1.0e-3, 1.0e-3, 1.0e-3) )]) mesh.transform = vispy.scene.transforms.MatrixTransform() mesh.transform.scale([1./1000, 1./1000, 1./1000]) # mesh.transform.shift([-.2, -.2, -.2]) return mesh