Skip to content

pixelx-jp/prettyplateau

Repository files navigation

Yodo Labs

prettyplateau

Print-quality city visualizations from Project PLATEAU data.

English · 日本語

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

🌐 Try it live → — render any city in your browser, no install (source).


Shibuya — Use Mosaic, generated by prettyplateau

pip install prettyplateau
prettyplateau fetch shibuya          # downloads a prebuilt buildings.parquet
prettyplateau render --city shibuya --preset use_mosaic --out shibuya.png
from prettyplateau import render

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

prettyplateau fetch <city> pulls a prebuilt out_<city>/buildings.parquet from the public plateau-bridge release index (sha256-verified) so the renderer works without running the pipeline. ~30 cities are available; see § Data for other ways to get data, including building any of 56+ cities yourself.

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.

Browse the live gallery → for the full 31-render launch matrix (or see gallery/ in the repo).

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 — fetch a prebuilt bundle (recommended, ~30 cities)

prettyplateau fetch shibuya          # → out_shibuya/buildings.parquet (sha256-verified)
prettyplateau render --city shibuya --preset use_mosaic --out shibuya.png

Bundles come from the public plateau-bridge release index. No pipeline, no CityGML download — just the parquet the renderer needs.

Option 2 — build it yourself with plateau-bridge (any of 56+ cities)

pip install plateau-bridge
plateau build shibuya --out out_shibuya     # processes CityGML locally
prettyplateau render --city shibuya --preset use_mosaic \
  --out shibuya.png --data-root .

(plateau pull shibuya fetches the same prebuilt bundle as Option 1 from the bridge CLI.)

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.1 — first public release (with PyPI-compatible README image URLs). 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

About

Print-quality city visualizations from Project PLATEAU (Japan's national 3D urban dataset). Posters, prints, social — PNG / SVG / PDF / mp4, with mandatory CC BY 4.0 attribution.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages