Construct a DataArray by indexing this dataset
(self, name: Hashable)
| 1241 | return self._replace(variables, coord_names, dims, indexes=indexes) |
| 1242 | |
| 1243 | def _construct_dataarray(self, name: Hashable) -> DataArray: |
| 1244 | """Construct a DataArray by indexing this dataset""" |
| 1245 | from xarray.core.dataarray import DataArray |
| 1246 | |
| 1247 | try: |
| 1248 | variable = self._variables[name] |
| 1249 | except KeyError: |
| 1250 | _, name, variable = _get_virtual_variable(self._variables, name, self.sizes) |
| 1251 | |
| 1252 | needed_dims = set(variable.dims) |
| 1253 | |
| 1254 | coords: dict[Hashable, Variable] = {} |
| 1255 | # preserve ordering |
| 1256 | for k in self._variables: |
| 1257 | if k in self._indexes: |
| 1258 | add_coord = self._indexes[k].should_add_coord_to_array( |
| 1259 | k, self._variables[k], needed_dims |
| 1260 | ) |
| 1261 | else: |
| 1262 | var_dims = set(self._variables[k].dims) |
| 1263 | add_coord = k in self._coord_names and var_dims <= needed_dims |
| 1264 | |
| 1265 | if add_coord: |
| 1266 | coords[k] = self._variables[k] |
| 1267 | |
| 1268 | indexes = filter_indexes_from_coords(self._indexes, set(coords)) |
| 1269 | |
| 1270 | return DataArray(variable, coords, name=name, indexes=indexes, fastpath=True) |
| 1271 | |
| 1272 | @property |
| 1273 | def _attr_sources(self) -> Iterable[Mapping[Hashable, Any]]: |
no test coverage detected