Source code for pyrfu.pyrf.read_cdf

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 3rd party imports
import numpy as np
import pycdfpp
import xarray as xr

__author__ = "Louis Richard"
__email__ = "louisr@irfu.se"
__copyright__ = "Copyright 2020-2023"
__license__ = "MIT"
__version__ = "2.4.13"
__status__ = "Prototype"


[docs]def read_cdf(path: str) -> dict: r"""Reads a .cdf file and returns a dictionary with the fields contained in the file. Parameters ---------- path : str Path to the .cdf file. Returns ------- dict Hash table with fields contained in the .cdf file. """ # Initialize output dictionary out_dict = {} # Load file file = pycdfpp.load(path) # Get keys (a.k.a zvariables) from file keys = list(map(lambda x: x[0], file.items())) for key in keys: # Get data and coordinates data = np.squeeze(file[key].values) coords = [np.arange(dim_size) for dim_size in data.shape] # Construct xarray DataArray out_dict[key.lower()] = xr.DataArray(data, coords=coords) return out_dict