Import/Catalogue/Chargy Import Luxembourg
Chargy Import Luxembourg is an import of charging stations available to the public in Luxembourg. The import is currently at phase 3.
Goals
As of 14 March 2018, there are 24 amenity=charging_station POIs in Luxembourg. The dataset provided by Chargy currently has about 219 charging stations (12/01/2019), and is expected to grow to 800 by 2020.
Schedule
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, https://www.openstreetmap.org/changeset/57226075 for the initial import.
Phase 3 - Maintenance
Goal: Update data.
Timeframe: TBD
Import Data
Background
The data source can be found on the Luxembourgish Data Platform.
Data source site: https://data.public.lu/fr/datasets/bornes-de-chargement-publiques-pour-voitures-electriques/
Data license: https://creativecommons.org/publicdomain/zero/1.0/
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 (see 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:
<Placemark> <name>PLACEHOLDER_NAME</name> <visibility>1</visibility> <address>PLACEHOLDER_ADDRESS</address> <description><span><b>2</b> connectors with 22kW and Type 2 connector<span><br/><span><b>2</b> available connectors<span><br/><span><b>0</b> occupied connectors<span><br/></description> <styleUrl>#AVAILABLE</styleUrl> <ExtendedData> <Data name="CPnum"> <displayName>Number of chargingpoints</displayName> <value>2</value> </Data> <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> </Data> </ExtendedData> <Point> <altitudeMode>clampToGround</altitudeMode> <coordinates>PLACEHOLDER_COORDINATE_1,PLACEHOLDER_COORDINATE_2</coordinates> </Point> </Placemark>
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. |
name | PLACEHOLDER_NAME | |
opening_hours | 24/7 | |
operator | Chargy | |
phone | PLACEHOLDER_PHONE | |
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
- comment=Import Public Charging Stations provided by Chargy for Luxembourg, this import has been manually validated. Nevertheless, if something seems weird, please leave a changeset comment!
- source=https://data.public.lu/fr/datasets/bornes-de-chargement-publiques-pour-voitures-electriques/
- documentation=https://wiki.openstreetmap.org/wiki/Import/Catalogue/Chargy_Import_Luxembourg
- source:date=* – YYYY-MM-DD
- bot=no
- type=import
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
{ "type":"FeatureCollection", "features":[ { "type":"Feature", "properties":{ "authentication:membership_card":"yes", "operator":"Chargy", "socket:type2":2, "opening_hours":"24/7", "socket:type2:output":"22kW", "capacity":2, "devices":1, "name":"PLACEHOLDER_NAME", "brand":"Chargy", "phone":"PLACEHOLDER_PHONE", "amenity":"charging_station", "car":"yes" }, "geometry":{ "type":"Point", "coordinates":[ PLACEHOLDER_COORDINATE_1, PLACEHOLDER_COORDINATE_2 ] } } ] }
Data Merge Workflow
Team Approach
Currently this import is being organized by dmlu (on osm), with the support of #osm-fr and talk-lu.
References
The Page amenity=charging_station will be used as a reference.
Link to talk-lu announcement: https://lists.openstreetmap.org/pipermail/talk-lu/2018-March/000189.html
Link to imports announcement: https://lists.openstreetmap.org/pipermail/imports/2018-March/005434.html
Workflow and Conflation
- Download the Chargy dataset from the OpenData Portal (click here)
- Download the conversion utility (click here)
- Execute the conversion utility, you should now have a geojson file (Refer to README on Github)
- Read the logs for additional information
- Open JOSM and install the Conflation Plugin
- Open the geojson file in JOSM
- Retrieve all charging stations from OSM into a new OSM Layer using the following Overpass query:
[out:xml][timeout:90]; Template:GeocodeArea:Luxembourg->.searchArea; ( nwr["amenity"="charging_station"](area.searchArea); ); (._;>;); out meta;
- Click "Configure"
- Select all items (CTRL-A) in the geojson layer and press the Reference "Freeze" button
- Select all items (CTRL-A) in the OSM layer and press the Subject "Freeze" button
- Set the Distance to 150
- Click "Generate Matches"
- Conflate the points, set the appropriate changeset tags and upload the data using a dedicated user account
- In the event that something does goes wrong, revert the whole changeset using the JOSM Reverter Plugin
QA
Why did you remove ref:chargy=*?
First of all, the value is not used in the conflation process. Additionally, the ref:chargy=* for a charging station is calculated by concatenating the individual charging point ids. As new charging points are added or removed, this ID will be modified and does therefore not identify an individual charging station.