def uploadSpatial(self, slf): variables = self.variables slf = SLF(slf) for frame in range(slf.NFRAME): for v in ['fs', 'u', 'v']: self['s', v, frame] = slf.getVarsIndexes([variables[v]['slf name']])
def getTranspose(slf, output): if not os.path.exists(output): slf = SLF(slf) nnode = slf.NPOIN2 ntime = slf.NFRAME nvar = slf.NVAR fp = np.memmap(output, dtype='float32', mode='w+', shape=(nnode, nvar, ntime)) for frame in range(slf.NFRAME): print("{} of{}".format(frame, slf.NFRAME)) fp[:, :, frame] = slf.getVALUES(frame).T
def addVars(input,output): slf = SLF(input) slf.addVAR({'name':'VARIABLE2','unit':'m'}) range = np.arange(slf.NPOIN3) / float(slf.NPOIN3-1) values = range[...,np.newaxis] + [0,1] values = values[...,np.newaxis] values = np.einsum('kij->jik',values) slf.values = values slf.writeSLF(output) slf.printAtt()
def addFrames(input,output): slf = SLF(input) range = np.arange(slf.NPOIN3) / float(slf.NPOIN3-1) values = range[...,np.newaxis] + [0,1] values = values[...,np.newaxis] values = np.einsum('kij->ijk',values) slf.values = values slf.writeSLF(output) slf.printAtt()
def addVarToOriginal(input,output): slf = SLF(input) original = np.zeros((slf.NFRAME,slf.NVAR,slf.NPOIN3),np.float32) for t in range(slf.NFRAME): original[t] = slf.getVALUES(t) slf.addVAR({'name':'area','unit':'m2'}) rangea = np.arange(slf.NPOIN3) / float(slf.NPOIN3-1) ranget = rangea[np.newaxis,np.newaxis,...] + [[[0]],[[1]]] rangeb = rangea[...,np.newaxis] + [0,1] rangec = rangeb[...,np.newaxis] rangec = np.einsum('kij->ijk',rangec) values = np.concatenate((original,rangec), axis=1) slf.values = values slf.writeSLF(output) slf.printAtt()
def addFrameVars(input,output): slf = SLF(input) slf.addVAR({'name':'VARIABLE2','unit':'m'}) values = np.zeros((10,slf.NVAR,slf.NPOIN3),np.float32) for t in range(10): for ivar in range(slf.NVAR): values[t,ivar] = (np.arange(slf.NPOIN3) / float(slf.NPOIN3-1) + t + ivar) slf.values = values slf.writeSLF(output) print("readSLF - NPOIN3:{0},NVAR:{1}, NELEM3:{2}, shape:{3}".format(slf.NPOIN3,slf.NVAR,slf.NELEM3,slf.values.shape)) print("addVars - min:{0}, max:{1}".format(np.min(slf.values),np.max(slf.values)))
def uploadTemparol(self, slf, npy): slf = SLF(npy) gnode = 1000 nnode = slf.NPOIN2 ntime = slf.NFRAME nvar = slf.NVAR fp = np.memmap(npy, dtype='float32', mode='r', shape=(nnode, nvar, ntime)) # Save array in memory to S3 for i in np.arange(0, nnode, gnode): _slice = slice(i, np.minimum(nnode, i + gnode)) for i, v in enumerate(['fs', 'u', 'v']): self['t', v, _slice] = fp[_slice, i]
def readSLF(filename): slf = SLF(filename) slf.printAtt()
def createEmptySLF(filename): slf=SLF() slf.writeSLF(filename) slf.printAtt()
def changeValuesV1(input,output): slf = SLF(input) slf.values = slf.values + 1.0 slf.writeSLF(output) slf.printAtt()
def __init__(self, filePath=''): SLF.__init__(self, filePath)