Giter Club home page Giter Club logo

carte_interactive's Introduction

Carte_interactive

Ce Read me a pour but de vous présenter globalement ce que fait le programme et de vous montrer également sur quels paramètres vous pouvez influer.

/!\ Nous vous mettrons également en évidence quels paramètres sont à modifier en fonction de votre système d'exploitation et de votre configuration d'installation.


Tout d'abord toutes les bibliothèques Python nécessaires pour le programme ont été mises dans le fichier requirements.txt.

Changement en fonction de votre configuration

Plusieurs changements sont à effectuer :

Dans le fichier convert_pdf_to_txt.py :

Il est nécessaire d'installer tesseract-ocr et popplersur son ordinateur et PAS UNIQUEMENT les bibliothèques python !
tesseract-ocr peut être installé en suivant ces instructions : https://github.com/tesseract-ocr/tesseract/wiki#Installation
Il faut également ajouter le fichier fra.traineddatadans le répertoire tessdata afin d'avoir l'analyse des PDF en français. On peut le trouver ici : https://github.com/tesseract-ocr/tessdata/blob/3.04.00/fra.traineddata .

Il faut également ajouter tesseract ainsi que poppler aux variables d'environnement de l'ordinateur

Il faut ajouter les dépendances relatives à l'installation tesseract aux lignes 12 à 18. Les lignes sont différentes suivant le système d'exploitation.
Sur Windows, pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'suffit pour l'utilisation de la langue française.
Sur Mac, il faut donner le lien vers le fichier de langues : tessdata_dir_config = r'--tessdata-dir "/Users/nomdutilisateur/Downloads/tesseract-ocr-setup-3.05.01/tessdata/"'.

Il faut également ajuster la fonction pdf_to_image en commantant la ligne correspondant au bon système d'exploitation.

Changement de représentation des données : marqueurs ou points

Deux représentations sont possibles pour les différentes addresses présentant des arrêtés.

Dans le fichier carte.py :

Dans la fonction creation_carte aux lignes 27 à 34, il faut commenter et décommenter la représentation voulue.
Dans la fonction creation_marker aux lignes 42 à 47, il faut commenter et décommenter la représentation voulue.

Dans le fichier main.py :

Aux lignes 69 à 74, dans la boucle, il faut commenter et décommenter la représentation voulue.
Pour la représentation avec des marqueurs, il faut décommenter les lignes 57 à 61.
Pour la représentation avec des points, il faut commenter ces lignes.

Personnalisation des marqueurs

Avec la représentation par des marqueurs, il est possible de personnaliser les icones (type et couleur). Par défaut, ce sont des maisons blanches.

Dans le fichier carte.py :

Dans la fonction creation_marker à la ligne 44 :
Pour le type d'icone, il faut changer icon='home' en remplaçant "home" par un des icones présent sur https://glyphicons.com/sets/basic/ .
Pour la couleur de l'icone, il faut changer icon_color='white' en remplaçant "white" par une des couleurs listées dans la documentation : 'red', 'darkred', 'lightred', 'orange', 'beige', 'green', 'darkgreen', 'lightgreen', 'blue', 'darkblue', 'cadetblue', 'lightblue', 'purple', 'darkpurple', 'pink', 'white', 'gray', 'lightgray', 'black'.

Gestion manuelle des erreurs

Lorsqu'une erreur est détectée par le programme (problème d'url, d'adresse, de date ou d'annonce de pathologies), elle est ajoutée au fichier erreurs.csv. Certaines peuvent être traitées manuellement.

Problème de date :

1- Aller dans le fichier .txtcorresondant à l'adresse que l'on souhaite traiter
2- Ajouter au début du fichier : Envoyé en préfecture le <dd/mm/yyyy>
3- Supprimer toutes les lignes de erreurs.csv sauf la première
4- Supprimer le contenu du fichier data.json et ne laisser que {} comme contenu
5- Dans le fichier arretes.csv placer la colonne erreurs de l'arrêté traité sur False
6- Faire run sur le fichier main.py
7- Vérifier que l'arrêté n'apparaît plus dans erreurs.csv et que l'erreur a été correctement traité

Problème d'adresse :

1- Aller dans le fichier arretes.csv
2- Ajouter l'adresse dans la colonne adresse
3- Placer la colonne erreurs de l'arrêté traité sur False
4- Supprimer toutes les lignes de erreurs.csv sauf la première
5- Supprimer le contenu du fichier data.json et ne laisser que {} comme contenu
6- Faire run sur le fichier main.py
7- Vérifier que l'arrêté n'apparaît plus dans erreurs.csv et que l'erreur a été correctement traitée

Problème d'URL :

Si c'est cette catégorie de problème qui est listée dans le fichier erreurs.csv, il faut vérifier que le lien vers le PDF de l'arrêté est fonctionnel. Si c'est le cas et que l'arrêté n'avait pa pu être traité à cause d'un problème de connexion, relancer le programme suffira à traiter l'erreur. Sinon, il est possible que le PDF ne soit plus disponible sur le site de la mairie.

carte_interactive's People

Contributors

maelle3 avatar jfardilha avatar

Stargazers

Mathieu Morey avatar

Watchers

Mathieu Morey avatar  avatar

Forkers

moreymat

carte_interactive's Issues

Encodage UTF-8 des fichiers texte

Le texte extrait de chaque PDF est écrit dans un fichier .txt.
Actuellement l'encodage du fichier n'est pas spécifié donc python utilise l'encodage par défaut du système d'exploitation.
Cet encodage par défaut varie selon les systèmes d'exploitation, par exemple sur l'une de vos machines c'est visiblement ISO-8859-1, sur la mienne c'est UTF-8, sur un serveur ça peut être encore un autre comme cp1252 (https://fr.wikipedia.org/wiki/Windows-1252).

Les bonnes pratiques actuelles recommandent plutôt de fixer l'encodage en UTF-8 (à l'écriture et peut-être aussi explicitement à la lecture).

Utiliser le modèle du français ('fra') dans tesseract

L'appel à tesseract dans convert_pdf_to_txt.py utilise le modèle pour l'anglais ('eng').
Ce modèle fonctionne globalement bien sur le français, sauf pour les caractères accentués, le "ç", et les séquences de caractères (quasiment) absentes en anglais ("l' "...).
Le modèle français ('fra') gère mieux ces cas et semble globalement plus fiable sur nos documents (sauf si vous avez eu de mauvaises surprises?).

Filtrer les points par pathologie

Trouver la fonctionnalité ou le plugin (ou le bricolage) pour folium qui permette de filtrer les points par pathologie ; sinon trouver une lib alternative (la plus proche possible) qui propose cette fonctionnalité.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.