Source code for torx.grid.shape_single_m

"""
Functionality to convert to single shapes.

If you want to shape (x, y, z) values without having to build a grid object,
you can use stack_single to perform the pivot.
"""
import xarray as xr
import numpy as np
import pandas as pd
from torx.autodoc_decorators_m import autodoc_function

[docs] @autodoc_function def shape_single( x_values: np.array, y_values: np.array, z_values: np.array ) -> xr.DataArray: """Return the result of vector_to_matrix without the need of a grid.""" tricolumn_data = np.column_stack((x_values, y_values, z_values)) pd_dataframe = pd.DataFrame(tricolumn_data, columns=["x", "y", "z"]) # Makes a 2D array of indices return xr.DataArray( pd_dataframe.pivot_table(values="z", index="y", columns="x", dropna=False), dims=["Z", "R"], coords={"R": np.unique(x_values), "Z": np.unique(y_values)}, )