Main

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.7 kB
3
Indexable
Never
from fonctions_flou import *
from fonctions_autres import *
import numpy as np

import matplotlib.pyplot as plt

# FAIRE GAFFE, LES DONNES NETCDF SONT : [ORDONNEE;ABSCISSE]

# mettre les notations de Kauffman sur le rapport / dire que la T norm c'est min / Bibliographie,... TOUT METTRE
# dire ce qu'on aurait pu faire si on avait plus de temps

# longitude / latitude / time / d = divergence / r = humidity / t = temperature / u=uwind / v=vwind / vo=vortcity

# ________________________


# Les calculs se font en unités SI (mètres, secondes,...). Pour l'affichage, nous convertissons cependant l'abscisse
# et l'ordonnée en mètre
# plt.streamplot(met_to_deg(lon), met_to_deg(np.flip(lat)), np.flip(uwind[t,:,:], 0), np.flip(vwind[t,:,:], 0),
#               density=5,linewidth=0.3,color=np.flip(psi, axis=0))


t0 = t_TC0 + 100  # Début de l'étude
t1 = t0 + 50
dt = 16

for t in range(t0 + dt, t1, dt):
    # Espace de travail pour le cyclone
    rayon_espace = 1000000  # En mètre
    range_lon = np.isclose(lon, x_TC[t0], atol=rayon_espace)
    range_lat = np.isclose(lat, y_TC[t0], atol=rayon_espace)
    range_grid = np.meshgrid(range_lon, range_lat)
    # Nous souhaitons les emplacements où les valeurs en lon ET en lat sont True
    study_grid = range_grid[0] * range_grid[1]

    print("______________________SF1________________________")
    SF1_temperature = np.where(study_grid, temperature[t0, :, :], float('nan'))

    SF1_temperature = np.nanmean(SF1_temperature)
    SF1_dwind = variation_vitesse_TC(t0, study_grid)
    SF1_lifetime = (t0 - t_TC0) / 24
    duree_de_vie = SF1_compute(SF1_temperature, SF1_dwind, SF1_lifetime, want_to_plot=False)

    print("Température :", np.rint(SF1_temperature), "Variation de la vitesse :", np.rint(SF1_dwind),
          "Age du cyclone :", np.rint(SF1_lifetime))
    print("__________________SORTIE SF1 - Durée de Vie espérée_____________________")
    print("Sortie :", duree_de_vie)
    print('La durée de vie réelle restante est :', (tmax - t_TC0) / 24, 'jours')

    #plt.subplot(1, 2, 1)
    estimation2(t0, t, dt, uwind, vwind, study_grid)

    print('___________________SF4 - Trajectoire Tendance____________________')
    #plt.subplot(1, 2, 2)
    SF4_tendance = regression_trajectoire_TC(t0, want_to_plot=False)
    SF4_angle_TC = SF4_angle(t0, -12)  # Calcul l'angle entre un point à t0 et à t=t0-12
    print('Angle_TC : ', np.rint(SF4_angle_TC), "Angle_Tendance :", np.rint(SF4_tendance))
    print('_______________________SORTIE SF4 - Prediction _________________________')
    SF4_angle = SF4_conclusion(SF4_angle_TC, SF4_tendance, t0)[1]
    print('Sortie : SF4', SF4_angle)

plt.show()