Dresden Open Data Portal - Public Transit Datasets
Dresden provides comprehensive Open Data datasets through the municipal geodata portal. This documentation provides an overview of available public transit-related datasets and demonstrates how to access them.
Accessing the Data
OGC API Features (OAF)
The datasets are available through a standardized OGC API Features interface.
Base URL:
https://kommisdd.dresden.de/net4/public/ogcapi/collections/{LAYER_ID}/itemsFeatures are returned as GeoJSON (application/geo+json). The list of collections and their metadata are available as JSON with ?f=json.
The server publishes its own OpenAPI document at https://kommisdd.dresden.de/net4/public/ogcapi/Api, but it only covers the landing page, conformance and collection list. A description of the feature endpoints used here is available at openapi/opendata.yaml.
Query Parameters
limit: Maximum number of returned features. Without it, all features of the collection are returnedbbox: Bounding box asminLon,minLat,maxLon,maxLatin WGS84crs: Output coordinate system,http://www.opengis.net/def/crs/EPSG/0/4326(default) orhttp://www.opengis.net/def/crs/EPSG/0/25833
offset is not supported and returns an error. Filtering by attribute values is not supported either; unknown parameters are ignored. Errors are returned with HTTP 200 as a JSON object with code and description.
Coordinate System
- EPSG:4326 (WGS84) for GeoJSON output by default
- EPSG:25833 (ETRS89 / UTM zone 33N) for internal storage, also available via the
crsparameter
Overview of Available Public Transit Datasets
🚊 DVB-specific Datasets
DVB Service Points (L1087)
- Description: Locations of DVB customer service points and service locations
- Format: Point (GeoJSON)
- Attributes:
art(type),name0(name),url(website)
🚋 Tram Datasets
Infrastructure
-
Tram Tracks (L124)
- Route of tram rails
- Geometry: MultiLineString
-
Traffic, Tram Tracks (L80)
- Detailed cartographic representation
- Additional infrastructure information
-
Bridges over Tram Tracks (L76)
- Overpasses over tram rails
-
Bridges under Tram Tracks (L77)
- Underpasses under tram rails
Line Routes
-
Tram Lines (L457)
- Main dataset with all tram lines
- Attributes:
slinie: Line numberanfang/ende: Start and end stopstakt: Service frequency. All tram lines have6.0, which matches a 10-minute frequency, so this is likely departures per hour (unconfirmed)takt_bemerkung: Frequency as text, e.g.oft(frequent)verkehrsmittel: Transport mode type (STRABA)url_linienaenderung: Link to current changes
- Geometry: MultiLineString (line route)
-
Individual Lines (L457..1 to L457..12)
- Separate layers for each tram line (1-13)
- Identical structure to main dataset
Environmental Data
-
Tram Noise Index L_Night (L1511)
- Nighttime noise levels from trams
- Raster format with dB(A) values
-
Tram Noise Index L_DEN (L1518)
- Day-evening-night noise index
- EU-compliant noise mapping
🚌 Bus Datasets
Line Routes
-
Bus Lines (L1076)
- Main dataset with all bus lines
- Attributes:
buslinie: Line numberanfang/ende: Start and end stopstakt: Service frequency, likely departures per hour (values between0.01and7.0, unconfirmed)takt_bemerkung: Frequency as text,oft(frequent) orselten, nach Bedarf(infrequent, on demand)verkehrsmittel: Type (SBUS, etc.)
- Geometry: LineString or MultiLineString
-
Individual Bus Lines (L1076..1 to L1076..47)
- Separate layers for lines 61-424 and special lines
- Also includes Alita on-demand taxis (95, 97)
- Regional buses (98A-C, 160, 226-261, 333-424)
Infrastructure
- Tour Bus Parking (L738)
- Locations for tour buses
- Point geometry with capacity information
🚏 Stop Datasets
Stops with Accessibility Information (L1233)
- Most comprehensive stop dataset
- Important Attributes:
hst_name: Stop namesteig: Platform numberverkehrende_linien: Serving linesverkehrsmittel: Transport mode type, e.g.Bus,Straßenbahn,Straßenbahn und Busglobale_id: DHID of the platform, e.g.de:14612:13:3:5
- Accessibility Attributes:
best_einstieg: Boarding accessibility rating (10-50)bordhoehe: Curb height in cmbreite: Waiting area width in mls_txt: Tactile paving strips presentafs_txt: Tactile guidance strips present
- Coordinates: Point (WGS84)
🗺️ Additional Transport-related Datasets
Traffic Noise
- Rail traffic noise (L796, L797, L914, L911)
- Road traffic noise (L795, L798, L912, L913)
Transport Infrastructure
- Public roads (L592, L1264)
- Ferries and landing stages (L81)
- Bridges and tunnels (L79, L48)
Accessibility
- Accessibility info portal - Transport (L1171)
- Accessible entrances (L1172)
Code Examples
Python Example: Fetching Tram Lines
import requestsimport json
# Fetch all tram linesurl = "https://kommisdd.dresden.de/net4/public/ogcapi/collections/L457/items"params = { "limit": 50 # More than the number of tram lines}
response = requests.get(url, params=params)data = response.json()
# Output lines sorted by numberfor feature in data["features"]: props = feature["properties"] print(f"Line {props['slinie']}: {props['anfang']} - {props['ende']}") print(f" Frequency: {props['takt']} ({props['takt_bemerkung']})") print(f" Changes: {props['url_linienaenderung']}") print()JavaScript Example: Finding Accessible Stops
// Search for stops with good accessibilityconst url = 'https://kommisdd.dresden.de/net4/public/ogcapi/collections/L1233/items';const params = new URLSearchParams({ limit: 100 });
fetch(`${url}?${params}`) .then(response => response.json()) .then(data => { // Only stops with good accessible boarding (value 10) const accessible = data.features.filter( f => f.properties.best_einstieg === 10 );
console.log(`${accessible.length} accessible stops found`);
accessible.forEach(stop => { const p = stop.properties; console.log(`${p.hst_name} (Platform ${p.steig})`); console.log(` Lines: ${p.verkehrende_linien}`); console.log(` Curb height: ${p.bordhoehe} cm`); }); });curl Example: Filter Bus Lines by Frequency
# Fetch all frequently running bus linescurl -X GET \ "https://kommisdd.dresden.de/net4/public/ogcapi/collections/L1076/items?limit=100" \ | jq '.features[] | select(.properties.takt_bemerkung == "oft") | {line: .properties.buslinie, route: (.properties.anfang + " - " + .properties.ende)}'Using with QGIS
- Add Layer: Layer → Add Layer → WFS Layer
- Enter URL:
https://kommisdd.dresden.de/net4/public/ogcapi/collections/ - Select Layer: e.g., L457 for tram lines
- Adjust Style: Color by line number
Notes and Limitations
Data Currency
- Line routes are updated regularly
- Construction-related changes not always included
Performance
- Without
limit, a request returns the whole dataset. Paging withoffsetis not supported; usebboxto fetch smaller parts - GeoJSON format can become large with complex geometries
- Observe cache headers for efficient usage
License
- Open Data License of the City of Dresden
- Attribution required: “Landeshauptstadt Dresden”
- Commercial use permitted
Additional Resources
Official Documentation
Tools and Libraries
- Dresden Open Data Suche - Search all datasets of the Dresden open data portal and view them on a map
- opendata-dresden - Source of the search page above, plus a CLI and MCP server for the same data
- QGIS - Open Source GIS for geodata visualization