Skip to content

Instantly share code, notes, and snippets.

@vviguie
Last active September 22, 2021 12:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vviguie/f23508efc43dd6d2fdd132eccadbac1c to your computer and use it in GitHub Desktop.
Save vviguie/f23508efc43dd6d2fdd132eccadbac1c to your computer and use it in GitHub Desktop.
script_analyse_without_geopandas.py
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""Exemple de script pour l'analyse des résultats de NEDUM"""
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
##################################
#%% Importation des données
##################################
outNedum = pd.read_csv('output_NEDUM.csv', sep = ',')
##################################
#%% Exemples de courbes et de cartes
##################################
#%% 1. Courbe des loyers en fonction de la distance
#pour fermer les autres figures
plt.close('all')
#coordonnées du centre de Paris
X_centre_Paris=653750
Y_centre_Paris=6862350
outNedum['distance_centre'] = np.sqrt((outNedum['X']-X_centre_Paris) ** 2 + (outNedum['Y']-Y_centre_Paris) ** 2)/1000
plt.scatter(outNedum['distance_centre'],outNedum['simul_2030_sc1_BAU_loyer'])
#%% 2. Carte de la construction
#pour fermer les autres figures
plt.close('all')
#'-logement' est en nombre de m2 construits par nombre de km2 au sol
# Attention, pour avoir le Coefficient d'Occupation des Sols, il faut diviser par 10^6
plt.figure()
plt.scatter(outNedum['X'], outNedum['Y'],20, outNedum['simul_2030_sc3_ZI_logement'] * outNedum['coeff_land']) #construction
plt.colorbar()
#%% 3. Si jamais on veut enregistrer la dernière figure affichée
plt.savefig("nom_de_la_figure.png", dpi=200)
##################################
#%% Calcul de la densité de population
##################################
# Attention, il faut multiplier par 'coeff_land' qui représente la part du pixel qui est urbanisable
sc1_densite_pop = outNedum['simul_2030_sc1_BAU_logement'] * outNedum['coeff_land'] / outNedum['simul_2030_sc1_BAU_taille'] #en ménages / km2
##################################
#%% Calcul des émissions totales de la ville
##################################
#Les variables 'emissions' donnent la quantité d'émissions pour un ménage vivant dans le carreau (en gCO2 / an)
sc1_emission_tot = np.sum( sc1_densite_pop * outNedum['simul_2030_sc1_BAU_emissions']) / np.sum(sc1_densite_pop) /1000 #en moyenne par ménage en kgCO2
##################################
#%% Calcul de la surface urbanisée
##################################
borne_urba = 100000 #en dessous de cette densité de construction on considère qu'on n'est plus en ville
sc1_surface_urba = np.sum(outNedum['coeff_land']*(outNedum['simul_2030_sc1_BAU_logement']>borne_urba)) #en km2
##################################
#%% Scénario 3: zone inondable
##################################
#'part_inond' représente la part de la surface constructible qui est située en zone inondable
plt.figure()
plt.scatter(outNedum['X'], outNedum['Y'],20, outNedum['part_inond'])
plt.colorbar()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment