Skip to main content

Print-quality city visualizations from Project PLATEAU data.

Project description

Yodo Labs

prettyplateau

Print-quality city visualizations from Project PLATEAU data.

English · 日本語

PyPI Python 3.11+ License: MIT Data: CC BY 4.0


Shibuya — Use Mosaic, generated by prettyplateau
pip install prettyplateau
prettyplateau render --city shibuya --preset use_mosaic --out shibuya.png
from prettyplateau import render

render(city="fukuoka", preset="age_rainbow", out="fukuoka.png")

The commands above need a local out_<city>/buildings.parquet produced by plateau-bridge. See § Data below for how to get one.

What it does

Project PLATEAU is Japan's national 3D urban dataset (56+ cities, CC BY 4.0 from MLIT). Every building carries attributes that OpenStreetMap cannot match — year built, structure type, usage, hazard exposure. prettyplateau is the rendering layer that turns those attributes into poster-quality maps and animations:

Height Topo — Minato's skyline as a topographic ramp (every building binned by height).
Flood Depth — Kōtō's river-flood exposure per building, with hashed grey for no data (never "low risk").
Density Hex — Shinjuku station as a density spike on a 250 m hex lattice.
Building Age Rainbow — Fukuoka coloured by year_built. Buildings without a year stay grey — never inferred.

See gallery/ for the full 35-image launch matrix.

Built-in presets

id type core fields best on
use_mosaic static usage almost every city
height_topo static height dense Tokyo wards, central Osaka
flood_depth static river_flood_* wards along rivers
risk_choropleth static wood × pre-1981 × flood the plan's flagship intersection
wood_survivor static structure + fire_resistance fallback Taitō, Sumida, Kamakura
age_rainbow static year_built Fukuoka, Sapporo
hazard_confluence static overlap of PLATEAU hazards wards with multi-hazard coverage
density_hex static centroid → hex grid any city, cheapest on mega-cities
zoning_mosaic static zoning_use (用途地域) Tokyo / Osaka
survivor_timeline mp4 (60 s) year_built Fukuoka, Sapporo

PLATEAU field coverage varies by city. prettyplateau treats missing data as unknown with a clearly-labelled grey swatch — never silently imputed, never recoloured by a theme.

Themes

prettyplateau render --city shibuya --preset use_mosaic --theme sakura --out shibuya.png

default · print · sakura · summer_matsuri · snow · neon_night

Themes change visual presentation (background, contrast, paper texture); they cannot change data semantics — the reserved palette keys for unknown, no_data, and hazard severity ordering are enforced in code.

Multi-format export

# One data load, three formats:
prettyplateau render --city shibuya --preset use_mosaic \
  --out 'shibuya.{png,svg,pdf}' --sidecar
format use
PNG (4K) social / posters
SVG Illustrator post-processing
PDF (300 dpi) print-ready
mp4 (H.264) animation presets

--sidecar writes {out}.json with the full request + preset metadata for reproducibility.

Custom presets

prettyplateau create-preset my-preset --name "My Preset"
cd prettyplateau_preset_my_preset
pip install -e .
pytest    # green out of the box

Third-party presets register via Python entry points (prettyplateau.presets). The scaffolding command emits a runnable package with a sample preset, palette JSON, smoke test, and pyproject.toml.

Attribution

Every PNG / SVG / PDF / mp4 carries:

© Project PLATEAU / MLIT (CC BY 4.0) · {dataset_id} · {generated_date}

Both as visible text and as file metadata. There is no flag to disable it; themes can't hide it; custom logos can't cover it. This is a hard requirement of the CC BY 4.0 licence under which PLATEAU data is published — see NOTICE.md for the full third-party-notices index.

Data

prettyplateau does not redistribute PLATEAU data. The renderer reads buildings.parquet files produced by plateau-bridge which in turn derives from the public PLATEAU dataset. Three ways to feed the renderer:

Option 1 — run plateau-bridge yourself (any of 56+ cities)

git clone https://github.com/pixelx-jp/plateau-bridge && cd plateau-bridge
pip install -e .
plateau pipeline --city shibuya --out out_shibuya
prettyplateau render --city shibuya --preset use_mosaic \
  --out shibuya.png --data-root /path/to/plateau-bridge

Option 2 — download a pre-built sample (planned)

A small set of pre-built parquets for the most-rendered cities will live on Hugging Face Datasets so casual users can try the CLI without running the full pipeline. (Planned with v0.2.)

Option 3 — bring your own GeoDataFrame

Construct a prettyplateau.data.access.CityDataset directly and pass it to the preset machinery; see examples/custom_preset.py.

Licensing

PLATEAU data is CC BY 4.0 by Japan's Ministry of Land, Infrastructure, Transport and Tourism (国土交通省). When you publish a prettyplateau output, the visible attribution + file-metadata attribution together satisfy the licence. Do not crop the attribution out — that breaks the licence.

Performance

Render times on an Apple M-series:

City Buildings 2400 px PNG
Shibuya 42 k 18 s
Minato 32 k 27 s
Fukuoka 355 k 120 s
Osaka 615 k 230 s
Yokohama 880 k ~330 s (density_hex only)

Animation: 60-second Fukuoka survivor_timeline.mp4 (180 frames at 3 fps) ≈ 5 min 40 s. See distribution/perf_notes.md for the profile + planned v0.2 4-5× speedup.

Status

0.1.0 — first public release. See CHANGELOG.md.

Contributing

Bug reports, preset PRs, theme PRs, city translation PRs all welcome. See CONTRIBUTING.md for the architecture invariants that PRs need to respect (chief among them: attribution can't be disabled).

Licence

  • Code: MIT (see LICENSE)
  • Bundled fonts: SIL Open Font License 1.1 — Noto Sans CJK JP + Inter
  • Generated outputs: carry PLATEAU's CC BY 4.0 attribution both as visible text and file metadata
  • Third-party notices index: NOTICE.md

Built by Yodo Labs · PixelX Inc. (ピクセルエックス株式会社) · 東京
Questions / partnerships: pan@yodolabs.jp

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prettyplateau-0.1.0-py3-none-any.whl (14.2 MB view details)

Uploaded Python 3

File details

Details for the file prettyplateau-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: prettyplateau-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for prettyplateau-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 014de4feb1b1f3d39068142ec6d0a2600abe8fe70621ddaf9322b34749a2a8df
MD5 0db98dc57cbe8cb27435f7feeaac25f5
BLAKE2b-256 c29dfab9f61e18760a53fe5c65a7d0a66b834cda53ba2971377f61faedc3241b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page