Commit f846e3f6 authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[COORDINATES] add axis coordinates

parent c4a43a7c
No related merge requests found
Showing with 60 additions and 33 deletions
+60 -33
......@@ -3,7 +3,7 @@ import numpy as np
from extreme_estimator.extreme_models.abstract_model import AbstractModel
from extreme_estimator.extreme_models.margin_model.margin_function.abstract_margin_function import AbstractMarginFunction
from extreme_estimator.gev_params import GevParams
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
class AbstractMarginModel(AbstractModel):
......
......@@ -3,7 +3,7 @@ import matplotlib.pyplot as plt
import numpy as np
from extreme_estimator.gev_params import GevParams
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
class AbstractMarginFunction(object):
......
......@@ -7,7 +7,7 @@ from extreme_estimator.extreme_models.margin_model.margin_function.param_functio
from extreme_estimator.gev_params import GevParams
from extreme_estimator.extreme_models.margin_model.margin_function.abstract_margin_function import \
AbstractMarginFunction
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
class IndependentMarginFunction(AbstractMarginFunction):
......
library(SpatialExtremes)
##Define the spatial_coordinates of each location
##Define the coordinates of each location
n.site <- 30
locations <- matrix(runif(2*n.site, 0, 10), ncol = 2)
colnames(locations) <- c("lon", "lat")
......
from extreme_estimator.extreme_models.max_stable_model.abstract_max_stable_model import AbstractMaxStableModel, \
CovarianceFunction
from extreme_estimator.extreme_models.max_stable_model.max_stable_models import Smith, BrownResnick, Schlather, \
ExtremalT
from extreme_estimator.extreme_models.max_stable_model.abstract_max_stable_model import AbstractMaxStableModel
from extreme_estimator.extreme_models.max_stable_model.max_stable_models import Smith, BrownResnick
from extreme_estimator.estimator.abstract_estimator import AbstractEstimator
from extreme_estimator.estimator.max_stable_estimator import MaxStableEstimator
from extreme_estimator.robustness_plot.multiple_plot import MultiplePlot
from extreme_estimator.robustness_plot.single_plot import SinglePlot
from spatio_temporal_dataset.dataset.simulation_dataset import SimulatedDataset, MaxStableDataset
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.spatial_coordinates.alps_station_2D_coordinates import \
from spatio_temporal_dataset.dataset.simulation_dataset import MaxStableDataset
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.spatial_coordinates.alps_station_2D_coordinates import \
AlpsStation2DCoordinatesBetweenZeroAndOne, AlpsStationCoordinatesBetweenZeroAndTwo
from spatio_temporal_dataset.spatial_coordinates.generated_coordinates import CircleCoordinatesRadius1, \
from spatio_temporal_dataset.coordinates.spatial_coordinates.generated_coordinates import CircleCoordinatesRadius1, \
CircleCoordinatesRadius2
from extreme_estimator.robustness_plot.display_item import DisplayItem
......
......@@ -24,8 +24,8 @@ class AbstractSpatialCoordinates(object):
@classmethod
def from_df(cls, df: pd.DataFrame):
# X and Y coordinates must be defined
assert cls.COORDINATE_X in df.columns and cls.COORDINATE_Y in df.columns
# X and coordinates must be defined
assert cls.COORDINATE_X in df.columns
df_coordinates = df.loc[:, cls.coordinates_columns(df)]
# Potentially, a split column can be specified
s_split = df[cls.COORD_SPLIT] if cls.COORD_SPLIT in df.columns else None
......@@ -33,10 +33,10 @@ class AbstractSpatialCoordinates(object):
@classmethod
def coordinates_columns(cls, df_coord: pd.DataFrame) -> List[str]:
# If a Z coordinate is in the DataFrame, then
coord_columns = [cls.COORDINATE_X, cls.COORDINATE_Y]
if cls.COORDINATE_Z in df_coord.columns:
coord_columns.append(cls.COORDINATE_Z)
coord_columns = [cls.COORDINATE_X]
for additional_coord in [cls.COORDINATE_Y, cls.COORDINATE_Z]:
if additional_coord in df_coord.columns:
coord_columns.append(additional_coord)
return coord_columns
@property
......@@ -101,16 +101,24 @@ class AbstractSpatialCoordinates(object):
# Visualization
def visualization_1D(self):
assert len(self.coordinates_columns(self.df_coordinates)) >= 1
x = self.coordinates[:]
y = np.zeros(len(x))
plt.scatter(x, y)
plt.show()
def visualization_2D(self):
assert len(self.coordinates_columns(self.df_coordinates)) >= 2
x, y = self.coordinates[:, 0], self.coordinates[:, 1]
plt.scatter(x, y)
plt.show()
def visualization_3D(self):
assert len(self.coordinates_columns(self.df_coordinates)) == 3
x, y, z = self.coordinates[:, 0], self.coordinates[:, 1], self.coordinates[:, 2]
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d') # type: Axes3D
x, y, z = self.coordinates[:, 0], self.coordinates[:, 1], self.coordinates[:, 2]
ax.scatter(x, y, z, marker='^')
plt.show()
......
import pandas as pd
import numpy as np
from extreme_estimator.extreme_models.utils import get_loaded_r
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
class AxisCoordinates(AbstractSpatialCoordinates):
pass
class UniformAxisCoordinates(AxisCoordinates):
@classmethod
def from_nb_points(cls, nb_points, start=0.0, end=1.0):
# Sample uniformly inside the circle
r = get_loaded_r()
axis_coordinates = np.array(r.runif(nb_points, min=start, max=end))
df = pd.DataFrame.from_dict({cls.COORDINATE_X: axis_coordinates})
return cls.from_df(df)
from spatio_temporal_dataset.spatial_coordinates.alps_station_3D_coordinates import AlpsStation3DCoordinates
from spatio_temporal_dataset.spatial_coordinates.transformations.transformation_2D import \
from spatio_temporal_dataset.coordinates.spatial_coordinates.alps_station_3D_coordinates import AlpsStation3DCoordinates
from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation_2D import \
BetweenZeroAndOne2DNormalization
from spatio_temporal_dataset.spatial_coordinates.transformed_coordinates import TransformedCoordinates
from spatio_temporal_dataset.coordinates.transformed_coordinates.transformed_coordinates import TransformedCoordinates
class AlpsStation2DCoordinates(AlpsStation3DCoordinates):
......
......@@ -2,9 +2,9 @@ import os.path as op
import pandas as pd
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.spatial_coordinates.transformations.tranformation_3D import AnisotropyTransformation
from spatio_temporal_dataset.spatial_coordinates.transformed_coordinates import TransformedCoordinates
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.transformed_coordinates.tranformation_3D import AnisotropyTransformation
from spatio_temporal_dataset.coordinates.transformed_coordinates.transformed_coordinates import TransformedCoordinates
from utils import get_full_path
......
......@@ -3,7 +3,7 @@ import numpy as np
import pandas as pd
from extreme_estimator.extreme_models.utils import get_loaded_r
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
import matplotlib.pyplot as plt
......
import pandas as pd
import numpy as np
from spatio_temporal_dataset.spatial_coordinates.transformations.abstract_transformation import AbstractTransformation
from spatio_temporal_dataset.coordinates.transformed_coordinates.abstract_transformation import AbstractTransformation
import math
......
from spatio_temporal_dataset.spatial_coordinates.transformations.abstract_transformation import AbstractTransformation
from spatio_temporal_dataset.coordinates.transformed_coordinates.abstract_transformation import AbstractTransformation
import pandas as pd
......
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.spatial_coordinates.transformations.abstract_transformation import AbstractTransformation
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.transformed_coordinates.abstract_transformation import AbstractTransformation
class TransformedCoordinates(AbstractSpatialCoordinates):
......
......@@ -3,13 +3,13 @@ import numpy as np
import os.path as op
import pandas as pd
from spatio_temporal_dataset.temporal_observations.abstract_temporal_observations import AbstractTemporalObservations
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
class AbstractDataset(object):
def __init__(self, temporal_observations: AbstractTemporalObservations, spatial_coordinates: AbstractSpatialCoordinates):
# is_same_index = temporal_observations.index == spatial_coordinates.index # type: pd.Series
# is_same_index = temporal_observations.index == coordinates.index # type: pd.Series
# assert is_same_index.all()
self.temporal_observations = temporal_observations
self.spatial_coordinates = spatial_coordinates
......
from extreme_estimator.extreme_models.margin_model.abstract_margin_model import AbstractMarginModel
from extreme_estimator.extreme_models.max_stable_model.abstract_max_stable_model import AbstractMaxStableModel
from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
from spatio_temporal_dataset.spatial_coordinates.abstract_spatial_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.coordinates.abstract_coordinates import AbstractSpatialCoordinates
from spatio_temporal_dataset.temporal_observations.abstract_temporal_observations import AbstractTemporalObservations
from spatio_temporal_dataset.temporal_observations.annual_maxima_observations import \
MaxStableAnnualMaxima, AnnualMaxima, MarginAnnualMaxima, FullAnnualMaxima
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment