Import/Catalogue/Chargy Import Luxembourg

From OpenStreetMap Wiki
Jump to: navigation, search

Chargy Import Luxembourg is an import of charging stations available to the public in Luxembourg. The import is currently at phase 3.


Currently there are 24 amenity=charging_station POIs in Luxembourg (14 March 2018). The dataset provided by Chargy currently has about 134 charging stations, and is expected to grow to 800 by 2020.


Phase 1 - Planning

Goal: Get community approval, write documentation and tools, prepare data.

Timeframe: Early to mid-March 2018

Status: Done

Phase 2 - Import

Goal: First import of data, verification of all existing amenity=charging_station in Luxembourg.

Timeframe: mid-March 2018

Status: Done, for the initial import.

Phase 3 - Maintenance

Goal: Update data.

Timeframe: TBD

Import Data


The data source can be found on the Luxembourgish Data Platform.

Data source site:
Data license:
Type of license (if applicable): CC0 1.0 Universal (CC0 1.0)
ODbL Compliance verified: yes

Import Type

The import will be a recurring import, validation before uploading will always be done manually (c.f. Conflation).

Data will be imported using JOSM.

Data Preparation

Data Description

It is important to understand the difference between charging stations and charging points. A charging station can be compared to a fuel station, while a charging point can be compared to a fuel pump. The provided dataset contains coordinates for charging stations, not charging points. Furthermore, only the charging points have unique Ids, however those do not match the Id found on the back of the physical machine. Charging stations don’t have ids in the dataset, only name, coordinates and address.

Tagging Plans

Here is a sample entry from the dataset:

    <description>&lt;span&gt;&lt;b&gt;2&lt;/b&gt; connectors with 22kW and Type 2 connector&lt;span&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;2&lt;/b&gt; available connectors&lt;span&gt;&lt;br/&gt;&lt;span&gt;&lt;b&gt;0&lt;/b&gt; occupied connectors&lt;span&gt;&lt;br/&gt;</description>
        <Data name="CPnum">
            <displayName>Number of chargingpoints</displayName>
        <Data name="chargingdevice">
            <displayName>Charging device</displayName>
            <value>{"id":PLACEHOLDER_ID,"name":"CP5007","numberOfConnectors":2,"connectors":[{"id":51566,"name":"CP5007 - 1","maxchspeed":22.0,"connector":1,"description":"AVAILABLE"},{"id":51603,"name":"CP5007 - 2","maxchspeed":22.0,"connector":2,"description":"AVAILABLE"}]}</value>

Here is the mapping to OSM tags:

OSM Key OSM Value Description
amenity charging_station
authentication:membership_card yes
brand Chargy
capacity 2 Count of available sockets on this location.
car yes
devices 1 Count of physical stations on this location.
opening_hours 24/7
operator Chargy
ref:chargy PLACEHOLDER_ID Contains the Ids of the charging points, separated by semicolons.
socket:type2 2 Parsed from the description-content, even though this value is standard for all Chargy stations.
socket:type2:output 22kW Parsed from the description-content, even though this value is standard for all Chargy stations.

Changeset Tags

Data Transformation

To transform the source data into a more appropriate format, we use ChargingStations2GeoJson, a Python 3 script written specifically for this purpose. Even though some values are standardized across all charging stations, the script still checks the data and makes sure it contains the appropriate texts. Logging allows us to find "weird" entries, and if something looks odd, we skip it (and log it, for manual verification). We purposefully chose a very defensive approach, as to not import broken data.

Data Transformation Results


Data Merge Workflow

Team Approach

Currently this import is being organized by System-users-3.svgdmlu (on osm), with the support of #osm-fr and talk-lu.


The Page amenity=charging_station will be used as a reference.

Link to talk-lu announcement:

Link to imports announcement:


  • Download the dataset
  • Run the conversion script making sure to read the logging output for additional information
  • Process the data using OSM Conflator (The next steps could be simplified by using cf_audit)
  • Load the resulting changes file into for a graphical visualisation of changes
  • Load the resulting OSM file into JOSM, making sure to have installed the GeoJSON plugins
  • Manually validate each POI
  • Set the appropriate changeset tags, then upload data using a dedicated account
  • If something goes wrong, the whole changeset will be reverted in JOSM.


Conflation is handled by OSM Conflator. The conflation profile is also available on the ChargingStations2GeoJson repository. The resulting changes are manually validated in JOSM.

As the dataset regroups multiple charging points as one charging station, in theory it could be possible that someone has "separated" one of our POI into multiple POI with more specific information, that's why it's important to look at the existing data.

The ref:chargy=*key is used as a reference of what charging points have already been imported into OSM.


See above.