Source code for lidarwind.io

import datatree
import pandas as pd
import xarray as xr


[docs] def open_sweep(file_name): """Windcube's data reader It opens and reads the original NetCDF output from the Windcube lidar. Parameters ---------- file_name : str path to the file that will be opened Returns ------- ds : xarray.DataSet a dataset from the original NetCDF files """ raw_data = datatree.open_datatree(file_name, decode_times=False) assert ( "sweep_group_name" in raw_data ), "missing sweep group variable in input file" sweep_group_name = raw_data["sweep_group_name"].values[0] ds = raw_data[f"/{sweep_group_name}"].to_dataset() del raw_data if "time_reference" in ds: # Guarantee that it is a valid datetime reference_time = pd.to_datetime( ds["time_reference"].values ).isoformat() ds["time"].attrs["units"] = f"seconds since {reference_time}" ds = xr.decode_cf(ds) return ds