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)])
- 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_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.