code: def data_storage_shape(self):
          
          if self.data_shape == -1:
              return -1
          else:
              return tuple(self.data_shape[ax]
                           for ax in np.argsort(self.data_axis_order))
docs: Shape tuple of the data as stored in the file.
  
          If no header is available (i.e., before it has been initialized),
          or any of the header entries ``'nx', 'ny', 'nz'`` is missing,
          -1 is returned, which makes reshaping a no-op.
          Otherwise, the returned shape is a permutation of `data_shape`,
          i.e., ``(nx, ny, nz)``, according to `data_axis_order` in the
          following way::
  
              data_shape[i] == data_storage_shape[data_axis_order[i]]
  
          See Also
          --------
          data_shape
          data_axis_order