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