* Adding Collector for handling data sampling/collection before dataset/dataloader
* Modify domain by adding sample_mode, variables as property * Small change concatenate -> cat in lno/avno * Create different factory classes for conditions
This commit is contained in:
committed by
Nicola Demo
parent
aef5a5d590
commit
1bd3f40f54
@@ -21,7 +21,6 @@ class CartesianDomain(DomainInterface):
|
||||
"""
|
||||
self.fixed_ = {}
|
||||
self.range_ = {}
|
||||
self.sample_modes = ["random", "grid", "lh", "chebyshev", "latin"]
|
||||
|
||||
for k, v in cartesian_dict.items():
|
||||
if isinstance(v, (int, float)):
|
||||
@@ -31,6 +30,10 @@ class CartesianDomain(DomainInterface):
|
||||
else:
|
||||
raise TypeError
|
||||
|
||||
@property
|
||||
def sample_modes(self):
|
||||
return ["random", "grid", "lh", "chebyshev", "latin"]
|
||||
|
||||
@property
|
||||
def variables(self):
|
||||
"""Spatial variables.
|
||||
|
||||
@@ -9,7 +9,7 @@ class DomainInterface(metaclass=ABCMeta):
|
||||
Any geometry entity should inherit from this class.
|
||||
"""
|
||||
|
||||
__available_sampling_modes = ["random", "grid", "lh", "chebyshev", "latin"]
|
||||
available_sampling_modes = ["random", "grid", "lh", "chebyshev", "latin"]
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
@@ -19,6 +19,14 @@ class DomainInterface(metaclass=ABCMeta):
|
||||
"""
|
||||
pass
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def variables(self):
|
||||
"""
|
||||
Abstract method returing Domain variables.
|
||||
"""
|
||||
pass
|
||||
|
||||
@sample_modes.setter
|
||||
def sample_modes(self, values):
|
||||
"""
|
||||
@@ -27,10 +35,10 @@ class DomainInterface(metaclass=ABCMeta):
|
||||
if not isinstance(values, (list, tuple)):
|
||||
values = [values]
|
||||
for value in values:
|
||||
if value not in DomainInterface.__available_sampling_modes:
|
||||
if value not in DomainInterface.available_sampling_modes:
|
||||
raise TypeError(f"mode {value} not valid. Expected at least "
|
||||
"one in "
|
||||
f"{DomainInterface.__available_sampling_modes}."
|
||||
f"{DomainInterface.available_sampling_modes}."
|
||||
)
|
||||
|
||||
@abstractmethod
|
||||
|
||||
@@ -39,7 +39,6 @@ class EllipsoidDomain(DomainInterface):
|
||||
self.range_ = {}
|
||||
self._centers = None
|
||||
self._axis = None
|
||||
self.sample_modes = "random"
|
||||
|
||||
# checking consistency
|
||||
check_consistency(sample_surface, bool)
|
||||
@@ -72,6 +71,10 @@ class EllipsoidDomain(DomainInterface):
|
||||
self._centers = dict(zip(self.range_.keys(), centers.tolist()))
|
||||
self._axis = dict(zip(self.range_.keys(), ellipsoid_axis.tolist()))
|
||||
|
||||
@property
|
||||
def sample_modes(self):
|
||||
return ["random"]
|
||||
|
||||
@property
|
||||
def variables(self):
|
||||
"""Spatial variables.
|
||||
|
||||
@@ -24,8 +24,9 @@ class OperationInterface(DomainInterface, metaclass=ABCMeta):
|
||||
# assign geometries
|
||||
self._geometries = geometries
|
||||
|
||||
# sampling mode, for now random is the only available
|
||||
self.sample_modes = "random"
|
||||
@property
|
||||
def sample_modes(self):
|
||||
return ["random"]
|
||||
|
||||
@property
|
||||
def geometries(self):
|
||||
|
||||
@@ -74,9 +74,10 @@ class SimplexDomain(DomainInterface):
|
||||
# build cartesian_bound
|
||||
self._cartesian_bound = self._build_cartesian(self._vertices_matrix)
|
||||
|
||||
# sampling mode
|
||||
self.sample_modes = "random"
|
||||
|
||||
@property
|
||||
def sample_modes(self):
|
||||
return ["random"]
|
||||
|
||||
@property
|
||||
def variables(self):
|
||||
return sorted(self._vertices_matrix.labels)
|
||||
|
||||
@@ -32,9 +32,16 @@ class Union(OperationInterface):
|
||||
|
||||
"""
|
||||
super().__init__(geometries)
|
||||
|
||||
@property
|
||||
def sample_modes(self):
|
||||
self.sample_modes = list(
|
||||
set([geom.sample_modes for geom in geometries])
|
||||
set([geom.sample_modes for geom in self.geometries])
|
||||
)
|
||||
|
||||
@property
|
||||
def variables(self):
|
||||
return list(set([geom.variables for geom in self.geometries]))
|
||||
|
||||
def is_inside(self, point, check_border=False):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user