ktk.geometry.create_point_series#
- create_point_series(array=None, *, x=None, y=None, z=None, length=None)[source]#
Create an Nx4 point series ([[x, y, z, 1.0], …]).
Single array
To create a point series based on a single array, use this form:
create_point_series( array: ArrayLike | None = None, *, length: int | None = None, ) -> np.ndarray:
Multiple arrays
To create a point series based on multiple arrays (e.g., x, y, z), use this form:
create_point_series( *, x: ArrayLike | None = None, y: ArrayLike | None = None, z: ArrayLike | None = None, length: int | None = None, ) -> np.ndarray:
- Parameters:
array (ArrayLike | None) – Used in single array input form. Array of one of these shapes where N corresponds to time: (N,), (N, 1): forms a point series on the x axis, with y=0 and z=0. (N, 2): forms a point series on the x, y axes, with z=0. (N, 3), (N, 4): forms a point series on the x, y, z axes.
x (ArrayLike | None) – Used in multiple arrays input form. Optional. Array of shape (N,) that contains the x values. If not provided, x values are filled with zero.
y (ArrayLike | None) – Used in multiple arrays input form. Optional. Array of shape (N,) that contains the y values. If not provided, y values are filled with zero.
z (ArrayLike | None) – Used in multiple arrays input form. Optional. Array of shape (N,) that contains the z values. If not provided, z values are filled with zero.
length (int | None) – The number of samples in the resulting point series. If there is only one sample in the original array, this one sample will be duplicated to match length. Otherwise, an error is raised if the input array does not match length.
- Returns:
An Nx4 array with every sample being [x, y, z, 1.0].
- Return type:
array
- Raises:
ValueError – If the inputs have incorrect dimensions.
Examples
Single input form:
# A series of 2 samples with x, y defined >>> ktk.geometry.create_point_series([[1.0, 2.0], [4.0, 5.0]]) array([[1., 2., 0., 1.], [4., 5., 0., 1.]]) # A series of 2 samples with x, y, z defined >>> ktk.geometry.create_point_series([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) array([[1., 2., 3., 1.], [4., 5., 6., 1.]]) # Samething >>> ktk.geometry.create_point_series([[1.0, 2.0, 3.0, 1.0], [4.0, 5.0, 6.0, 1.0]]) array([[1., 2., 3., 1.], [4., 5., 6., 1.]])
Multiple inputs form:
# A series of 2 samples with x, z defined >>> ktk.geometry.create_point_series(x=[1.0, 2.0, 3.0], z=[4.0, 5.0, 6.0]) array([[1., 0., 4., 1.], [2., 0., 5., 1.], [3., 0., 6., 1.]])