ipygany
ipygany copied to clipboard
Supporting cell data
Similarly to point data, could you also support cell data? It would be great if when loading a mesh from memory, I could manually pass cell data, i.e. data associated with the tetrahedra for a tetrahedral mesh. For instance if I wanted to colour my mesh with the element id number, this is something that I cannot do with point data. Similarly, when importing a vtk file that includes both point and cell data, being able to import both and visualise cell data would be amazing.
Thanks a lot for your time!
Best,
Ado
That would be nice indeed :)
With this small script you can plot cell data:
import meshio
import ipygany
import numpy as np
def readcelldata(fn):
msh = meshio.read(fn)
indices = msh.cells[0]
shp = indices.data.shape
indices = indices.data.flatten()
assert len(shp) == 2
length = shp[0] * shp[1]
indnew = np.arange(length, dtype=int)
vert = np.empty((length, 3))
datas = np.empty((length, len(msh.cell_data)))
datold = np.array(list(msh.cell_data.values()))[:, 0, :]
for i in range(length):
vert[i] = msh.points[indices[i]]
datas[i] = datold[:, i // shp[1]]
datnew = {
v: [ipygany.Component(name="value", array=datas[:, i])]
for i, v in enumerate(msh.cell_data.keys())
}
return ipygany.PolyMesh(vert, indnew.reshape(shp), datnew)
However, proper support would be nice, because it isn't very efficient.