code: def _read_structdesc(f):
      """Function to read in a structure descriptor"""
  
      structdesc = {}
  
      structstart = _read_long(f)
      if structstart != 9:
          raise Exception("STRUCTSTART should be 9")
  
      structdesc["name"] = _read_string(f)
      predef = _read_long(f)
      structdesc["ntags"] = _read_long(f)
      structdesc["nbytes"] = _read_long(f)
  
      structdesc["predef"] = predef & 1
      structdesc["inherits"] = predef & 2
      structdesc["is_super"] = predef & 4
  
      if not structdesc["predef"]:
          structdesc["tagtable"] = []
          for t in range(structdesc["ntags"]):
              structdesc["tagtable"].append(_read_tagdesc(f))
  
          for tag in structdesc["tagtable"]:
              tag["name"] = _read_string(f)
  
          structdesc["arrtable"] = {}
          for tag in structdesc["tagtable"]:
              if tag["array"]:
                  structdesc["arrtable"][tag["name"]] = _read_arraydesc(
                      f
                  )
  
          structdesc["structtable"] = {}
          for tag in structdesc["tagtable"]:
              if tag["structure"]:
                  structdesc["structtable"][
                      tag["name"]
                  ] = _read_structdesc(f)
  
          if structdesc["inherits"] or structdesc["is_super"]:
              structdesc["classname"] = _read_string(f)
              structdesc["nsupclasses"] = _read_long(f)
              structdesc["supclassnames"] = []
              for s in range(structdesc["nsupclasses"]):
                  structdesc["supclassnames"].append(_read_string(f))
              structdesc["supclasstable"] = []
              for s in range(structdesc["nsupclasses"]):
                  structdesc["supclasstable"].append(
                      _read_structdesc(f)
                  )
  
          STRUCT_DICT[structdesc["name"]] = structdesc
  
      else:
          if not structdesc["name"] in STRUCT_DICT:
              raise Exception("PREDEF=1 but can't find definition")
  
          structdesc = STRUCT_DICT[structdesc["name"]]
  
      return structdesc
  
imports: from __future__ import division, print_function, absolute_import
  import struct
  import numpy
  from numpy.compat import asstr
  import tempfile
  import zlib
  import warnings
label_desc: Use image node_id 22 for calling a global function with example usage: _read_structdesc(f) and returns: structdesc