def CompressSegments(self): from MDSplus import Tree,DateToQuad,ZERO,Int32,Int32Array,Int64Array,Range with Tree(self.tree,self.shot+9,'NEW') as ptree: node = ptree.addNode('S') node.compress_on_put = False ptree.write() ptree.cleanDatafile() ptree.normal() te = DateToQuad("now") sampperseg = 50 data = ZERO(Int32Array([sampperseg]),Int32(0)) numsegs = 128 for i in range(numsegs): t0=te+1;te=t0+sampperseg-1 node.makeSegment(t0,te,Int64Array(range(t0,te+1)),data+Int32(i)) node.compress_segments=True ptree.createPulse(self.shot+11) Tree.compressDatafile(self.tree,self.shot+11) ptree1 = Tree(self.tree,self.shot+11) node1 = ptree1.S self.assertEqual(True,(node.record==node1.record).all()) self.assertEqual(True,ptree.getDatafileSize()>ptree1.getDatafileSize()) for i in range(numsegs): srt,end = node.getSegmentLimits(i) dim = Range(srt,end) node.updateSegment(srt,end,dim,i) if i%16==0: self.assertEqual(dim.decompile(),node.getSegmentDim(i).decompile()) ptree.compressDatafile() ptree.readonly() self.assertEqual(numsegs,node1.getNumSegments()) self.assertEqual(True,ptree.getDatafileSize()<ptree1.getDatafileSize()) for i in range(numsegs): self.assertEqual(node.getSegmentDim(i).data().tolist(),node1.getSegmentDim(i).data().tolist())
def test(): from MDSplus import Tree, DateToQuad, ZERO, Int32, Int32Array, Int64Array, Range with Tree('seg_tree', self.shot, 'NEW') as ptree: node = ptree.addNode('S') node.compress_on_put = False ptree.write() ptree.normal() ptree.compressDatafile() te = DateToQuad("now") sampperseg = 50 data = ZERO(Int32Array([sampperseg]), Int32(0)) for i in range(513): t0 = te + 1 te = t0 + sampperseg - 1 node.makeSegment(t0, te, Int64Array(range(t0, te + 1)), data + Int32(i)) node.compress_segments = True ptree.createPulse(self.shot + 1) Tree.compressDatafile(self.tree, self.shot + 1) ptree1 = Tree(self.tree, self.shot + 1) node1 = ptree1.S self.assertEqual(True, (node.record == node1.record).all()) self.assertEqual( True, ptree.getDatafileSize() > ptree1.getDatafileSize()) for i in range(node.getNumSegments()): str, end = node.getSegmentLimits(i) node.updateSegment(str, end, Range(str, end), i) ptree.close() ptree.compressDatafile() ptree.readonly() self.assertEqual( True, ptree.getDatafileSize() < ptree1.getDatafileSize()) for i in range(node1.getNumSegments()): self.assertEqual( node.getSegmentDim(i).data().tolist(), node1.getSegmentDim(i).data().tolist())
# -*- coding:utf-8 -*- # @Time : 2019/12/27 8:20 # @Author : Qi # --------------------------- Tree Methods --------------------------- from MDSplus import Tree t = Tree('my_tree', -1) # ----------------------- Instance Methods ----------------------- dfs = t.getDatafileSize() # t.cleanDatafile() # t.compressDatafile() fn = t.getFileName() t2 = t.copy() # t.close() # top = t.top() # ad = t.addDevice('SUB3') # an = t.addNode('SUB4') # createPulse(1) dir = t.dir() # gc = t.getCurrent('SUB1') gd = t.getDefault() gn = t.getNode("SUB1") gnwi_iterator = t.getNodeWildIter('***') gnw_array = t.getNodeWild('***') gtc_tuple = t.getTimeContext() im_bool = t.isModified() # sd_tn = t.setDefault("SUB1") # ----------------------- Static Methods ----------------------- # gvd_str = t.getVersionDate() # --------------------------- TreeNode Methods ---------------------------