Get path to attached data file with given resource identifer. If no
        data file with given id exists the result will be None.

        Raise ValueError if an image archive with the given resource identifier
        is attached to the model run instead of a data file.

        Parameters
        ----------
        identifier : string
            Unique model run identifier
        resource_id : string
            Unique attachment identifier

        Returns
        -------
        string, string
            Path to attached data file on disk and attachments MIME type

def get_data_file_attachment(self, identifier, resource_id):
        """Get path to attached data file with given resource identifer. If no
        data file with given id exists the result will be None.

        Raise ValueError if an image archive with the given resource identifier
        is attached to the model run instead of a data file.

        Parameters
        ----------
        identifier : string
            Unique model run identifier
        resource_id : string
            Unique attachment identifier

        Returns
        -------
        string, string
            Path to attached data file on disk and attachments MIME type
        """
        # Get model run to ensure that it exists. If not return None
        model_run = self.get_object(identifier)
        if model_run is None:
            return None, None
        # Ensure that attachment with given resource identifier exists.
        if not resource_id in model_run.attachments:
            return None, None
        # Raise an exception if the attached resource is not a data file
        attachment = model_run.attachments[resource_id]
        filename = os.path.join(model_run.attachment_directory, resource_id)
        return filename, attachment.mime_type