def getrawdata(self, ci, timestep, datafield): cubesize = [ci.zlen, ci.ylen, ci.xlen] filterwidth = ci.filter corner = [ci.xstart, ci.ystart, ci.zstart] step = [ci.xstep, ci.ystep, ci.zstep] cube = Cube(corner, cubesize,step, filterwidth, 3 ) cube.getCubeData(ci, datafield, timestep) return cube.data
def getfilecube(self, args): corners =args[0] ci =args[1] cubesize =args[2] timestep =args[3] step = args[4] filterwidth = args[5] components = args[6] datafield = args[7] print ("Setting cube: ", corners[0], corners[1], corners[2]) cube = Cube(corners, cubesize, step, filterwidth, components) #mortonstart = jhtdblib.JHTDBLib().createmortonindex(corners[0], corners[1], corners[2]) #mortonend = jhtdblib.JHTDBLib().createmortonindex(corners[0] + cubesize[0], corners[1] + cubesize[1], corners[2] + cubesize[2]) #start = time.time() print ("getting cube: ", corners[0], corners[1], corners[2]) #It appears this sometimes fails when parallel processing, so we try up to 3 times... retries =3 attempt = 0 #while (attempt < retries ): # if (cube.getCubeData(ci, datafield, timestep) != True): # attempt = attempt + 1 # print("Retrying cube.") # else: # attempt = 3 # print("Completed cube") if (cube.getCubeData(ci, datafield, timestep) != True): print("Success cube") print("Saving cube", corners[0], corners[1], corners[2]) #tmp = NamedTemporaryFile(suffix='.RAW', mode='w+b', dir='/tmp', delete=False) #Save object #pickle.dump(cube, tmp, pickle.HIGHEST_PROTOCOL) #cPickle.dump(cube, tmp, cPickle.HIGHEST_PROTOCOL) return cube