2.4. Directions

class ect.directions.Sampling(*values)[source]
UNIFORM = 'uniform'
RANDOM = 'random'
CUSTOM = 'custom'
class ect.directions.Directions(num_dirs=360, sampling=Sampling.UNIFORM, dim=2, endpoint=False, seed=None)[source]

Manages direction vectors for ECT calculations. Supports uniform, random, or custom sampling of directions.

Examples

# Uniform sampling in 2D (default) dirs = Directions.uniform(num_dirs=8)

# Uniform sampling in 3D dirs = Directions.uniform(num_dirs=10, dim=3)

# Random sampling in 2D dirs = Directions.random(num_dirs=10, seed=42)

# Custom angles (2D only) dirs = Directions.from_angles([0, np.pi/4, np.pi/2])

# Custom vectors in any dimension dirs = Directions.from_vectors([(1,0,0), (0,1,0), (0,0,1)])

__init__(num_dirs=360, sampling=Sampling.UNIFORM, dim=2, endpoint=False, seed=None)[source]
classmethod uniform(num_dirs=360, dim=2, endpoint=False, seed=None)[source]

Factory method for uniform sampling.

Parameters:
  • num_dirs – Number of direction vectors.

  • dim – Dimension of the space (default 2).

  • endpoint – Whether to include the endpoint (for 2D angles).

  • seed – Optional random seed.

classmethod random(num_dirs=360, dim=2, seed=None)[source]

Factory method for random sampling.

Parameters:
  • num_dirs – Number of direction vectors.

  • dim – Dimension of the space.

  • seed – optional random seed.

classmethod from_angles(angles)[source]

Create an instance for custom angles (2D only).

classmethod from_vectors(vectors)[source]

Create an instance from custom direction vectors. Works in any number of dimensions.

property thetas

Get the angles for 2D directions. Raises an error if dim > 2.

property vectors

Get unit direction vectors. For 2D, they are computed from thetas if not already created. For n-dim (n>2), they should be available.