#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on September 2024 @author: Phil Vernant philippe.vernant@umontpellier.fr """ # import libraries import numpy as np import pandas as pd import matplotlib import matplotlib.pyplot as plt from pyproj import Transformer #----------------------------------------------------------------------------------------- gps = pd.read_excel('example_mesure.xlsx') equipes = gps.Team.unique() # on liste les stations stations = gps.Site.unique() # on liste les stations print ('points mesurées :', stations) #conversion en UTM31 # on transforme les coordonnées WGS84 en UTM31N transformer = Transformer.from_crs("EPSG:4326", "epsg:32631", always_xy=True) gps['E'],gps['N'] = (transformer.transform(gps.Lon,gps.Lat)) #creation d'un tableau de donnees pour les valeurs moyennes gps_m = pd.DataFrame(columns=['sta','n_obs','E','N','Z','sE','sN','sZ']) gps_m.sta = stations # calcul des moyennes et écarts types pour toutes les equipes for i, sta in enumerate(stations): # print ('processing :',sta) gps_m.loc[i, 'n_obs'] = len(gps.E[gps.Site==sta]) gps_m.loc[i, 'E'] = np.mean(gps.E[gps.Site==sta]) gps_m.loc[i, 'N'] = np.mean(gps.N[gps.Site==sta]) gps_m.loc[i, 'Z'] = np.mean(gps.Elev[gps.Site==sta]) gps_m.loc[i, 'sE'] = np.std(gps.E[gps.Site==sta]) gps_m.loc[i, 'sN'] = np.std(gps.N[gps.Site==sta]) gps_m.loc[i, 'sZ'] = np.std(gps.Elev[gps.Site==sta]) print ('\nValeurs pour toutes les equipe :') print(gps_m) print (len(gps.E[(gps.Site=='Ref') & (gps.Team=='EQ2')])) # calcul des moyennes et écarts types par equipe for j, EQ in enumerate(equipes): print ('\nValeurs pour l\'equipe :',EQ) for i, sta in enumerate(stations): gps_m.loc[i, 'n_obs'] = len(gps.E[(gps.Site==sta) & (gps.Team==EQ)]) gps_m.loc[i, 'E'] = np.mean(gps.E[(gps.Site==sta) & (gps.Team==EQ)]) gps_m.loc[i, 'N'] = np.mean(gps.N[(gps.Site==sta) & (gps.Team==EQ)]) gps_m.loc[i, 'Z'] = np.mean(gps.Elev[(gps.Site==sta) & (gps.Team==EQ)]) gps_m.loc[i, 'sE'] = np.std(gps.E[(gps.Site==sta) & (gps.Team==EQ)]) gps_m.loc[i, 'sN'] = np.std(gps.N[(gps.Site==sta) & (gps.Team==EQ)]) gps_m.loc[i, 'sZ'] = np.std(gps.Elev[(gps.Site==sta) & (gps.Team==EQ)]) print(gps_m)