(
self,
filename_or_obj: T_PathFileOrDataStore,
*,
mask_and_scale=True,
decode_times=True,
concat_characters=True,
decode_coords=True,
drop_variables: str | Iterable[str] | None = None,
use_cftime=None,
decode_timedelta=None,
group: str | None = None,
format="NETCDF4",
clobber=True,
diskless=False,
persist=False,
auto_complex=None,
lock=None,
autoclose=False,
**kwargs,
)
| 839 | return datatree_from_dict_with_io_cleanup(groups_dict) |
| 840 | |
| 841 | def open_groups_as_dict( |
| 842 | self, |
| 843 | filename_or_obj: T_PathFileOrDataStore, |
| 844 | *, |
| 845 | mask_and_scale=True, |
| 846 | decode_times=True, |
| 847 | concat_characters=True, |
| 848 | decode_coords=True, |
| 849 | drop_variables: str | Iterable[str] | None = None, |
| 850 | use_cftime=None, |
| 851 | decode_timedelta=None, |
| 852 | group: str | None = None, |
| 853 | format="NETCDF4", |
| 854 | clobber=True, |
| 855 | diskless=False, |
| 856 | persist=False, |
| 857 | auto_complex=None, |
| 858 | lock=None, |
| 859 | autoclose=False, |
| 860 | **kwargs, |
| 861 | ) -> dict[str, Dataset]: |
| 862 | from xarray.backends.common import _iter_nc_groups |
| 863 | from xarray.core.treenode import NodePath |
| 864 | |
| 865 | filename_or_obj = _normalize_path(filename_or_obj) |
| 866 | store = NetCDF4DataStore.open( |
| 867 | filename_or_obj, |
| 868 | group=group, |
| 869 | format=format, |
| 870 | clobber=clobber, |
| 871 | diskless=diskless, |
| 872 | persist=persist, |
| 873 | auto_complex=auto_complex, |
| 874 | lock=lock, |
| 875 | autoclose=autoclose, |
| 876 | ) |
| 877 | |
| 878 | # Check for a group and make it a parent if it exists |
| 879 | if group: |
| 880 | parent = NodePath("/") / NodePath(group) |
| 881 | else: |
| 882 | parent = NodePath("/") |
| 883 | |
| 884 | manager = store._manager |
| 885 | groups_dict = {} |
| 886 | for path_group in _iter_nc_groups(store.ds, parent=parent): |
| 887 | group_store = NetCDF4DataStore(manager, group=path_group, **kwargs) |
| 888 | store_entrypoint = StoreBackendEntrypoint() |
| 889 | with close_on_error(group_store): |
| 890 | group_ds = store_entrypoint.open_dataset( |
| 891 | group_store, |
| 892 | mask_and_scale=mask_and_scale, |
| 893 | decode_times=decode_times, |
| 894 | concat_characters=concat_characters, |
| 895 | decode_coords=decode_coords, |
| 896 | drop_variables=drop_variables, |
| 897 | use_cftime=use_cftime, |
| 898 | decode_timedelta=decode_timedelta, |
no test coverage detected