Skip to content

Instantly share code, notes, and snippets.

@vviguie
Created September 22, 2021 12:16
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/71a53c723cbffa4c3c7befc464cfa919 to your computer and use it in GitHub Desktop.
Save vviguie/71a53c723cbffa4c3c7befc464cfa919 to your computer and use it in GitHub Desktop.
Script pour le TP sous format Jupyter
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Exemple de script pour l'analyse des résultats de NEDUM"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Importation des données"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"outNedum = pd.read_csv('output_NEDUM.csv', sep = ',')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exemples de courbes et de cartes\n",
"### 1. Courbe des loyers en fonction de la distance"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#pour fermer les autres figures\n",
"plt.close('all')\n",
"\n",
"#coordonnées du centre de Paris\n",
"X_centre_Paris=653750\n",
"Y_centre_Paris=6862350\n",
"outNedum['distance_centre'] = np.sqrt((outNedum['X']-X_centre_Paris) ** 2 + (outNedum['Y']-Y_centre_Paris) ** 2)/1000\n",
"plt.scatter(outNedum['distance_centre'],outNedum['simul_2030_sc1_BAU_loyer'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2. Carte de la construction "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#pour fermer les autres figures\n",
"plt.close('all')\n",
"\n",
"#'-logement' est en nombre de m2 construits par nombre de km2 au sol\n",
"# Attention, pour avoir le Coefficient d'Occupation des Sols, il faut diviser par 10^6 \n",
"def carto(x):\n",
" plt.figure()\n",
" plt.scatter(outNedum['X'], outNedum['Y'],20, x) #construction\n",
" plt.colorbar()\n",
" \n",
"carto(outNedum['simul_2030_sc3_ZI_logement'] * outNedum['coeff_land'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Quelques calculs\n",
"### Calcul de la densité de population"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Attention, il faut multiplier par 'coeff_land' qui représente la part du pixel qui est urbanisable\n",
"sc1_densite_pop = (outNedum['simul_2030_sc1_BAU_logement'] * outNedum['coeff_land'] \n",
" / outNedum['simul_2030_sc1_BAU_taille'] )#en ménages / km2\n",
"sc1_densite_pop"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Calcul des émissions totales de la ville\n",
"Les variables `emissions` donnent la quantité d'émissions pour un ménage vivant dans le carreau (en gCO2 / an)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sc1_emission_tot = (np.sum( sc1_densite_pop * outNedum['simul_2030_sc1_BAU_emissions']) \n",
" / np.sum(sc1_densite_pop) /1000) #en moyenne par ménage en kgCO2\n",
"sc1_emission_tot"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Calcul de la surface urbanisée"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"borne_urba = 100000 #en dessous de cette densité de construction on considère qu'on n'est plus en ville \n",
"sc1_surface_urba = np.sum(outNedum['coeff_land']*(outNedum['simul_2030_sc1_BAU_logement']>borne_urba)) #en km2\n",
"sc1_surface_urba"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Scénario 3: zone inondable\n",
"`part_inond` représente la part de la surface constructible qui est située en zone inondable"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"carto(outNedum['part_inond'])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment