Di solito abbiamo dati su dove si trova il terreno , quindi dobbiamo usarli. Il terreno determina una figura solida in 3D. Proietti questa figura radialmente sulla sfera unitaria centrata sullo spettatore: questa mappa il terreno su una regione nella sfera. Calcola l'area della regione rimanente : questo è l'angolo solido sotteso dal cielo (in steradiani ). Dividilo per l'area totale della sfera (pari a 4 pi) e moltiplica per 100 per ottenere la percentuale di cielo.
Se preferisci una spiegazione più vivida, metti lo spettatore al centro di una piccola bolla sferica e chiedile di dipingere sul cielo. Dividi la quantità di vernice che usa per la quantità necessaria per dipingere l'intera bolla e moltiplica per 100.
In realtà ci sono alcuni dettagli tecnici non così semplici.
La proiezione sulla sfera è abbastanza semplice quando il terreno è dato come una rete triangolata (un TIN), perché devi solo scrivere codice per proiettare un triangolo su una sfera. Quando il terreno viene dato come modello di elevazione su griglia (un DEM), è possibile concepire ciascuna cella della griglia come un quadrilatero 3D. Potresti spezzarlo in due triangoli lungo una diagonale e mappare ogni triangolo sulla sfera. In entrambi i casi ti rimane una raccolta di triangoli proiettati sulla sfera. Proiettando la sfera su una mappa (ad esempio, con una proiezione stereografica), l'aggregazione di questi triangoli in una regione poligonale può essere ridotta a un problema standard della geometria computazionale piana (ad esempio utilizzando un metodo di scansione piana). Il resto è facile (per un GIS).
Questa immagine mostra una piccola città di grattacieli simulati in una proiezione gnomonica centrata su uno spettatore del centro che guarda dritto in alto. Il GIS può "unire" (formare l'unione di) i poligoni che rappresentano i lati e i tetti di questi edifici e quindi calcolare l'area dello spazio (bianco) rimanente. È stata scelta una proiezione gnomonica perché le linee architettoniche rette sono rese come segmenti di linea piuttosto che curve.
Un GIS può essere messo in servizio per fare questo calcolo quando hai solo un terreno e degli edifici. Gli edifici sono probabilmente disponibili come raccolte di rettangoli. Un vertice di un rettangolo ha coordinate euclidee (x, y, z) relative a un visualizzatore. Converti quelli in coordinate sferiche: cioè latitudine e longitudine. Crea un poligono per il rettangolo convertito. Fallo per tutti i rettangoli per tutte le parti di tutti gli edifici, risultando in un "layer poligonale". Quindi, nel GIS, (1) calcolare l'unione set-teorica delle caratteristiche, (2) calcolare l'area risultante, (3) sottrarla da metà della superficie della terra (l'altra metà è per il suolo), e (4) dividere per l'intera area della terra (moltiplicando per 100 per ottenere una percentuale). Lo sforzo computazionale è proporzionale a N * log (N) dove N è il numero di vertici. La precisione dipende da quanto bene il GIS rappresenta i rettangoli (potrebbe essere necessario suddividere i lati del rettangolo in sequenze di vertici più ravvicinati). A seconda dei requisiti di precisione, potresti prendere in considerazione approcci basati su Monte-Carlo (ad esempio, il ray tracing ha richiesto un'altra risposta) una volta che hai più di diverse centinaia di migliaia di vertici, ovvero quando lo spettatore è completamente circondato da (e può vedere parti di) decine di migliaia di edifici :-).