L'eauwater.py - récupérer les infos de l'eau du réseau public

H2O mais pas seulement... Dure ? douce ? acide ?
Règles du forum
Chers membres, merci de prendre connaissance et respecter les quelques règles de bon sens suivantes avant de poster votre message :
- Vous assurer que vous postez dans la bonne rubrique
- Vérifier qu'il n’existe pas déjà une réponse à votre question ou un sujet identique
- Prendre conscience que vos propos n’engagent que vous et que vous devrez en assumer la paternité
- Vérifier les sources des informations que vous diffusez, en vous assurant le cas échéant de respecter les droits d’auteur qui peuvent être liés aux informations, images ou documents cités
- Prendre soin de respecter vos interlocuteurs et bannir les insultes et autres propos diffamatoires ou dégradants
- Vous assurer de rester autant que faire se peut dans le sujet exposé
- Prendre le temps de vérifier l’orthographe et la grammaire de votre message
Merci par avance de votre contribution à préserver le bon esprit de ce forum.
Avatar de l’utilisateur
tomulus
Ch'ti nouveau
Messages : 62
Inscrit depuis : 8 ans 3 mois
Mon équipement : kit complet électrique brewferm
Brasseur : Amateur
Localisation : Toulouse
A été remercié : 4 fois

water.py - récupérer les infos de l'eau du réseau public

Message par tomulus »

Salut,

j'ai récemment fait un script python pour récupérer les informations sur l'eau du réseau public pour la ville de Toulouse :
Les infos sont récupérées sur le site du ministère de la santé : http://orobnat.sante.gouv.fr/

Les informations obtenues sont :
- nitrates;
- calcium;
- magnésium;
- sodium;
- chlorures;
- sulfates;
- potassium;
- alcalinité as HCO3 (à partir du Titre alcalimétrique complet (TAC));
- alcalinité as CaCO3 (à partir du Titre hydrométrique (TH));
- et ça calcul l'alcalinité résiduelle.

Je ne suis pas sur à 100% pour mes calculs de l'alcalinité, mais les résultats sont plutôt proches d'une analyse récente faite par canard rouge.


Maintenant, j'essaie de faire la même pour toute la France (métro et outre-mer) : https://github.com/ThomasCornillet/water

Pour l'instant, vous pouvez récupérer les informations pour les requêtes du script de base dans les fichiers des départements, et les entrer manuellement dans water.py
Je ne sais pas si toutes les informations sont disponibles pour toutes les villes, donc si vous essayez et que ça ne marche pas, ce serait cool de le faire remonter ici.

C'est pas très "user-friendly" et je veux en faire un exécutable avec choix des informations intuitives et requêtes automatiques.
Mais je ne suis pas informaticien, et je n'ai pas énormément de temps à consacrer à ce projet. Donc s'il y en a parmi vous qui souhaite participer au projet, n'hésitez-pas !

Au plaisir !
Dernière modification par tomulus le 15 févr. 2019 9:42, modifié 1 fois.
Reaveur
Ch'ti nouveau
Messages : 28
Inscrit depuis : 5 ans 5 mois
Brasseur : Amateur
A remercié : 2 fois
A été remercié : 2 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par Reaveur »

Salut,

Merci pour ça, ça m'a l'air extrêmement intéressant et utile.

Par contre une petite explication pour savoir comment faire marcher le truc serait pas de refus :)
Avatar de l’utilisateur
tomulus
Ch'ti nouveau
Messages : 62
Inscrit depuis : 8 ans 3 mois
Mon équipement : kit complet électrique brewferm
Brasseur : Amateur
Localisation : Toulouse
A été remercié : 4 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par tomulus »

Je vais faire un "tuto" rapide dans la journée, je le posterai ce soir. Ça demande quelque manip, surtout pour les utilisateurs et utilisatrices Windows, mais rien de bien méchant non plus.
lezius
Brasseur
Brasseur
Messages : 1112
Inscrit depuis : 5 ans 9 mois
Brasseur : Amateur
A remercié : 41 fois
A été remercié : 37 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par lezius »

1 ) Ouvrir villes/dpt/ini/[monDepartement].ini et récupérer
dans la rubrique info :
- code_region
- code_dpt
dans la rubrique lié à sa ville :
- code_ville
- code_reseau

2) editer water.py
rajouter "from bs4 import BeautifulSoup" sans les " sous "import re" (enfin j'en ai eu besoin sous fédora 29)
modifier dans post_data avec les info récupérées avant
- idRegion
- departement
- communeDepartement
- reseau

3) chmod +x water.py

4) ./water.py

Je ne me suis pas penché sur les calcul ni rien de plus mais je note que
BS3 residual alkalinity as CaCO3 181 / BS3 alkalinity as CaCO3 255
water.py residual alkalinity as CaCO3 253 / water.py alkalinity as CaCO3 262
Avatar de l’utilisateur
tomulus
Ch'ti nouveau
Messages : 62
Inscrit depuis : 8 ans 3 mois
Mon équipement : kit complet électrique brewferm
Brasseur : Amateur
Localisation : Toulouse
A été remercié : 4 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par tomulus »

C'était plus rapide que prévu, merci lezius pour ton poste.
C'est bizarre que tu ais eu besoin de BeautifulSoup pour water.py, ça marche sans pour moi sur fedora 28.
Sinon, ça a marché pour toi ? Tu as eu toutes les infos ?


Voilà les grandes étapes pour faire marché water.py

===============
= Tuto V1 water.py =
===============

Principe de la v1
============
- le code actuel de water.py fonctionne pour la ville de Toulouse
- il faut entrer manuellement les informations de votre ville
- ces infos se trouvent dans /villes/dpt/ini
  • un fichier par département
  • il faut ensuite repérer la ligne de votre ville, et vous aurez les infos pour la requête
- attention : pour l'instant, j'ai du mal à gérer les villes qui ont plusieurs réseaux
  • ça ne prend en compte qu'un des réseaux
- je ne sais pas ce que ça donne pour Mac

Pour windows
==========
- le script est fait sous linux (fedora 28)
- trois lignes à modifier / ajouter dans water.py:
  • ligne 2 : changer Utf-8 par Latin-1
  • # -*-coding:Latin-1 -*
  • ajouter une ligne après la ligne 6
  • import os
  • ajouter une ligne à la fin
  • os.system("pause")
Les étapes
========

1. installer python3 et les modules nécessaires
--------------------------------------------------------------------
1.1. installer python3
- aller sur le site officiel : https://www.python.org/downloads/
- télécharger la version correspondante à votre OS
- lancer l'installation
- pour Windows, pendant l'installation, pensez à cocher une ligne du genre "ajouter python au PATH"

1.2. installer les modules nécessaires
- ouvrir l'invite de commande (ou terminal)
  • pour Windows : aller dans démarrer, taper cmd et cliquer sur cmd.exe
- installer le module 'requests' via pip en ligne de commande
  • pour Windows, taper : python -m pip install requests
- installer le module 'bs4' via pip en ligne de commande
  • pour Windows, taper : python -m pip install bs4
2. copier le contenu de water.py dans un fichier
--------------------------------------------------------------------
- nommer le comme vous voulez, tant que l'extension soit .py

3. repérer les informations à modifier dans votre fichier
-------------------------------------------------------------------------------
- ouvrir, dans villes/dpt/ini, le fichier correspondant à votre département
- dans la partie info, récupérer :
  • code_region
  • code_dpt
- repérer la partie correspondante à votre ville
- et y récupérer :
  • code_ville
  • code_reseau
4. saisir les informations dans le script
--------------------------------------------------------
- éditer votre fichier .py
- modifier les lignes de post_data avec les informations récupérées
  • idRegion
  • departement
  • communeDepartement
  • reseau
- pour Windows, ne pas oublier d'ajouter les lignes mentionnées plus haut
- enregistrer les modifications

5. lancer le script
-------------------------
- pour linux
  • lancer le terminal dans le répertoir du fichier .py
  • modifier le mode du fichier en tapant :
  • chmod +x 'votre_fichier'.py
  • lancer le script en tapant :
  • ./'votre_fichier'.py
Dernière modification par tomulus le 15 févr. 2019 17:28, modifié 1 fois.
lezius
Brasseur
Brasseur
Messages : 1112
Inscrit depuis : 5 ans 9 mois
Brasseur : Amateur
A remercié : 41 fois
A été remercié : 37 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par lezius »

Alors je suis en python 2 par défaut (python --version => Python 2.7.15 ), c'est peut être pour ça la soupe :)

Oui, j'ai bien toute les infos, elles ne collent pas à mon relevé sur le site mais je ne sais pas si tu fais une moyenne ou autre, personnellement j'ai juste été prendre la première mesure trouvé.
Avatar de l’utilisateur
tomulus
Ch'ti nouveau
Messages : 62
Inscrit depuis : 8 ans 3 mois
Mon équipement : kit complet électrique brewferm
Brasseur : Amateur
Localisation : Toulouse
A été remercié : 4 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par tomulus »

En effet, je n'ai testé que sur python 3.6.8.
Le script fait les recherches une par une, et remonte chronologiquement dans les tests tant qu'il ne trouve pas la valeur recherchée. J'ai fait comme ça car pour Toulouse, tous les relevés ne testent pas les mêmes données. As-tu regardé si ta ville avait plusieurs réseaux ? Ce n'est pas encore pris en compte dans la requête, ça prend seulement le réseau par défaut sur le site.
Les résultats varient beaucoup par rapport à ce que tu as trouvé ?
lezius
Brasseur
Brasseur
Messages : 1112
Inscrit depuis : 5 ans 9 mois
Brasseur : Amateur
A remercié : 41 fois
A été remercié : 37 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par lezius »

En python 3.7.2 il veux aussi de la soupe.
Il doit y avoir une différence entre f28 et f29

Un seul réseau, par contre je viens de voir qu'il y a un nouveau relevé depuis mon passage, ça doit expliquer quelques truc.
Cependant, water.py me donne 7.5 en ph et le relevé le plus récent est à 7.6. Le précédent est à 7.4.

J'ai remplacé les donnés dans BS, je n'ai pas les anciennes valeurs sous la main. Je met à jours plus tard.
Avatar de l’utilisateur
tomulus
Ch'ti nouveau
Messages : 62
Inscrit depuis : 8 ans 3 mois
Mon équipement : kit complet électrique brewferm
Brasseur : Amateur
Localisation : Toulouse
A été remercié : 4 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par tomulus »

il faut bien la soupe, c'est un oubli de ma part, j'ai modifié la version github
juju31
Apprenti
Apprenti
Messages : 704
Inscrit depuis : 7 ans
Brasseur : Amateur
Localisation : Toulouse, Lauragais
A remercié : 9 fois
A été remercié : 31 fois

Re: water.py - récupérer les infos de l'eau du réseau public

Message par juju31 »

Putain d usine a gaz :)
Je vais essayer, merci.
J etais a deux doigts de me payer une analyse par un labo.
RAS
Répondre

Créer un compte ou se connecter pour rejoindre la discussion

Vous devez être membre pour pouvoir répondre

Créer un compte

Vous n‘êtes pas membre ? Inscrivez-vous pour rejoindre notre communauté
Les membres peuvent créer leurs propres sujets et s‘abonner à des sujets
C‘est gratuit et cela ne prend qu‘une minute

Inscription

Se connecter