Print-quality city visualizations from Project PLATEAU data.
Project description
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.parquetproduced byplateau-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
unknownwith 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.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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prettyplateau-0.1.1-py3-none-any.whl.
File metadata
- Download URL: prettyplateau-0.1.1-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d64037973842de9dab17603c4472d56f3dd0a6f645ddaf2c1c906b49d54f903a
|
|
| MD5 |
4c7dd206aa154e7c5deec0f365073178
|
|
| BLAKE2b-256 |
a300e1c1669ecf19ea6b47d4d228abca16e9b346414c2608a0ea7b0ced0c98b3
|