diff --git a/resolve/data/observation.py b/resolve/data/observation.py index b9b2b7f424880303452873df17bdd6aa1e8cd1a5..b4fe3301062a6d1f032b8626ceb1d84ac24b7963 100644 --- a/resolve/data/observation.py +++ b/resolve/data/observation.py @@ -334,13 +334,23 @@ class Observation(BaseObservation): antpos.append(val) pol = Polarization.from_list(dct["polarization"]) direction = Direction.from_list(dct["direction"]) - slc = slice(None) if lo_hi_index is None else slice(*lo_hi_index) + if lo_hi_index is None: + vis = dct["vis"] + weight = dct["weight"] + freq = dct["freq"] + else: + slc = slice(*lo_hi_index) + # Convert view into its own array + vis = dct["vis"][..., slc].copy() + weight = dct["weight"][..., slc].copy() + freq = dct["freq"][slc].copy() + del dct return Observation( AntennaPositions.from_list(antpos), - dct["vis"][..., slc], - dct["weight"][..., slc], + vis, + weight, pol, - dct["freq"][slc], + freq, direction, )