@@ -386,14 +386,17 @@ def _replace(
386
386
variable : Variable = None ,
387
387
coords = None ,
388
388
name : Union [Hashable , None , Default ] = _default ,
389
+ indexes = None ,
389
390
) -> "DataArray" :
390
391
if variable is None :
391
392
variable = self .variable
392
393
if coords is None :
393
394
coords = self ._coords
394
395
if name is _default :
395
396
name = self .name
396
- return type (self )(variable , coords , name = name , fastpath = True )
397
+ # if indexes is None:
398
+ # indexes = self.indexes
399
+ return type (self )(variable , coords , name = name , fastpath = True , indexes = indexes )
397
400
398
401
def _replace_maybe_drop_dims (
399
402
self , variable : Variable , name : Union [Hashable , None , Default ] = _default
@@ -440,7 +443,8 @@ def _from_temp_dataset(
440
443
) -> "DataArray" :
441
444
variable = dataset ._variables .pop (_THIS_ARRAY )
442
445
coords = dataset ._variables
443
- return self ._replace (variable , coords , name )
446
+ indexes = dataset ._indexes
447
+ return self ._replace (variable , coords , name , indexes = indexes )
444
448
445
449
def _to_dataset_split (self , dim : Hashable ) -> Dataset :
446
450
def subset (dim , label ):
@@ -2506,7 +2510,7 @@ def func(self, other):
2506
2510
coords , indexes = self .coords ._merge_raw (other_coords )
2507
2511
name = self ._result_name (other )
2508
2512
2509
- return self ._replace (variable , coords , name )
2513
+ return self ._replace (variable , coords , name , indexes = indexes )
2510
2514
2511
2515
return func
2512
2516
0 commit comments