def process()

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


    def process(self, tile, dataset):
        tile_type = tile.tile.WhichOneof("tile_type")
        tile_data = getattr(tile.tile, tile_type)

        tile_summary = tile.summary

        spec_list = tile_summary.section_spec.split(',')

        depth_index = None

        for spec in spec_list:
            v = spec.split(':')

            if v[0] == self.dimension:
                depth_index = int(v[1])
                break

        if depth_index is None:
            logger.warning(f"Cannot compute depth bounds for tile {str(tile.summary.tile_id)}. Unable to determine depth index from spec")

            return tile

        elevation = self.e[depth_index]

        # if tile_type in ['GridTile', 'GridMultiVariableTile']:
        #     elev_shape = (len(from_shaped_array(tile_data.latitude)), len(from_shaped_array(tile_data.longitude)))
        # else:
        #     elev_shape = from_shaped_array(tile_data.latitude).shape

        elev_shape = from_shaped_array(tile_data.variable_data).shape

        # print(f'Elev shape: {elev_shape}')

        tile_data.elevation.CopyFrom(
            to_shaped_array(
                np.full(
                    elev_shape,
                    elevation
                )
            )
        )

        tile_data.max_elevation = elevation
        tile_data.min_elevation = elevation

        return tile