Poverty in Paris urban area
[1]:
from pynsee.localdata import get_local_metadata, get_nivgeo_list, get_area_list, get_descending_area, get_local_data
from pynsee.geodata import get_geodata, get_geodata_list
import pandas as pd
import matplotlib.cm as cm
import matplotlib.pyplot as plt
import geopandas as gpd
import re
[2]:
# get a list all data available : datasets and variables
metadata = get_local_metadata()
# geographic metadata
nivgeo = get_nivgeo_list()
# get geographic area list
area = get_area_list()
# get all communes in Paris urban area
areaParis = get_descending_area('uniteUrbaine2020', '00851')
areaParis = areaParis[areaParis['type'].isin(['ArrondissementMunicipal', 'Commune'])]
# get selected communes identifiers
code_com_paris = areaParis.code.to_list()
[3]:
code_com_paris = [c for c in code_com_paris if re.match("^75|^93|^94|^92", c)]
len(code_com_paris)
[3]:
144
[4]:
# get numeric values from INSEE database
dataParis = get_local_data(dataset_version='GEO2020FILO2017',
variables = 'INDICS_FILO_DISP_DET',
nivgeo = 'COM',
geocodes = code_com_paris)
#select poverty rate data, exclude paris commune
data_plot = dataParis.loc[dataParis.UNIT=='TP60']
data_plot = data_plot.loc[data_plot.CODEGEO!='75056']
# get geographical data list
geodata_list = get_geodata_list()
# get departments geographical limits
com = get_geodata('ADMINEXPRESS-COG-CARTO.LATEST:commune')
comIdf = com[com['insee_reg'] == '11']
comIdf = comIdf[['id', 'nom_m', 'insee_com', 'geometry']]
comIdf = comIdf.rename(columns={'insee_com': 'CODEGEO'})
# get arrondissement geographical limits
arr = get_geodata('ADMINEXPRESS-COG-CARTO.LATEST:arrondissement_municipal')
arr75 = arr[arr.insee_com.str.startswith('75')]
arr75 = arr75[['id', 'nom_m', 'insee_arm', 'geometry']]
arr75 = arr75.rename(columns={'insee_arm': 'CODEGEO'})
# make ile de frande map by concatenation
mapidf = pd.concat([comIdf, arr75]).reset_index()
Existing environment variable sirene_key used, instead of locally saved credentials
[5]:
# merge values and geographic limits
mapparis = mapidf.merge(data_plot, how = 'right', on = 'CODEGEO')
mapparis = gpd.GeoDataFrame(mapparis).set_crs("EPSG:4326", allow_override=True)
#plot
fig, ax = plt.subplots(1,1,figsize=(15,15))
mapparis.plot(column='OBS_VALUE', cmap=cm.viridis, aspect=1,
legend=True, ax=ax, legend_kwds={'shrink': 0.3})
ax.set_axis_off()
ax.set(title='Poverty rate in Paris urban area in 2017')
plt.show()
fig.savefig('poverty_paris_urban_area.svg',
format='svg', dpi=1200,
bbox_inches = 'tight',
pad_inches = 0)