Message posté par : diagnekhadim
----------------------------------------
Merci pour vos réponses. J'avais pas fais attention pour les angles, mais elles sont
données avec des mesures d'azimuts avec le 0 qui pointe au nord. Pour faire
correspondre les azimuts correctement sur QGIS, il faut convertir les azimuts en angles
par rapport au nord (plutôt que par rapport à l'est). pour ça il faut soustraire 90°.
Avec quelques lignes de codes python j'ai réussi à créer la couche avec les
emplacements des zones. même si j'ai pas créer automatiquement les polygones,
j'arrive quand même à les tracer sur Qgis et à les orienter par rapport aux axes avec
les bons angles.
-----------------
Code :
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
df = pd.read_excel('output/ZMT_1.xlsx')
def convert_to_decimal(coord):
if isinstance(coord, str):
parts = coord.split(' ')
if len(parts) == 2:
direction = parts[0] # N, S, E, W
degrees_minutes = parts[1].split('°')
degrees = float(degrees_minutes[0])
minutes = float(degrees_minutes[1][:-1])
decimal = degrees + (minutes/60)
if direction in ['S', 'W']:
decimal = -decimal
return decimal
else:
return None
else:
return None
df['Latitude_decimal'] = df['Latitude'].apply(convert_to_decimal)
df['Longitude_decimal'] = df['Longitude'].apply(convert_to_decimal)
df['geometry'] = df.apply(lambda row: Point(row['Longitude_decimal'],
row['Latitude_decimal']), axis=1)
gdf = gpd.GeoDataFrame(df, geometry='geometry', crs='EPSG:4326')
output_path = 'output/zmt_kd.shp'
gdf.to_file(output_path)
print(f'Fichier shapefile enregistré avec succès à {output_path}')
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=362877#p362877
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net