Skip to content

Commit

Permalink
fix: bug where data is not float
Browse files Browse the repository at this point in the history
force conversion to float from pandas
  • Loading branch information
Lachlan Grose committed Dec 7, 2021
1 parent cc7788f commit e6f7e1f
Showing 1 changed file with 24 additions and 24 deletions.
48 changes: 24 additions & 24 deletions LoopStructural/modelling/features/geological_feature_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ def add_data_to_interpolator(
if mask.shape[0] > 0:
data.loc[mask, gradient_vec_names()] = data.loc[
mask, normal_vec_names()
].to_numpy()
].to_numpy(float)
data.loc[mask, normal_vec_names()] = np.nan
if self.get_norm_constraints().shape[0] > 0:
constrained = True
Expand All @@ -249,55 +249,55 @@ def add_data_to_interpolator(

data.loc[mask, normal_vec_names()] = data.loc[
mask, gradient_vec_names()
].to_numpy()
].to_numpy(float)
data.loc[mask, gradient_vec_names()] = np.nan
logger.info("Setting gradient points to norm constraints")
constrained = True
mask = np.all(
~np.isnan(data.loc[:, normal_vec_names()].to_numpy()), axis=1
~np.isnan(data.loc[:, normal_vec_names()].to_numpy(float)), axis=1
)

if not constrained:
logger.error("Not enough constraints for scalar field add more")
# self.interpolator.reset()
mask = ~np.isnan(data.loc[:, val_name()].to_numpy())
mask = ~np.isnan(data.loc[:, val_name()].to_numpy(float))
# add value constraints
if mask.shape[0] > 0:
value_data = data.loc[
mask[:, 0], xyz_names() + val_name() + weight_name()
].to_numpy()
].to_numpy(float)
self.interpolator.set_value_constraints(value_data)

# add gradient constraints
mask = np.all(~np.isnan(data.loc[:, gradient_vec_names()].to_numpy()), axis=1)
mask = np.all(~np.isnan(data.loc[:, gradient_vec_names()].to_numpy(float)), axis=1)
if mask.shape[0] > 0:
gradient_data = data.loc[
mask, xyz_names() + gradient_vec_names() + weight_name()
].to_numpy()
].to_numpy(float)
self.interpolator.set_gradient_constraints(gradient_data)

# add normal vector data
mask = np.all(~np.isnan(data.loc[:, normal_vec_names()].to_numpy()), axis=1)
mask = np.all(~np.isnan(data.loc[:, normal_vec_names()].to_numpy(float)), axis=1)
if mask.shape[0] > 0:
normal_data = data.loc[
mask, xyz_names() + normal_vec_names() + weight_name()
].to_numpy()
].to_numpy(float)
self.interpolator.set_normal_constraints(normal_data)

# add tangent data
mask = np.all(~np.isnan(data.loc[:, tangent_vec_names()].to_numpy()), axis=1)
mask = np.all(~np.isnan(data.loc[:, tangent_vec_names()].to_numpy(float)), axis=1)
if mask.shape[0] > 0:
tangent_data = data.loc[
mask, xyz_names() + tangent_vec_names() + weight_name()
].to_numpy()
].to_numpy(float)
self.interpolator.set_tangent_constraints(tangent_data)

# add interface constraints
mask = np.all(~np.isnan(data.loc[:, interface_name()].to_numpy()), axis=1)
mask = np.all(~np.isnan(data.loc[:, interface_name()].to_numpy(float)), axis=1)
if mask.shape[0] > 0:
interface_data = data.loc[
mask, xyz_names() + interface_name() + weight_name()
].to_numpy()
].to_numpy(float)
self.interpolator.set_interface_constraints(interface_data)

self.data_added = True
Expand Down Expand Up @@ -349,8 +349,8 @@ def get_value_constraints(self):
np.array((N,4),dtype=double)
"""
header = xyz_names() + val_name() + weight_name()
mask = ~np.isnan(self.data.loc[:, val_name()].to_numpy())
return self.data.loc[mask[:, 0], header].to_numpy()
mask = ~np.isnan(self.data.loc[:, val_name()].to_numpy(float))
return self.data.loc[mask[:, 0], header].to_numpy(float)

def get_gradient_constraints(self):
"""
Expand All @@ -361,12 +361,12 @@ def get_gradient_constraints(self):
numpy array
"""
mask = np.all(
~np.isnan(self.data.loc[:, gradient_vec_names()].to_numpy()), axis=1
~np.isnan(self.data.loc[:, gradient_vec_names()].to_numpy(float)), axis=1
)
if mask.shape[0] > 0:
return self.data.loc[
mask, xyz_names() + gradient_vec_names() + weight_name()
].to_numpy()
].to_numpy(float)
else:
return np.zeros((0, 7))

Expand All @@ -378,12 +378,12 @@ def get_tangent_constraints(self):
numpy array
"""
mask = np.all(
~np.isnan(self.data.loc[:, tangent_vec_names()].to_numpy()), axis=1
~np.isnan(self.data.loc[:, tangent_vec_names()].to_numpy(float)), axis=1
)
if mask.shape[0] > 0:
return self.data.loc[
mask, xyz_names() + tangent_vec_names() + weight_name()
].to_numpy()
].to_numpy(float)
else:
return np.zeros((0, 7))

Expand All @@ -396,21 +396,21 @@ def get_norm_constraints(self):
numpy array
"""
mask = np.all(
~np.isnan(self.data.loc[:, normal_vec_names()].to_numpy()), axis=1
~np.isnan(self.data.loc[:, normal_vec_names()].to_numpy(float)), axis=1
)
if mask.shape[0] > 0:
return self.data.loc[
mask, xyz_names() + normal_vec_names() + weight_name()
].to_numpy()
].to_numpy(float)
else:
return np.zeros((0, 7))

def get_interface_constraints(self):
mask = np.all(~np.isnan(self.data.loc[:, interface_name()].to_numpy()), axis=1)
mask = np.all(~np.isnan(self.data.loc[:, interface_name()].to_numpy(float)), axis=1)
if mask.shape[0] > 0:
return self.data.loc[
mask, xyz_names() + interface_name() + weight_name()
].to_numpy()
].to_numpy(float)
else:
return np.zeros((0, 5))

Expand All @@ -422,7 +422,7 @@ def get_data_locations(self):
-------
"""
return self.data.loc[:, xyz_names()].to_numpy()
return self.data.loc[:, xyz_names()].to_numpy(float)

def set_interpolation_geometry(self, origin, maximum, rotation=None):
"""Update the interpolation support geometry to new bounding box
Expand Down

0 comments on commit e6f7e1f

Please sign in to comment.