code: def block_windows(self, res=None):  # setter and getter ?
          
  
          if res is None:
              res = max(self._res_indices.keys())
          self._windows_res = res
          a_file_index_given_res = self._res_indices[res][0]
          with rasterio.open(self._layer_files[a_file_index_given_res]) as src:
              wins_of_first_dst_res_layer = tuple(src.block_windows())
          self.windows = np.array([win[1] for win in wins_of_first_dst_res_layer])
          self.windows_row = np.array([win[0][0] for win in wins_of_first_dst_res_layer])
          self.windows_col = np.array([win[0][1] for win in wins_of_first_dst_res_layer])
docs: Load windows for chunks-wise processing from raster internal tiling (first raster of given resolution).
  
          Arguments:
              res {numeric} -- Resolution determining the raster (1st of resolution group) from which to take the tiling.