def test_xarray_conversions(self): da = DataSet1D(name="TestDataArray_test_xarray_conversions").x_set xarray_dictionary = data_array_to_xarray_dictionary(da) xarray_dataarray = da.to_xarray() da_transformed = DataArray.from_xarray(xarray_dataarray) for key in ["name", "unit", "label"]: self.assertEqual(da.name, da_transformed.name)
def dataset_to_xarray_dictionary(data_set: DataSet, include_metadata: bool = True ) -> Dict[str, Any]: """Convert QcodesDataSet to dictionary. Args: data_set: The data to convert. include_data: If True then include the ndarray field. include_metadata: If True then include the metadata. Returns: Dictionary containing the serialized data. """ data_dictionary: Dict[str, Any] = { "dims": {}, "attrs": {}, "coords": {}, "data_vars": {}, } pa = data_set.default_parameter_array() dimensions = [(a.array_id, a.size) for a in pa.set_arrays] data_dictionary["dims"] = dict(dimensions) for array_id in [item[0] for item in dimensions]: data_array = data_set.arrays[array_id] data_dictionary["coords"][array_id] = data_array_to_xarray_dictionary( data_array) for array_id, data_array in data_set.arrays.items(): if not data_array.is_setpoint: data_dictionary["data_vars"][ array_id] = data_array_to_xarray_dictionary(data_array) if include_metadata: data_dictionary["attrs"]["metadata"] = data_set.metadata data_dictionary["attrs"]["qcodes_location"] = data_set.location return data_dictionary
def test_to_xarray(self): data = DataArray(preset_data=[1, 2]) array_dict = data_array_to_xarray_dictionary(data) xarray_dataarray = data.to_xarray()