citygml_synthetic — DRIVE japan op

• Data kinds: कोई नहीं → any (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.citygml_synthetic(n: 'int' = 4, *, origin: 'tuple[float, float]' = (35.6716, 139.765), spacing: 'float' = 30.0, size: 'float' = 12.0, heights: 'Sequence[float] | None' = None, ground_z: 'float' = 0.0, omit_measured_height: 'Iterable[int]' = (), use_lod0_footprint: 'bool' = False, ns_building: 'str' = 'http://www.opengis.net/citygml/building/2.0') -> 'str' (implementation को सीधे call करना हो तो import driveplateau; driveplateau.citygml_synthetic(n: 'int' = 4, *, origin: 'tuple[float, float]' = (35.6716, 139.765), spacing: 'float' = 30.0, size: 'float' = 12.0, heights: 'Sequence[float] | None' = None, ground_z: 'float' = 0.0, omit_measured_height: 'Iterable[int]' = (), use_lod0_footprint: 'bool' = False, ns_building: 'str' = 'http://www.opengis.net/citygml/building/2.0') -> 'str', registry से लेना हो तो opsdrive.get("citygml_synthetic"))

उपयोग

असली जैसी ही संरचना वाला न्यूनतम CityGML 2.0 string बनाता है (tests और demos के लिए)।

इमारतें size [m] के वर्ग हैं जिन्हें spacing [m] के अंतराल पर x दिशा में रखा जाता है, और प्रत्येक इमारत के लिए bldg:measuredHeight और bldg:lod1Solid > gml:Solid > gml:exterior > gml:CompositeSurface > gml:surfaceMember × 6 > gml:Polygon > gml:exterior > gml:LinearRing > gml:posList (तल + 4 पार्श्व + शीर्ष, lat lon alt के क्रम में) लिखा जाता है। समदूरस्थ बेलनाकार सन्निकटन रैखिक है, इसलिए स्थानीय निर्देशांक में बनाया गया वर्ग वापस पढ़ने पर क्षेत्रफल size² से मेल खाता है।

Args:

n: इमारतों की संख्या (≥ 0)।

origin: इमारत 0 के केंद्र का (lat, lon) [deg]।

spacing: इमारतों के केंद्रों का अंतराल [m]।

size: वर्ग की एक भुजा [m]।

heights: प्रत्येक इमारत की ऊँचाई [m]। None हो तो 10 + 5*i।

ground_z: तल की ऊँचाई (समुद्र तल से) [m]।

omit_measured_height: इस सूचकांक वाली इमारत के लिए measuredHeight नहीं लिखा जाता।

use_lod0_footprint: True हो तो lod1Solid से पहले lod0FootPrint (केवल तल) भी लिखा जाता है।

ns_building: bldg नेमस्पेस URI (संस्करण-भिन्नता के परीक्षण के लिए बदला जा सकता है)।

Returns:

UTF-8 में लिखी जा सकने वाली CityGML स्ट्रिंग।

Raises:

ValueError: n ऋणात्मक है, size/spacing धनात्मक नहीं है (≤ 0), heights की लंबाई असंगत है या मान धनात्मक नहीं हैं।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• gallery_drive_city_terrain — py -3.11 examples/gallery_drive_city_terrain.py

• poc_driving_japan_town — py -3.11 examples/poc_driving_japan_town.py

वे अगले ops जिनसे type जुड़ता है (any को input के रूप में लेते हैं)

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

इसी category के (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. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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