From 1a6f4480046cd5ceb47e11524f512b067ed59854 Mon Sep 17 00:00:00 2001 From: Jakub Date: Fri, 17 Aug 2018 21:17:56 +0200 Subject: [PATCH] improving odt parsing and reworking the namespace visible fro user for more intuitive --- Widgets/widget_pane.json | 43 ++++++++++++++++----------------- Windows/PlotSettings.py | 8 ++++-- cython_modules/cython_parse.pyx | 27 +++++++++++++++------ 3 files changed, 47 insertions(+), 31 deletions(-) diff --git a/Widgets/widget_pane.json b/Widgets/widget_pane.json index a8ec867..c361c12 100644 --- a/Widgets/widget_pane.json +++ b/Widgets/widget_pane.json @@ -1,6 +1,6 @@ { "CubicGLContext": { - "alias": "3D_CUBIC", + "alias": "3D CUBIC", "object": "CubicGLContext", "object_type": "3d_object", "settings": ["PerfOptions", "file_header", @@ -16,25 +16,8 @@ ["Screenshot", "screenshot_manager"], ["Text", "popup_text_selector"]] }, - "VectorGLContext": { - "alias": "3D_VECTOR", - "object": "VectorGLContext", - "object_type": "3d_object", - "settings": ["PerfOptions", "file_header"], - "required": ["current_state", "options", - "file_header","color_vectors", - "screenshot_dir", "geom"], - "optional": ["iterations"], - "iterable_type": "structure", - "toolbar" : [["Reset", "initial_transformation"], - ["Zoom in", "zoomIn"], - ["Zoom out", "zoomOut"], - ["Screenshot", "screenshot_manager"], - ["Text", "popup_text_selector"]] - }, - "ArrowGLContext": { - "alias": "3D_ARROW", + "alias": "3D ARROW", "object": "ArrowGLContext", "object_type": "3d_object", "settings": ["ArrowPerfOptions", "file_header", @@ -50,8 +33,24 @@ ["Screenshot", "screenshot_manager"], ["Text", "popup_text_selector"]] }, + "VectorGLContext": { + "alias": "3D VECTOR", + "object": "VectorGLContext", + "object_type": "3d_object", + "settings": ["PerfOptions", "file_header"], + "required": ["current_state", "options", + "file_header","color_vectors", + "screenshot_dir", "geom"], + "optional": ["iterations"], + "iterable_type": "structure", + "toolbar" : [["Reset", "initial_transformation"], + ["Zoom in", "zoomIn"], + ["Zoom out", "zoomOut"], + ["Screenshot", "screenshot_manager"], + ["Text", "popup_text_selector"]] + }, "Canvas": { - "alias": "2D_Matplotlib", + "alias": "2D Matplotlib", "object": "Canvas", "object_type": "2d_object", "settings": ["PlotSettings", "plot_data"], @@ -62,7 +61,7 @@ "toolbar": "NavigationToolbar" }, "Canvas2Dupgraded": { - "alias": "2D_BetterPlot", + "alias": "2D PyQT", "object": "Canvas2Dupgraded", "object_type": "2d_object", "settings": ["PlotSettings", "plot_data"], @@ -73,7 +72,7 @@ "toolbar": null }, "CanvasLayer": { - "alias": "2D_Layer", + "alias": "2D Layer", "object": "CanvasLayer", "object_type": "2d_object", "settings": ["SimplePerfOptions", "file_header"], diff --git a/Windows/PlotSettings.py b/Windows/PlotSettings.py index 321ebe9..03a7627 100644 --- a/Windows/PlotSettings.py +++ b/Windows/PlotSettings.py @@ -113,10 +113,14 @@ def additionalSetup(self, plotOptions=[None]): # set default for comboBox X axis - time or iteration try: - indx = list(plotOptions.columns.values).index('TimeDriver::Simulation time') + indx = list(plotOptions.columns.values).index('Oxs_TimeDriver::Simulation time') self.comboBox5[self.GroupCounter].setCurrentIndex(indx) except ValueError: - pass + try: + indx = list(plotOptions.columns.values).index('Oxs_MinDriver::Iteration') + self.comboBox5[self.GroupCounter].setCurrentIndex(indx) + except ValueError: + pass self.radioButton.append(QRadioButton("Run synchronized with Animation", self)) diff --git a/cython_modules/cython_parse.pyx b/cython_modules/cython_parse.pyx index 5c358a0..e467a31 100644 --- a/cython_modules/cython_parse.pyx +++ b/cython_modules/cython_parse.pyx @@ -38,6 +38,25 @@ def normalized(array, axis=-1, order=2): l2[l2==0] = 1 return array / np.expand_dims(l2, axis) +def parseODTColumn(line): + cols = [] + line = line.replace('# Columns: ', '') + while line != "": + if line[0] == '{': + patch = line[1:line.index('}')] + if patch != '': + cols.append(patch) + line = line[line.index('}')+1:] + else: + try: + patch = line[:line.index(' ')] + if patch != '': + cols.append(patch) + line = line[line.index(' ')+1:] + except ValueError: + line = "" + break + return cols def getPlotData(filename): """ @@ -61,13 +80,7 @@ def getPlotData(filename): lines = f.readlines() f.close() cols = header[-1] - cols = cols.replace("}", "") - cols = cols.replace("{", "") - cols = cols.replace("MF", "Oxs_MF") - cols = cols.replace("PBC", "Oxs_PBC") - cols = cols.split("Oxs_") - del cols[0] - cols = [x.strip() for x in cols] + cols = parseODTColumn(cols) dataset = [] lines = [x.strip() for x in lines] lines = [x.split(' ') for x in lines]