visualization_margin_model.py 1.44 KiB
import unittest

from extreme_estimator.gev_params import GevParams
from extreme_estimator.extreme_models.margin_model.smooth_margin_model import LinearShapeDim1MarginModel, \
    LinearAllParametersAllDimsMarginModel
from spatio_temporal_dataset.coordinates.spatial_coordinates.generated_spatial_coordinates import CircleCoordinates
from spatio_temporal_dataset.coordinates.unidimensional_coordinates.coordinates_1D import LinSpaceCoordinates


class VisualizationMarginModel(unittest.TestCase):
    DISPLAY = True
    nb_points = 50
    margin_model = [LinearShapeDim1MarginModel, LinearAllParametersAllDimsMarginModel][-1]

    @classmethod
    def example_visualization_2D(cls):
        spatial_coordinates = CircleCoordinates.from_nb_points(nb_points=cls.nb_points)
        margin_model = cls.margin_model(coordinates=spatial_coordinates)
        if cls.DISPLAY:
            margin_model.margin_function_sample.visualize()

    @classmethod
    def example_visualization_1D(cls):
        coordinates = LinSpaceCoordinates.from_nb_points(nb_points=cls.nb_points)
        # MarginModel Linear with respect to the shape (from 0.01 to 0.02)
        margin_model = cls.margin_model(coordinates=coordinates, params_sample={GevParams.GEV_SHAPE: 0.02})
        if cls.DISPLAY:
            margin_model.margin_function_sample.visualize()


if __name__ == '__main__':
    VisualizationMarginModel.example_visualization_1D()
    VisualizationMarginModel.example_visualization_2D()