Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Objet du projet #1

Open
lpofredc opened this issue Apr 11, 2024 · 3 comments
Open

Objet du projet #1

lpofredc opened this issue Apr 11, 2024 · 3 comments
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers

Comments

@lpofredc
Copy link
Member

lpofredc commented Apr 11, 2024

Créer un script/appli python pour collecter automatiquement les données de station météo weatherlink vers une base de données PostgreSQL pour la gestion des données météo des réserves naturelles gérées par la LPOAuRA.

Doc API: https://weatherlink.github.io/v2-api/

A minima, stocker les données historiques dans une table de bdd PostgreSQL:

  • id_station (type INT), l'id de la station
  • ts (type BIGINT) le timestamp du relevé
  • data (TYPE JSONB) donnée brute en JSON
  • autant de champs que de valeurs attendues pour les données détaillées (température, vent, etc.)

id_station et timestamp relevé constituent doivent avoir une contrainte d'unicité sur le binôme.

@JohanRocheteau
Copy link
Collaborator

Bonjour,
J'ai créé les deux fichiers :

  • Historique pour récupérer les données à partir du 29 septembre 2021 à 21h15 (il n'y a pas de données avant).
  • Routine pour récupérer les données à partir de la TS la plus récente dans la BDD.

En ce qui concerne ces fichiers :

  • Le fichier Historique tourne pendant un peu plus d'une heure. En effet, l'API sur les premières requêtes est de 1,5 seconde par jour mais monte à environ 7 secondes au bout d'un moment, du coup c'est plus long, mais il doit être fait qu'une seule fois. Sinon, je peux voir pour utiliser les CSV, ça ira beaucoup plus vite.
  • Le fichier Routine vous en aurez pour quelques secondes si vous faites toutes les semaines à environ 2/3 min pour 1 mois.
  • De manière générale, j'ai gardé les données en JSON sur une colonne et j'ai déployé les autres colonnes. Je n'ai pas transformé les températures en °C et je n'ai pas supprimé les colonnes vides ne sachant pas ce qui sera récupéré pour les autres stations.
  • Je n'ai pas utilisé Poetry mais je vais regarder ça cette semaine car ça m'intéresse.

Si vous avez des questions ou des points de modifications/améliorations, je suis preneur, ça me permet de continuer à apprendre tout en travaillant sur des données utiles.
Merci

@lpofredc
Copy link
Member Author

lpofredc commented Apr 15, 2024

Cool merci.

Première remarque a chaud, il faut cacher les données d'authentification (clé API et auth a la bdd). Voici un lien utile. https://www.geeksforgeeks.org/how-to-hide-sensitive-credentials-using-python/

Personnellement, je privilégié l'utilisation des variables d'environnement et du fichier .env, plus pratique dans les environnement docker.

@JohanRocheteau
Copy link
Collaborator

JohanRocheteau commented Apr 24, 2024

Bonjour,

  • J'ai ajouté les fonctions via le fichier .env
  • J'ai ajouté le virtual env via Poetry.
  • J'ai crée un fichier tout en un qui fait soit l'historique soit l'ajout des nouveaux jours.
  • J'ai laissé les fichiers "lpo_aura" et "tests" issus de la création de mon environnement "Poetry" mais je ne sais pas si c'est utile?

@lpofredc lpofredc added documentation Improvements or additions to documentation good first issue Good for newcomers labels May 22, 2024
@lpofredc lpofredc pinned this issue May 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants