Link Search Menu Expand Document (external link)

Table of contents


"""
mkdir -p /usr/sci/cedmav/data/materials_science.idx/foam
cd /usr/sci/cedmav/data/materials_science.idx/foam
python3 convert.py
"""

import numpy as np
import matplotlib.pyplot as plt

def Check(cond):
    if not cond:  raise Exception("interal error")

# filename depth,height,width
timesteps=[
    ("/usr/sci/cedmav/data/materials_science/foam/0.00mm/000mm.raw",   1024, 1024, 1055),
    ("/usr/sci/cedmav/data/materials_science/foam/0.25mm/025mm.raw",   1024, 1024, 1027),
    ("/usr/sci/cedmav/data/materials_science/foam/0.50mm/050mm.raw",   1024, 1024, 1000),
    ("/usr/sci/cedmav/data/materials_science/foam/0.75mm/075mm.raw",   1024, 1024,  980),
    ("/usr/sci/cedmav/data/materials_science/foam/1.00mm/100mm.raw",   1024, 1024,  965),
    ("/usr/sci/cedmav/data/materials_science/foam/1.25mm/125mm.raw",   1024, 1024,  943),
    ("/usr/sci/cedmav/data/materials_science/foam/1.50mm/150mm.raw",   1024, 1024,  927),
    ("/usr/sci/cedmav/data/materials_science/foam/1.75mm/175mm.raw",   1024, 1024,  907),
    ("/usr/sci/cedmav/data/materials_science/foam/2.00mm/200mm.raw",   1024, 1024,  890),
    ("/usr/sci/cedmav/data/materials_science/foam/2.25mm/225mm.raw",   1024, 1024,  868),
    ("/usr/sci/cedmav/data/materials_science/foam/2.50mm/250mm.raw",   1024, 1024,  849),
    ("/usr/sci/cedmav/data/materials_science/foam/2.75mm/275mm.raw",   1024, 1024,  826),
    ("/usr/sci/cedmav/data/materials_science/foam/3.00mm/300mm.raw",   1024, 1024,  813),
    ("/usr/sci/cedmav/data/materials_science/foam/3.25mm/325mm.raw",   1024, 1024,  789),
    ("/usr/sci/cedmav/data/materials_science/foam/3.50mm/350mm.raw",   1024, 1024,  770),
    ("/usr/sci/cedmav/data/materials_science/foam/3.75mm/375mm.raw",   1024, 1024,  750),
    ("/usr/sci/cedmav/data/materials_science/foam/4.00mm/400mm.raw",   1024, 1024,  726),
    ("/usr/sci/cedmav/data/materials_science/foam/4.25mm/425mm.raw",   1024, 1024,  711),
    ("/usr/sci/cedmav/data/materials_science/foam/4.50mm/450mm.raw",   1024, 1024,  690),
]  

sys.path.append(r"C:\projects\OpenVisus\build\RelWithDebInfo")
from OpenVisus import *

W=max([it[3] for it in timesteps])
H=max([it[2] for it in timesteps])
D=max([it[1] for it in timesteps])
T=len(timesteps)

db=CreateIdx(url="visus.idx", dims=(W,H,D), fields=[Field("data","uint16","row_major")], time=(0,T-1,"time%02d/") )

for t in range(T):
    print("Converting time",t)
    filename,depth,height,width=timesteps[t]
    data=np.fromfile(filename, dtype=np.uint16, count=- 1, sep='', offset=0)
    Check(data.shape[0]==width*height*depth)
    data3d=data.reshape((depth,height,width))
    db.write(data,logic_box=[(0,0,0),(width,height,depth)],time=t)
    plt.imshow(data3d[int(depth/2),:,])  

    # comment this line if you want to do the conversion
    break
Converting time 0

png