src.utils.ptransf.point_cloud_sampler

Classes

PointCloudSampler(**kwargs)

class src.utils.ptransf.point_cloud_sampler.PointCloudSampler(**kwargs)
Author:

Alberto M. Esmoris Pena

Class for transforming points following one or many sampling strategies.

Variables:

neighborhood_sampling (dict or None) –

The specification of the neighborhood sampling strategy, if any.

The format for this attribute should be like:

{
    "support_conditions": [
        {
            "value_name": "ClassAmbiguity",
            "condition_type": "greater_than_or_equal_to",
            "value_target": 0.5,
            "action": "preserve"
        }
    ],
    "support_strategy": "fps",
    "support_strategy_num_points": 100000,
    "support_strategy_fast": true,
    "support_chunk_size": 50000,
    "center_on_pcloud": false,
    "neighborhood": {
        "type": "sphere",
        "radius": 2.5,
        "separation_factor": 0
    },
    "neighborhoods_per_iter": 10000,
    "nthreads": -1
}

static extract_ptransf_args(spec)

Extract the arguments to initialize/instantiate a PointCloudSampler.

Parameters:

spec – The key-word specification containing the arguments.

Returns:

The arguments to initialize/instantiate a PointCloudSampler.

Return type:

dict

__init__(**kwargs)

Initialize/instantiate a PointCloudSampler.

Parameters:

kwargs – The attributes for the PointCloudSampler.

transform(X=None, F=None, y=None, yhat=None, out_prefix=None, **kwargs)

The fundamental point transform logic defining the point cloud sampler.

See PointTransformer and PointTransformer.transform().

transform_pcloud(pcloud, out_prefix=None, **kwargs)

Update the input point cloud in place.

See PointCloudSampler.transform() and PointTransformer.transform_pcloud().

apply_neighborhood_sampling(X, F, y, yhat, out_prefix=None, **kwargs)

Compute a neighborhood sampling. This strategy considers each support point (for example, the entire X, or a subset of X that satisfied the given conditions) and computes it neighborhood. The indices of the points in the neighborhoods are then returned.

Parameters:
  • X (np.ndarray) – The structure space matrix representing the point cloud to be sampled.

  • F (np.ndarray or None) – the feature space matrix representing the point cloud to be sampled.

  • y (np.ndarray or None) – The references of the point cloud to be sampled (typically a vector of classes).

  • yhat (np.ndarray or None) – The predictions on the point cloud to be sampled ( typically a vector of classes).

  • out_prefix – See PointTransformer and PointTransformer.transform().

Returns:

List with the indices of the points to be included in the sampled version of the point cloud.

Return type:

List of int

static update_selected_indices(base_selected_indices, new_selected_indices, X, F, y, yhat)

Merge the current selected indices with the new selected indices. Note that the resulting selected indices are built by selecting those indices at base_selected_indices specified by new_selected_indices.

Returns:

The new list of selected indices.

Return type:

list

filter_support_points(conditions, X, F, y, yhat, min_distance=None, out_prefix=None)

Filter the given point cloud considering the given conditions to obtain the corresponding support points.

Parameters:
  • conditions (list of dict) –

    A list with the dictionary-like specifications of each condition that must be applied. Each condition must specify:

    "value_name"The name of the value involved in the

    condition.

    "condition_type"The relational governing the condition,

    i.e., "not_equals" (\(\neq\)), "equals" (\(=\)), "less_than" (\(<\)), "less_than_or_equal_to" (\(\leq\)), "greater_than" (\(>\)), "greater_than_or_equal_to" (\(\geq\)), "in" (\(\in\)), or "not_in" (\(\notin\)).

    "value_target"The value for the rhs of the relational.

    Note that the lhs will be the corresponding value from the point cloud.

    "action"Whether the conditions define points that must be

    preserved ("preserve") or discarded ("discard").

  • X (np.ndarray or None) – The structure space matrix representing the point cloud.

  • F (np.ndarray or None) – The feature space matrix representing the point cloud.

  • y (np.ndarray or None) – The references of the point cloud.

  • yhat (np.ndarray or None) – The predictions of the point cloud.

  • min_distance (float or None) – When given, support points that are closer to other support points in less than min_distance will be discarded.

  • out_prefix – See PointTransformer and PointTransformer.transform().

Returns:

The structure space matrix representing the support points.

Return type:

np.ndarray

apply_condition(cond, X, F, y, yhat)

Apply the given condition to the given point cloud. See PointCloudSampler.filter_support_points() for further details when using this function to filter the support points.

Returns:

The structure space, feature space, references, and predictions of the filtered point cloud.

Return type:

tuple of np.ndarray

static compute_neighborhoods(X, X_sup, neighborhood_spec, support_chunk_size=0, kdt=None)

Compute the neighborhood of each support point on X.

See SupportNeighborhoods for more details.

Parameters:
  • X_sup (np.ndarray) – The support structure space.

  • X (np.ndarray) – The structure space where the neighbors must be.

  • neighborhood_spec (dict) – The key-word specification of the neighborhood.

  • support_chunk_size (int) – See SupportNeighborhoods.

  • kdt – See SupportNeighborhoods.compute().