Por lo general, tenemos datos sobre dónde está el terreno , por lo que tenemos que usar eso. El terreno determina una figura sólida en 3D. Proyecta esta figura radialmente en la esfera de la unidad centrada en el visor: esto asigna el suelo a una región en la esfera. Calcule el área de la región restante : ese es el ángulo sólido subtendido por el cielo (en esteradianos ). Divídalo por el área total de la esfera (igual a 4 pi) y multiplíquelo por 100 para obtener el porcentaje de cielo.
Si prefiere una explicación más vívida, coloque al espectador en el centro de una pequeña burbuja esférica y pídale que pinte sobre el cielo. Divida la cantidad de pintura que usa por la cantidad necesaria para pintar toda la burbuja y multiplique por 100.
En realidad, hay algunos detalles técnicos no tan simples.
La proyección sobre la esfera es bastante sencilla cuando el terreno se da como una red triangulada (un TIN), porque solo tiene que escribir código para proyectar un triángulo en una esfera. Cuando el terreno se da como un modelo de elevación cuadriculada (un DEM), puede concebir cada celda de la cuadrícula como un cuadrilátero 3D. Puedes dividir eso en dos triángulos a lo largo de una diagonal y mapear cada triángulo en la esfera. En cualquier caso, te queda una colección de triángulos proyectados en la esfera. Al proyectar la esfera en un mapa (p. Ej., Con una proyección estereográfica), la agregación de estos triángulos en una región poligonal se puede reducir a un problema estándar de geometría computacional plana (por ejemplo, utilizando un método de barrido plano). El resto es fácil (para un SIG).
Esta imagen muestra una pequeña ciudad de rascacielos simulados en una proyección gnomónica centrada en un espectador del centro mirando hacia arriba. El SIG puede "fusionar" (formar la unión de) los polígonos que representan los lados y los techos de estos edificios y luego calcular el área del espacio (blanco) restante. Se eligió una proyección gnomónica porque las líneas arquitectónicas rectas se representan como segmentos de línea en lugar de curvas.
Se puede poner en servicio un SIG para hacer este cálculo cuando solo tiene un terreno y edificios. Es muy probable que los edificios estén disponibles como colecciones de rectángulos. Un vértice de un rectángulo tiene coordenadas euclidianas (x, y, z) en relación con un espectador. Convierta esos en coordenadas esféricas: es decir, latitud y longitud. Crea un polígono para el rectángulo convertido. Haga esto para todos los rectángulos para todas las partes de todos los edificios, dando como resultado una "capa de entidades poligonales". Luego, en el SIG, (1) calcule la unión teórica de conjuntos de las características, (2) calcule el área resultante, (3) reste esto de la mitad del área de la superficie de la tierra (la otra mitad es para el suelo), y (4) dividir por toda el área de la tierra (multiplicando por 100 para obtener un porcentaje). El esfuerzo computacional es proporcional a N * log (N) donde N es el número de vértices. La precisión depende de qué tan bien el SIG represente los rectángulos (es posible que deba dividir los lados del rectángulo en secuencias de vértices más espaciados). Según sus requisitos de precisión, puede considerar enfoques basados en Montecarlo (por ejemplo, el trazado de rayos propugna en otra respuesta) una vez que tenga más de varios cientos de miles de vértices, es decir, una vez que el espectador esté completamente rodeado (y pueda ver partes de) decenas de miles de edificios :-).