31
Benjamin NEILZ Rapport de stage IUT La Rochelle 17/06/2013 Mise en oeuvre d’une base de données simple de gestion des arrêts de transports publics

rapport de stagehleberre.free.fr/optimisation/stagiaire/rapport de stage.pdf · Rapport de stage IUT La Rochelle 17/06/2013 Mise en oeuvre d’une base de données simple de gestion

Embed Size (px)

Citation preview

!

Benjamin NEILZRapport de stageIUT La Rochelle17/06/2013

Mise en oeuvre d’une base de données simple de gestion des arrêts de

transports publics

!

2

Remerciements

Tout d’abord je tiens à remercier Vincent Paillard de m’avoir permis de faire ce stage au sein son service, ainsi que les membres de ce service avec qui j’ai travaillé durant ces deux mois. Je tiens aussi à remercier Jean-Pascal Priou et Sébastien Barre avec qui j’ai travaillé pendant un mois à la DSTI. Et enfin je remercie Jean-Yves Lafaye, mon enseignant-tuteur.

!

3

Table des matières

...........................................................I. Présentation de l’entreprise! 7

.........................................................................................................1. La CDA! 7

..............................................................2. Le service Mobilité et Transports! 8

...................3. La Direction des Services et Technologies de l'information! 9

................................................................4. Le centre décisionnel de la CDA! 9

.........................................................................II. Le cadre du stage ! 10

............................................................................................1. Le demandeur! 10

.................................................................................................2. Le contexte! 10

...............................................................................................3. Le Périmètre! 10

...............................................................................................4. La demande! 11

....................................................................................5. Objectifs et Enjeux! 11

.........................................................................................6. Les Contraintes! 11

.................................................................................................7. La Solution! 11

....................................................................................................8. Les outils! 11

..............................................................................III. Travail réalisé! 12

......................................................................................1. Etude du besoins! 12

.........................................................................1.1. Reprise du fichier Excel! 12

..............................................................1.2. Recherche de nouveau champ! 12

..........................................................................................1.3. Les Requêtes! 20

..............................................................................1.4. Utilisation de la base! 23

.................................................................................................2. Conception! 23

2.1 Présentation du SIG! 23

...........................................................................................................2.2. ETL! 24

a. Qu’est ce qu’un ETL! 24

b. Principe de fonctionnement! 24

!

4

2.3. Lecture du fichier Excel et remplissage de la base test ARB.! 24

2.4. Ajout des données du fichier Excel au SIG.! 26

a. Comparaison des arrêts! 27

b. Ajout de données au SIG! 29

2.5. Base de données des tableaux de bords! 29

IV. Analyse des résultats obtenus ! 30

!

5

Introduction

Pour réaliser leurs missions, les membres du services Mobilité et Transports de la Communauté d’agglomération de La Rochelle ont besoins de connaitre un grand nombre d’information, que ce soit des informations physique tels que les équipements aux arrêts, la configuration de ces derniers, ... . Ou bien encore les habitudes des habitants de la CDA.

Le projet auquel je participe, dans le cadre de mon stage de deuxième année de DUT informatique, s’inscrit dans un processus d’inventaire des biens de la CDA. En effet, pour l’instant un grand nombre de données nécessaire pour leur travail ne sont pas connus, ou connus mais par un exploitant ou un autre service. Le but de ce projet est donc de faire que toutes les données dont ils ont besoins soit accessible de manière simple, au même endroit, et de manière claire.

Mes objectifs personnels pour ce stage sont de mettre en pratique les connaissances que j’ai acquise durant mes deux années d’IUT et d’être capable de bien comprendre le travail des personnes avec qui je vais travailler, pour leur proposer une solution adapté à leur demande. Dans un premier temps ce rapport présente la Communauté d’Agglomération de la Rochelle. Ensuite il présentera plus en détaille le sujet du stage. Puis il présentera le travail réaliser durant ces deux mois. Enfin, il terminera par une analyse du déroulement du stage.

!

6

I. Présentation de l’entreprise

1. La CDA

La CDA (Communauté d'agglomération de La Rochelle) est composée de 17 communes autour de La Rochelle et compte environ 147 000 habitants. Cette intercommunalité existe depuis plus de 40 ans. En 1964 fût créé le Syndicat Intercommunal à Vocation Multiple (SIVOM) qui regroupait alors 9 communes : La Rochelle, Aytré, Périgny, St-Rogatien, Puilboreau, Lagord, Châtelaillon-Plage, Angoulins-sur-Mer et L’Houmeau. Le but était alors de faciliter la gestion de certains services difficiles de mettre en place pour une seule petite localité : les transports, la gestion des déchets, le traitement des eaux usées et la production d’eau potable. L’agglomération de La Rochelle a joué un rôle de pionné dans ce domaine en France en mettant en place une Taxe Professionnelle Unique (TPU) qui consiste à taxer les entreprises et à mettre cet argent dans un « pot » commun utilisé pour des projets communs.

En 1992 fut créé la Communauté de Ville avec les communes du SIVOM ; un an plus tard Nieul-sur-Mer, St-Xandre, La Jarne, Dompierre-sur-Mer, Salles-sur-Mer et St-Vivien rejoignais cette association.

En décembre 1997 Esnandes, Marsilly et Ste-Soulle rejoignais à leur tour la Communauté de Ville, portant à 18 le nombre d’adhérent. En Janvier 2000, la CDV ce transformais en CDA pour se conformer à la loi Chevènement du 12 juillet 1999.Un projet d’extension à 28 communes est en cours : 9 de la Plaine d’Aunis + Yves.

La CDA a de nombreuses mission, notamment :- La politique de la Ville et l'équilibre social et l'habitat- L'enseignement supérieur- Les technologies de l'information et de la communication- L'environnement- Le développement économique- L'aménagement des espaces

- …

Pour remplir toutes ses missions, la CDA est découpée en plusieurs pôles, eux même découpés en plusieurs services :

!

7

Les revenus de la CDA sont fournis par les entreprises de l’agglomération, grâce à la Taxe Professionnelle Unique (TPU), et par l’Etat. La CDA perçoit aussi des revenus en hébergeant des entreprises («pépinière d’entreprises»). En 2012 la CDA a disposé d’un budget de 111,77 million d’euros en investissement, et de 153,67 million d’euros pour son fonctionnement.

Pour l’information publique la CDA dispose notamment d’un site internet: http://www.agglo-larochelle.fr/

2. Le service Mobilité et Transports

Le service Mobilité et Transports est le service dans lequel j’effectue mon stage. L'adresse est la suivante :

Service Mobilité et Transports45 Quai Maubec

17000La Rochelle

Tél : 05 46 30 36 51Email : [email protected]

Ce service a été crée le 1er juillet 1980 et les premières années du service sont consacrées à l’étude et la mise en place de l’extension des services de transport public aux 9 communes constituant alors le SIVOM de la Rochelle. Aujourd’hui ce service s’occupe de toute la gestion des Réseaux de Transports de la CDA que ce soit : Bus, yélo la nuit, Bus de mer, Passeur, vélo, transport des personnes à mobilité réduites. Ce service créer les lignes, les entretiens, créer les aménagements nécessaires, fournis les véhicules et délègue l’exploitation à la RTCR et Transdev (anciennement VTU: Véolia Transport Urbain).

Ils s’occupent également du contrôle qualité de tout ces moyens de transports publics.

En 2012 le budget de ce service était de 11,60 million d’euros en investissement et 25,90 million d’euros pour son fonctionnement.

pôles et services de la CDA

!

8

Pour ce qui est des bus, plusieurs personnes sont chargées de leur gestion : Jean Forestier s'occupe des informations voyageurs (pub, horaires, numéro de lignes...), Guillaume Morin s'occupe des aménagements, Bertrand Errol est contrôleur transport et Hervé Le Berre est chargé d’étude. Vincent Paillard, mon maître de stage est Responsable Services à la mobilité et infrastructures.

3. La Direction des Services et Technologies de l'information Durant ce projet je vais notamment devoir collaborer avec la DSTI, et plus

particulièrement avec Jean-Pascal Priou et Jérôme Rautureau. C'est ce service qui développe et met en place les systèmes de traitement et de diffusion de l'information comme notamment ICAR qui est l'intranet de la CDA.

Au début, la CDA était relié au réseaux informatique et téléphonique de la ville. Afin de devenir indépendante, elle a donc créé la DSTI et a ainsi pu mettre en place son propre réseau et son propre système d’information. La DSTI s’occupe donc de l’installation et de la maintenance de ce réseau.

La DSTI s’occupe aussi de la maintenance et du dépannage des outils informatique de la CDA: ordinateur, intranet ICAR, photocopieurs, ... Aussi, elle conseil les services et leurs met en place des solutions informatiques pour répondre à leurs besoins.

4. Le centre décisionnel de la CDA

Mais qui dirige la CDA ? En fait, le « centre décisionnel » de la CDA est composé du Conseils Communautaire, et du Bureau Communautaire. Chaque commune est

!

9

composée de Conseillers Municipaux ; certains de ces conseillers sont élus pour siéger au Conseiller Communautaire. Ces conseillers élisent à leur tour un président, qui devra mettre en application les décisions prisent par le conseil. Les Maires eux, sont vice-présidents de la CDA, ainsi que d’autres élus désignés, et siègent au Bureau Communautaire avec le président. Ce bureau prépare les dossiers qui seront ultérieurement soumis au vote du conseil.

La CDA a été mise en place pour répondre à des besoins communs et couteux à l’échelle d’une seule commune. Ces besoins constituent les « missions » de la CDA.

II. Le cadre du stage

1. Le demandeur Le demandeur est mon service d'accueil: le service Mobilité et Transports de la CDA.

2. Le contexte

Aujourd’hui la base arrêts est un fichier Excel qui contient des informations tels que le codeSAE (qui sert à l’identification d’un arrêt), son nom, adresse, les lignes qui le desservent, ... . Ce mode de gestion n’est pas pratique car il ne permet pas un partage facile des données. Si quelqu’un veut le fichier, il faut lui envoyer par mail, donc plusieurs version du fichier peuvent circuler. De plus la lisibilité des données et des informations n’est pas forcement bonne, beaucoup de colonnes ne sont pas remplis, et certaines informations capitales pour le services ne sont pas présentes dans ce fichier. Enfin, le fichier Excel ne permet pas de faire un historique de ce qui a été fait. La création d’une base de donnée semble donc être la solution à ces problèmes. La base de données devra donc corriger tout ces problèmes et faciliter le plus possible le travail du service. De plus la CDA est en train de faire un inventaire de son patrimoine. Un inventaire des terrains libres est fait, ainsi qu’un inventaire des pépinières d’entreprises. La base de données qu’il va m’être demandé de crée s’inscrit dans ce processus d’inventaire.

3. Le Périmètre

Je dois faire une étude des besoins détaillés. Je commences par définir les besoins, pour comprendre ce dont le service à besoins, quelles sont les données intéressantes à stocker, et pourquoi. Je dois comprendre ce qu’ils veulent faire de cette base, et leur proposer aussi des idées. Toujours dans la partie étude, je m'intéresserais à la restitution de ces données et à la manière dont elles devront être présentées. Puis à la fin de cette études, nous définirons avec Jean-Pascal Priou ce qui sera réalisable ou non dans le cadre du stage et nous pourrons alors débuter la conception. Même si je ne réalise pas la conception en entier, il est important que je fasse une étude complète des besoins pour que je puisse «préparer le terrain» et que l’implémentation des autres fonctionnalité par la suite se fasse rapidement et facilement sans avoir à refaire une

!

10

analyse. La conception se limitera surement aux règles de gestions simple et à l’inventaire des arrêts.

4. La demande

Le but final du projet est une base de données des arrêts remplaçant l’actuel fichier excel. Idéalement cette base serait accessible depuis l’intranet. Elle devra communiquer avec la base de la RTCR pour récupérer les informations que nous n’avons pas et inversement. Cette base devra pouvoir être intégré au SIG (Système d’information géographique) de la CDA, ce qui permettra de ressortir facilement les arrêts sur une carte avec les informations demandées.

5. Objectifs et Enjeux Les enjeux évidents de ce projet sont bien évidement de faciliter le travail du service en facilitant la gestion des arrêts de bus et un partage plus facile des données. La première partie de mon travail consistera à déterminer l’ensemble des objectifs de ce projet.

6. Les Contraintes

La base devra s’intégrer à une base plus globale qui contiendra l’ensemble du patrimoine de la CDA. La table centrale de cette base sera «commune». Cette base sera accessible depuis l’intranet. Elle devra communiquer avec la base de la RTCR et TRANSDEV (envoi de données et réception de données) et se mettre à jours automatiquement avec ces données.

7. La Solution

Pour la réalisation de ce projet, plusieurs étapes seront nécessaires:

- Faire une étude complète du projet pour déterminer les enjeux, objectifs et règles métiers, définir les tableaux de bords.

- Définir ce qui sera faisable, du moins dans le cadre du stage et comment. - Réalisation.

8. Les outils

Il m’a été fournis un ordinateur sous Windows XP pro. J’utiliserais Modélio pour les modélisations UML. Pentaho Data Integration pour l’ETL, SQL Designer pour la base de données.

!

11

III. Travail réalisé

1. Etude du besoins

La première partie de mon stage a consisté à définir les besoins du service pour la futur base des arrêts de bus. Pour cela j’ai commencé par étudier le fichier Excel qui leur servait de base.

1.1. Reprise du fichier Excel

Le premier jours de mon stage Vincent Paillard m’a fournie le fichier Excel qui leur sert actuellement de base des arrêts de bus pour que je l'étudie. Une partie du fichier Excel est visible dans l’annexe Base Arrêt de Bus. J’ai repris chacun des champs et établi une définition de chacun, et relevé les valeurs possibles de ces champs dans un tableau (cf. Annexe-Base Arrêt V2). J’ai proposé le remplacement de certaines colonnes comme par exemple la colonne «RTCR/VTU» qui était à 1 lorsque l’arrêt était desservi par les deux sociétés. Hors il existait déjà une colonne RTCR. J’ai donc proposé de remplacer «RTCR/VTU» par «VTU» pour ainsi avoir une colonne «RTCR» et une colonne «VTU». De même, il existait une colonne «Nouvel arrêt». Cette notion n’a aucun sens si elle n’est pas raccroché à une date, et si l’on ne défini pas jusqu’à quand un arrêt est considéré comme nouveau. J’ai donc proposé de remplacer cette valeur par la date de création de l’arrêt. Une fois cette reprise du fichier Excel effectué, il a fallu trouver les nouveaux champs à intégrer à la base.

1.2. Recherche de nouveau champ

Le fichier Excel ne contenait que relativement peu d’information, et l’un des objectifs de ce projet était de déterminer quelles pourraient être les autres informations que le service aurait besoins de connaître facilement. J’ai donc rencontré plusieurs fois les différents membres du service, ou du moins les personnes les plus concernées par cette base. Le but était de déterminer les exigences, enjeux et objectifs de cette future base. J’ai aussi été faire un tour en ville pour voir des arrêts et ainsi mieux me rendre compte des informations qui leurs sont nécessaires.

Dans un premier temps, j’ai complété mon tableau jusqu’à la version 4 en y indiquant à chaque fois à la fin, les questions et leurs réponses quand je les avais (voir Annexe-Base Arrêts V4).

Puis j’ai repris les informations que contenais ce document pour en faire un autre textuel. C’est ce document que j’ai complété par la suite et intégré à mon rapport de stage. Durant l’étude du besoin, j’ai relevé les Exigences, Enjeux et Objectifs suivants:

!

12

Diagramme des Objectifs

! ! Stocker les informations utiles

! Dans un premier temps il faudra faire l’inventaire de tout ce qui pourra être stocké dans la base. Le but étant de stocker un maximum d’informations utiles et de permettre l’ajout futur de nouvelles fonctionnalités sans avoir à tout refaire. Le but est aussi de faire en sorte que cette base soit le plus utilisée possible. Mais ils ne faut pas non plus stocker trop d’informations, au risque d’avoir trop de champs non renseignés.

! ! Historique des modifications!!! Il serait intéressant de pouvoir suivre l’évolution du réseau. Dés qu’une modification est faite sur un arrêt, cette dernière est enregistrée avec la date (date de modification physique, pas la date où l’information a été saisi). Cet historique permettrait aussi de faire des statistiques. Par exemple, il serait intéressant de pouvoir dire: cette année, nous avons réalisé tels aménagements. Cette années nous avons supprimé tels arrêts et créé ceux-ci... Ce serait en quelque sorte les archives des arrêts de bus. Toutes les données n’auront pas d’archive, seul les données importantes auront un historique: Zone Taxis, Nom arrêt, codeSAE, numéroSMS, Adresse, type lieu d’arrêt, état Utilisation, état aménagement, rémunération transdev, équipement, Accessible, Accessibilité passage piéton, chemin passage piéton, propriétaire, alimentation électrique, lignes, exploitant.

- Archivage des données à chaque modification. A chaque modification d’un arrêt sur la base, il faudra saisir la date de modification physique réel (pas la date de saisi de l’information sinon cela n’aura aucun intérêt).

!

13

! Ces deux exigences garantissent les objectifs suivants:

Suivre l’accessibilité des arrêts: La base devra permettre de retourner les arrêts accessibles ou non. Pour cela on stockera les dimensions de l’arrêt: longueur de quai, largeur de trottoir totale et devant l’abris s’il y en a un, hauteur de bordure. La hauteur de bordure permettra de savoir si un aménagement est accessible (hauteur de 18cm), s’il n’a pas été aménagé mais accessible (14cm), et s’il n’est pas accessible (en dessous de 14cm). Il faudra aussi préciser (pour ceux à qui les données chiffrées ne parlerais pas) si l’arrêt est aménagé ou non, l’état de l’aménagement (aucun, en cours, finis) et si l’arrêt est accessible. Normalement, un arrêt aménagé est accessible, mais il se peut que le profile de la voirie fasse que même avec l’aménagement, l’arrêt est toujours inaccessible. Il faut donc rajouter se paramètre également. Toutes ces données pourront-être utiles dans le cadre d’un engagement politique visant à rendre tout les transports en commun accessible aux personnes à mobilité réduite. Il faudrait aussi pouvoir savoir si le passage piéton est accessible (petit renfoncement / pente qui permet d’accéder au passage piéton) et si le «chemin» du passage piéton à l’arrêt a été aménagé.

- Si l’aménagement de l’arrêt de bus est inférieur à 14 cm, celui-ci est considéré comme non accessible. En effet, la rampe du bus ne peut pas être déployé pour faire rentrer les personnes à mobilités réduite comme par exemple les fauteuils roulants.

- La hauteur de bordure permettra de savoir si un aménagement est accessible (hauteur de 18cm), s’il n’a pas été aménagé mais accessible (14cm), et s’il n’est pas accessible (en dessous de 14cm).

- Si le profile de chaussé n’est pas bon, l’arrêt est considéré comme non accessible, même si un aménagement est bon.

- Pour l’état de l’aménagement, cela dépendra de la fréquence d’actualisation de la base: si la base est actualisée fréquemment, l’état «en cours» aura un intérêt.

- La pente doit être de 5% maximum. Tolérance: 8% sur 2m, 12% sur 0,5m.!

Suivre la signalisation: Il faudrait connaitre la signalisation présente sur l’arrêt: zigzag, longueur zigzag, passage piéton, distance passage piéton, la position de ce dernier (avant ou après l’arrêt), bande cyclable, damier (dans les sas bus), bande continue sur le trottoir. La pré signalisation et la signalisation ne sont présentes qu’à certains endroits, notamment sur les voies où la circulation est plus rapide rendant donc les arrêts plus dangereux. Il faudra détailler pour l’arrêt et pour le passage piéton.

- Si un passage piéton est trop près d’un arrêt de bus (distance à définir), un problème de signalisation est indiqué. Les passages piétons situés à plus de 50m ne devront pas être indiqués dans la base.

- Les arrêts uniquement scolaire, en descente, n’ont besoin que d’un zigzag.- Voir les règles de «type lieu arrêt»

Suivi de l’intermodalité des transports : L’un des objectifs de l'agglomération est de favoriser les intermodalités entre les transports. Par exemple les parkings en périphérie de la ville, desservies par une ligne de bus, ou encore les vélos parc à proximité de certains arrêts... Il serait donc intéressant de connaître ces équipements lorsqu’ils sont présent à côté d’un arrêt, et de connaître les fréquentations qui en découlent. Il faudrait donc

!

14

intégrer les vélos parcs avec leurs taille et s’ils sont sécurisés ou non. Les LSVs (Libre Service Vélo).

Suivi de la signalétique: Il faudrait pouvoir savoir facilement si la signalétique est présente ou non sur l’arrêt en détaillant: Nom arrêt, numéro des lignes, numéro Yélo la nuit, numéro SMS, Qr Code.

- Si elle n’est pas présente: problème de type signalétique.- Si l’une de ces informations venait à manquer, une «anomalie» serait alors créé. A noter

que pour un arrêt dont le service Yélo la nuit n’est pas disponible, si cette signalétique n’est pas présente, il ne faut pas créer «d’anomalie».

Gestion des informations clientèles: Connaitre le nombre de cadres horaires présents dans l’abri si c’est un abris, et les informations qu’ils contiennent: le nombre de grille horaire (A4), le nombre d’emplacement événementielle (A4)(nombre d’emplacement réservé aux affiches événementielles), nombre d’autres informations permanentes (A4) (informations permanente liée à cet arrêt), information Start. Il faut aussi connaître le nombre de caissons publicitaires, le type d’information présente dans les caissons, et éventuellement sur chacune des faces: Pub Decaux, communication CDA. Récupérer aussi, si possible les fiches horaires de chaque arrêt, pour pouvoir y accéder depuis l’application, sans avoir à passer par le site de la RTCR.

- Connaître le nombre de feuille que l’ont peut mettre dans un cadre pour ainsi créer une anomalie de type «cadres» lorsqu’il n’y a pas assez de cadres horaires.

Suivi des équipements et de la matérialisation de l’arrêt: Il faut pouvoir savoir si l’arrêt est matérialisé par un poteau avec son type: M: Métrobus (fixe ancien), MDO (nouveau fixe), CG (poteau conseil général 17), PPB (Poteau Provisoire Bleu), PPG (Poteau Provisoire Gris), PPJ (Poteau Provisoire Jaune); ou un abris avec : son type(Decaux, autre fournisseur, en dur), ses dimensions, si c’est un abris Decaux: Numéro de parc, état de l’alimentation électrique(pré câblé, raccordé, aucune), la nature (simple ou double) et le nombre de caisson avec les informations qu’ils contiennent (face intérieur et extérieur): pub Decaux ou communication CDA. Et pouvoir connaitre les équipements présent sur cet arrêt: poubelle, banc, miroir, affichage électronique, bande podotactile, assis debout,. Les dimensions de l’abris. Pour les abris Decaux il serait intéressant de connaitre le numéro de parc (numéro unique d’identification). Sa nature (simple ou double). Les dimensions déterminent la nature de l’abris, mais tout le monde ne le sais pas forcement, et l’état de l’alimentation électrique: pré câblé, raccordé, aucune. Il faudrait aussi pouvoir connaitre le propriétaire de l’abris ou du poteau (CDA, Commune, Decaux, ...). A noter que lorsqu’un arrêt est supprimé, la matérialisation et les équipements doivent être réaffectés ou stockés en attendant d’être réaffectés.

- S’il y a un poteau provisoire sur un arrêt: créer automatique une «anomalie» de type matérialisation.

- Si l’arrêt n’est matérialisé ni par un poteau, ni par un abris: «anomalie» de type matérialisation.

- Les arrêts uniquement scolaire, en descente, n’ont besoin que d’un zigzag. Cette information est a confirmer.

- Un arrêt avec uniquement un poteau ne peut pas avoir d’affichage électronique.

!

15

- Si ce n’est pas un abris Decaux: pas de numéro de parc, pas d’alimentation, et pas de caisson => pas d’infos sur la pub.

- Un abris Decaux a 0, 1, ou 2 caisson(s).- Il peut arriver qu’il y ai un abris et un poteau.

Suivi des infos générales, relatives à cet arrêt: code SAE, lieu, nom (deux arrêts peuvent avoir le même nom dans deux communes différentes), sens, scolaire, Yélo la Nuit, taxis, lignes et les horaires de passages... Ces informations sont un peut la carte d’identité des arrêts et sont donc indispensables. Avoir une photo de l’arrêt. A noter que des photos existent déjà (base Access). Ce sont ces informations qui devront être obligatoirement renseigné dans la base. Savoir qui désert cet arrêt: RTCR, Transdev, CG17. Savoir si l’arrêt a été supprimé. A savoir que l’arrêt «d’en face», qui porte le même nom, peut ne pas avoir été créé au même moment; ou être supprimé alors que l’autre non. Ce qui fait qu’ils n’ont en commun que le nom, la commune, et le numéro yélo la nuit s’il y en a un. Avoir les heures de passage pourrait-être utile, ou du moins les PDFs avec les horaires pour ne pas avoir à passer par le site de la RTCR pour accéder aux horaires d’un arrêt. Il peut être intéressant de pouvoir connaître l’arrêt suivant, ainsi que sa distance: ces deux informations dépendrons de la ligne. Il faut pouvoir déterminer la rémunération des exploitants à un arrêt et pour cela il y a 3 possibilité: la RTCR et Transdev déversent tout deux l’arrêts ou la RTCR est la seule à le desservir, ou Transdev est la seule. C’est trois cas sont facilement identifiable avec la base. Mais pour le cas ou il y a uniquement Transdev, deux cas sont possibles: cout marginal, et prix moyen pondéré. Ces deux derniers cas ne peuvent pas être identifiés grâce aux informations que nous possédons déjà, il faudra donc le rajouter. Il faudrait aussi pouvoir savoir si un établissement publique est présent à moins de 300m. Cette information servira notamment à savoir si l’ont doit remplacer un poteau par un abris, ou à savoir si l’on peut supprimer un arrêt ou non. Connaitre le prochaine arrêt (dépend de la ligne) et la distance jusqu’à cet arrêt (dépend de la ligne).

- Lors de la suppression d’un arrêt, ce dernier devra être affiché quelques temps encore dans la liste des arrêts, afin de pouvoir voir les évolutions.

- Un arrêt logique ne peut pas avoir deux arrêt physique dans le même sens: par exemple Quai Valin Sens Int et Quai Valin Sens Int. Il est soit associé à sens Int ou sens Ext ou les deux.

- Un arrêt est soit «vers Ext» soit «vers Int».Cette notion est un peut flou et désigne le sens de la ligne. Dans certains cas cette notion ne sera pas claire (exemple, la ligne qui va des Minimes à Aytré). Mais cette notion est aussi utilisé pour désigner un arrêt pour savoir de quel «côté» de la route on se trouve. Dans ce cas il faudra plutôt interpréter cette information comme: si je suis à cette arrêt, le sens de circulation vers le centre ville, ou vers l’extérieur de la ville?

- Le code SAE est unique pour chaque arrêt. Un arrêt étant défini ici par: la commune, le nom de l’arrêt, et son sens. Par exemple l’arrêt Quai Valin vers ext, et quai Valin vers int sont deux arrêts différents pour la base, et n’ont pas le même code SAE.

- Le numéro Yélo la nuit doit être associé au plus à deux arrêts (le montant et le descendant) et dépend du nom de l’arrêt et de la commune: Ex Quai Valin vers ext à pour numéro Yélo la nuit 432 et Quai Valin vers int 432. Par contre on ne peut pas avoir: Quai Valin vers int = 432 et Quai Valin vers Ext = 654. On ne peut pas non plus avoir: Quai Valin vers int ou (Ext, peut importe) = 432 et Grosse Horloge =432.

- Si un arrêt n’est plus desservi par aucune ligne il passe en état abandonné. Il est donc toujours associé à un équipement, ... Il n’est juste plus desservi. Il passera en état

!

16

supprimé quand il n’aura plus de ligne, ni de matérialisation. Cet état pourrait être incrémenté automatiquement.

Suivre les problèmes des arrêts: Il faudra pouvoir, grâce à la base, connaître les problèmes sur les arrêts. Par exemple s’il y a un problème de matérialisation (poteau, abris), de signalétique (affichage du nom de l’arrêt, des lignes, du numéro SMS, numéro Yélo la nuit), équipements (poubelle, banc...), signalisation (zigzag, bande cyclable...), cadre affichage: il n’y a pas assez de cadre pour afficher les horaires. Ces problèmes seraient complétés par un commentaire. On pourrait donc savoir par exemple que sur un arrêt, le zigzag est effacé. Ou encore que le numéro des lignes n’est pas affiché correctement. Il y aurait une vérification automatique des valeurs saisis, qui permettrait l’ajout automatique de problèmes en fonctions des contraintes prévues dans les sections correspondantes. le terme «anomalie» dans le reste du document fait référence à l’idée exprimé dans ce paragraphe. Par la suite, cette fonctionnalité pourrait être complété par une autre qui permettrait de lancer des interventions sur ces arrêts et de suivre leur avancement.

Type de lieu d’arrêt: Pouvoir savoir si c’est un arrêt sur site propre, voie bus, sas bus, hors chaussée, sur chaussée.

- Définir les signalisations impossibles sur les différents types de lieu: par exemple il est peut-être impossible d’avoir un zig zag sur un arrêt sur site propre.

- Définir les signalisations obligatoires pour chaque types d’arrêt et ainsi définir automatiquement s’il y a un problème de signalisation.

- Un SAS Bus a forcement un damier.

Limiter les erreurs : La base Excel compte plusieurs erreurs de saisi, et peut comporter des incohérences car les valeurs saisis ne sont pas vérifiées de manière automatique: l’utilisateur peut saisir ce qu’il veut, on ne lui dira pas que c’est faux. La base de données peut faire ce travail. Si l’on définie un maximum de règles métiers et qu’on les intègres bien à la base, nous pourrons éviter un grand nombre d’erreurs de saisis. Par exemple, proposer les noms des communes au lieu de les saisir à chaque fois, et faire de même pour tout les champs dont on connais déjà toutes les valeurs possibles. Ensuite, ne pas valider l’enregistrement lorsqu’une incohérence dans les valeurs est détectée: par exemple, un affichage électronique avec un poteau. Là on préviens qu’une erreur a été détectée et qu’il doit la corriger.

Partage des données avec les exploitants: La RTCR et Transdev (anciennement VTU) sont les deux sociétés de transport du réseaux. Ces deux sociétés ont une base de données. Certaines des informations qu’ils ont pourront nous être utile, et il faudra les récupérer dans notre base de données. Mais eux aussi peuvent avoir besoin de nos données. Il faudra donc que les échanges puissent se faire dans les deux sens. Il faudra donc déterminer les données à récupérer. Il faudra aussi déterminer comment sera effectué le remplissage de la base: récupération des infos de la RTCR ou récupération des infos du fichier Excel. Grâce à la base de la RTCR nous pourrons obtenir des informations tels que la fréquentation aux arrêts: le nombre de personnes qui montent à tels arrêts, et nous permettrais donc d’avoir des données statistiques. Il faudra aussi

!

17

trouvé comment faire la jointure entre nos 3 bases, car les identifiants des arrêts ne sont pas les mêmes malheureusement.

Critères d’équipement d’un arrêt: La base doit leur permettre de déterminer si un arrêt doit avoir un abris ou non. Pour cela, les critères sont les suivants: Fréquentation, Potentiel de fréquentation lié à l’urbanisme (Nombre de personne habitant aux abord de l’arrêt et potentiels utilisateurs de l’arrêt), Demande d’un abris (par la clientèle, la commune, les associations), Quota de surface d’affichage publicitaire ou dédié à la communication (emplacements dédiés à la communication CDA; ces emplacements sont connus par le service communication), pôle d’attractivité à proximité (établissement publics, d’enseignement, entreprises signataire d’un PD), points de concordances/pôle d’échanges (arrêts desservis par plusieurs lignes, P+R, aire de covoiturage ou station LSV à proximité), projet d’aménagement de voirie (attente travaux si prévus), contrainte d’espace disponible (dimensions trottoir), répartition des abris sur le territoire, service Yélo la nuit/TAD à l’arrêt, arrêt mutualisé RTCR/ Transdev.

! ! Accéder à la base depuis l’intranet !! Ceci permettra un partage beaucoup plus facile de ces données. Par contre, l’accès à l’ajout ou la modification de données ne devra pas être accessible à tous.

- Définir les personnes qui peuvent modifier la base et ce qu’elles peuvent modifier. Je pense qu’il serait plus judicieux de laisser chaque personnes pouvoir ajouter et modifier les données dont il s’occupe et dont il est le seul à avoir besoin.

- Définir les personnes qui peuvent y accéder et à quelles informations.

! ! Faire un lien avec le SIG

! Il serait intéressant en effet que le résultat des requêtes puisse s’afficher sur le SIG. On pourrait ainsi avoir facilement une carte avec tout les arrêts d’une ligne et le nombre de personnes qui montent à chaque arrêt en moyenne. Où afficher tous les arrêts accessibles, tout les arrêts avec une poubelle... Il faudra donc préparer la future fonctionnalité (celle-ci ne sera probablement pas abordé durant le stage car le SIG est en plein remaniement). Il est peut être envisagé d’utiliser le SIG en entré, et non plus en sortis.

Ces deux exigences garantissent l’objectif suivants:

! Faciliter l’accès aux données: Il faut que tous ceux qui ont besoins de ces informations puissent-y accéder facilement et ai accès aux données mise à jours. Tout le monde doit pouvoir avoir accès aux mêmes informations.

! ! Définir les tableaux de bord!! Il faudra définir sous quelles formes seront restituées ces requêtes.

!

18

Cette exigence garantie l’objectif suivant:

Faire des statistiques: Un autre objectifs, déjà évoqué plusieurs fois est le fait de pouvoir faire des statistiques avec cette base. En effet le service a besoin d’informations chiffrées sur les fréquentations par exemple. Toutes les données chiffrées que pourrait avoir la RTCR les intéressent. Mais il faudra aussi pouvoir sortir des statistiques sur nos propres données. Par exemple: le pourcentage d’arrêt accessible. Le nombre d’arrêt rendu accessible par années.!

Enfin:- Si on ne connais pas la valeur d’un champs: on ne met rien. 0 signifie «rien». Un champ

vide: on ne sais pas. - Il faudra pouvoir gérer le cas «on ne sais pas». En effet, au début, beaucoup de champ

ne seront pas connus, il faudra donc ne pas les confondre avec les champs qui signifient «non».

Avec ces informations j’ai pût créer une première version du modèle du domaine: voir Annexe-Modèle du domaine V1.

A la demande de monsieur Priou, ce schéma a été simplifié dans le sens où il m’a été demandé de faire le moins de table possible pour la base. Le schéma qui servira donc de modèle pour la base est le suivant:

!

19

Les définitions des classes et attributs sont disponibles dans l’Annexe - Dictionnaire Détaillé.

1.3. Les Requêtes

Une fois tous les champs définis, il a fallu déterminer quelles seront les utilisations fréquentes; de quelles informations chacun des utilisateurs aura besoin fréquemment et comment les présenter. Pour cela nous avons définis plusieurs tableau de bord.

Pour chacun des tableau suivant, Il faudra pouvoir faire un tri sur chacun des critères affichés et des critères universels suivants: Commune, ligne, Yélo la nuit/TAD, Fréquentation (supérieur ou inférieur à un certain chiffre), sens de l’arrêt, Accessibilité, type mobilier (Abris, Poteaux).

! ! ! Fiche info voyageurs et signalétique

! Pour l’information clientèle, il faut pouvoir afficher pour chaque arrêt, si c’est un poteau ou un abris, le nombre de grille horaire nécessaire, le nombre d’emplacement événementiel, le nombre d’autres infos permanentes, et le nombre d’infos Start, et si c’est un abri: le nombre de cadre horaire. Ces informations lui permettrons par exemple de savoir s’il doit rajouter un cadre horaire, et de connaitre précisément ce que contiennent ces cadres.

! Il faut aussi pouvoir afficher par arrêt si chaque signalétique est présente: nom arrêt, lignes, numéro SMS, Yélo la nuit/ TAD, QR code bien préciser pour le numéro yélo la nuit, s’il n’est pas présent, s’il devrait y en avoir un ou pas (tous les arrêts ne font pas TAD).

! Concernant le marché signalétique, qui va consister à afficher sur tout les arrêts le nom de l’arrêt, les lignes..., il faudrait donc pouvoir avoir sur un tableau de bord, par arrêt: la commune, le nom de l’arrêt, le sens, l’adresse, les cordonnées (X,Y), le mobilier, la liste des lignes, le numéro SMS, ainsi que le numéro Yélo la nuit / TAD.

! ! ! Matérialisation et équipement

! Il faut pouvoir afficher le mobilier présent aux arrêts sur une ligne ou sur une commune avec les informations suivante: nom de l’arrêt, sens, adresse, type de poteau si c’est un poteau, dimensions de trottoir (permettra de savoir, si c’est un poteau provisoire, si l’on peut y mettre un abris), si c’est un abri: ses dimensions, son numéro de parc, état de l’alimentation électrique et le nombre de caisson ou les informations que contient le(s) caisson(s). Et il faudrait que sur ce même tableau, on puisse afficher les équipements de l’arrêt (une colonne suffira pour l’équipement).! Jean Forestier se sert de ces informations lors de la modification des lignes et d’ajout / suppression d’arrêt. En effet par exemple, s’il doit mettre un nouvelle arrêt dans une commune autre que La Rochelle, il aura besoin de connaître les arrêts déjà présent dans la commune, notamment ceux avec caisson, pour savoir s’il peut mettre un nouvel arrêt avec caisson ou non ( dans les petites communes, la fréquentation étant moindre, il y a peu d'intérêt à mettre de la pub). De même s’il y a un arrêt à supprimer. Il aimerait

!

20

connaitre sur une commune, la liste des abris par type et les caissons (s’il y en a) avec les informations qu’affiche ce caisson.! Il faut pouvoir afficher ces informations pour les arrêts abandonnés, pour ainsi pour ré-affecter les équipements.! Il faut aussi qu’il puisse facilement connaitre le nombre de poteau provisoire, et le nombre de poteaux CG17 puisqu’ils sont amenés à être remplacé. Il faut qu’il ai la liste de ces arrêts avec les informations de base: nom, commune, sens, adresse et éventuellement et les dimensions du trottoir, pour pouvoir déterminer quel mobilier il pourra y installer.

! ! ! Accessibilité et signalisation

! Guillaume Morin s’occupe de la partie accessibilité aux arrêts. Il aura donc besoin de connaître rapidement les arrêts non accessible. Il aimerait voir en même temps les informations essentielles d’accessibilité et de sécurité de l’arrêt: passage piéton et distance, s’il est accessible ou non, zigzag, longueur zigzag. Il aimerait aussi pouvoir savoir si l’arrêt est un poteau ou un abris, et la fréquentation de cet arrêt. Sur ce tableau devront aussi apparaitre les informations concernant la signalisation.

! ! ! Contrôle qualité

! Errol Bertrand s’occupe du contrôle qualité. Il vérifie notamment la présence des informations clientèles aux arrêts, et l’heure de passage des bus aux arrêts.!

! Il faudrait créer un tableau des horaires pour chaque lignes de bus avec en colonne: les arrêts et en ligne les différents passages.

! Le tableau devrait ressembler à ça:Ligne X Arrêt 1 Arrêt 2 Arrêt 3

passage 1 8:00 8:03 8:05

passage 2 8:30 8:33 8:35

passage 3 9:00 9:03 9:05

! Il faudra définir un masque de recherche. Par exemple liste des lignes commencent à telle heure. Les horaires pourrait-être sélectionnés et mis dans un tableau (cf. tableau d’Errol lorsqu’il fait ses contrôles). Bertrand Errol aurait besoin de ce tableau la. Il a besoin de tout les horaires pour faire ses contrôles: il se positionne à un arrêt et contrôle que le bus passe bien à l’heure indiqué. Il doit donc faire son «itinéraire» avant, et ce tableau pourrait l’aider. L’idéal serait qu’une fois qu’il a sélectionné un arrêt, on ne lui présente plus que les horaires après l’horaire qu’il vient de choisir. Par exemple s’il choisi Quai Valin 8h00, il faudrait mette à jours les tableaux pour n’afficher que les horaires après 8h. L’idéal serait même de n’afficher que les horaires des arrêts proches. Et encore mieux, lui proposer automatiquement un chemin de contrôle.

!

21

! Il faudrait aussi en parallèle lui sortir les infos qui doivent être présentes sur l’arrêt pour qu’il puisse les vérifier.

! ! ! Fiche descriptive complète d’un arrêt

! Il faudra pouvoir afficher toutes les informations concernant un arrêt sur une même page. En effet, certaines informations n’apparaitrons jamais dans les tableaux de bords car se sont des informations qui ne seront utilisées que ponctuellement. Il faudra donc faire un récapitulatif des informations de l’arrêt, classé par catégorie, et la photo de l’arrêt.

! ! ! Problème arrêt

! Ce tableau devra récapituler les arrêts ayant un problème avec le type de problème et le commentaire et ou, intégrer la colonne anomalie à chaque tableaux de bord ou une anomalie peut être présente.

! ! ! Tableaux historique

! Il faut générer chaque année, grâce à l’historique, les modifications apportées sur certains critères. Par exemple: les arrêts aménagés durant l’année, les abris posés durant l’année, ... .

! ! ! Tableau de bord statistique

! La base devra permettre de générer des tableaux de bords statistiques comme celui fourni par la RTCR (cf. Tableau De Bord 2013). Mais il faudra aussi prévoir des statistiques sur d’autre données.!! Par exemple, par ligne, avoir un histogramme en bâton avec la fréquentation à chaque arrêt.

! Pouvoir afficher sur le SIG une ou plusieurs lignes, avec pour chaque arrêt une couleur indiquant la fréquentation.!! Sur le SIG, afficher une liste d’arrêt avec un cercle de 200m de rayon pour ainsi voir les zones qui n’ont pas d’arrêt à moins de 200m.

! ! ! Recherche multi critères

! Il s’agirait de pouvoir faire n’importe quel tableau. Tout serait sélectionnable. Cette fonctionnalité serait utilisé ponctuellement pour avoir certains tableaux non prévus précédemment. Ou sinon de pouvoir modifier les tableaux précédent permettant la suppression de certaine colonne ou l’ajout de nouvelle.

!

22

Comme je ne pourrais pas réaliser tout les tableaux de bord, par manque de temps, il a fallut trier ces tableaux par ordres d’importance, et je ne pourrais probablement réaliser que les trois premiers.

1.4. Utilisation de la base

Maintenant que la partie sur les données et leur restitution est claire, je me suis attaqué à l’application. Comment imaginent t’ils faire leurs recherche? Comment s’imaginent t’ils rechercher un arrêt? Par son nom? Son code SAE? Sur une carte?

Quand je leur ai posé ces questions, ils m’ont tout de suite répondu qu’ils voulaient pouvoir voir les arrêts sur une carte, et cliquer sur l’un d’eux pour voir apparaitre les informations qui le concerne. Ou plus simplement, ils veulent pouvoir rechercher un arrêt grâce à son nom. Ensuite, lorsqu’ils sortent des arrêts sur les tableaux de bords, ils veulent pouvoir les voire sur une carte. Ils veulent pouvoir afficher le tracé des lignes, ... .

2. Conception

Maintenant que l’étude est finis, je peux m’attaquer à la réalisation de cette base. Comme le développement n’était pas possible sur ICAR au moment de mon stage, et que la cartographie c’est avéré être un élément central et très important, il a été choisi d’utiliser le SIG en entrée. Du moins pour le moment, car le SIG est en plein remaniement et va bientôt changer. De plus, une application est en cours de développement pour la gestion des pépinières d’entreprises et il est fort probable qu’une fois qu’elle sera terminée, une autre application pour la gestion des arrêts de bus soit faite sur le même modèle. Le travail d’étude que j’ai réalisé sera donc utile à ce moment la. Nous allons donc intégrer notre schéma de base de donné à celui du SIG. Ensuite pour ce qui est des tableaux de bord, nous créerons une deuxième base de données qui sera plus à même de répondre aux besoins en tableaux de bord et qui sera mise à jours par la première grâce à un ETL. De cette manière les calculs nécessaires sur certaines valeurs des tableaux de bords seront effectué par l’ETL et les résultat seront donc stocké dans cette nouvelle base. Il y aura donc un gain de temps lors de la création des tableaux de bord.

2.1 Présentation du SIG

Un Système d’information géographique, ou SIG, est un système d’information qui permet de créer, d’organiser et de représenter des données alphanumérique géoréférencées. Dans notre cas il s’agit de stocker des arrêts et d’avoir leur emplacement sur une carte. Le SIG qui est actuellement utilisé, et qui va bientôt être changé, fait le lien entre deux objets. Le premier est l’objet alphanumérique, qui contient les informations relative à l’arrêt: nom, sens, ... . Le deuxième est la position géographique de cet arrêt, autrement dit un point.

!

23

Pour réaliser cette base, il a fallut dans un premier temps définir les tronçons, car en effet, une fois le fond de carte choisis, le SIG n’est pas capable de savoir tout seul où sont les route. Il a donc fallut les définir une par une. Pour cela il a été définit une multitude de «tronçon» qui vont d’un carrefour à un autre et en indiquant à chaque fois le ou les sens de circulation possible sur ce tronçon. Pour ajouter un arrêt sur la carte, il suffit de le placer manuellement sur la carte et de l’associer à un tronçon et une ou plusieurs lignes.

Captures d’écran SIG

2.2. ETL

a. Qu’est ce qu’un ETL

ETL signifie Extract-Transform-Load. Cet outil permet de faire des synchronisations d’une base de données vers une autre. Cet outils possède différente fonctions: l’extraction et l’alimentation bien sûr, mais aussi la transformation et la constitution/conversion. L’objectif d’un ETL est de pouvoir exploiter les données d’une base de donné source dans une base de donnée cible. Cet outil permet donc d’extraire des données, de les transformer et d’intégrer ces nouvelles données à une base de données. Et c’est ainsi que nous allons l’utiliser.

b. Principe de fonctionnement

L’ETL que j’ai utilisé s’appel Pentaho Data Integration. Son fonctionnement est le suivant:

Tout d’abord il faut créer une «transformation». C’est dans cette transformation que l’ont va pour effectuer un certains nombre d’action sur les données. Pour commencer, il faut tout d’abord extraire des données d’une source. Une multitude de source est possible: base de données,fichier excel, fichier texte, ... . Les données extraient constituent le flux. Ensuite, un grand nombre d’actions sont possible, quelques une d’entre elles sont présentées dans l’Annexe - ETL. Enfin, une fois toute les opérations voulu effectuer ils faut indiquer où enregistrer les données: fichier excel, texte, base de données, ... .

2.3. Lecture du fichier Excel et remplissage de la base test ARB.

Une fois l’ETL pris en main, comme Sébastien BARRE (le responsable du SIG) n’avais pas encore eu le temps d’intégrer les nouvelles tables au SIG, Jean-Pascal Priou m’a demandé de créer une base test sur ce schéma, et de la remplir avec les données du tableau Excel. Je n’ai pas créé moi même les tables dans le SIG car Sébastien à jugé qu’il n’était pas intéressant et pertinent pour moi de me montrer comment faire.

!

24

J’ai donc commencé par créer la base avec SQL développer. Le schéma de la base est visible dans l’Annexe-schéma base ARB.

Une fois la base créée, j’ai pu commencer la lecture du fichier excel à l’aide de l’ETL. Vous pouvez-voir ci dessous ce que donne la lecture de ce fichier Excel avec l’ETL.

Explications:

J’ai commencé par ajouter les zones de taxis. Pour cela, j’extrait toutes les lignes du fichier excel (voir Annexe-Base Arrêt de bus pour voire comment est constitué ce fichier) et je les trilles en fonction de la zone taxis. Ensuite je supprimes les doublons de zone taxis. Je filtre ensuite de façon à ne garder que des valeurs non null pour zone taxis (si le dédoublonnage à bien fonctionné, il ne devrais y avoir au plus qu’une seule ligne avec une zone taxis null). Enfin, j’ajoute une constante tarif que je met à 0 (les tarifs seront initialisés plus tard) et j’insert les valeurs dans la table ARB_ZoneTaxis.

Une fois les zone ajoutées, nous pouvons ajouter les communes. Pour cela je commencer par éliminer les lignes du fichier excel qui n’ont pas de communes. Puis, je tris en fonction du nom des communes. Je dédoublonne et j’insert dans la table ARB_Commune. Maintenant que les communes sont ajoutées, nous pouvons ajouter les arrêts. Je tri donc les lignes du fichier excel en fonction des communes. Dans le même temps, je

!

25

récupères les communes de la table ARB_ZoneTaxis et je fais la jointure entre ces deux flux: la jointure est faite sur le nom de la commune. Le but de l’opération étant de récupérer les identifiants des communes, créés automatiquement lors de l’ajout. Ensuite, il faut ajouter une constante qui aura pour valeur le sens de l’arrêt. Pour cela j’effectue donc plusieurs filtre sur les valeurs des champs «Vers Ext» et «Vers Int». Si les deux sont vides, on met la valeur «aucun», si «Vers Ext» est à 1 on met la valeur «Vers Ext», et si c’est «Vers Int» qui est à un, on met la valeur «Vers Int». Enfin, on ajoute les arrêts à la table ARB_Arret.

Pour finir je vais ajouter les lignes. Je commence donc par décomposer le champs «Ligne(s)» du fichier Excel en prenant comme séparateur le «;». De cette manière, pour chaque ligne de mon flux, je n’ai plus qu’une ligne de bus. Je supprime ensuite les espaces avant et après la valeurs pour éviter les erreurs lors de la comparaison. J’élimine les lignes null. Je tri en fonction des lignes, j'enlève les doublons de lignes, et je double mon flux. Dans les deux flux j’ajoute une constante «sens». Dans l’un je l'initialise à Vers Int», et dans l’autre à «Vers Ext». Puis j’ajoute les valeurs à la table ARB_Ligne.

Je n’ai pas eu le temps d’aller plus loin, car Sébastien BARRE venait d’intégrer les tables à la base du SIG. Jean Pascal Priou m’a alors demandé d’ajouter les arrêts et les données au SIG.

2.4. Ajout des données du fichier Excel au SIG.

Sébastien Barre, le responsable du SIG, a intégré mon schéma de base de données à celui du SIG. Le schéma de la base est le suivant:

!

26

Dans le SIG, le type booléen est remplacé par un caractère: «O» pour oui, «N» pour non. Lorsque les valeurs possibles d’un champs sont connus, ces dernières sont stockées dans une table, ce qui permet de les afficher dans un menu déroulant.

Dans un premier temps, avant d’ajouter quoi que ce soit, je dois comparer les arrêts, pour savoir lesquels sont déjà présents dans le SIG, et lesquels ne le sont pas.

a. Comparaison des arrêts

!

27

Tout d’abord, il m’a fallut trouver sur quel(s) critère(s) comparer ces arrêts. Comme le code SAE n’est pas présent pour chaque arrêts, qu’il est différent entre la base du SIG et la base Excel et que, j’ai remarqué que dans la base Excel deux arrêts avaient le même code SAE, on ne peut donc pas l’utiliser comme moyen de comparaison. De plus les coordonnées des arrêts ne sont pas renseigner dans le fichier excel, la seule solution reste donc de comparer le nom, le sens et la commune. J’avais dans un premier temps seulement utilisé le nom de l’arrêt et le sens, et je m’en suis rendu compte lorsque j’ai utilisé la liste des arrêts commun pour ajouter les informations que je possédais au fichier excel, que je me suis rendu compte de mon oubli. J’ai donc perdu pratiquement une journée à rectifier le tout. La comparaison des arrêts sur ces trois critères est une opération compliquée car les différences d'appellations ou d'orthographe sont nombreuses. Le but final de cette étape sera d’avoir trois listes d’arrêts: ceux dont on est sûr à 100% qu’ils sont en commun, ceux qui pourraient être en commun (pratiquement le même nom ,mais l’un avec un sens et l’autre non) mais qui nécessite d’être vérifié manuellement, et ceux dont on est sûr qu’ils ne sont pas en commun. Pour arriver à ce résultat, j’ai commencé par éliminer les arrêts qui ont même Commune (expliquer la séléction des communes le moyen de comparaison le plus simple pour les communes reste le CODE_INSEE car des différence d’orhographe existe aussi sur les nom de communes. J’ai donc du utiliser les arrêts que j’ai entré dans la base test pour), nom et sens en effectuant un produit cartésiens(JOINTURE???). Le résultat de ce produit cartésiens est donc une liste de couple d’arrêt SIG avec des arrêts de la base Excel. Je stocke ensuite dans un fichier les arrêts du SIG et dans un autre les arrêts du fichier Excel.

Image ARB tri arrêt commun

Je dois maintenant retirer ces arrêts en commun de la liste total des arrêts, avant d’effectuer de nouveau test. Pour cela, je fait une comparaison entre les arrêts que je viens de trouver, et les arrêts du fichier Excel. Ensuite je filtre pour ne garder que les arrêts qui ne sont pas «identical», et je met cette nouvelle liste dans un nouveau fichier. Et c’est cette nouvelle liste qui me servira de base pour le test suivant. Et après chaque test, j'effectuerais cette transformation pour réduire ma liste d’arrêt. Je fais de même pour la liste des arrêts du SIG. J’ai aussi essayé en ne réduisant pas la liste des arrêts du SIG (on peut d’ailleurs le voire sur les capture d’écran que j’ai mis). Mais en ne réduisant pas cette liste, il m’affiche une dizaine d’arrêt de moins et parmi cette dizaine d’arrêts, certains doivent être rajouté. Donc il faut mettre à jours la liste du SIG.

Image ARB Tri arrêt cas particulier

J’ai ensuite effectué un nouveau tri. Cette fois-ci, j’ai modifié le nom des arrêts, pour retirer les «le», «de» et remplacer les «st» en «saint». Pour réaliser cela, j’ai écrit un petit script java visible sur l’annexe: Annexe-Script Java. J’effectue ensuite un nouveau produit cartésiens en regardant l’égalité des noms et des sens.

!

28

Image ARB Tri arrêt 2

J’ai a nouveau actualisé ma liste d’arrêt en retirant les arrêts que je venais de trouver avec la jointure. J’ai continué à filtrer les arrêts en regardant ensuite si le nom de l’un était contenu dans le nom de l’autre c’est à dire si le nom d’un arrêt du SIG était contenu dans le nom d’un arrêt du fichier excel ou inversement. Exemple: «zac de l'aubepin» est un arrêt du fichier Excel et son nom est contenu dans «zac de l'aubepin (scolaire)» qui est un arrêt du SIG. Je veille aussi à ce que le sens soit égal. Puis pour terminer je regardais uniquement si le nom était contenu dans l’autre, je ne me préoccupais plus du sens, car beaucoup d’arrêt du SIG n’ont pas de sens.

De cette manière j’ai surement laissé passer quelques arrêts, mais le grand nombre de différence au niveau de l’orthographe de ces derniers, et le trop grand nombre d’arrêts du SIG sans sens font qu’il est très difficile d’identifier à coup sur tout les arrêts égaux.

Une fois ce travail terminé, j’ai pu fournir au service transport la liste des arrêts dont le nom n’était pas tout a fait identiques pour qu’ils les corrigent.

De nombreux doublons qui vont surement générer des erreurs: exemple «Centre commerciale».

b. Ajout de données au SIG

2.5. Base de données des tableaux de bords

Comme je l’ai déjà dis, pour accélérer la génération des tableaux de bords, et éviter de faire trop de fois les même calculs, une deuxième base a été créé. Et cette dernière contiendra les informations exactes et nécessaires aux tableaux de bords. Il n’y aura aucun calcul à faire. Il faut aussi limiter les jointures si possible. Cette base sera mise à jours de manière régulière (toute les nuits par exemple).

Dans un premier temps, nous allons remplacer les valeurs booléennes par des valeurs textuelles plus «parlante» à l’utilisateur.

Schéma base de données tableaux de bords

!

29

Problèmes: - Enlever les «-» - nom court - Pour faire une comparaison (jointure, ...), il faut obligatoirement trier les valeurs avant.

- Quand on insère dans une table il faut cliquer sur sélectionner champs- Je ne peux faire le contains que dans un sens: «nouveauNom contains

nouveauNom» ne fonctionne pas, tendis que l’inverse fonctionne. Il faut aussi choisir l’étape source pour que cela fonctionne, mais je ne suis pas sur d’avoir compris la règles pour définir cette étape source. La condition «ou» n’a pas l’air de fonctionner dans le produit cartésiens

- Certaines fois il m’a inversé le contenu des colonnes: dans la colonne nom j’avais des id, pour le sens j’avais un nom, ...

- Pour la jointure avec «contains», il ne faut pas avoir de valeurs null parmi les valeurs qui doivent être «contenus».

SIG

Photo: les photos doivent être stocké sur un espace partagé. Il suffira ensuite de mettre le lien de chaque photo.

On peut imaginer l’ajout d’un bouton pour créer une anomalie. Car le SIG permettra d’ouvrir les anomalies déjà existantes, mais ce bouton ne permet pas d’en créer.

Le masque de saisi peut-être différent selon l’utilisateur. Cela éviterais d’avoir trop d’informations.

IV. Analyse des résultats obtenus

La première mois du stage qui consistait à définir les besoins c’est terminé à la date prévues. En revanche, le deuxième mois, qui consistait à la réalisation de la base de

!

30

donnée n’a pas vraiment suivi le planning prévisionnel. En effet, une fois qu’il a été décidé d’utiliser le SIG comme base, le planning était le suivant: intégration de la base au schéma de la base du SIG, intégration des données du fichier Excel a la base SIG, création d’une deuxième base pour les tableaux de bords, utilisation de l’ETL pour alimenter la deuxième base à partir de la base SIG et enfin réalisation de quelque tableaux de bord. Dans les faits j’ai commencé par créer une base test en attendant que la «vrai» soit créée. Ensuite, la prise en main de l’ETL est sans doute ce qui m’a pris le plus de temps. En effet, j’ai passé de nombreuses heures à débugger les nombreuses transformations que j’ai put créer. Et c’est sans aucun doute ces bugs et la difficulté que j’ai eu pour maitriser cet outils qui on fait que j’ai passé beaucoup de temps sur la comparaison des données Excel et SIG. La seconde raison est que je n’ai pu découvrir qu’au fur et à mesures les paramètres que j’ai du prendre en compte pour la comparaison des données ( les accents, les mots ou caractères supplémentaire, ... ).

Conclusion:

Le plus dure dans le travail d’analyse est d’arriver à bien comprendre le travail des personnes demandeuses. En effet il faut arriver à leur faire comprendre tout ce que la base pourrait faire à leur place pour leur faciliter la vie, mais connaitre assez bien leur missions pour arriver à ne sélectionner que ce qui est réellement nécessaire. Il faut arriver à trouver le juste milieu, ne pas avoir trop d’informations, ce qui risquerais de décourager les utilisateurs pour la mise à jours, car une base ne peut pas être de qualité sans données à jours.

!

31