Skip to content

Commit aa53319

Browse files
committed
vtk load restored by stopping CV calc with vtk
1 parent 767a0e3 commit aa53319

File tree

2 files changed

+31
-43
lines changed

2 files changed

+31
-43
lines changed

openep/analysis/analyse.py

Lines changed: 23 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
# with this program (LICENSE.txt). If not, see <http://www.gnu.org/licenses/>
1818

1919
"""Module containing analysis classes"""
20-
2120
from ._conduction_velocity import *
2221
from ..case.case_routines import interpolate_general_cloud_points_onto_surface
2322

@@ -59,22 +58,8 @@ class ConductionVelocity:
5958
"""
6059
def __init__(self, case):
6160
self._case = case
62-
self._values = None
63-
self._centers = None
64-
65-
@property
66-
def values(self):
67-
if self._values is None:
68-
raise ValueError('Before accessing ``conduction_velocity.values`` '
69-
'run ``divergence.calculate_divergence()``')
70-
return self._values
71-
72-
@property
73-
def centers(self):
74-
if self._centers is None:
75-
raise ValueError('Before accessing ``conduction_velocity.centers`` '
76-
'run ``divergence.calculate_divergence()``')
77-
return self._centers
61+
self.values = None
62+
self.centers = None
7863

7964
def calculate_cv(
8065
self,
@@ -134,12 +119,19 @@ def calculate_cv(
134119
if method.lower() not in supported_cv_methods:
135120
raise ValueError(f"`method` must be one of {supported_cv_methods.keys()}.")
136121

122+
if include is None and self._case.electric.include is None:
123+
raise TypeError(f"include object is of 'NoneType'")
124+
else:
125+
include = self._case.electric.include.astype(bool) if include is None else include
126+
137127
interpolation_kws = dict() if interpolation_kws is None else interpolation_kws
138-
include = self._case.electric.include.astype(bool) if include is None else include
139-
lat, bipolar_egm_pts = preprocess_lat_egm(self._case, include)
128+
129+
bipolar_egm_pts = self._case.electric.bipolar_egm.points[include]
130+
lat = (self._case.electric.annotations.local_activation_time[include]
131+
- self._case.electric.annotations.reference_activation_time[include])
140132

141133
cv_method = supported_cv_methods[method]
142-
self._values, self._centers = cv_method(bipolar_egm_pts, lat, **method_kwargs)
134+
self.values, self.centers = cv_method(bipolar_egm_pts, lat, **method_kwargs)
143135

144136
if apply_scalar_field:
145137
self._case.fields.conduction_velocity = interpolate_general_cloud_points_onto_surface(
@@ -169,20 +161,8 @@ class Divergence:
169161
"""
170162
def __init__(self, case):
171163
self._case = case
172-
self._direction = None
173-
self._values = None
174-
175-
@property
176-
def values(self):
177-
if self._values is None:
178-
raise ValueError('Before accessing ``..divergence.values`` run ``..divergence.calculate_divergence()``')
179-
return self._values
180-
181-
@property
182-
def direction(self):
183-
if self._direction is None:
184-
raise ValueError('Before accessing ``divergence.direction`` run ``divergence.calculate_divergence()``')
185-
return self._direction
164+
self.direction = None
165+
self.values = None
186166

187167
def calculate_divergence(
188168
self,
@@ -224,10 +204,16 @@ def calculate_divergence(
224204
direction, values = cv.calculate_divergence(output_binary_field=True, apply_scalar_field=True)
225205
"""
226206

227-
include = self._case.electric.include.astype(bool) if include is None else include
228-
lat, bipolar_egm_pts = preprocess_lat_egm(self._case, include, lat_threshold=None)
207+
if include is None and self._case.electric.include is None:
208+
raise TypeError(f"include object is of 'NoneType'")
209+
else:
210+
include = self._case.electric.include.astype(bool) if include is None else include
211+
212+
bipolar_egm_pts = self._case.electric.bipolar_egm.points[include]
213+
lat = (self._case.electric.annotations.local_activation_time[include]
214+
- self._case.electric.annotations.reference_activation_time[include])
229215

230-
self._direction, self._values = divergence(
216+
self.direction, self.values = divergence(
231217
case=self._case,
232218
bipolar_egm_pts=bipolar_egm_pts,
233219
local_activation_time=lat,

openep/io/writers.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -195,11 +195,13 @@ def export_openep_mat(
195195
)
196196

197197
userdata['electric'] = _extract_electric_data(electric=case.electric)
198-
userdata['electric'] = _add_electric_signal_props(
199-
electric_data=userdata['electric'],
200-
conduction_velocity=case.analyse.conduction_velocity,
201-
divergence=case.analyse.divergence
202-
)
198+
199+
if case.analyse.conduction_velocity.values is not None:
200+
userdata['electric'] = _add_electric_signal_props(
201+
electric_data=userdata['electric'],
202+
conduction_velocity=case.analyse.conduction_velocity,
203+
divergence=case.analyse.divergence
204+
)
203205

204206
userdata['rf'] = _export_ablation_data(ablation=case.ablation)
205207
scipy.io.savemat(
@@ -255,7 +257,7 @@ def _add_electric_signal_props(electric_data, **kwargs):
255257
}
256258
signal_props['cvX'] = {
257259
'name' : 'Conduction Velocity Coordinates',
258-
'value': conduction_velocity.points,
260+
'value': conduction_velocity.centers,
259261
}
260262

261263
if divergence:

0 commit comments

Comments
 (0)