def getInstrParameter(self, value, header, keyword):
        """ This method gets a instrument parameter from a
            pair of task parameters: a value, and a header keyword.

            The default behavior is:
              - if the value and header keyword are given, raise an exception.
              - if the value is given, use it.
              - if the value is blank and the header keyword is given, use
                the header keyword.
              - if both are blank, or if the header keyword is not
                found, return None.
        """
        if isinstance(value, str) and value in ['None', '', ' ', 'INDEF']:
            value = None

        if value and (keyword is not None and keyword.strip() != ''):
            exceptionMessage = "ERROR: Your input is ambiguous!  Please specify either a value or a keyword.\n  You specifed both " + str(value) + " and " + str(keyword)
            raise ValueError(exceptionMessage)

        elif value is not None and value != '':
            return self._averageFromList(value)

        elif keyword is not None and keyword.strip() != '':
            return self._averageFromHeader(header, keyword)

        else:
            return None