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

Cas spéciaux: la création du rapport ne produit que celui relatif à la première section #278

Open
spch-GL opened this issue Jan 31, 2023 · 24 comments · May be fixed by #314
Open

Cas spéciaux: la création du rapport ne produit que celui relatif à la première section #278

spch-GL opened this issue Jan 31, 2023 · 24 comments · May be fixed by #314
Assignees
Milestone

Comments

@spch-GL
Copy link
Contributor

spch-GL commented Jan 31, 2023

Describe the bug
La création du rapport ne produit que ceux relatifs à la première section. Il n'y a pas de rapport produit pour les autres sections.
Par contre la génération des graphiques fonctionne correctement et montre bien toutes les sections, chacune dans son onglet.

To Reproduce
Steps to reproduce the behavior:

  1. Sélectionner un tronçon d'un cas spécial
  2. Click sur 'Modifier comptage'
  3. Click droit sur le numéro du comptage
  4. Click sur 'Creer un rapport'
  5. Choisir le dossier de destination
  6. See error

Expected behavior
La création du rapport pour un cas spécial devrait générer un fichier par semaine et par section.

Version on which you encounter the issue:

  • QGIS version and plugin version: QGIS 3.22 / plugin v2.1 & 2.1.1
  • DB version and installation: PostgreSQL 15.0 - PostGIS 3.3.1 on remote TEST DB & PostgreSQL 11.5 - PostGIS 2.5.3 on local DEV DB
@spch-GL spch-GL added the bug Something isn't working label Jan 31, 2023
@spch-GL
Copy link
Contributor Author

spch-GL commented Feb 1, 2023

Petite précision: cela fonctionne vite et bien avec la version du plug-in 0.10.17 sur notre base distante de prod

@spch-GL
Copy link
Contributor Author

spch-GL commented Feb 1, 2023

Encore une précision: sur ma base de DEV, j'ai utilisé le plug-in V2.1.1 pour importer les données. Comme les rapports ne sont pas tous générés avec cette version, j'ai utilisé ensuite la version 0.10.17 pour créer les rapports et cela a fonctionné vite et bien

@why-not-try-calmer
Copy link
Contributor

why-not-try-calmer commented Nov 23, 2023

J'ai un souci pour reproduire le problème: le jeu de données (mesures) ne concerne que le tronçon 00107695 qui n'est pas un cas spécial. Est-ce que par hasard tu aurais un jeu de données pour cas spéciaux?

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 23, 2023

Voici des données pour un comptage du 22.06.2020 au 06.07.2020 sur la jonction de Vaumarcus dont le troncon 53136855
53109999.zip

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 23, 2023

Voici des données pour un comptage du 15.03.2021 au 28.03.2021 sur un autre cas spécial : Jct. d'Areuse EST / dont le troncon 53526896
5350_1_4.zip

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 23, 2023

Désolé, j'avais omis de mentionner un troncon dans mes 2 commentaires précédents, je les ai donc édités...

@why-not-try-calmer
Copy link
Contributor

why-not-try-calmer commented Nov 27, 2023

J'ai écrit un test pour produire les rapports du second tronçon (53526896):

53526896_20210315_r.xlsx
53526896_20210322_r.xlsx

Où les sections manquantes devraient-elles apparaître? Aurais-tu un exemple correct? (en guise de "groupe de contrôle")?

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 27, 2023

le plug-in devrait nous proposer de créer les rapports de chacune des sections concernées.
Supposons un comptages de 2 semaines sur un cas spécial de 3 sections, il faudrait alors qu'il propose la création de 6 rapports

Est-ce que cette réponse pourrait-être celle attendue ?

@why-not-try-calmer
Copy link
Contributor

le plug-in devrait nous proposer de créer les rapports de chacune des sections concernées. Supposons un comptages de 2 semaines sur un cas spécial de 3 sections, il faudrait alors qu'il propose la création de 6 rapports

Est-ce que cette réponse pourrait-être celle attendue ?

Oui c'est plus clair; mais comment le plugin devrait formuler cette proposition? Même logique que pour les 100 jours valides, à savoir un check au moment de l'exportation avec une fenêtre de sélection pour les sections concernées? Oubien faut-il tout simplement, en général, toujours produire les rapports correspondant à chaque section?

@why-not-try-calmer
Copy link
Contributor

why-not-try-calmer commented Nov 27, 2023

(cont) A titre d'exemple le rapports annuel de la section 53526896 pour l'année 2021 produit 45 fichiers.

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 27, 2023

(cont) A titre d'exemple le rapports annuel de la section 53526896 pour l'année 2021 produit 45 fichiers.

Si tu parles des rapports hebdomadaires et que l'année 2021 est complète (52 semaines) cela devrait faire 108 rapports (si il y a bien 4 sections dans ce cas spécial)

Si tu parles des rapports annuels, alors il ne devrait y en avoir que 4 !

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 27, 2023

le plug-in devrait nous proposer de créer les rapports de chacune des sections concernées. Supposons un comptages de 2 semaines sur un cas spécial de 3 sections, il faudrait alors qu'il propose la création de 6 rapports
Est-ce que cette réponse pourrait-être celle attendue ?

Oui c'est plus clair; mais comment le plugin devrait formuler cette proposition? Même logique que pour les 100 jours valides, à savoir un check au moment de l'exportation avec une fenêtre de sélection pour les sections concernées? Oubien faut-il tout simplement, en général, toujours produire les rapports correspondant à chaque section?

Il me semble qu'il y a une confusion: Pour moi, la sélection avec les cases à cocher (section puis dates), c'est justement pour la production des rapports

@why-not-try-calmer
Copy link
Contributor

why-not-try-calmer commented Nov 27, 2023

(cont) A titre d'exemple le rapports annuel de la section 53526896 pour l'année 2021 produit 45 fichiers.

D'accord. Alors le but du jeu pour moi actuellement, c'est de prouver qu'il manque des fichiers lorsqu'on génère des rapports hebdomadaires et des rapports annuels portant sur la section 53526896.

  1. Es-tu d'accord avec moi pour dire que c'est la première étape pour reproduire le problème?
  2. Est-ce que les données que tu m'as transmises dans ce fil de discussion seront suffisantes pour ce faire?

@why-not-try-calmer
Copy link
Contributor

Si tel n'est pas le cas, j'ai besoin de données qui me permettront de le démontrer.

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 27, 2023

D'accord. Alors le but du jeu pour moi actuellement, c'est de prouver qu'il manque des fichiers lorsqu'on génère des rapports hebdomadaires et des rapports annuels portant sur la section 53526896.

  1. Es-tu d'accord avec moi pour dire que c'est la première étape pour reproduire le problème?
  2. Est-ce que les données que tu m'as transmises dans ce fil de discussion seront suffisantes pour ce faire?

Je ne suis pas sûr de comprendre ce que tu cherches... peux-tu me faire un rdv meet ou autre ?

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 27, 2023

J'ai trouvé des données d'un cas spécial annuel (2021), mais il y a plus de 100 M et j'ai utilisé 7zip pour spliter en 4, puis ajouté l'extension .txt pour que github les accepte...
EGAS.zip.001.txt
EGAS.zip.002.txt
EGAS.zip.003.txt
EGAS.zip.004.txt

Cela concerne l'installation ci-dessous qui a 8 voies (lane) sur 6 tronçons (section)
image
Pour pouvoir importer les données, il faut que l'alias soit EGAS

Voici l'extrait de la table lane qui les concerne:

<style> </style>
id number direction direction_desc id_installation id_section
17514 1 1   8768 00056200
17515 2 2   8768 00056200
17516 3 1   8768 00056202
17517 4 2   8768 00056202
17518 5 1   8768 53316875
17519 6 1   8768 53326880
17520 7 1   8768 53336885
17521 8 1   8768 53346890

Je viens de les importer dans ma base de DEV et cela a fonctionné:
image

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 27, 2023

Tu constateras que

  1. pendant l'importation (via le bouton de la barre d'outil, sélectionner tous les fichiers) qGis se fige
  2. il faut accepter les données pour chaque section séparément (c'est voulu) mais c'est à chaque fois assez long. Probablement qu'il recalcule l'affichage pour tous les onglets et pas seulement celui qu'on vient d'accepter.
  3. il revient sur le premier onglet même si ce n'est pas celui que l'on vient d'accepter
  4. il n'y a pas de données pour la voie 7 (section 53336885) mais c'est un problème de données, vraisemblablement un problème de capteur

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 27, 2023

j'ai essayé de générer un rapport annuel en sélectionnant le tronçon 53326880, et cela a provoqué cette erreur:

2023-11-27T18:36:45     WARNING    Une erreur est survenue lors de l'exécution du code Python :
             
             
             KeyError: 'date'
             
             
             Traceback (most recent call last):
              File "C:\apps\OSGeo4W\apps\Python39\lib\site-packages\pandas\core\indexes\base.py", line 3800, in get_loc
              return self._engine.get_loc(casted_key)
              File "pandas\_libs\index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
              File "pandas\_libs\index.pyx", line 165, in pandas._libs.index.IndexEngine.get_loc
              File "pandas\_libs\hashtable_class_helper.pxi", line 5745, in pandas._libs.hashtable.PyObjectHashTable.get_item
              File "pandas\_libs\hashtable_class_helper.pxi", line 5753, in pandas._libs.hashtable.PyObjectHashTable.get_item
             KeyError: 'date'
             
             The above exception was the direct cause of the following exception:
             
             Traceback (most recent call last):
              File "C:\Users/GrelletP/AppData/Roaming/QGIS/QGIS3\profiles\cptg_dev/python/plugins\comptages\core\report_task.py", line 28, in run
              raise e
              File "C:\Users/GrelletP/AppData/Roaming/QGIS/QGIS3\profiles\cptg_dev/python/plugins\comptages\core\report_task.py", line 24, in run
              report.prepare_reports(self.file_path, self.count, self.year, self.template, self.section_id, callback_progress=self.setProgress)
              File "C:\Users/GrelletP/AppData/Roaming/QGIS/QGIS3\profiles\cptg_dev/python/plugins\comptages\core\report.py", line 33, in prepare_reports
              _prepare_yearly_report(file_path, year, template_path, section_id, callback_progress)
              File "C:\Users/GrelletP/AppData/Roaming/QGIS/QGIS3\profiles\cptg_dev/python/plugins\comptages\core\report.py", line 75, in _prepare_yearly_report
              _data_day_yearly(count, section, year, workbook)
              File "C:\Users/GrelletP/AppData/Roaming/QGIS/QGIS3\profiles\cptg_dev/python/plugins\comptages\core\report.py", line 436, in _data_day_yearly
              df = statistics.get_time_data_yearly(
              File "C:\Users/GrelletP/AppData/Roaming/QGIS/QGIS3\profiles\cptg_dev/python/plugins\comptages\core\statistics.py", line 86, in get_time_data_yearly
              df = df.groupby([df['date'].dt.dayofweek, 'hour']).thm.sum()
              File "C:\apps\OSGeo4W\apps\Python39\lib\site-packages\pandas\core\frame.py", line 3805, in __getitem__
              indexer = self.columns.get_loc(key)
              File "C:\apps\OSGeo4W\apps\Python39\lib\site-packages\pandas\core\indexes\base.py", line 3802, in get_loc
              raise KeyError(key) from err
             KeyError: 'date'
             
             
             
             
             Version de Python : 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)]
             
             
             Version de QGIS : 3.28.11-Firenze Firenze, b02458a196


@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 27, 2023

j'ai encore essayé de générer les rapports hebdomadaires en sélectionnant le même tronçon (53326880), et après 5 minutes il avait déjà généré 8 rapports, mais tous sur la section 00056200, exemple:
00056200_20210118_r.xlsx

@why-not-try-calmer
Copy link
Contributor

why-not-try-calmer commented Nov 28, 2023

Merci! Dans un premier temps je vais importer ces données directement depuis Django et ignorer complètement les problèmes d'interface graphique pour me concentrer le problème des sections manquantes. Il faudra probablement un autre couple Issue / PR pour l'interface graphique.

@why-not-try-calmer
Copy link
Contributor

Hum attention tout le contenu est tronqué:

image

Tu peux m'envoyer le tout non-compressé ou non suffixé en ZIP en utilisant https://www.swisstransfer.com/fr-ch s'il-te-plaît?

@spch-GL
Copy link
Contributor Author

spch-GL commented Nov 28, 2023

Pour les utiliser avec 7Zip, il suffit de les placer les 4 dans un même dossier et de les renommer en supprimant l'extension .txt
image

Ensuite ouvrir n'importe lequel avec 7Zip.

Mais je vais te faire un transfert avec notre système: webtransfer.ne.ch qui t'avertira par courriel lorsque cela sera prêt

@why-not-try-calmer
Copy link
Contributor

J'ai eu le fichier à 100Mo, merci

@spch-GL
Copy link
Contributor Author

spch-GL commented Dec 4, 2023

Pas résolu par la version 2.1.2: il ne produit que le rapport sur la première section

@why-not-try-calmer why-not-try-calmer linked a pull request Jan 22, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants