Makina Blog

Le blog Makina-corpus

Comparaison des données OpenStreetMap et NeTEx, faisabilité d’un convertisseur


Nous étudions ici NeTEx et OpenStreetMap dans un périmètre restreint au contexte des arrêts de transports en commun et pour les gares de SNCF Transilien.

NeTEx et OpenStreetMap sont deux schémas de données aux usages et aux spécifications assez différentes. NeTEx est une norme de format d’échange de données de transport public européen tandis qu'OpenStreetMap est un projet libre et collaboratif.

Contexte

SNCF Transilien a déjà mené un programme de cartographie de ses gares dans OpenStreetMap des zones accessibles au public. Nous y trouvons de façon détaillée les espaces, les équipements et les services.


Cartographie OSM d'un hall de gare. En grisé, les données sur des niveaux différents.

Ces données servent notamment à produire des plans ou encore à calculer des itinéraires dans les stations. Elles prennent en compte les contraintes d'accessibilité.

Problématique

Au niveau européen, Il est défini que les données de transports en commun doivent s’échanger au format NeTEx. Toutefois, il n’est pas nécessaire de les produire et de les utiliser dans ce format. Les données seules déjà existantes sont à considérer.

La question qui se pose est donc la différence entre les schémas de données OpenStreetMap et NeTEx ainsi que de la possibilité de passer de l’un à l’autre dans un but de diffusion ou d’enrichissement mutuel.

Périmètre

Les sujets de l’étude de la SNCF Transilien sont les stations, leurs équipements, leurs services et les déplacements intérieurs et dans leurs environnements immédiats.

OpenStreetMap comme NeTEx ont des usages périmètres larges que nous ne retenons pas ici.

Dans la norme NeTEx, sont en particulier inclus mais hors périmètre : les réseaux de transport, les itinéraires, les véhicules, les horaires de passages et les tarifs.

Le format NeTEx : Network and Timetable Exchange

La norme NeTEx est définie par une série de document, dont « NeTEx — Network and Timetable Exchange — Part 1 : Network Topology » (plus de 1 000 pages pour la partie 1) et sa version formelle en XSD. Une introduction est disponible sur le site Européen de la norme. L’accès à la documentation de cette norme est payante mais l’implémentation XSD est libre.

Profils

Des documents d’interprétations thématiques (nommées « profils ») sont disponibles pour certains pays. Ils aident à interpréter, étendre ou exclure certains points par pays et thématique. Ils viennent en complément de la norme et ne sont pas disponibles sous forme formelle (XSD complémentaire). Pour la France nous trouvons en ce qui nous concerne « NeTEx - Profil Français pour l’accessibilité ».

CNIG : Accessibilité du cheminement en voirie

À noter qu’il existe également un standard français du CNIG se définissant comme compatible avec NeTEx : « Accessibilité du cheminement en voirie ».

Certains concepts sont repris ou sont proches, d’autres sont ajoutés. Cette norme française est en français, y compris le nommage des objets et de leurs attributs repris de NeTEx. L’usage de ce standard nécessite donc quand même une conversion avec NeTEx.

NeTEx : concepts retenus

« NeTEx Place » et « NeTEx Site »

Les NeTEx Sites, qui étendent les NeTEx Places, sont les lieux que nous cherchons à décrire. Ils sont une approche de la description et de la subdivision hiérarchique de l’espace.

_Exemple simple d’une station fournit par la documentation NeTEx._

« NeTEx PathLink »

Les cheminements NeTEx sont des connexions logiques entre lieux permettant aux piétons, véhicules ou autres, de se déplacer en intérieur ou dans des espaces ouverts. Ils portent aussi bien sur des déplacements contraints (couloirs, assesseurs, portes) que sur les possibilités de connexion entre des espaces plus ouverts (halls, parking).

« NeTEx Equipment »

Les « NeTEx Equipments » définissent des équipements ou services constitutifs du lieu où ils sont disponibles, qu’ils soient physiques ou non. Par exemple : salle d’attente, service de portage de bagages…

« NeTEx Facility »

Pour les « NeTEx Facilities », il s’agit de statuer sur l’existence de services ou d’équipements portés par des sites physiques de granularité plus ou moins grandes. Par exemple : vente de tickets disponible en gare.

Selon NeTEx, lorsqu’il est possible d’utiliser un « NeTEx Equipment » à la place, il est préférable de le faire.

Richesse et complexité

NeTEx est un modèle de données très riche et complexe. C’est une norme qui traite en détail de tout le métier faisant l’interface avec le service au public. Ce détail est l'union de toutes les spécificités de tous les pays contributeurs. À de nombreux endroits, plusieurs modélisations de la même réalité sont possibles.

La norme NeTEx, bien que très volumineuse, ne rentre que peu dans la sémantique du métier modélisé. Certains attributs peuvent être soumis à interprétation.

Le tout donne un format de données, pour les lieux d’arrêts de transport en commun, fait pour de nombreux d’usages mais malheureusement un peu loin des considérations pratiques de mise en œuvre.

OpenStreetMap (OSM)

OSM est un projet libre de cartographie collaborative. Il est relativement ouvert en termes de communauté et en termes de modélisation de données.

OSM a un système de description des objets basé sur des tags libres, couples clés-valeurs, associés à des géométries (point, ligne ou groupe de point et de lignes).

Nous pouvons décomposer ces tags en deux catégories : * Des tags principaux qui donnent une nature aux objets : routes, équipements, bâtiments, loisirs, etc. * Des tags secondaires qui donnent des attributs supplémentaires : ouvert au public, accessible en fauteuil roulant, hauteur, couleur, etc.

La page thématique de documentation du wiki d'OSM « Gares ferroviaires » recense les principaux objets que nous cherchons à étudier.

Mise en correspondance NeTEx ↔ OSM

Les différentes parties de la modélisation NeTEx pour le périmètre qui nous concerne ici présentent différents niveaux de difficultés : * Les NeTEx Sites sont les plus faciles à mettre en parallèle d'OSM, leurs définitions sont relativement proches. Les NeTEx Sites portent également un petit jeu d’attributs liés à d’autres pans : accessibilité fauteuil roulant, éclairage, etc. * Les NeTEx Facilities sont en quelque sorte un résumé non localisé des NeTEx Equipments, portés par les NeTEx Sites et NeTEx Paths. * Les NeTEx Equipments, sont du détail portés par les NeTEx Sites et NeTEx Paths. * Les NeTEx Paths sont par construction de nature différentes des chemins et espaces ouverts d’OSM. Ils représentent une difficulté particulière pour effectuer des rapprochements. Les données OSM sont des modélisations plutôt physiques des espaces de cheminements alors que NeTEx est plutôt une modélisation logique des itinéraires et pas obligatoirement associée à une géométrie ou une localisation.

Expérience de cartographie NeTEx et OSM

Un jeu de test a été réalisé sur des situations types avec différentes natures d’objets. L’expérience a porté sur la mise en parallèle des données OSM et NeTEx.

Exemple des cheminements

Exemple de données pour un quai éclairé et accessible en fauteuil roulant dans une gare.

NeTEx

<?xml version="1.0" encoding="UTF-8"?>
<PublicationDelivery xmlns="http://www.netex.org.uk/netex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://www.netex.org.uk/netex ../../xsd/NeTEx_publication.xsd">
  <PublicationTimestamp>1970-01-01T00:00:00.0Z</PublicationTimestamp>
  <ParticipantRef>SYS001</ParticipantRef>
  <dataObjects>
    <SiteFrame id="SiteFrame:1" version="any">
      <stopPlaces>
        <StopPlace id="StopPlace:1" version="any">
          <Centroid>
            <Location>
              <Longitude>0.001</Longitude>
              <Latitude>0.001</Latitude>
            </Location>
          </Centroid>
          <Polygon xmlns="http://www.opengis.net/gml/3.2" xmlns:ns1="http://www.opengis.net/gml/3.2" ns1:id="Polygon_1" srsName="wgs84">
            <exterior>
              <LinearRing>
                <pos>0 0</pos>
                <pos>0.002 0</pos>
                <pos>0.002 0.002</pos>
                <pos>0 0.002</pos>
              </LinearRing>
            </exterior>
          </Polygon>
          <TransportMode>rail</TransportMode>
          <quays>
            <Quay id="Quay:1" version="any">
              <Polygon xmlns="http://www.opengis.net/gml/3.2" xmlns:ns1="http://www.opengis.net/gml/3.2" ns1:id="Polygon_2">
                <exterior>
                  <LinearRing>
                    <pos>0.0005 0.0005</pos>
                    <pos>0.0005 0.0015</pos>
                    <pos>0.0015 0.0015</pos>
                    <pos>0.0015 0.0005</pos>
                  </LinearRing>
                </exterior>
              </Polygon>
            </Quay>
          </quays>
          <accessSpaces>
            <AccessSpace id="AccessSpace:1" version="any">
              <Name>Name</Name>
              <ShortName>N</ShortName>
              <Description>Name of Place</Description>
              <infoLinks>
                <InfoLink>https://example.com</InfoLink>
              </infoLinks>
              <Polygon xmlns="http://www.opengis.net/gml/3.2" xmlns:ns1="http://www.opengis.net/gml/3.2" ns1:id="Polygon_3">
                <exterior>
                  <LinearRing>
                    <pos>0.0005 0.0005</pos>
                    <pos>0.0005 0.0015</pos>
                    <pos>0.0015 0.0015</pos>
                    <pos>0.0015 0.0005</pos>
                  </LinearRing>
                </exterior>
              </Polygon>
              <Lighting>wellLit</Lighting>
              <AllAreasWheelchairAccessible>true</AllAreasWheelchairAccessible>
              <AccessSpaceType>staircase</AccessSpaceType>
            </AccessSpace>
          </accessSpaces>
        </StopPlace>
      </stopPlaces>
    </SiteFrame>
  </dataObjects>
</PublicationDelivery>

OSM ```xml <?xml version='1.0' encoding='UTF-8'?>


### Exemple d'équipement Exemple d’un ascenseur dans une gare. NeTEx ```xml <?xml version="1.0" encoding="UTF-8"?> <PublicationDelivery xmlns="http://www.netex.org.uk/netex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://www.netex.org.uk/netex ../../xsd/NeTEx_publication.xsd"> <PublicationTimestamp>1970-01-01T00:00:00.0Z</PublicationTimestamp> <ParticipantRef>SYS001</ParticipantRef> <dataObjects> <SiteFrame id="SiteFrame:1" version="any"> <stopPlaces> <StopPlace id="StopPlace:1" version="any"> <Centroid> <Location> <Longitude>0.001</Longitude> <Latitude>0.001</Latitude> </Location> </Centroid> <Polygon xmlns="http://www.opengis.net/gml/3.2" xmlns:ns1="http://www.opengis.net/gml/3.2" ns1:id="Polygon_1" srsName="wgs84"> <exterior> <LinearRing> <pos>0 0</pos> <pos>0.002 0</pos> <pos>0.002 0.002</pos> <pos>0 0.002</pos> </LinearRing> </exterior> </Polygon> <equipmentPlaces> <EquipmentPlace id="EquipmentPlace:1" version="any"> <equipmentPositions> <EquipmentPosition id="EquipmentPosition:1" version="any"> <EquipmentRef ref="LiftEquipment:1"/> <Location> <Longitude>0.00040037734</Longitude> <Latitude>0.00063481563</Latitude> </Location> </EquipmentPosition> </equipmentPositions> </EquipmentPlace> </equipmentPlaces> <placeEquipments> <LiftEquipment id="LiftEquipment:1" version="any"></LiftEquipment> </placeEquipments> </StopPlace> </stopPlaces> </SiteFrame> </dataObjects> </PublicationDelivery>

OSM

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.6' generator='JOSM'>
  <node id='-101775' lat='0.00031402' lon='-0.0002367' />
  <node id='-101776' lat='-0.0002367' lon='0.00168598' />
  <node id='-101777' lat='0.00168598' lon='0.0022367' />
  <node id='-101778' lat='0.0022367' lon='0.00031402' />
  <node id='-101780' lat='0.00063481563' lon='0.00040037734'>
    <tag k='highway' v='elevator' />
  </node>
  <way id='-101830'>
    <nd ref='-101775' />
    <nd ref='-101776' />
    <nd ref='-101777' />
    <nd ref='-101778' />
    <nd ref='-101775' />
    <tag k='public_transport' v='station' />
    <tag k='train' v='yes' />
  </way>
</osm>

Retour d'expérience

Certaines définitions d’objets NeTEx ou OSM ne sont pas suffisantes pour envisager une conversion. C’est en particulier le cas lors d’absence de géométrie ou de la définition ponctuelle d’objets nécessitant une définition surfacique.

Da façon générale OSM apporte une meilleure modélisation géométrique de l’espace mais documente peu de types d’équipements ou de services ou avec peu de détails par rapport à NeTEx.

Pour certains types d’objets ou certaines situations, il n’est pas possible de convertir automatiquement un jeu de données dans l’autre format.

Une solution est alors de produire des signalements de données non retrouvées mais sans possibilité de les convertir automatiquement. Cela nécessite donc une intervention manuelle pour traiter ces signalements.

Stratégies de conversion

Devant la richesse de NeTEx et la différence d’approche entre OSM et NeTEx il est souhaitable de guider autant que possible et nécessaire, le recollement des objets entre les deux modélisations.

Le rapprochement peut se faire à l’aide de : 1. Références 2. Par proximité spatiale

Conversion des données

Plusieurs types de conversions peuvent être envisagés : * OSM → NeTEx : réutiliser les données déjà cartographiées dans OSM pour les échanger au format NeTEx. * NeTEx → OSM : produire des données OSM depuis du NeTEx produit par ailleurs. En pratique cette conversion a peu d’utilité car une cartographie des lieux existe probablement déjà dans OSM.

À côté de cela, nous pouvons chercher à enrichir des données déjà existantes. Cela consiste à produire une liste de changements à apporter à des données existantes : * OSM et NeTEx → NeTEx + : enrichir des données NeTEx par du complément trouvé dans OSM. * OSM et NeTEx → OSM + : enrichir des données OSM par du complément trouvé dans NeTEx.

NeTEx Site NeTEx Facility NeTEx Equipment NeTEx Path
OSM → NeTEx +++ +++ ++ - -
OSM + NeTEx → NeTEx+ + +++ - - - -
NeTEx → OSM +++ + +++ ?
NeTEx + OSM → OSM+ +++ + +++ ??

Du plus facile "+++" au plus difficile "- - -". "?" difficile, faisabilité à déterminer.

Recommandation sur les données NeTEx et OSM

Pour faciliter le rapprochement des données OSM et NeTEx des bonnes pratiques peuvent être adoptées lors de la production de données : * Utiliser des références publiques partagées entre NeTEx et OSM * Systématiser l’utilisation de localisation et des géométries dans les données NeTEx * Définir un sous-ensemble du schéma NeTEx, c’est-à-dire, face à l’ensemble des possibilités de modélisation, toujours modéliser de la même façon

Conclusion

Des rapprochements et des enrichissements mutuels entre OSM et NeTEx sont possibles. Il parait toutefois nécessaire de faciliter les rapprochements de données en partagent des références communes. Tous les types d’objets ou d’attributs ne trouvent pas d’équivalent. Lorsqu’une équivalence est possible, la traduction automatique ne va pas forcément être systématique et des ajustements manuels sont à prévoir. Les parties cheminements sont conceptuellement assez éloignées et plus difficilement traitables. Des conversions sont possibles, mais le rapprochement pour enrichissement mutuel parait difficile à envisager.

Actualités en lien

Image
Article SIG cartographie : Géné­rer un fichier PMTiles à partir d’un MBTiles
24/04/2024

Géné­rer un fichier PMTiles à partir d’un MBTiles

Exemple de conver­sion d’une base de tuiles vecto­rielles MBTiles du Plan Cadas­tral Infor­ma­tisé vers le format PMTiles (Proto­maps).

Voir l'article
Image
Capture d'une partie de carte montrant un réseau de voies sur un fond de carte sombre. Au centre, une popup affiche les information de l'un des tronçons du réseau.
28/02/2024

Géné­rer un fichier PMTiles avec Tippe­ca­noe

Exemple de géné­ra­tion et d’af­fi­chage d’un jeu de tuiles vecto­rielles en PMTiles à partir de données publiques.

Voir l'article
Image
Encart article Protomaps : Illustration d'une portion de pyramide de tuiles
14/02/2024

Protomaps, stockez vos pyramides de tuiles plus simplement

Présentation d'un nouveau format de stockage de tuiles cartographiques

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus