building_prisms — DRIVE japan op

• Datenarten: any → any

• Aufruf: import fullseye as fs; fs.ledger.building_prisms(buildings: 'Iterable[dict[str, Any]]', *, color_fn: 'Callable[[dict[str, Any]], Sequence[float]] | None' = None, base_z: 'float | None' = 0.0, roof_shade: 'float' = 0.92) -> 'tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]' (die Implementierung direkt: import driveplateau; driveplateau.building_prisms(buildings: 'Iterable[dict[str, Any]]', *, color_fn: 'Callable[[dict[str, Any]], Sequence[float]] | None' = None, base_z: 'float | None' = 0.0, roof_shade: 'float' = 0.92) -> 'tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]'; aus dem Register: opsdrive.get("building_prisms"))

Verwendung

Extrudiert Gebäudegrundrisse (Footprints) bis zu ihrer Höhe und fasst sie zu einem Dreiecksnetz zusammen.

Args:

buildings: plateau_parse von buildings (footprint, height, ground_z).

color_fn: building -> (r,g,b) 0..1. Bei None _default_building_color.

base_z: Unterkante z aller Gebäude [m]. Bei None wird ground_z jedes Gebäudes verwendet (für Welten mit Relief).

Für eine eigene flache Straßenwelt passt 0.0.

roof_shade: Farbfaktor der Dachflächen (dezente Schattierung zur Unterscheidung von den Seitenflächen).

Returns:

(V (n,3) float64, F (m,3) int64, colors (m,3) float64 0..1, ids (m,) int64). ids[f] ist die Nummer des Gebäudes, zu dem Fläche f gehört (Index in der Eingabeliste). Bei 0 Gebäuden sind alle Arrays leer.

Raises:

ValueError: Rückgabe von color_fn ist kein RGB-Tripel 0..1, footprint/height eines Gebäudes ungültig.

Leere Eingabe (buildings mit 0 Einträgen) gibt ein leeres Ergebnis zurück (Grund: Kacheln mit 0 Gebäuden kommen in realen Daten häufig vor. Eine leere Prismenmenge ist die richtige Antwort).

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• gallery_drive_city_terrain — py -3.11 examples/gallery_drive_city_terrain.py

Typkompatible Folge-Operatoren (nehmen any als Eingabe)

course_crank · course_s_curve · course_turnaround · course_slope · course_intersection · course_parallel_parking · course_crossing · course_road

Gleiche Kategorie (japan)

osm_synthetic · osm_parse · osm_road_graph · osm_road_mask · osm_road_loops · osm_route · japan_world · japan_stats


*Provenance: driveplateau.py — DRIVE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.