97 lines
4.0 KiB
Python
97 lines
4.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import pyproj
|
|
import os
|
|
import pandas as pd
|
|
|
|
directory_path = 'Y:\MISSIONS\Eau\8 - Projet recherche Célé\Lucie\Science\Canoo\continuum Ce guillaume 2020\dossier_brut_2020'
|
|
|
|
dataframes = []
|
|
|
|
for filename in os.listdir(directory_path):
|
|
if filename.endswith('.csv'):
|
|
file_path = os.path.join(directory_path, filename)
|
|
df = pd.read_csv(file_path, delimiter=',', skiprows=18, parse_dates=[0])
|
|
dataframes.append(df)
|
|
|
|
merged_dataframe = pd.concat(dataframes, ignore_index=True)
|
|
merged_dataframe.sort_values(by=['Date Heure'], inplace=True)
|
|
merged_dataframe.reset_index(drop=True, inplace=True)
|
|
|
|
|
|
|
|
columns_to_suppress_indices = [4, 5, 7, 9, 10, 11, 12, 21, 22]
|
|
|
|
if max(columns_to_suppress_indices) >= len(merged_dataframe.columns):
|
|
print("Invalid column index found.")
|
|
else:
|
|
df_suppressed = merged_dataframe.drop(merged_dataframe.columns[columns_to_suppress_indices], axis=1)
|
|
|
|
#supprimer les données manquantes
|
|
#df_suppressed.dropna(subset=['Latitude (°)', 'Longitude (°)'], inplace=True)
|
|
|
|
# Define the coordinate systems
|
|
wgs84 = pyproj.CRS("EPSG:4326")
|
|
lambert93 = pyproj.CRS("EPSG:2154")
|
|
|
|
# Create the Transformer to perform the conversion
|
|
transformer = pyproj.Transformer.from_crs(wgs84, lambert93, always_xy=True)
|
|
|
|
# Function to convert WGS84 to Lambert 93 for the entire DataFrame
|
|
def convert_to_lambert93(row):
|
|
x, y = transformer.transform(row["Longitude (°)"], row["Latitude (°)"])
|
|
row["Lambert_X"] = x
|
|
row["Lambert_Y"] = y
|
|
return row
|
|
|
|
# Apply the conversion to the entire DataFrame row-wise
|
|
df_suppressed = df_suppressed.apply(convert_to_lambert93, axis=1)
|
|
|
|
print(df_suppressed)
|
|
|
|
|
|
|
|
#alors il faut ensuit calculer l'hypothénuse entre chacun de mes points : peut être résolu de façon booléenne
|
|
def distance_entre_points(x1, y1, x2, y2):
|
|
distance = ((x2 - x1)**2 + (y2 - y1)**2) ** 0.5
|
|
return distance
|
|
|
|
# Créer une nouvelle colonne 'Distance' dans le DataFrame
|
|
df_suppressed['Distance'] = 0.0
|
|
|
|
# Créer une nouvelle colonne 'Distance Cumulative' pour la somme cumulative des distances
|
|
df_suppressed['Distance Cumulative'] = 0.0
|
|
|
|
# Variable pour garder la somme cumulative des distances
|
|
cumulative_distance = 0.0
|
|
|
|
|
|
for i in range(len(df_suppressed) - 3):
|
|
x1, y1 = df_suppressed.loc[i, 'Lambert_X'], df_suppressed.loc[i, 'Lambert_Y']
|
|
x2, y2 = df_suppressed.loc[i + 1, 'Lambert_X'], df_suppressed.loc[i + 1, 'Lambert_Y']
|
|
distance = distance_entre_points(x1, y1, x2, y2)
|
|
df_suppressed.loc[i + 1, 'Distance'] = distance
|
|
cumulative_distance += distance
|
|
df_suppressed.loc[i + 1, 'Distance Cumulative'] = cumulative_distance
|
|
|
|
# Afficher le DataFrame avec les colonnes 'Distance' et 'Distance Cumulative' mises à jour
|
|
print(df_suppressed)
|
|
|
|
df_suppressed.to_csv('Y:\MISSIONS\Eau\8 - Projet recherche Célé\Lucie\continuum\continuum lucie + fabs + steph\df_suppressedbrut_bon_dernier.csv', index=False)
|
|
#faire les graohs des paramètres en fonction de la distance = variations des paramètres
|
|
|
|
#Essayer tous les paramètres
|
|
#comparer avec les données de 2020.
|
|
#corriger la pression de la baro.
|
|
|
|
#Donc changement de stratégie. Je vais essayer de retrouver les données GPS manquante par interpolation de celle-ci.
|
|
#Pour cela on va faire un travail en sept étapes:
|
|
# 1. Sur Qgis exporter un fichier csv. du cours d'eau sous forme de points avec les coordonnées GPS en Lambert 93.
|
|
# 2. J'importe ce nouveau csv dans Python et je calcule la distance entre chaque points sur toute ma rivière.
|
|
# 3. A partir de là je calcul la distance cumulative entre chacun de mes points sur tous mon cours d'eau.
|
|
# 4. Ensuite je regarde à la mano là où j'ai des trous. Je calcul sur Qgis la distance manquante de point GPS
|
|
# 5. Distance manquante / nombres de mesures = distance entre chaque points de mesure (exemple 2m)
|
|
# 6. Je calcul la distance cumulative au niveau de mes trous
|
|
#7. Je vais chercher dans le tableau 1 le coordonnée GPS correspondant à la distance cumulative similaire.
|
|
#8. Le tour est joué.
|