Urban Landscape Graphics0.1.0
ulg

UrbanSens · Ecological Vector Style

Urban Landscape Graphics

The UrbanSens Ecological Vector Style as a library. One catalog of colours, lightly hand-drawn textures and symbols for urban landscape maps (lawns and meadows, trees, water, pavings, land use, planning status), tied to German and European standards, with renderers for Python and exporters for QGIS, GeoServer, MapLibre and design tools.

Version 0.1.0 · a project by UrbanSens

Start with the historyUse it in Python

Angerpark, the demo quarter, drawn in the house style at 1:1500
import ulg

ulg.element("wildflower_meadow").fill        # '#DADDBC': look colours up, never invent them
ulg.resolve("osm", landuse="meadow", meadow="wildflower")    # 'wildflower_meadow'
ulg.resolve("alkis", objart="41008", funktion="4420")         # 'green_space'

gdf["element"] = ulg.classify(gdf, "osm")     # OSM, ALKIS, XPlanung, CORINE … → elements
ulg.render_svg(gdf, scale=500, path="plan.svg")         # print-ready SVG, true to scale
ulg.render_svg(gdf, scale=1500, theme="planzv")         # the same data as a Bauleitplan
ulg.indicators(ulg.flatten(gdf))              # sealing, biotope area factor, runoff, canopy

What it is#

  • 173 elements in English and German (vegetation, trees, water, ground, 33 surfaces, land use, buildings, furniture, boundaries, planning and analysis overlays), each with a fill, a texture per level of detail, a line or point symbol, aliases and documented coefficients.
  • A style that stays GIS-exact. Marks are placed on the ground, not on the feature, so patterns continue across polygons and tile seamlessly; the hand-drawn outline never moves more than half a line width off the true edge.
  • 26 crosswalks from OSM tags, ALKIS/NAK, XPlanung, PlanZV, basemap.de, LBM-DE, BKompV, BayKompV, FFH, the Berlin biotope map, DIN 276, CORINE, Urban Atlas, CLC+, EUNIS, HILUCS, LUCAS, ESA WorldCover, LCZ, and the Dutch, Swiss, Austrian and English national models: 3 926 classes, each with a fit grade.
  • Seven themes: the mellow house style plus PlanZV, ALKIS, basemap.de, BfN landscape planning, OpenStreetMap Carto and a black-and-white drawing, with the published colour values.
  • Standards built in: ISO 11091 and PlanZV status symbols for trees, DIN 18920 root protection zones, Berlin BFF, DIN 1986-100 runoff, the EU Nature Restoration Regulation's urban green space, WCAG-checked legibility including colour-vision deficiencies.
  • Everywhere: SVG and Matplotlib; QGIS (QML with the hand-drawn outline and scale-dependent detail); OGC SLD; MapLibre sprites and layers with trees and streets in metres; CSS and DTCG design tokens; a command line; a skill for AI coding agents.
One quarter, seven conventions

Install#

pip install "urban-landscape-graphics[all] @ git+https://github.com/UrbanSens/Urban-Landscape-Graphics"

Python 3.10+. Core dependencies are NumPy and Shapely; [all] adds GeoPandas and Matplotlib. PNG output uses rsvg-convert, CairoSVG or Inkscape if one is installed. Check the installation:

ulg check

To try the examples or to work on the library, use a clone:

git clone https://github.com/UrbanSens/Urban-Landscape-Graphics.git
cd Urban-Landscape-Graphics
pip install -e ".[dev]"
python examples/quickstart.py

Documentation#

Start at Contents:

  1. Origins: from the Englischer Garten and the 1808 Bavarian survey to GIS
  2. The style guide: principles, palette, textures, symbols, drawing order, legibility
  3. The catalog: all elements and their coefficients
  4. Python: drawing, classifying, measuring, the command line
  5. GIS and web: QGIS, GeoServer, MapLibre, tokens
  6. Standards: what the style conforms to, with the full standards report
  7. For AI agents: ulg agent install
  8. Extending: how the style guide grows
The style sheet, generated from the catalog

Repository#

src/ulg/          the package; src/ulg/data holds the catalog, palette, themes and crosswalks as JSON
docs/             documentation (German, English in docs/en), generated reference pages, research
examples/         runnable examples, sample data, a MapLibre page
tools/            builders for the documentation images, logo, reference pages and HTML; data formatter
tests/            pytest suite
.github/          tests and the documentation site (GitHub Pages) run on every push

Working on the library: the rules and commands are in Working on ulg (for people and coding agents alike) and in the chapter Extending.

Licence and credit#

ulg is free software under the MIT licence: use it, change it, ship it in commercial products, and keep the licence notice with the code. The maps and sheets you draw with it are yours.

Please reference us. If ulg or the UrbanSens Ecological Vector Style helped with a map, a plan, a report, a tender or a paper, say so in the caption or in the list of sources:

Map style: UrbanSens Ecological Vector Style (ulg), urbansens.de

ulg.credit_line() returns it as a string (with the version number; ulg.credit_line("de") gives the German one). The style sheets and the catalog sheets (the inventory of all elements) that ulg draws carry a small UrbanSens mark in the corner. Leave it on when you share them (credit=False turns it off); your own maps are never stamped. BibTeX, APA, the logo rules and third-party notices: Licence and credit.

Status#

Version 0.1.0 (2026-09-30), UrbanSens. See Changelog. Standards were researched on 2026-09-30; the standards report lists what was verified, what is paywalled and what to re-check when standards change.

A clean, consistent and scalable visual language to represent nature, surfaces and biodiversity in a professional, architectural style, using simple vector patterns and symbols.

UrbanSens, reference sheet of the Ecological Vector Style

Read the style guide

Continue reading