Source code for tyssue.io.csv

import numpy as np
import pandas as pd


[docs]def write_storm_csv( filename, points, coords=["x", "y", "z"], split_by=None, **csv_args ): """ Saves a point cloud array in the storm format """ columns = ["frame", "x [nm]", "y [nm]", "z [nm]", "uncertainty_xy", "uncertainty_z"] points = points.dropna() storm_points = pd.DataFrame(np.zeros((points.shape[0], 6)), columns=columns) storm_points[["x [nm]", "y [nm]", "z [nm]"]] = points[coords].values storm_points["frame"] = 1 storm_points[["uncertainty_xy", "uncertainty_z"]] = 2.1 # tab separated values are faster and more portable than excel if split_by is None: if not filename.endswith(".csv"): filename = filename + ".csv" storm_points.to_csv(filename, **csv_args) elif split_by in points.columns(): storm_points[split_by] = points[split_by] # separated files by the column split_by storm_points.groupby(split_by).apply( lambda df: df.to_csv( "{}_{}.csv".format(filename, df[split_by].iloc[0]), **csv_args ) )