aquaduct.geom.master module¶
-
part2type_dict
= {0: ‘s’, 1: ‘c’, 2: ‘s’}¶ Part number to
GenericPathTypeCodes
dictionary.
-
parts
= (0, 1, 2)¶ Parts enumerate.
-
class
CTypeSpathsCollectionWorker
(spaths=None, ctype=None, bias_long=5, smooth=None)[source]¶ Bases:
object
Worker class for averaging spaths in points of master path.
-
__init__
(spaths=None, ctype=None, bias_long=5, smooth=None)[source]¶ Core method for averaging spaths in to master path.
Averaging is done in chunks.
Parameters: - spaths (list) – List of separate paths to average.
- ctype (InletClusterGenericType) – CType of spaths.
- bias_long (int) – Bias towards long paths used in
lens_norm()
. - smooth (Smooth) – Smoothing method.
-
coords_types_prob_widths
(sp_slices_)[source]¶ Calculates average coordinates, type and width in given chunk.
Parameter
sp_slices_
is tuple of length equal to number of spaths. It contains slices for all spaths respectively. With these slices spaths are cut and only resulting chunks are used for calculations.Therefore, this method average spaths in one point of master math. This point is defined by slices submitted as
sp_lices_
parameter.Algorithm of averaging (within current chunks of spaths):
Coordinates for all spaths are collected.
Lengths of all spaths are collected (from cached variables) and kept as lists of lengths equal to chunks’ sizes.
Note
Lengths of collected lengths of spaths are of the same size as coordinates
New coordinates are calculated as weighted average of collected coordintates with
numpy.average()
. As weights collected lengths are used.Note
Function
numpy.average()
is called with flatten coordinates and lengths.Width of average path is calculated as mean value of flatten coordinates mutual distances.
Type of average paths is calculated as probability (frequency) of
scope_name
.
Parameters: sp_slices (tuple) – Slices that cut chunks from all paths. Return type: 3 element tuple Returns: coordinates, type (frequency), and width of averaged spaths in current point
-
-
class
CTypeSpathsCollection
(spaths=None, ctype=None, bias_long=5, pbar=None, threads=1)[source]¶ Bases:
object
Object for grouping separate paths that belong to the same CType. Method
get_master_path()
allows for calculation of average path.-
parts
= (0, 1, 2)¶ Enumeration of spath parts.
-
__init__
(spaths=None, ctype=None, bias_long=5, pbar=None, threads=1)[source]¶ Parameters: - spaths (list) – List of separate paths.
- ctype (InletClusterGenericType) – CType of spaths.
- bias_long (int) – Bias towards long paths used in
lens_norm()
. - pbar – Progress bar object.
- threads (int) – Number of available threads.
-
lens
()[source]¶ Returns total lengths of all paths.
If ctype in #:# and not 0 and not None then take length of object part only.
Returns: Total (or object part) lengths of all paths. Return type: numpy.ndarray
-
lens_norm
()[source]¶ Returns normalized lengths calculated by
lens()
.Applied normalization is twofold:
- All lengths are divided by maximal length, and
- All lengths are subjected to
pow()
function with p =bias_long
.
Returns: Normalized total (or object part) lengths of all paths. Return type: numpy.ndarray
-
lens_real
()[source]¶ Returns real lengths of all paths.
Returns: Sizes of all paths. Return type: list
-
full_size
()[source]¶ Returns desired size of master path.
Returns: Size of master path. Return type: int
-
static
simple_types_distribution
(types)[source]¶ Calculates normalized sizes of incoming, object, and outgoing parts of spath using generic types.
It is assumed that spath has object part.
Parameters: types (list) – List of generic types. Return type: 3 element list Returns: Normalized sizes of incomin, object, and outgoing parts.
-
types_distribution
()[source]¶ Return type: numpy.matrix Returns: median values of simple_types_distribution()
for all spaths.
-
types_prob_to_types
(types_prob)[source]¶ Changes types probabilities as returned by
CTypeSpathsCollectionWorker.coords_types_prob_widths()
to types.Parameters: types_prob (list) – List of types probabilities. Return type: list Returns: List of GenericPathTypeCodes
.
-
get_master_path
(smooth=None, resid=0)[source]¶ Averages spaths into one master path.
This is done in steps:
- Master path is an average of bunch of spaths. Its length is determined by
full_size()
method. - All spaths are then divided in to chunks according to
xzip_xzip()
function withN
set to lenght of master path. This results in list of length equal to the length of master path. Elements of this lists are slice objects that can be used to slice spaths in appropriate chunks. - Next, for each element of this list
CTypeSpathsCollectionWorker.coords_types_prob_widths()
method is called. Types probabilities are changed to types wihttypes_prob_to_types()
. - Finally, all data are used to create appropriate
MasterPath
. If this fails None is returned.
Parameters: Return type: Returns: Average path as
MasterPath
object or None if creation of master path failed.- Master path is an average of bunch of spaths. Its length is determined by
-