[docs]defexportCSV(outputPath:Path,dataNode:DataNode,mr_id:str)->None:"""Export data node to csv format. Parameters ---------- outputPath : Path Path to export data to. dataNode : DataNode Perun data node. mr_id : str Id of Multi_run node to get data from """columns=["run id","hostname","device_group","sensor","unit","magnitude","timestep","value",]rows=[]mrNode=dataNode.nodes[mr_id]forrun_n,runNodeinmrNode.nodes.items():rows.extend(_rowsFromRunNode(runNode,run_n))df=pd.DataFrame(rows,columns=columns)df.to_csv(outputPath)
def_rowsFromRunNode(runNode:DataNode,run_n:int)->List[Tuple[Any,...]]:"""Create table rows from a RUN type data node. Parameters ---------- runNode : DataNode RUN type node run_n : int Id number of data node Returns ------- List[Tuple[Any, ...]] List of tuples with table entries. """rows:List[Tuple[Any,...]]=[]forhostId,hostNodeinrunNode.nodes.items():fordeviceGroupId,deviceGroupNodeinhostNode.nodes.items():forsensorId,sensorNodeindeviceGroupNode.nodes.items():ifsensorNode.raw_dataisnotNone:rawData=sensorNode.raw_dataunit=rawData.v_md.unit.valuemag=rawData.v_md.mag.valueforiinrange(len(rawData.timesteps)):rows.append((run_n,hostId,deviceGroupId,sensorId,unit,mag,rawData.timesteps[i],rawData.values[i],))returnrows