import geopandas as gpd
url = "obstacles.geojson"
df_obstacle = gpd.read_file(url)
df_obstacle.head()
Remarquons la présence de la colonne geometry
de type POINT
.
Les hauteurs des obstacles sont indiquées en pied vertical_unit=FT
. Elles seront plus compréhensibles si elles sont exprimées en mètres.
# renommer les colonnes existantes en ajoutant le suffixe '_ft'
df_obstacle.rename(columns={
'elevation':'elevation_ft',
'height':'height_ft',
}, inplace=True)
df_obstacle.head()
# créer les colonnes métriques avec un suffixe '_m'
# calculer ces colonnes métriques, arrondies à l'entier près
df_obstacle['elevation_m'] = (df_obstacle['elevation_ft'].astype(int) * 0.3048).astype(int)
df_obstacle['height_m'] = (df_obstacle['height_ft'].astype(int) * 0.3048).astype(int)
df_obstacle.head()
# arranger l'ordre des colonnes
cols = df_obstacle.columns.tolist()
cols = ['description',
'elevation_ft',
'elevation_m',
'height_ft',
'height_m',
'light',
'marked',
'name',
'vertical_unit',
'geometry',
]
df_obstacle = df_obstacle[cols]
df_obstacle.head()
Les obstacles à la navigation sont de différentes natures, il n'y a pas que des mâts de mesure du vent. Nous pouvons dresser la liste par types d'obstacles.
# visualiser les types d'obstacles
print(df_obstacle.description.unique())
Dans cet exercice, seuls les mâts de mesure du vent Mât
nous intéressent, nous pouvons les isoler :
df_mat = df_obstacle.loc[df_obstacle['description'] == 'Mât']
df_mat.head()
Nous pouvons calculer le nombre de mâts :
print("Il y a "+str(len(df_mat))+" mâts de mesure du vent répertoriés dans ce fichier.")