def process()

in granule_ingester/granule_ingester/processors/kelvintocelsius.py [0:0]


    def process(self, tile: NexusTile, *args, **kwargs):
        the_tile_type = tile.tile.WhichOneof("tile_type")
        logger.debug(f'processing granule: {tile.summary.granule}')
        the_tile_data = getattr(tile.tile, the_tile_type)
        kelvins = ['kelvin', 'degk', 'deg_k', 'degreesk', 'degrees_k', 'degree_k', 'degreek']

        if 'dataset' in kwargs:
            ds = kwargs['dataset']
            variable_name = json.loads(tile.summary.data_var_name)
            if not isinstance(variable_name, list):
                variable_name = [variable_name]
            logger.debug(f'K2C tile.summary.data_var_name: {variable_name}')
            variable_unit = self.__retrieve_var_units(variable_name, ds)
            if len(variable_unit) < 1:
                return tile
            variable_unit = [k.lower() for k in variable_unit]
            if any([unit in variable_unit for unit in kelvins]):
                var_data = from_shaped_array(the_tile_data.variable_data) - 273.15
                the_tile_data.variable_data.CopyFrom(to_shaped_array(var_data))
        
        return tile