.. _dataireprst: ======================================= IREP: registre des émissions polluantes ======================================= .. only:: html **Links:** :download:`notebook `, :downloadlink:`html `, :download:`python `, :downloadlink:`slides `, :githublink:`GitHub|_doc/notebooks/data/data_irep.ipynb|*` Ce jeu de données est disponible sous le nombre `Registre des émissions polluantes `__. .. code:: ipython3 from jyquickhelper import add_notebook_menu add_notebook_menu() .. contents:: :local: .. code:: ipython3 %matplotlib inline Récupération des données ------------------------ Les données ont été préalablement téléchargées et zippées. .. code:: ipython3 from ensae_teaching_cs.data import load_irep load_irep() .. parsed-literal:: ['2003/emissions.csv', '2003/etablissements.csv', '2003/Prelevements.csv', '2003/Prod_dechets_dangereux.csv', '2003/Prod_dechets_non_dangereux.csv', '2003/Trait_dechets_dangereux.csv', '2003/Trait_dechets_non_dangereux.csv', '2004/emissions.csv', '2004/etablissements.csv', '2004/Prelevements.csv', '2004/Prod_dechets_dangereux.csv', '2004/Prod_dechets_non_dangereux.csv', '2004/Trait_dechets_dangereux.csv', '2004/Trait_dechets_non_dangereux.csv', '2005/emissions.csv', '2005/etablissements.csv', '2005/Prelevements.csv', '2005/Prod_dechets_dangereux.csv', '2005/Prod_dechets_non_dangereux.csv', '2005/Trait_dechets_dangereux.csv', '2005/Trait_dechets_non_dangereux.csv', '2006/emissions.csv', '2006/etablissements.csv', '2006/Prelevements.csv', '2006/Prod_dechets_dangereux.csv', '2006/Prod_dechets_non_dangereux.csv', '2006/Trait_dechets_dangereux.csv', '2006/Trait_dechets_non_dangereux.csv', '2007/emissions.csv', '2007/etablissements.csv', '2007/Prelevements.csv', '2007/Prod_dechets_dangereux.csv', '2007/Prod_dechets_non_dangereux.csv', '2007/Trait_dechets_dangereux.csv', '2007/Trait_dechets_non_dangereux.csv', '2008/emissions.csv', '2008/etablissements.csv', '2008/Prelevements.csv', '2008/Prod_dechets_dangereux.csv', '2008/Prod_dechets_non_dangereux.csv', '2008/Trait_dechets_dangereux.csv', '2008/Trait_dechets_non_dangereux.csv', '2009/emissions.csv', '2009/etablissements.csv', '2009/Prelevements.csv', '2009/Prod_dechets_dangereux.csv', '2009/Prod_dechets_non_dangereux.csv', '2009/Trait_dechets_dangereux.csv', '2009/Trait_dechets_non_dangereux.csv', '2010/emissions.csv', '2010/etablissements.csv', '2010/Prelevements.csv', '2010/Prod_dechets_dangereux.csv', '2010/Prod_dechets_non_dangereux.csv', '2010/Trait_dechets_dangereux.csv', '2010/Trait_dechets_non_dangereux.csv', '2011/emissions.csv', '2011/etablissements.csv', '2011/Prelevements.csv', '2011/Prod_dechets_dangereux.csv', '2011/Prod_dechets_non_dangereux.csv', '2011/Trait_dechets_dangereux.csv', '2011/Trait_dechets_non_dangereux.csv', '2012/emissions.csv', '2012/etablissements.csv', '2012/Prelevements.csv', '2012/Prod_dechets_dangereux.csv', '2012/Prod_dechets_non_dangereux.csv', '2012/Trait_dechets_dangereux.csv', '2012/Trait_dechets_non_dangereux.csv', '2013/emissions.csv', '2013/etablissements.csv', '2013/Prelevements.csv', '2013/Prod_dechets_dangereux.csv', '2013/Prod_dechets_non_dangereux.csv', '2013/Trait_dechets_dangereux.csv', '2013/Trait_dechets_non_dangereux.csv', '2014/emissions.csv', '2014/etablissements.csv', '2014/Prelevements.csv', '2014/Prod_dechets_dangereux.csv', '2014/Prod_dechets_non_dangereux.csv', '2014/Trait_dechets_dangereux.csv', '2014/Trait_dechets_non_dangereux.csv', '2015/emissions.csv', '2015/etablissements.csv', '2015/Prelevements.csv', '2015/Prod_dechets_dangereux.csv', '2015/Prod_dechets_non_dangereux.csv', '2015/Trait_dechets_dangereux.csv', '2015/Trait_dechets_non_dangereux.csv', '2016/emissions.csv', '2016/etablissements.csv', '2016/Prelevements.csv', '2016/Prod_dechets_dangereux.csv', '2016/Prod_dechets_non_dangereux.csv', '2016/Trait_dechets_dangereux.csv', '2016/Trait_dechets_non_dangereux.csv', '2017/emissions.csv', '2017/etablissements.csv', '2017/Prelevements.csv', '2017/Prod_dechets_dangereux.csv', '2017/Prod_dechets_non_dangereux.csv', '2017/Trait_dechets_dangereux.csv', '2017/Trait_dechets_non_dangereux.csv'] .. code:: ipython3 import pandas df = pandas.read_csv("2017/Prod_dechets_dangereux.csv") df.head() .. raw:: html
Identifiant Nom_Etablissement Dechet Annee Code_Operation_Eliminatio_Valorisation Libelle_Operation_Eliminatio_Valorisation Code_Departement Pays Code_Dechet Libelle_Dechet Quantite Unite
0 31.02589 POLYPROCESS Production de déchets dangereux 2017 D13 D13 Regroupement préalablement à l'une des opé... 33 NaN 16 03 03* Déchets d'origine minérale contenant des subst... 2.320 t/an
1 31.02589 POLYPROCESS Production de déchets dangereux 2017 D8 D8 Traitement biologique non spécifié ailleurs... 64 NaN 13 05 07* Eau mélangée à des hydrocarbures provenant de ... 1.500 t/an
2 31.02589 POLYPROCESS Production de déchets dangereux 2017 R12 R12 Echange de déchets en vue de les soumettre... 16 NaN 13 05 02* Boues provenant de séparateurs eau/hydrocarbures 0.500 t/an
3 31.02589 POLYPROCESS Production de déchets dangereux 2017 R13 R13 Stockage de déchets préalablement à l'une ... 33 NaN 06 10 02* Déchets contenant des substances dangereuses 0.103 t/an
4 31.02589 POLYPROCESS Production de déchets dangereux 2017 R13 R13 Stockage de déchets préalablement à l'une ... 33 NaN 15 01 10* Emballages contenant des résidus de substances... 2.400 t/an
.. code:: ipython3 [_ for _ in set(df.Nom_Etablissement) if "lubrizol" in _.lower()] .. parsed-literal:: ['LUBRIZOL FRANCE', 'LUBRIZOL France', 'LUBRIZOL France Site de Rouen (siège social et usine)'] .. code:: ipython3 df[df.Nom_Etablissement.str.contains("LUBRI")].head().T .. raw:: html
5073 5074 5075 5076 19092
Identifiant 52.02708 52.02708 52.02708 52.02708 58.00574
Nom_Etablissement LUBRIZOL FRANCE LUBRIZOL FRANCE LUBRIZOL FRANCE LUBRIZOL FRANCE LUBRIZOL France Site de Rouen (siège social et...
Dechet Production de déchets dangereux Production de déchets dangereux Production de déchets dangereux Production de déchets dangereux Production de déchets dangereux
Annee 2017 2017 2017 2017 2017
Code_Operation_Eliminatio_Valorisation D10 D5 D8 R12 D10
Libelle_Operation_Eliminatio_Valorisation D10 Incinération à terre D5 Mise en décharge spécialement aménagée (par... D8 Traitement biologique non spécifié ailleurs... R12 Echange de déchets en vue de les soumettre... D10 Incinération à terre
Code_Departement 01 30 64 34 76
Pays NaN NaN NaN NaN NaN
Code_Dechet 07 01 01* 17 02 04* 07 07 01* 15 02 02* 07 01 04*
Libelle_Dechet Eaux de lavage et liqueurs mères aqueuses Bois, verre et matières plastiques contenant d... Eaux de lavage et liqueurs mères aqueuses Absorbants, matériaux filtrants (y compris les... Autres solvants, liquides de lavage et liqueur...
Quantite 20.0 0.0022 8.34 0.989 472.0
Unite t/an t/an t/an t/an t/an
.. code:: ipython3 ets = pandas.read_csv("2017/etablissements.csv") ets.head() .. raw:: html
Identifiant Nom_Etablissement Numero_SIRET Adresse Code_Postal Commune Departement Region Coordonnees_X Coordonnees_Y Code_APE Libelle_APE code_eprtr libelle_eprtr
0 68.11539 Carrières BERNADETS - ISDI 54608016900115 NaN 31420 AURIGNAC HAUTE-GARONNE OCCITANIE 481659.0 1802490.0 0812Z Exploitation de gravières et sablières, extrac... NaN NaN
1 61.10406 REVAGA 51058711600037 NaN 69390 MILLERY RHONE AUVERGNE-RHONE-ALPES 790678.0 2073093.0 3811Z Collecte des déchets non dangereux NaN NaN
2 124.00155 SATE 42976802100025 NaN 90150 FONTAINE TERRITOIRE-DE-BELFORT BOURGOGNE-FRANCHE-COMTE 949818.0 2305514.0 2751Z Fabrication d'appareils électroménagers NaN NaN
3 61.08347 GRTgaz - Station de Compression de St AVIT 44011762001571 NaN 26330 CHATEAUNEUF-DE-GALAURE DROME AUVERGNE-RHONE-ALPES 805789.0 2028946.0 4950Z Transports par conduites NaN NaN
4 61.10271 FONDEX SAS 60562013700030 NaN 74302 CLUSES HAUTE-SAVOIE AUVERGNE-RHONE-ALPES 928249.0 2126191.0 2550B Découpage, emboutissage NaN NaN
.. code:: ipython3 ets[ets.Nom_Etablissement.str.contains("LUBRI")] .. raw:: html
Identifiant Nom_Etablissement Numero_SIRET Adresse Code_Postal Commune Departement Region Coordonnees_X Coordonnees_Y Code_APE Libelle_APE code_eprtr libelle_eprtr
5696 52.02708 LUBRIZOL FRANCE 54207095800047 Pôle 4/RD 281 avenue du Lac 64150 MOURENX PYRENEES-ATLANTIQUES NOUVELLE-AQUITAINE 359197.0 1823064.0 2059Z Fabrication d'autres produits chimiques n.c.a. 4.(a).(iii) hydrocarbures sulfurés
6147 58.00574 LUBRIZOL France Site de Rouen (siège social et... 54207095800021 25, Quai de France BP 1062 76173 ROUEN SEINE-MARITIME NORMANDIE 509411.0 2494315.0 2059Z Fabrication d'autres produits chimiques n.c.a. 4.(a).(iii) hydrocarbures sulfurés
6707 58.00575 LUBRIZOL France 54207095800039 ROUTE DU CANAL DE TANCARVILLE 76430 OUDALLE SEINE-MARITIME NORMANDIE 452455.0 2502974.0 2059Z Fabrication d'autres produits chimiques n.c.a. 4.(a).(iii) hydrocarbures sulfurés
Conversion des coordonnées -------------------------- Les coordonnées utilisées par l’admnistration française sont souvent différentes des longitudes et latitudes, il pourrait s’agir du système `Lambert 93 `__. Il faut convertir. .. code:: ipython3 from pyproj import Proj, transform p1 = Proj(init='epsg:4326') # longitude / latidude p2 = Proj(init='epsg:2154') # Lambert 93 exp = (509411.0, 2494315.0) # Rouen dans la base de données reçues. transform(p1, p2, 1.059011, 49.434654), exp .. parsed-literal:: /home/xadupre/.local/lib/python3.10/site-packages/pyproj/crs/crs.py:141: FutureWarning: '+init=:' syntax is deprecated. ':' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6 in_crs_string = _prepare_from_proj_string(in_crs_string) /home/xadupre/.local/lib/python3.10/site-packages/pyproj/crs/crs.py:141: FutureWarning: '+init=:' syntax is deprecated. ':' is the preferred initialization method. When making the change, be mindful of axis order changes: https://pyproj4.github.io/pyproj/stable/gotchas.html#axis-order-changes-in-proj-6 in_crs_string = _prepare_from_proj_string(in_crs_string) /tmp/ipykernel_942/2485346245.py:5: DeprecationWarning: This function is deprecated. See: https://pyproj4.github.io/pyproj/stable/gotchas.html#upgrading-to-pyproj-2-from-pyproj-1 transform(p1, p2, 1.059011, 49.434654), exp .. parsed-literal:: ((559176.9910858747, 6927865.768822115), (509411.0, 2494315.0)) Ca n’a pas l’air d’être ça. On en essaye plusieurs. .. code:: ipython3 import warnings from tqdm import tqdm warnings.simplefilter("ignore") summary = [] for i in tqdm(range(2000, 10000)): try: p2 = Proj(init='epsg:%d' % i) except RuntimeError: # does not exist continue try: res = transform(p1, p2, 1.059011, 49.434654) except RuntimeError: # impossible continue d = abs(res[0] - exp[0]) + abs(res[1] - exp[1]) summary.append((d, i, res)) summary.sort() summary[:10] .. parsed-literal:: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8000/8000 [06:25<00:00, 20.76it/s] .. parsed-literal:: [(2543.3576168458094, 2192, (507295.78658682964, 2493886.8557963246)), (1184546.4626984685, 8352, (896552.3533453116, 1696909.8906468432)), (1184571.6475299357, 5513, (896599.2137060699, 1696931.5661761342)), (1184699.265911612, 2065, (896686.9793387237, 1696891.7134271117)), (1272150.92377346, 2062, (948657.2483424643, 1661410.3245690044)), (1472957.7033411968, 3943, (1558315.7023544684, 2918368.0009867284)), (1472957.7033411968, 9823, (1558315.7023544684, 2918368.0009867284)), (1472957.7033411968, 9843, (1558315.7023544684, 2918368.0009867284)), (1512638.7699062696, 3942, (1557997.8534661192, 2030263.0835598495)), (1512638.7699062696, 9822, (1557997.8534661192, 2030263.0835598495))] On tombe donc sur `espg:2192 `__ ou `espg:7401 `__. .. code:: ipython3 p2 = Proj(init='epsg:2192') long, lat = transform(p2, p1, ets.Coordonnees_X.values, ets.Coordonnees_Y.values) ets['LLX'] = long ets['LLY'] = lat .. code:: ipython3 ets[ets.Nom_Etablissement.str.contains("LUBRI")] .. raw:: html
Identifiant Nom_Etablissement Numero_SIRET Adresse Code_Postal Commune Departement Region Coordonnees_X Coordonnees_Y Code_APE Libelle_APE code_eprtr libelle_eprtr LLX LLY
5696 52.02708 LUBRIZOL FRANCE 54207095800047 Pôle 4/RD 281 avenue du Lac 64150 MOURENX PYRENEES-ATLANTIQUES NOUVELLE-AQUITAINE 359197.0 1823064.0 2059Z Fabrication d'autres produits chimiques n.c.a. 4.(a).(iii) hydrocarbures sulfurés -0.630749 43.367983
6147 58.00574 LUBRIZOL France Site de Rouen (siège social et... 54207095800021 25, Quai de France BP 1062 76173 ROUEN SEINE-MARITIME NORMANDIE 509411.0 2494315.0 2059Z Fabrication d'autres produits chimiques n.c.a. 4.(a).(iii) hydrocarbures sulfurés 1.088048 49.438805
6707 58.00575 LUBRIZOL France 54207095800039 ROUTE DU CANAL DE TANCARVILLE 76430 OUDALLE SEINE-MARITIME NORMANDIE 452455.0 2502974.0 2059Z Fabrication d'autres produits chimiques n.c.a. 4.(a).(iii) hydrocarbures sulfurés 0.300654 49.505874
Ca a l’air de coller. .. code:: ipython3 ets16 = pandas.read_csv("2016/etablissements.csv") ets17 = pandas.read_csv("2017/etablissements.csv") p16 = pandas.read_csv("2016/Prod_dechets_dangereux.csv") p17 = pandas.read_csv("2017/Prod_dechets_dangereux.csv") long, lat = transform(p2, p1, ets16.Coordonnees_X.values, ets16.Coordonnees_Y.values) ets16['LLX'] = long ets16['LLY'] = lat long, lat = transform(p2, p1, ets17.Coordonnees_X.values, ets17.Coordonnees_Y.values) ets17['LLX'] = long ets17['LLY'] = lat .. code:: ipython3 ets16_2 = p16.merge(ets16, on="Identifiant") ets16_2.shape, p16.shape .. parsed-literal:: ((72337, 27), (72337, 12)) .. code:: ipython3 ets17_2 = p17.merge(ets17, on="Identifiant") ets17_2.shape, p17.shape .. parsed-literal:: ((73863, 27), (73863, 12)) Les fusions se sont bien passées. On vérifie que les unités sont comparables. .. code:: ipython3 set(p16.Unite), set(p17.Unite) .. parsed-literal:: ({'t/an'}, {'t/an'}) Vue dynamique ------------- .. code:: ipython3 from ipywidgets import interact .. code:: ipython3 @interact(annee=[2016, 2017], column=list(sorted(p16.columns)), x=(0, 100000, 100)) def show_rows(annee=2017, column='Quantite', x=100000): if annee == 2017: return ets17_2[ets17_2[column] >= x].sort_values(column).T else: return ets16_2[ets16_2[column] >= x].sort_values(column).T .. raw:: html
42643 11262 40946 40945 38335
Identifiant 65.03322 55.01076 64.10462 64.10462 64.00243
Nom_Etablissement_x SARP Industries RMB Société Nouvelle JCG Environnement Société Nouvelle JCG Environnement Hydro Extrusion Puget
Dechet Production de déchets dangereux Production de déchets dangereux Production de déchets dangereux Production de déchets dangereux Production de déchets dangereux
Annee 2017 2017 2017 2017 2017
Code_Operation_Eliminatio_Valorisation D5 R4 D1 D1 R4
Libelle_Operation_Eliminatio_Valorisation D5 Mise en décharge spécialement aménagée (par... R4 Recyclage ou récupération des métaux et des... D1 Dépôt sur ou dans le sol (par exemple, mise... D1 Dépôt sur ou dans le sol (par exemple, mise... R4 Recyclage ou récupération des métaux et des...
Code_Departement 78 45 13 04 34
Pays NaN NaN NaN NaN NaN
Code_Dechet 19 03 04* 16 06 01* 18 01 03* 18 01 03* 10 03 09*
Libelle_Dechet Déchets catalogués comme dangereux, partiellem... Accumulateurs au plomb Déchets dont la collecte et l'élimination font... Déchets dont la collecte et l'élimination font... Crasses noires de production secondaire
Quantite 122000.0 284000.0 316000.0 341000.0 1400000.0
Unite t/an t/an t/an t/an t/an
Nom_Etablissement_y SARP Industries RMB Société Nouvelle JCG Environnement Société Nouvelle JCG Environnement Hydro Extrusion Puget
Numero_SIRET 30377298200029 39776516500022 80845353400014 80845353400014 31275797400018
Adresse 451 Route du Hazay 14 rue des prairies\n BP 10236 NaN NaN Zi Camp dessert Nord
Code_Postal 78520 29400 13500 13500 83488
Commune LIMAY PLOUGOURVEST MARTIGUES MARTIGUES PUGET-SUR-ARGENS
Departement YVELINES FINISTERE BOUCHES-DU-RHONE BOUCHES-DU-RHONE VAR
Region ILE-DE-FRANCE BRETAGNE PROVENCE-ALPES-COTE-D'AZUR PROVENCE-ALPES-COTE-D'AZUR PROVENCE-ALPES-COTE-D'AZUR
Coordonnees_X 555829.0 126274.0 819944.0 819944.0 952243.0
Coordonnees_Y 2444400.0 2414348.0 1825343.0 1825343.0 1837875.0
Code_APE 3822Z 3832Z 3822Z 3822Z 2442Z
Libelle_APE Traitement et élimination des déchets dangereux Récupération de déchets triés Traitement et élimination des déchets dangereux Traitement et élimination des déchets dangereux Métallurgie de l'aluminium
code_eprtr 5.(a) 5.(c) NaN NaN 2.(f)
libelle_eprtr Installations pour la valorisation ou l'élimin... Installations destinées à l'élimination des dé... NaN NaN Installations de traitement de surface de méta...
LLX 1.73272 -4.085768 5.047053 5.047053 6.683578
LLY 48.995285 48.552602 43.395281 43.395281 43.45444
.. parsed-literal:: interactive(children=(Dropdown(description='annee', index=1, options=(2016, 2017), value=2017), Dropdown(descr… Cartes ------ On regarde les projets sur la métropole en 2017. .. code:: ipython3 lim_metropole = [-5, 10, 41, 52] ets17_2_metro = ets17_2[((ets17_2.LLX >= lim_metropole[0]) & (ets17_2.LLX <= lim_metropole[1]) & (ets17_2.LLY >= lim_metropole[2]) & (ets17_2.LLY <= lim_metropole[3]))] ets17_2_metro.shape, ets17_2.shape .. parsed-literal:: ((73384, 27), (73863, 27)) .. code:: ipython3 import cartopy.crs as ccrs import cartopy.feature as cfeature import matplotlib.pyplot as plt fig = plt.figure(figsize=(7,7)) ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree()) ax.set_extent(lim_metropole) ax.add_feature(cfeature.OCEAN.with_scale('50m')) ax.add_feature(cfeature.COASTLINE.with_scale('50m')) ax.add_feature(cfeature.RIVERS.with_scale('50m')) ax.add_feature(cfeature.BORDERS.with_scale('50m'), linestyle=':') ax.scatter(ets17_2_metro.LLX, ets17_2_metro.LLY, s=ets17_2_metro.Quantite ** 0.5 / 5, alpha=0.5) ax.set_title('France 2017\nproduction de produits dangereux'); .. image:: data_irep_28_0.png