XI Lezione - Arabo LAR Giath Rammo @ Libera Accademia Romana
Rappresentazione di modelli urbani CityGML su un globo virtuale
1. Corso di Laurea in INFORMATICA
Rappresentazione di modelli urbani
CityGML su un globo virtuale
Relatore: Prof. Nicola Conci
Correlatori: Raffaele De Amicis,
Daniele Magliocchetti
Laureando: Alessandro Florio
matricola 140245
Trento, 14 settembre 2012
2. Contesto
Ultima generazione di UIM1
3D:
●
creata da accurate informazioni geospaziali
●
utilizzata per creare servizi per:
- miglior pianificazione urbana
- miglior gestione della città
- protezione ambientale
- consumo energetico (es. pannelli solari)
Requisiti: modello urbano 3D contestualizzato
nel suo ambiente
1: Urban Information Model
3. Problema
CityGML:
●
miglior rappresentazione di aree urbane
●
application schema per GML (GIS
object oriented)‑
●
modello general-purpose ricco di dettagli→
MA: i visualizzatori attualmente presenti
●
renderizzano gli oggetti come
una qualunque scena 3D
(no contestualizzazione)
●
non permettono estensioni
5. Struttura di citygml4ww
1) lettura del dataset CityGML
2) parsing oggetti CityGML classi WorldWind→
3) ottimizzazione per un aumento delle
performance
4) rendering del modello urbano nel globo
virtuale
6. Lettura del dataset CityGML
CityGML: basato su XML
→ documento ben formato
→ rappresentabile tramite struttura ad albero
<?xmlversion="1.0" encoding="UTF-8"?>
<CityModel xmlns="http://www.citygml.org/citygml/1/0/0">
<gml:name>Cologne</gml:name>
<gml:boundedBy> <!-- bounding box della città -->
<gml:Envelope srsName="urn:ogc:def:crs,crs:EPSG:6.12:31466">
<gml:pos> 5659800.0 2561800.0 15.9 </gml:pos>
<gml:pos> 5662200.0 2564200.0 95.7 </gml:pos>
</gml:Envelope>
</gml:boundedBy>
<cityObjectMember> … </cityObjectMember>
........................................
<cityObjectMember> … </cityObjectMember>
</CityModel>
DOM1
tree
1: Document Object Model, modello ad oggetti del documento
7. Lettura del dataset CityGML
In una lista vengono salvati i “bldg:Building”
Non viene considerato:
●
arredamento interno degli edifici
●
arredo urbano
8. Parsing CityGML WW→
Edificio CityGML: insieme di “gml:Polygon”
CityGMLBuilding:
● 3 liste di Polygon (3 diversi LOD)
●
Bounding Box
●
pianta
10. Parsing CityGML WW→
Extra feature: moltiplicazione di dataset studio→
delle performance in caso di città enormi
Prima ottimizzazione: condivisione di poligoni e
liste
11. Ottimizzazione
Gli edifici vengono aggregati in BVH1
:
●
create ricorsivamente aggregando oggetti
geometrici in base alla loro posizione
●
utilizzate
- nel frustum culling: pruning
- per rappresentare solo un nodo
invece che tutti i suoi figli
1: Bounding Volume Hierarchy
12. Ottimizzazione
Vengono calcolati gli
inviluppi convessi
degli isolati e quindi
dei quartieri.
I quartieri vengono
inseriti in un
RenderableLayer.
La città viene divisa in quartieri (0,001° lon.,
0,0005° lat.) e ogni quartiere viene diviso in 4
isolati (2 lon. x 2 lat.).
13. Rendering
Ad ogni cambiamento della scena:
∀ quartiere q
if (q is in frustum)
if (dist(eye,q) > qTreshold)
render(q)
else isolato i q∀ ∈
if (i is in frustum)
if (dist(eye,i) > iTreshold)
render(i)
else edificio b i∀ ∈
if (b is in frustum)
render(b.getLOD(dist(eye,b)))
15. Applicazioni
Esportazione per il simulatore di GEPSUS1
,
realizzato dalla Fondazione GraphiTech con
partner internazionali per il Ministero della
Difesa del Montenegro.
1: Geographical Information Processing for Environmental Pollution-Related
Security within Urban Scale Environments
16. Applicazioni
Il progetto i-SCOPE1
, coordinato dalla
Fondazione GraphiTech, analizza e studia:
●
mobilità di persone anziane o disabili
●
inquinamento acustico e simulazione
●
installazione di pannelli solari
Richiede la consapevolezza di:
●
morfologia del territorio
●
posizione e ingombro degli edifici
1: Interoperable Smart City services through an Open Platform for urban Ecosystems
17. Conclusioni
citygml4ww :
●
legge, analizza e converte modelli urbani
CityGML
●
è il primo strumento che li contestualizza in
un ambiente tridimensionale
●
ottimizza la visualizzazione per:
- ridurre le risorse richieste
- aumentare le performance del rendering
●
è estensibile