class_docstr: Class for basic Ecat PET header
  
  Sub-parts of standard Ecat File
  
  * main header
  * matrix list
    which lists the information for each frame collected (can have 1 to many
    frames)
  * subheaders specific to each frame with possibly-variable sized data
    blocks
  
  This just reads the main Ecat Header, it does not load the data or read the
  mlist or any sub headers
class_docstr_tok: ["Class","for","basic","Ecat","PET","header","Sub-parts","of","standard","Ecat","File","*","main","header","*","matrix","list","which","lists","the","information","for","each","frame","collected","(","can","have","1","to","many","frames",")","*","subheaders","specific","to","each","frame","with","possibly-variable","sized","data","blocks","This","just","reads","the","main","Ecat","Header",",","it","does","not","load","the","data","or","read","the","mlist","or","any","sub","headers"]
docstr: Initialize Ecat header from bytes object
  
  Parameters
  ----------
  binaryblock : {None, bytes} optional
      binary block to set into header, By default, None in which case we
      insert default empty header block
  endianness : {None, '<', '>', other endian code}, optional
      endian code of binary block, If None, guess endianness
      from the data
  check : {True, False}, optional
      Whether to check and fix header for errors.  No checks currently
      implemented, so value has no effect.
docstr_tok: ["Initialize","Ecat","header","from","bytes","object","Parameters","--","--","--","--","--","binaryblock",":","{","None",",","bytes","}","optional","binary","block","to","set","into","header",",","By","default",",","None","in","which","case","we","insert","default","empty","header","block","endianness",":","{","None",",","'","<","'",",","'",">","'",",","other","endian","code","}",",","optional","endian","code","of","binary","block",",","If","None",",","guess","endianness","from","the","data","check",":","{","True",",","False","}",",","optional","Whether","to","check","and","fix","header","for","errors",".","No","checks","currently","implemented",",","so","value","has","no","effect","."]
code: def __init__(self, binaryblock=None, endianness=None, check=True):
      """Initialize Ecat header from bytes object
  
      Parameters
      ----------
      binaryblock : {None, bytes} optional
          binary block to set into header, By default, None in which case we
          insert default empty header block
      endianness : {None, '<', '>', other endian code}, optional
          endian code of binary block, If None, guess endianness
          from the data
      check : {True, False}, optional
          Whether to check and fix header for errors.  No checks currently
          implemented, so value has no effect.
      """
      super().__init__(binaryblock, endianness, check)
  
imports: import warnings
  from numbers import Integral
  import numpy
  from .arraywriters import make_array_writer
  from .fileslice import canonical_slicers, predict_shape, slice2outax
  from .spatialimages import SpatialHeader, SpatialImage
  from .volumeutils import array_from_file, make_dt_codes, native_code, swapped_code
  from .wrapstruct import WrapStruct
label_desc: Use image node_id 1 to create a new EcatHeader object from inherited base classes: WrapStruct, SpatialHeader with example: obj = EcatHeader(binaryblock, endianness, check)