docs: def _read(self, directory, filename, session, path, name, extension, spatial, spatialReferenceID, replaceParamFile):
          """
          Channel Input File Read from File Method
          """
          # Set file extension property
          self.fileExtension = extension
  
          # Dictionary of keywords/cards and parse function names
          KEYWORDS = {'ALPHA': cic.cardChunk,
                      'BETA': cic.cardChunk,
                      'THETA': cic.cardChunk,
                      'LINKS': cic.cardChunk,
                      'MAXNODES': cic.cardChunk,
                      'CONNECT': cic.connectChunk,
                      'LINK': cic.linkChunk}
  
          links = []
          connectivity = []
  
          # Parse file into chunks associated with keywords/cards
          with open(path, 'r') as f:
              chunks = pt.chunk(KEYWORDS, f)
  
          # Parse chunks associated with each key
          for key, chunkList in iteritems(chunks):
              # Parse each chunk in the chunk list
              for chunk in chunkList:
                  # Call chunk specific parsers for each chunk
                  result = KEYWORDS[key](key, chunk)
  
                  # Cases
                  if key == 'LINK':
                      # Link handler
                      links.append(self._createLink(result, replaceParamFile))
  
                  elif key == 'CONNECT':
                      # Connectivity handler
                      connectivity.append(result)
  
                  else:
                      # Global variable handler
                      card = result['card']
                      value = result['values'][0]
                      # Cases
                      if card == 'LINKS':
                          self.links = int(value)
                      elif card == 'MAXNODES':
                          self.maxNodes = int(value)
                      elif card == 'ALPHA':
                          self.alpha = float(vrp(value, replaceParamFile))
                      elif card == 'BETA':
                          self.beta = float(vrp(value, replaceParamFile))
                      elif card == 'THETA':
                          self.theta = float(vrp(value, replaceParamFile))
  
          self._createConnectivity(linkList=links, connectList=connectivity)
  
          if spatial:
              self._createGeometry(session, spatialReferenceID)