보이는 하늘 비율을 계산합니까?


14

누구나 보이는 하늘 비율을 계산하는 방법을 가능한 한 간단하게 설명 할 수 있습니까?

나는 위성 측량을했고 건물의 높이와 건물 사이의 거리를 알아 냈습니다.

이 데이터를 사용하여 내가 서있는 곳에 따라 보이는 하늘 비율을 계산하려면 어떻게합니까?

답변:


12

우리는 일반적으로 근거 가 어디에 있는지에 대한 데이터 를 가지고 있으므로이를 사용해야합니다. 지면은 3D로 견고한 수치를 결정합니다. 이 그림을 뷰어 중심의 단위 구에 방사형으로 투영하면 구의 영역에지면이 매핑됩니다. 남은 영역 의 면적을 계산합니다 . 즉 하늘이 차지하는 입체각 ( 스테 라디안 )입니다. 구의 총 면적 (4pi와 동일)으로 나누고 100을 곱하여 하늘의 백분율을 구하십시오.

보다 생생한 설명을 원한다면 시청자를 작은 구형 버블의 중앙에 놓고 하늘 위로 페인트 칠하도록 요청하십시오. 그녀가 사용하는 페인트의 양을 전체 거품을 칠하는 데 필요한 양으로 나누고 100을 곱하십시오.

실제로는 간단하지 않은 기술적 인 세부 사항이 있습니다.

지면이 삼각 망 (TIN)으로 주어지면 구에 투영하는 것은 매우 간단합니다. 구에 삼각형을 투영하는 코드 만 작성하면되기 때문입니다. 지면이 그리드 입면 모델 (DEM)로 제공되면 각 그리드 셀을 3D 사변형으로 생각할 수 있습니다. 대각선을 따라 두 개의 삼각형으로 나누고 각 삼각형을 구에 매핑 할 수 있습니다. 두 경우 모두 구에 투영 된 삼각형 모음이 남아 있습니다. 구를지도에 투영함으로써 (예를 들어, 입체 투영법으로) 이러한 삼각형의 다각형 영역으로의 집합은 (예를 들어 평면 스위프 방법을 사용하여) 평면 계산 기하학의 표준 문제로 감소 될 수있다. 나머지는 쉽습니다 (GIS의 경우).

이 이미지는 똑바로보고있는 시청자 중심의 중심 투영법으로 시뮬레이션 된 마천루의 작은 도시를 보여줍니다. GIS는 이러한 건물의 측면과 지붕을 나타내는 다각형을 "병합 (결합)"하여 남은 공간 (흰색)을 계산할 수 있습니다. 직선 건축 선이 곡선이 아닌 선 세그먼트로 렌더링되므로 Gnomonic 투영이 선택되었습니다.

시뮬레이션 된 건물

지상과 건물 만있는 경우이 계산을 수행하기 위해 GIS를 사용할 수 있습니다. 건물은 사각형 모음으로 사용 가능합니다. 사각형의 꼭짓점은 뷰어를 기준으로 유클리드 좌표 (x, y, z)를 갖습니다. 그것들을 구면 좌표, 즉 위도와 경도로 변환하십시오. 변환 된 사각형의 다각형을 만듭니다. 모든 건물의 모든 부분에 대해 모든 사각형에 대해이 작업을 수행하면 "다각형 피처 레이어"가 생성됩니다. 그런 다음 GIS에서 (1) 지형지 물의 집합 이론적 합집합을 계산하고 (2) 결과 면적을 계산합니다. (3) 지구 표면적의 절반에서 이것을 빼고 (다른 절반은지면을위한) (4) 지구 전체 면적으로 나누기 (100을 곱하여 백분율을 얻음). 계산 노력은 N * log (N)에 비례합니다. 여기서 N은 꼭짓점의 수입니다. 정확도는 GIS가 사각형을 얼마나 잘 나타내는 지에 따라 달라집니다 (사각형면을보다 밀접한 정점의 시퀀스로 나누어야 할 수도 있음). 정확성 요구 사항에 따라 Monte-Carlo 기반 접근 방식 (예를 들어, 수십만 개 이상의 정점이 있으면, 즉 시청자가 수만 개의 건물로 완전히 둘러싸여 있고 (일부 부분을 볼 수있는 경우 :-)) 다른 응답으로 옹호하는 광선 추적.


나는 위성 조사를 수행하고 건물의 높이와 건물 사이의 거리를 계산했습니다. 나는 그 데이터를 어떻게 사용하여 내가 서 있었는지에 따라 보이는 하늘 비율을 계산합니까? 그리고 가능하다면 예제를 보여줄 수 있다면, 처음에 이것을 작성

@ chris 원래 질문을 편집해도됩니다. 사람들이 기존 답변 및 의견의 맥락을 이해하도록 수정 한 질문의 측면을 표시하십시오.
whuber

중복 카운트가 중복되는 오클 루더를 방지하기 위해 프로젝션 후에 유니온 단계가 필요하다는 것을보다 명확하게하고 싶습니까?
Dan S.

@Dan "union"이라는 단어는 1 단계 :-)의 원본에 있습니다.
whuber

@whuber 그렇습니다; 내 의견이 편집 전에 들어온 것 같습니다. 어쩌면 어제 심한 카페인 부족의 결과입니다.
Dan S.

5

다음은 GIS가 아닌 컴퓨터 그래픽 세계에서 오는 대답입니다. 따라서 사용하는 도구에 대한 지침이 아니라 알고리즘에 대한 설명입니다.

정의 : 광선은 원점 + 방향입니다. 원점에서 시작하여 해당 방향을 따라 무한대로 계속되는 선입니다.

다음과 같은 기본 성분이 필요합니다.

  • 주어진 광선이지면에 닿는 지 테스트하는 기능.

  • 주어진 광선이 건물에 닿는 지 테스트하는 기능.

  • 3D 직교 좌표 공간의 모든 데이터 (건물,지면을 나타내는 정보)

광선 테스트를 위해 구현할 정확한 공식은 "지상"(완벽한 구? 지형?)과 "건물"(압출 된 사각형? 완전한 3D 모델?)을 나타내는 방법에 따라 다릅니다. 단순한 지오메트리를 위해 쉽게 찾고 구현할 수 있습니다. (예 : "레이 큐브 교차로"검색).

어쨌든, 포인트에서 하늘 가시성의 %에 대한 대답은 사소합니다. 쿼리 지점에서 임의의 방향으로 많은 광선을 발사하십시오. 테스트 지점에서 보이는 하늘의 비율은 건물이나 지상에 닿지 않은 광선의 수와 같습니다 .

정답은 정확하지 않지만 더 많은 광선을 추가하여 원하는 수준의 정밀도로 계산할 수 있습니다.

위에서 설명한 것처럼 반드시 빠를 필요는 없습니다. 그러나 당신이 적용 할 수있는 잘 문서화 된 최적화가 많이 있습니다.

(나는 여러 지점과 동일한 건물 데이터 세트에서 하늘 가시성을 계산하기 위해 간단한 공간 지수를 추가 한 후 재 투영 기반 접근법을 물 밖으로 날려 버릴 것으로 예상합니다.)


주요 문제점은 광선 수의 제곱근 에 의해서만 정확도가 증가한다는 것입니다 . 예를 들어, 하늘의 백분율이 50 % 인 경우 5 % 정확도를 얻으려면 100 개의 광선이 필요합니다 (실제로 + -10 % 내에 도달 할 것으로 확신하는 약 95 % 임), 0.5 %를 얻기 위해 10,000 광선, 0.05를 얻기 위해 1,000,000 %, (3 자리) 등
whuber

@ whuber 나는 동의하지만 (1) 설명 된 질문에 대해 한두 자리 이상의 정확도는 바보의 심부름이며 (2) 적응 형 샘플링은 "문서화 된 최적화의 거대한 본문"에 해당합니다. 과거;). 그러나 이것이 "최상의"접근법인지 여부는 확실히 상황에 따라 다릅니다.
Dan S.

@Dan OK, 적응 샘플링은 좋은 생각입니다. 그러나 실제로 어떻게 수행합니까? DEM과 근처에 수십 개의 건물이 있다고 가정하십시오. 알고리즘은 정확히 어떻게 작동합니까? 하늘 범위를 직접 계산하는 것보다 더 간단하거나 정확한 효과적인 알고리즘을 상상하기는 어렵습니다.
whuber

@whuber 두 부분으로 답장 할 것입니다 ... 첫 번째 : 적응 형 샘플링은 정보를 제공 할 가능성이 더 높은 곳으로 바이어스 광선을 비추고 통합 할 때 바이어스를 설명합니다. 간단하고 효과적인 접근법은 균일 한 초기 샘플링을 수행 한 다음 충분히 불균일 한 반 공간을 재귀 적으로 세분화 및 재 샘플링하는 것입니다. 최종 답변 = 샘플의 가중 평균 (가중 = 검색 공간을 포함하는 샘플 영역).
Dan S.

정확도 : 적응 형 샘플링은 정확도를 추론하기가 어렵다는 것을 의미합니다. 초기 균일 샘플에서와 동일한 기준 정확도와 씬 지오메트리의 고주파 기능의 스케일 및 적응 기술에 크게 의존하는 추가 정확도를 얻습니다. 그러나 "실제 세계"상황에서는 소스 데이터의 오류보다 오류 %가 매우 빠르게 수렴 될 수 있다고 생각합니다.
Dan S.

3

스카이뷰 계수 (SVF)는 2 차원 표현에서 볼 때 특정 관측점 위의 가시적 하늘 (Ω) 부분으로 정의됩니다 (그림 a 참조). 알고리즘은 지정된 반경 R (b)에 대한 수평선 (γi)의 n (여기서는 8 개) 방향의 수직 앙각을 계산합니다.

하늘 전망 요인 정의 스카이 뷰 팩터는 기존의 시각화 기술의 단점, 예를 들어 분석 언덕 음영의 방향 조명 문제를 극복하기 위해 제안되었습니다.

가시적 인 하늘 부분을 표현하는 가장 편리한 방법은 입체각 Ω입니다. 이것은 물체가 관찰자에게 얼마나 큰지를 나타내는 척도입니다. 물체의 솔리드 각도는 관측점을 중심으로 한 단일 구체에 대한 물체 투영 영역 A에 비례합니다.

SVF의 범위는 0과 1 사이입니다. 1에 가까울수록 거의 전체 반구가 보이고, 이는 노출 된 피처 (평면과 피크)에서 볼 수 있으며 0에 가까운 값은 깊은 싱크대와 깊은 계곡의 아래쪽에 있습니다. 하늘이 거의 보이지 않는 곳. SVF는 물리량입니다 (수직 과장으로 고도 데이터를 조작하지 않는 경우).

@mic_cord가 지적한 것처럼 Remote Sens에서 SVF를 사용한 데이터 시각화에 관한 논문이 발표되었습니다. 2011, 3 (2), 398-415; doi : 10.3390 / rs3020398.

SVF (및 그 이상)를 계산하기위한 무료 도구는 http://iaps.zrc-sazu.si/en/rvt#v 에서 제공됩니다.


+1 그림과 참고 문헌은 여기에 첫 번째 글인 명확성과 권위를 더합니다. 우리 사이트에 오신 것을 환영합니다!
whuber

2

Ecotect (현재 AutoDesk 도구 )를 사용하면이 작업을 수행 할 수 있습니다. 일반적으로 이는 일광 영역에서 자주 검사되며이 필드의 도구는 GIS보다 사용하기 쉽습니다. (하지만이 작업을 수행하고 태양 노출을 계산할 수있는 GIS 플러그인에 대해 들어 보았지만 찾지 못했습니다.)


ESRI의 태양 분석가? (투영 된 하늘의 격자를 만든 다음 격자를 요약하여 작동합니다.)
whuber

1
나는 그 식물에만 적합이었고, 등 건물의 그늘지게 고려하지 않았다 생각 esri.com/software/arcgis/extensions/spatialanalyst/solar.html : 예를 들어 건물 도움말 파일이 지형을 고려 것을 언급,하지만 도움이됩니다. arcgis.com/ko/arcgisdesktop/10.0/help/index.html#/…
djq

건물 (적어도 돌출부가없는 건물)은 그리드에 쉽게 "연소"될 수 있습니다. 작은 셀 크기가 필요하기 때문에 효율적인 방법이 아닐 수도 있습니다 (Solaris Analyst에는 고유 한 제한이 있습니다 ...). 방금 당신이 생각했을 것 같아요.
whuber

@ whuber 나는 벽의 태양 노출 (예 : 남쪽을 향한 지역)에 대해 더 많이 생각하고있었습니다. 계산은 '벽'이 아닌 그리드 셀 영역만을 고려한다고 가정했습니다 (복셀보다는 픽셀이 그것을 설명하는 또 다른 방법 일 수 있습니다).
djq

2

GRASS GIS 버전 7 (실제로 안정적이지 않음)에는 r.skyview 명령이 있습니다 ( 안정적인 GRASS v.6에서도 사용 가능한 r.horizon 명령을 기반으로 함 ).

지형 지형 높이 (예 : 건물 높이)에 해당하는 픽셀 값으로 지형 모델을 나타내는 래스터 이미지를 읽고 각 픽셀에 대해 "skyview factor"를 계산합니다.

먼저 데이터 (알 수없는 형식)를 래스터 데이터 세트로 변환해야합니다.

보다:

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.