Calculando a porcentagem de céu visível?

14

Alguém pode explicar, da maneira mais simples possível, como calcular a porcentagem de céu visível?

Fiz uma pesquisa por satélite e calculei a altura dos edifícios e a distância entre eles.

Como uso esses dados para calcular a porcentagem de céu visível de acordo com a minha posição?

nmtoken
fonte

Respostas:

12

Normalmente, temos dados sobre a localização do terreno , por isso precisamos usá-lo. O chão determina uma figura sólida em 3D. Você projeta esta figura radialmente na esfera unitária centralizada no visualizador: isso mapeia o solo em uma região da esfera. Calcule a área da região restante : esse é o ângulo sólido subtendido pelo céu (em estereótipos ). Divida-o pela área total da esfera (igual a 4 pi) e multiplique por 100 para obter a porcentagem de céu.

Se você preferir uma explicação mais vívida, coloque o espectador no centro de uma pequena bolha esférica e peça-lhe para pintar no céu. Divida a quantidade de tinta que ela usa pela quantidade necessária para pintar a bolha inteira e multiplique por 100.

Na realidade, existem alguns detalhes técnicos não tão simples.

A projeção na esfera é bastante direta quando o terreno é dado como uma rede triangulada (um NIF), porque você só precisa escrever um código para projetar um triângulo em uma esfera. Quando o solo é dado como um modelo de elevação em grade (DEM), você pode conceber cada célula da grade como um quadrilátero 3D. Você pode dividir isso em dois triângulos ao longo de uma diagonal e mapear cada triângulo na esfera. Em ambos os casos, você fica com uma coleção de triângulos projetados na esfera. Ao projetar a esfera em um mapa (por exemplo, com uma projeção estereográfica), a agregação desses triângulos em uma região poligonal pode ser reduzida a um problema padrão de geometria computacional plana (usando um método de varredura plana, por exemplo). O resto é fácil (para um SIG).

Esta imagem mostra uma pequena cidade de arranha-céus simulados em uma projeção gnomônica centrada em um espectador no centro da cidade, olhando para cima. O SIG pode "mesclar" (formar a união) dos polígonos que representam os lados e os telhados desses edifícios e, em seguida, calcular a área do espaço (branco) restante. Uma projeção gnomônica foi escolhida porque as linhas arquitetônicas retas são renderizadas como segmentos de linha em vez de curvas.

Edifícios simulados

Um GIS pode ser colocado em serviço para fazer esse cálculo quando você tiver apenas um terreno e edifícios. É provável que os edifícios estejam disponíveis como coleções de retângulos. Um vértice de um retângulo possui coordenadas euclidianas (x, y, z) em relação a um visualizador. Converta-os em coordenadas esféricas: latitude e longitude. Crie um polígono para o retângulo convertido. Faça isso para todos os retângulos de todas as partes de todos os edifícios, resultando em uma "camada de recurso de polígono". Então, no SIG, (1) calcule a união teórica dos conjuntos, (2) calcule a área resultante, (3) subtraia-a da metade da área da superfície da terra (a outra metade é para o solo), e (4) divida por toda a área da terra (multiplicando por 100 para obter uma porcentagem). O esforço computacional é proporcional a N * log (N) em que N é o número de vértices. A precisão depende de quão bem o GIS representa os retângulos (pode ser necessário dividir os lados do retângulo em sequências de vértices mais espaçados). Dependendo dos seus requisitos de precisão, você pode considerar abordagens baseadas em Monte-Carlo (por exemplo, o traçado de raios preconizado em outra resposta) quando você tiver mais de centenas de milhares de vértices - ou seja, quando o espectador estiver completamente cercado por (e puder ver partes de) dezenas de milhares de edifícios :-).

whuber
fonte
fiz uma pesquisa por satélite e calculei a altura dos edifícios e a distância entre eles. Como uso esses dados para calcular a porcentagem de céu visível de acordo com o local onde eu estava? e se possível você poderia mostrar um exemplo, eu deveria ter escrito isso em primeiro lugar sorry #
@chris Não há problema em editar sua pergunta original. Apenas indique quais aspectos da pergunta você modificou para que as pessoas entendam o contexto de quaisquer respostas e comentários existentes.
whuber
Você pode deixar mais explícito que há uma etapa de união necessária após a projeção para evitar a contagem dupla de oclusores sobrepostos?
Dan S.
@ Dan A palavra "união" está lá no original, na etapa 1 :-).
whuber
@whuber Assim é; Acho que meu comentário foi publicado antes da sua edição. Ou isso é resultado de uma grave escassez de cafeína ontem.
Dan S.
5

Aqui está uma resposta que vem do mundo dos gráficos de computador, e não do GIS - portanto, é uma descrição de um algoritmo, em vez de instruções para quais ferramentas usar.

Definição: um raio é uma origem + uma direção; é a linha que começa na origem e continua ao infinito nessa direção.

Você precisa dos seguintes ingredientes básicos:

  • Capacidade de testar para ver se um determinado raio atinge o solo.

  • Capacidade de testar para ver se um determinado raio atinge um edifício.

  • Todos os seus dados (edifícios, informações que representam o solo) em um espaço de coordenadas cartesianas 3D.

As fórmulas exatas a serem implementadas para testes de raio dependem de como você representa "o solo" (uma esfera perfeita? Terreno?) E "um edifício" (um retângulo extrudado? Um modelo 3D completo?). Para geometria simples, são fáceis de encontrar e implementar. (por exemplo, procure "interseção de cubo de raio").

De qualquer forma, a partir daí, a resposta sobre a% de visibilidade do céu a partir de um ponto é trivial: dispare muitos raios com direções aleatórias a partir do seu ponto de consulta. A proporção de céu visível no seu ponto de teste é igual ao número de raios que não atingiram um edifício ou o solo.

A resposta não é exata, mas você pode calculá-la para qualquer nível de precisão desejado, apenas adicionando mais raios.

Como descrito acima, não é necessariamente muito rápido; mas há uma enorme quantidade de otimizações bem documentadas que você pode aplicar.

(Eu esperaria que, para calcular a visibilidade do céu em vários pontos e no mesmo conjunto de dados de edifícios, essa abordagem expulsasse da água as abordagens baseadas em reprojeção após a adição de um índice espacial simples.)

Dan S.
fonte
O principal problema é que a precisão aumenta apenas com a raiz quadrada do número de raios. Se a porcentagem de céu é de 50%, por exemplo, você precisa de 100 raios para obter precisão de 5% (o que realmente significa que você tem cerca de 95% de confiança de ficar dentro de + -10%), 10.000 raios para obter 0,5% e 1.000.000 para obter 0,05 %, (três dígitos), etc.
whuber
@whuber Eu concordo, mas (1) para a pergunta como descrita, a precisão além de um ou dois dígitos é uma tarefa tola e (2) a amostragem adaptativa se enquadra no "enorme corpo de otimizações bem documentadas" que eu acenei com a mão passado;). Se é a melhor abordagem, certamente é bastante situacional, no entanto.
S.
@ Dan OK, amostragem adaptativa é uma boa idéia. Mas como se realiza isso na prática? Suponha que você tenha um DEM e, digamos, algumas dezenas de edifícios nas proximidades. Como o algoritmo funcionaria, precisamente? É difícil imaginar um algoritmo eficaz que seria mais simples ou mais preciso do que um cálculo direto da cobertura do céu.
whuber
@whuber, responderei em algumas partes ... A primeira: a amostragem adaptativa se resume a raios de polarização, onde é mais provável que eles forneçam informações e, em seguida, respondam pela polarização na integração. Uma abordagem simples e eficaz seria realizar uma amostragem inicial uniforme e, em seguida, subdividir e reamostrar recursivamente meios-espaços suficientemente uniformes. Resposta final = média ponderada das amostras (peso = área do espaço de pesquisa que contém a amostra).
Dan S.
Sobre precisão: a amostragem adaptável significa que é mais difícil pensar em precisão. Você obtém a mesma precisão da linha de base das amostras uniformes iniciais, além de uma precisão adicional que depende muito da técnica de adaptação e da escala dos recursos de alta frequência na geometria da cena. No entanto, acredito que em uma situação do "mundo real" você seria capaz de convergir para um erro% menor que o dos dados de origem rapidamente.
Dan S.
3

O fator de visão do céu (SVF) é definido pela parte do céu visível (Ω) acima de um certo ponto de observação, visto de uma representação bidimensional (veja a figura a). O algoritmo calcula o ângulo de elevação vertical do horizonte γi em n (oito são apresentadas aqui) direções para o raio especificado R (b).

Definição do fator de visualização do céu O fator de visualização do céu foi proposto para superar as desvantagens das técnicas de visualização existentes, por exemplo, problemas de iluminação direcional em sombreamento analítico.

A medida mais conveniente para expressar a parte do céu visível é o ângulo sólido Ω. Esta é uma medida de quão grande um objeto parece para um observador. O ângulo sólido de um objeto é proporcional à área A da projeção do objeto na esfera da unidade centralizada no ponto de observação.

O SVF varia entre 0 e 1. Valores próximos a 1 significam que quase todo o hemisfério é visível, como é o caso de feições expostas (planos e picos), enquanto valores próximos a 0 estão presentes em pias profundas e partes inferiores de vales profundos. onde quase nenhum céu é visível. SVF é uma quantidade física (se não manipularmos os dados de elevação por exagero vertical).

Como @mic_cord apontou, há um artigo publicado sobre visualização de dados com SVF no Remote Sens. 2011, 3 (2), 398-415; doi: 10.3390 / rs3020398.

Uma ferramenta gratuita para calcular SVF (e mais) está disponível em http://iaps.zrc-sazu.si/en/rvt#v

KrOstir
fonte
+1 As ilustrações e referências adicionam clareza e autoridade a isso, seu primeiro post aqui. Bem vindo ao nosso site!
whuber
2

O Ecotect (agora uma ferramenta AutoDesk ) permite fazer isso. De maneira mais geral, isso é frequentemente examinado na área de luz do dia e uma ferramenta desse campo pode ser mais fácil de usar do que o GIS. (Embora eu tenha ouvido falar de um plug-in GIS que pode fazer isso e calcular a exposição solar, mas nunca consegui encontrá-lo).

djq
fonte
Analista Solar da ESRI? (Ele funciona criando uma grade do céu projetado e depois resumindo a grade).
whuber
1
Eu pensei que isso era adequado apenas para vegetação e não considerava a sombra de edifícios etc. esri.com/software/arcgis/extensions/spatialanalyst/solar.html O arquivo de ajuda menciona que ele considera topografia, mas não edifícios, por exemplo: ajuda. arcgis.com/en/arcgisdesktop/10.0/help/index.html#/…
djq
edifícios (pelo menos aqueles sem saliências) podem ser facilmente "queimados" em grades. Provavelmente, essa não é uma maneira eficiente de fazer isso, porque você precisa de um tamanho de célula pequeno (e o Solar Analyst tem suas próprias limitações ...). Eu apenas pensei que você poderia estar pensando nisso.
whuber
@whuber Eu estava pensando mais sobre a exposição solar das paredes (por exemplo, qual área está voltada para o sul). Supus que o cálculo considerasse apenas a área da célula da grade, e não a 'parede' (pixels, em vez de voxels, poderia ser outra maneira de descrevê-la).
DJQ
2

No GRASS GIS versão 7 (atualmente não estável), existe o comando r.skyview (baseado no comando r.horizon , disponível também no estável GRASS v.6).

Ele lê uma imagem rasterizada representando um modelo de terreno, com o valor de pixel correspondente às alturas dos recursos do terreno (por exemplo, alturas de construção) e calcula, para cada pixel, o "fator de visualização do céu".

Você precisa primeiro converter seus dados (formato desconhecido) em um conjunto de dados raster.

Vejo:

http://grass.osgeo.org/grass70/manuals/addons/r.skyview.html

http://www.mdpi.com/2072-4292/3/2/398

mic_cord
fonte