Source code for oasislmf.pytools.converters.csvtobin.utils.common
import numpy as np
import pandas as pd
from oasislmf.pytools.common.data import resolve_file
[docs]
def read_csv_as_ndarray(stack, file_in, headers, dtype):
file_in = resolve_file(file_in, "r", stack)
csv_dtype = {key: col_dtype for key, (col_dtype, _) in dtype.fields.items()}
try:
df = pd.read_csv(file_in, delimiter=',', dtype=csv_dtype, usecols=list(csv_dtype.keys()))
except pd.errors.EmptyDataError:
return np.empty(0, dtype=dtype)
data = np.empty(df.shape[0], dtype=dtype)
for name in dtype.names:
data[name] = df[name]
return data