diff --git a/seissolxdmfwriter/pyproject.toml b/seissolxdmfwriter/pyproject.toml index 95bad2d..c835b74 100644 --- a/seissolxdmfwriter/pyproject.toml +++ b/seissolxdmfwriter/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "seissolxdmfwriter" -version = "0.4.5" +version = "0.4.6" authors = [ {name = "SeisSol Group"}, ] diff --git a/seissolxdmfwriter/seissolxdmfwriter/__init__.py b/seissolxdmfwriter/seissolxdmfwriter/__init__.py index f14c9ab..d406701 100644 --- a/seissolxdmfwriter/seissolxdmfwriter/__init__.py +++ b/seissolxdmfwriter/seissolxdmfwriter/__init__.py @@ -1,8 +1,9 @@ from .seissolxdmfwriter import * + try: - from importlib.metadata import version, PackageNotFoundError + from importlib.metadata import PackageNotFoundError, version except ImportError: - from importlib_metadata import version, PackageNotFoundError + from importlib_metadata import PackageNotFoundError, version try: __version__ = version("seissolxdmfwriter") diff --git a/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py b/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py index 9b90ac5..1bc22c6 100755 --- a/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py +++ b/seissolxdmfwriter/seissolxdmfwriter/seissol_output_extractor.py @@ -1,11 +1,13 @@ #!/usr/bin/env python3 +import argparse import os import os.path +from warnings import warn + +import numpy as np import seissolxdmf + import seissolxdmfwriter as sxw -import numpy as np -import argparse -from warnings import warn def generate_new_prefix(prefix, append2prefix): @@ -163,9 +165,11 @@ def GetFilteredCells(self, regionFilter, xRange, yRange, zRange): region_varname = "fault-tag" elif "locationFlag" in available: region_varname = "locationFlag" + elif "group" in available: + region_varname = "group" else: raise ValueError( - f"fault-tag or locationFlag not in available variables {available}" + f"fault-tag, locationFlag or group not in available variables {available}" ) tags = self.Read1dData(region_varname, self.nElements, isInt=True) regions = regionFilter[0].split(",") diff --git a/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py b/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py index 5f9e2d9..0cc56d8 100644 --- a/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py +++ b/seissolxdmfwriter/seissolxdmfwriter/seissolxdmfwriter.py @@ -1,8 +1,9 @@ -import numpy as np import os -from tqdm import tqdm import sys +import numpy as np +from tqdm import tqdm + known_1d_arrays = [ "locationFlag", "fault-tag", @@ -517,13 +518,28 @@ def write_from_seissol_output( ) nel = infer_n_elements(sx, filtered_cells) - write_timeseries_xdmf( - prefix, - sx.ReadNNodes(), - nel, - sx.ReadNodesPerElement(), - dictDataTypes, - [sx.ReadTimes()[k] for k in time_indices], - reduce_precision, - backend, - ) + nNodes = sx.ReadNNodes() + node_per_element = sx.ReadNodesPerElement() + dictTime = [sx.ReadTimes()[k] for k in time_indices] + + if not dictTime: + write_mesh_xdmf( + prefix, + nNodes, + nel, + node_per_element, + dictDataTypes, + reduce_precision, + backend, + ) + else: + write_timeseries_xdmf( + prefix, + nNodes, + nel, + node_per_element, + dictDataTypes, + dictTime, + reduce_precision, + backend, + )