class_docstr: Class for AFNI header
docstr: Calculate the output shape of the image data
  
  Returns length 3 tuple for 3D image, length 4 tuple for 4D.
  
  Returns
  -------
  (x, y, z, t) : tuple of int
  
  Notes
  -----
  ``DATASET_RANK[0]`` gives number of spatial dimensions (and apparently
  must be 3). ``DATASET_RANK[1]`` gives the number of sub-bricks.
  ``DATASET_DIMENSIONS`` is length 3, giving the number of voxels in i,
  j, k.
code: def _calc_data_shape(self):
      """
      Calculate the output shape of the image data
  
      Returns length 3 tuple for 3D image, length 4 tuple for 4D.
  
      Returns
      -------
      (x, y, z, t) : tuple of int
  
      Notes
      -----
      ``DATASET_RANK[0]`` gives number of spatial dimensions (and apparently
      must be 3). ``DATASET_RANK[1]`` gives the number of sub-bricks.
      ``DATASET_DIMENSIONS`` is length 3, giving the number of voxels in i,
      j, k.
      """
      dset_rank = self.info["DATASET_RANK"]
      shape = tuple(self.info["DATASET_DIMENSIONS"][: dset_rank[0]])
      n_vols = dset_rank[1]
      return shape + (n_vols,)
  
imports: import os
  import re
  from copy import deepcopy
  import numpy
  from .arrayproxy import ArrayProxy
  from .fileslice import strided_scalar
  from .spatialimages import HeaderDataError, ImageDataError, SpatialHeader, SpatialImage
  from .volumeutils import Recoder
label_desc: Use image node_id 5 for calling the AFNIHeader obj's underlying member method code with example usage: obj._calc_data_shape() and returns: unknown