Vectors and Vector Arrays
bewegung
offers vectors and vector arrays. Both of them are available in 2D and 3D variants. Both vectors and vector arrays can interact with each other as well as with matrices.
Note
Besides simple vector algebra, a lot of bewegung
’s functions and methods expect geometric input using vector objects.
Vector Classes
The vector classes describe individual vectors in 2D and 3D space. Vectors are “statically typed”, i.e. all components are of one single type, and use Python number types (sub-classes of numbers.Number
). The data type of a vector is exposed through its dtype
property.
The Vector
base class
- class bewegung.Vector(meta=None)
Abstract base class for all vector types.
Not intended to be instantiated.
- Parameters
meta (
Optional
[Dict
[str
,Union
[str
,bytes
,Number
]]]) – A dict holding arbitrary metadata
- property meta: Dict[str, Union[str, bytes, numbers.Number]]
meta data dict
- Return type
Dict
[str
,Union
[str
,bytes
,Number
]]
The Vector2D
class
- class bewegung.Vector2D(x, y, dtype=None, meta=None)
A single vector in 2D space.
Mutable.
- Parameters
x (
Number
) – x component. Must have the same type likey
.y (
Number
) – y component. Must have the same type likex
.dtype (
Optional
[Type
[Number
]]) – Data type. Derived fromx
andy
if not explicitly provided.meta (
Optional
[Dict
[str
,Union
[str
,bytes
,Number
]]]) – A dict holding arbitrary metadata.
- __add__(other)
Add operation between vectors or a vector and a vector array
- Parameters
other (
Any
) – Another vector- Return type
Union
[Vector2DABC
,NotImplementedType
]
- __eq__(other)
Equality check between vectors
- Parameters
other (
Any
) – Another vector- Return type
Union
[bool
,NotImplementedType
]
- __matmul__(other)
Scalar product between vectors
- Parameters
other (
Any
) – Another vector- Return type
Union
[Number
,NotImplementedType
]
- __mod__(other)
Is-close check (relevant for dtype
float
) between vectors- Parameters
other (
Any
) – Another vector- Return type
Union
[bool
,NotImplementedType
]
- __mul__(other)
Multiplication with scalar
- Parameters
other (
Any
) – A number- Return type
Union
[Vector2DABC
,NotImplementedType
]
- __repr__()
String representation for interactive use
- Return type
str
- __sub__(other)
Substract operator between vectors or a vector and a vector array
- Parameters
other (
Any
) – Another vector- Return type
Union
[Vector2DABC
,NotImplementedType
]
- property angle: float
The vector’s angle in radians, computed on demand
- Return type
float
- as_dtype(dtype)
Generates new vector with desired data type and returns it.
- Parameters
dtype (
Type
[Number
]) – Desired data type of new vector- Return type
Vector2DABC
- as_ndarray(dtype='f4')
Exports vector as a
numpy.ndarry
object, shape(2,)
.- Parameters
dtype (
Union
[str
,Type
[Number
],dtype
]) – Desirednumpy
data type of new vector- Return type
ndarray
- as_polar_tuple()
Exports vector as a tuple of polar coordinates
- Return type
Tuple
[float
,float
]
- as_tuple()
Exports vector as a tuple
- Return type
Tuple
[TypeVar
(N
, bound=Number
),TypeVar
(N
, bound=Number
)]
- copy()
Copies vector & meta data
- Return type
Vector2DABC
- property dtype: Type[numbers.Number]
(Python) data type of vector components
- Return type
Type
[Number
]
- classmethod from_polar(cls, radius, angle, meta=None)
Generates vector object from polar coordinates
- Parameters
radius (
Number
) – A radiusangle (
Number
) – An angle in radiansmeta (
Optional
[Dict
[str
,Union
[str
,bytes
,Number
]]]) – A dict holding arbitrary metadata
- Return type
Vector2DABC
- property mag: float
The vector’s magnitude, computed on demand
- Return type
float
- mul(scalar)
In-place multiplication with scalar
- Parameters
scalar (
Number
) – Vector is multiplied with this number.
- property ndim: int
Number of dimensions
- Return type
int
- update(x, y)
Updates vector components
- Parameters
x (
Number
) – x component. Must have the same type likey
.y (
Number
) – y component. Must have the same type likex
.
- update_from_vector(other)
Updates vector components with data from another vector
- Parameters
other (
Vector2DABC
) – Another vector. Remains unchanged.
- property x: numbers.Number
x component
- Return type
Number
- property y: numbers.Number
y component
- Return type
Number
The Vector3D
class
- class bewegung.Vector3D(x, y, z, dtype=None, meta=None)
A single vector in 3D space.
Mutable.
- Parameters
x (
Number
) – x component. Must have the same type likey
andz
.y (
Number
) – y component. Must have the same type likex
andz
.z (
Number
) – z component. Must have the same type likex
andy
.dtype (
Optional
[Type
[Number
]]) – Data type. Derived fromx
,y
andz
if not explicitly provided.meta (
Optional
[Dict
[str
,Union
[str
,bytes
,Number
]]]) – A dict holding arbitrary metadata.
- __add__(other)
Add operation between vectors or a vector and a vector array
- Parameters
other (
Any
) – Another vector- Return type
Union
[Vector3DABC
,NotImplementedType
]
- __eq__(other)
Equality check between vectors
- Parameters
other (
Any
) – Another vector- Return type
Union
[bool
,NotImplementedType
]
- __matmul__(other)
Scalar product between vectors
- Parameters
other (
Any
) – Another vector- Return type
Union
[Number
,NotImplementedType
]
- __mod__(other)
Is-close check (relevant for dtype
float
) between vectors- Parameters
other (
Any
) – Another vector- Return type
Union
[bool
,NotImplementedType
]
- __mul__(other)
Multiplication with scalar
- Parameters
other (
Any
) – A number- Return type
Union
[Vector3DABC
,NotImplementedType
]
- __repr__()
String representation for interactive use
- Return type
str
- __sub__(other)
Substract operator between vectors or a vector and a vector array
- Parameters
other (
Any
) – Another vector- Return type
Union
[Vector3DABC
,NotImplementedType
]
- as_dtype(dtype)
Generates new vector with desired data type and returns it.
- Parameters
dtype (
Type
[Number
]) – Desired data type of new vector- Return type
Vector3DABC
- as_geographic_tuple()
Exports vector as a tuple of geographic coordinates (radius, lon, lat)
- Return type
Tuple
[float
,float
,float
]
- as_ndarray(dtype='f4')
Exports vector as a
numpy.ndarry
object, shape(3,)
.- Parameters
dtype (
Union
[str
,Type
[Number
],dtype
]) – Desirednumpy
data type of new vector- Return type
ndarray
- as_polar_tuple()
Exports vector as a tuple of polar coordinates
- Return type
Tuple
[float
,float
,float
]
- as_tuple()
Exports vector as a tuple
- Return type
Tuple
[TypeVar
(N
, bound=Number
),TypeVar
(N
, bound=Number
),TypeVar
(N
, bound=Number
)]
- copy()
Copies vector & meta data
- Return type
Vector3DABC
- property dtype: Type[numbers.Number]
(Python) data type of vector components
- Return type
Type
[Number
]
- classmethod from_geographic(cls, radius, lon, lat, meta=None)
Generates vector object from geographic polar coordinates
- Parameters
radius (
Number
) – A radiuslon (
Number
) – An angle in degreelat (
Number
) – An angle in degreemeta (
Optional
[Dict
[str
,Union
[str
,bytes
,Number
]]]) – A dict holding arbitrary metadata
- Return type
Vector3DABC
- classmethod from_polar(cls, radius, theta, phi, meta=None)
Generates vector object from polar coordinates
- Parameters
radius (
Number
) – A radiustheta (
Number
) – An angle in radiansphi (
Number
) – An angle in radiansmeta (
Optional
[Dict
[str
,Union
[str
,bytes
,Number
]]]) – A dict holding arbitrary metadata
- Return type
Vector3DABC
- property lat: float
The vector’s geographic latitude in degree, computed on demand
- Return type
float
- property lon: float
The vector’s gepgraphic longitude in degree, computed on demand
- Return type
float
- property mag: float
The vector’s magnitude, computed on demand
- Return type
float
- mul(scalar)
In-place multiplication with scalar
- Parameters
scalar (
Number
) – Vector is multiplied with this number.
- property ndim: int
Number of dimensions
- Return type
int
- property phi: float
The vector’s phi in radians, computed on demand
- Return type
float
- property theta: float
The vector’s theta in radians, computed on demand
- Return type
float
- update(x, y, z)
Updates vector components
- Parameters
x (
Number
) – x component. Must have the same type likey
andz
.y (
Number
) – y component. Must have the same type likex
andz
.z (
Number
) – z component. Must have the same type likex
andy
.
- update_from_vector(other)
Updates vector components with data from another vector
- Parameters
other (
Vector3DABC
) – Another vector. Remains unchanged.
- property x: numbers.Number
x component
- Return type
Number
- property y: numbers.Number
y component
- Return type
Number
- property z: numbers.Number
z component
- Return type
Number
Vector Array Classes
The vector array classes describe arrays of individual vectors in 2D and 3D space. Vector arrays are “statically typed” and use numpy
arrays for storing data. Just like numpy.ndarray
objects, they expose a dtype
property.
The VectorArray
base class
The VectorArray2D
class
- class bewegung.VectorArray2D(x, y, dtype=None, meta=None)
An array of vectors in 2D space.
Mutable.
- Parameters
x (
ndarray
) – x components. Must have the same dtype likey
.y (
ndarray
) – y components. Must have the same dtype likex
.meta (
Optional
[Dict
[str
,ndarray
]]) – A dict holding arbitrary metadata.dtype (
Union
[str
,Type
[Number
],dtype
,None
]) –
- __add__(other)
Add operation between vector arrays or a vector array and a vector
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[VectorArray2DABC
,NotImplementedType
]
- __eq__(other)
Equality check between vector arrays
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[bool
,NotImplementedType
]
- __getitem__(idx)
Item access, returning an independent object - either a
bewegung.Vector2D
(index access) or abewegung.VectorArray2D
(slicing)- Parameters
idx (
Union
[int
,slice
]) – Either an index or a slice- Return type
Union
[Vector2D
,VectorArray2DABC
]
- __iter__()
Iterator interface (1/2)
- Return type
VectorArray2DABC
- __len__()
Length of array
- Return type
int
- __matmul__(other)
Scalar product between vector arrays
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[ndarray
,NotImplementedType
]
- __mod__(other)
Is-close check between vector arrays
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[bool
,NotImplementedType
]
- __mul__(other)
Multiplication with scalar
- Parameters
other (
Any
) – A number- Return type
Union
[VectorArray2DABC
,NotImplementedType
]
- __repr__()
String representation for interactive use
- Return type
str
- __sub__(other)
Substract operator between vector arrays or a vector array and a vector
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[VectorArray2DABC
,NotImplementedType
]
- property angle: numpy.ndarray
The vectors’ angles in radians, computed on demand
- Return type
ndarray
- as_list()
Exports a list of
bewegung.Vector2D
objects- Return type
List
[Vector2D
]
- as_ndarray(dtype='f4')
Exports vector array as a
numpy.ndarry
object, shape(len(self), 2)
.- Parameters
dtype (
Union
[str
,Type
[Number
],dtype
]) – Desirednumpy
data type of new vector- Return type
ndarray
- as_polar_tuple()
Exports vector array as a tuple of polar vector components in
numpy.ndarry
objects- Return type
Tuple
[ndarray
,ndarray
]
- as_tuple(copy=True)
Exports vector array as a tuple of vector components in
numpy.ndarry
objects- Parameters
copy (
bool
) – Provide a copy of underlyingnumpy.ndarry
- Return type
Tuple
[ndarray
,ndarray
]
- as_type(dtype)
Exports vector array as another vector array with new dtype
- Parameters
dtype (
Union
[str
,Type
[Number
],dtype
]) – Desirednumpy
data type of new vector array- Return type
VectorArray2DABC
- copy()
Copies vector array & meta data
- Return type
VectorArray2DABC
- property dtype: numpy.dtype
(
numpy
) data type of vector array components- Return type
dtype
- classmethod from_iterable(cls, obj, dtype='f4')
Generates vector array object from an iterable of
bewegung.Vector2D
objects- Parameters
obj (
Iterable
[Vector2D
]) – iterabledtype (
Union
[str
,Type
[Number
],dtype
]) – Desirednumpy
data type of new vector array
- Return type
VectorArray2DABC
- classmethod from_polar(cls, radius, angle, meta=None)
Generates vector array object from arrays of polar vector components
- Parameters
radius (
ndarray
) – Radius componentsangle (
ndarray
) – Angle components in radiansmeta (
Optional
[Dict
[str
,ndarray
]]) – A dict holding arbitrary metadata
- Return type
VectorArray2DABC
- property mag: numpy.ndarray
The vectors’ magnitudes, computed on demand
- Return type
ndarray
- mul(scalar)
In-place multiplication with scalar
- Parameters
scalar (
Number
) – Vector array is multiplied with this number.
- property ndim: int
Number of dimensions
- Return type
int
- update_from_vectorarray(other)
Updates vector components with data from another vector array
- Parameters
x – x components. Must have the same dtype like
y
.y – y components. Must have the same dtype like
x
.other (
VectorArray2DABC
) –
- property x: numpy.ndarray
x components, mutable
- Return type
ndarray
- property y: numpy.ndarray
y components, mutable
- Return type
ndarray
The VectorArray3D
class
- class bewegung.VectorArray3D(x, y, z, dtype=None, meta=None)
An array of vectors in 3D space.
Mutable.
- Parameters
x (
ndarray
) – x components. Must have the same dtype likey
andz
.y (
ndarray
) – y components. Must have the same dtype likex
andz
.z (
ndarray
) – z components. Must have the same dtype likex
andy
.meta (
Optional
[Dict
[str
,ndarray
]]) – A dict holding arbitrary metadata.dtype (
Union
[str
,Type
[Number
],dtype
,None
]) –
- __add__(other)
Add operation between vector arrays or a vector array and a vector
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[VectorArray3DABC
,NotImplementedType
]
- __eq__(other)
Equality check between vector arrays
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[bool
,NotImplementedType
]
- __getitem__(idx)
Item access, returning an independent object - either a
bewegung.Vector3D
(index access) or abewegung.VectorArray3D
(slicing)- Parameters
idx (
Union
[int
,slice
]) – Either an index or a slice- Return type
Union
[Vector3D
,VectorArray3DABC
]
- __iter__()
Iterator interface (1/2)
- Return type
VectorArray3DABC
- __len__()
Length of array
- Return type
int
- __matmul__(other)
Scalar product between vector arrays
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[ndarray
,NotImplementedType
]
- __mod__(other)
Is-close check between vector arrays
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[bool
,NotImplementedType
]
- __mul__(other)
Multiplication with scalar
- Parameters
other (
Any
) – A number- Return type
Union
[VectorArray3DABC
,NotImplementedType
]
- __repr__()
String representation for interactive use
- Return type
str
- __sub__(other)
Substract operator between vector arrays or a vector array and a vector
- Parameters
other (
Any
) – Another vector array of equal length- Return type
Union
[VectorArray3DABC
,NotImplementedType
]
- as_geographic_tuple()
Exports vector array as a tuple of geographic coordinate components in
numpy.ndarry
objects (radius, lon, lat)- Return type
Tuple
[ndarray
,ndarray
,ndarray
]
- as_list()
Exports a list of
bewegung.Vector3D
objects- Return type
List
[Vector3D
]
- as_ndarray(dtype='f4')
Exports vector array as a
numpy.ndarry
object, shape(len(self), 3)
.- Parameters
dtype (
Union
[str
,Type
[Number
],dtype
]) – Desirednumpy
data type of new vector- Return type
ndarray
- as_polar_tuple()
Exports vector array as a tuple of polar vector components in
numpy.ndarry
objects- Return type
Tuple
[ndarray
,ndarray
,ndarray
]
- as_tuple(copy=True)
Exports vector array as a tuple of vector components in
numpy.ndarry
objects- Parameters
copy (
bool
) – Provide a copy of underlyingnumpy.ndarry
- Return type
Tuple
[ndarray
,ndarray
,ndarray
]
- as_type(dtype)
Exports vector array as another vector array with new dtype
- Parameters
dtype (
Union
[str
,Type
[Number
],dtype
]) – Desirednumpy
data type of new vector array- Return type
VectorArray3DABC
- copy()
Copies vector array & meta data
- Return type
VectorArray3DABC
- property dtype: numpy.dtype
(
numpy
) data type of vector array components- Return type
dtype
- classmethod from_geographic(cls, radius, lon, lat, meta=None)
Generates vector array object from arrays of geographic polar vector components
- Parameters
radius (
ndarray
) – Radius componentslon (
ndarray
) – Angle components in degreelat (
ndarray
) – Angle components in degreemeta (
Optional
[Dict
[str
,ndarray
]]) – A dict holding arbitrary metadata
- Return type
VectorArray3DABC
- classmethod from_iterable(cls, obj, dtype='f4')
Generates vector array object from an iterable of
bewegung.Vector3D
objects- Parameters
obj (
Iterable
[Vector3D
]) – iterabledtype (
Union
[str
,Type
[Number
],dtype
]) – Desirednumpy
data type of new vector array
- Return type
VectorArray3DABC
- classmethod from_polar(cls, radius, theta, phi, meta=None)
Generates vector array object from arrays of polar vector components
- Parameters
radius (
ndarray
) – Radius componentstheta (
ndarray
) – Angle components in radiansphi (
ndarray
) – Angle components in radiansmeta (
Optional
[Dict
[str
,ndarray
]]) – A dict holding arbitrary metadata
- Return type
VectorArray3DABC
- property lat: float
The vectors’ geographic latitude in degree, computed on demand
- Return type
float
- property lon: float
The vectors’ gepgraphic longitude in degree, computed on demand
- Return type
float
- property mag: numpy.ndarray
The vectors’ magnitudes, computed on demand
- Return type
ndarray
- mul(scalar)
In-place multiplication with scalar
- Parameters
scalar (
Number
) – Vector array is multiplied with this number.
- property ndim: int
Number of dimensions
- Return type
int
- property phi: numpy.ndarray
The vectors’ phis in radians, computed on demand
- Return type
ndarray
- property theta: numpy.ndarray
The vectors’ thetas in radians, computed on demand
- Return type
ndarray
- update_from_vectorarray(other)
Updates vector components with data from another vector array
- Parameters
x – x components. Must have the same dtype like
y
andz
.y – y components. Must have the same dtype like
x
andz
.z – z components. Must have the same dtype like
x
andy
.other (
VectorArray3DABC
) –
- property x: numpy.ndarray
x components, mutable
- Return type
ndarray
- property y: numpy.ndarray
y components, mutable
- Return type
ndarray
- property z: numpy.ndarray
z components, mutable
- Return type
ndarray