Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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