Obliczanie procentu widocznego nieba?

14

Czy ktoś może wyjaśnić, jak najprościej, jak obliczyć procent widocznego nieba?

Przeprowadziłem ankietę satelitarną i obliczyłem wysokość budynków i odległość między nimi.

Jak wykorzystać te dane do obliczenia procentu widocznego nieba według miejsca, w którym stałem?

nmtoken
źródło

Odpowiedzi:

12

Zwykle mamy dane dotyczące tego, gdzie jest grunt , więc musimy to wykorzystać. Ziemia określa bryłę w 3D. Rzutujesz tę figurę promieniowo na kulę jednostkową wyśrodkowaną na widzu: mapuje to ziemię na region w kuli. Oblicz obszar pozostałego regionu: jest to stały kąt zachodzący przez niebo (w steradianach ). Podziel go przez całkowity obszar kuli (równy 4 pi) i pomnóż przez 100, aby uzyskać procent nieba.

Jeśli wolisz bardziej żywe wytłumaczenie, umieść widza w centrum małej kulistej bańki i poproś ją, aby pomalowała niebo. Podziel ilość użytej farby przez ilość potrzebną do pomalowania całego bąbelka i pomnóż przez 100.

W rzeczywistości istnieją pewne niezbyt proste szczegóły techniczne.

Rzutowanie na kulę jest dość proste, gdy ziemia jest podana jako sieć triangulowana (TIN), ponieważ wystarczy napisać kod, aby rzutować trójkąt na kulę. Gdy podłoże jest podane jako model rzędnej siatki (DEM), możesz wyobrazić sobie każdą komórkę siatki jako czworobok 3D. Możesz podzielić to na dwa trójkąty wzdłuż przekątnej i zamapować każdy trójkąt na kuli. W obu przypadkach pozostaje Ci kolekcja rzutowanych trójkątów na kuli. Poprzez rzutowanie kuli na mapę (np. Za pomocą projekcji stereograficznej) agregacja tych trójkątów w region wielokąta może zostać zredukowana do standardowego problemu płaskiej geometrii obliczeniowej (na przykład przy użyciu metody przeciągnięcia po płaszczyźnie). Reszta jest łatwa (dla GIS).

Zdjęcie to pokazuje małe miasto symulowanych drapaczy chmur w gnomonicznej projekcji z widokiem na centrum widza patrząc prosto w górę. GIS może „scalić” (uformować) wielokąty reprezentujące boki i dachy tych budynków, a następnie obliczyć pozostałą (białą) przestrzeń. Wybrano rzut gnomonowy, ponieważ proste linie architektoniczne są renderowane raczej jako odcinki linii niż krzywe.

Symulowane budynki

GIS może zostać oddany do użytku, aby wykonać te obliczenia, gdy masz tylko ziemię i budynki. Budynki są najprawdopodobniej dostępne jako zbiory prostokątów. Wierzchołek prostokąta ma współrzędne euklidesowe (x, y, z) w stosunku do przeglądarki. Przekształć je we współrzędne sferyczne: szerokość i długość geograficzną. Utwórz wielokąt dla przekształconego prostokąta. Zrób to dla wszystkich prostokątów dla wszystkich części wszystkich budynków, w wyniku czego powstanie „warstwa cech wielokąta”. Następnie w GIS (1) obliczyć zespolony zbiór teoretyczny cech, (2) obliczyć wynikowy obszar, (3) odjąć to od połowy powierzchni ziemi (druga połowa dotyczy ziemi), i (4) podzielić przez cały obszar ziemi (pomnożenie przez 100, aby uzyskać procent). Wysiłek obliczeniowy jest proporcjonalny do N * log (N), gdzie N jest liczbą wierzchołków. Dokładność zależy od tego, jak dobrze GIS reprezentuje prostokąty (może być konieczne rozbicie boków prostokąta na sekwencje bliżej rozmieszczonych wierzchołków). W zależności od wymagań dotyczących dokładności możesz rozważyć podejście oparte na Monte-Carlo (np . promienie śledzenia promowane w innej odpowiedzi), gdy masz więcej niż kilkaset tysięcy wierzchołków - to znaczy, gdy widz jest całkowicie otoczony (i widzi części) dziesiątki tysięcy budynków :-).

Whuber
źródło
Zrobiłem ankietę satelitarną i obliczyłem wysokość budynków oraz odległość między nimi. Jak wykorzystać te dane do obliczenia procentu widocznego nieba w zależności od tego, gdzie stałem? i jeśli to możliwe, czy możesz podać przykład, powinienem był to napisać w pierwszej kolejności przepraszam
@chris Można edytować swoje oryginalne pytanie. Wystarczy wskazać, które aspekty pytania zmodyfikowałeś, aby ludzie rozumieli kontekst wszelkich istniejących odpowiedzi i komentarzy.
whuber
Czy możesz bardziej wyrazić, że po projekcji wymagany jest krok unii, aby zapobiec podwójnemu liczeniu nakładających się okluderów?
Dan S.
@ Dan Słowo „związek” znajduje się w oryginale w kroku 1 :-).
whuber
@whuber Tak to jest; Myślę, że mój komentarz pojawił się przed Twoją edycją. Albo to, albo wynika z wczoraj poważnego niedoboru kofeiny.
Dan S.
5

Oto odpowiedź, która pochodzi ze świata grafiki komputerowej, a nie GIS - stąd jest to opis algorytmu, a nie instrukcje, których narzędzi należy użyć.

Definicja: promień jest początkiem + kierunkiem; jest to linia, która zaczyna się od początku i kontynuuje do nieskończoności wzdłuż tego kierunku.

Potrzebujesz następujących podstawowych składników:

  • Możliwość sprawdzenia, czy dany promień uderza o ziemię.

  • Możliwość sprawdzenia, czy dany promień uderza w budynek.

  • Wszystkie twoje dane (budynki, informacje reprezentujące ziemię) w kartezjańskiej przestrzeni współrzędnych 3D.

Dokładne wzory do wdrożenia w testach promieniowych zależą od tego, jak reprezentujesz „ziemię” (idealna kula? Teren?) I „budynek” (wytłoczony prostokąt? Pełny model 3D?). W przypadku prostej geometrii są łatwe do znalezienia i łatwe do wdrożenia. (np. wyszukaj „przecięcie kostki promieni”).

W każdym razie odpowiedź na pytanie o% widoczności nieba z punktu jest banalna: odpal wiele promieni losowymi kierunkami z punktu zapytania. Proporcja nieba widoczna z twojego punktu testowego jest równa liczbie promieni, które nie uderzyły w budynek lub ziemię.

Odpowiedź nie jest dokładna, ale można ją obliczyć do dowolnego pożądanego poziomu precyzji, po prostu dodając więcej promieni.

Jak opisano powyżej, niekoniecznie jest to bardzo szybkie; ale istnieje wiele dobrze udokumentowanych optymalizacji, które można zastosować.

(Oczekiwałbym, że do obliczenia widoczności nieba w wielu punktach i tym samym zestawie danych budynków, takie podejście wysadziłoby podejścia oparte na reprojectionie z wody po dodaniu prostego indeksu przestrzennego.)

Dan S.
źródło
Głównym problemem jest to, że dokładność wzrasta tylko wraz z pierwiastkiem kwadratowym liczby promieni. Jeśli na przykład niebo wynosi 50%, potrzebujesz 100 promieni, aby uzyskać 5% dokładności (co naprawdę oznacza, że ​​masz około 95% pewności, że znajdziesz się w granicach + -10%), 10000 promieni, aby uzyskać 0,5%, 1 000 000, aby uzyskać 0,05 %, (trzy cyfry) itd.
whuber
@ whuber Zgadzam się, ale (1) w opisanym pytaniu dokładność powyżej cyfry lub dwóch jest głupcem, a (2) adaptacyjne próbkowanie wpadłoby w „ogromną ilość dobrze udokumentowanych optymalizacji”, machałem ręką przeszłość ;). Jednak to, czy jest to „najlepsze” podejście, z pewnością ma charakter sytuacyjny.
Dan S.
@Dan OK, adaptacyjne próbkowanie jest dobrym pomysłem. Ale jak to zrobić w praktyce? Załóżmy, że masz DEM i, powiedzmy, kilkadziesiąt budynków w pobliżu. Jak dokładnie działałby algorytm? Trudno wyobrazić sobie skuteczny algorytm, który byłby prostszy lub dokładniejszy niż bezpośrednie obliczenie pokrycia nieba.
whuber
@ whuber Odpowiem w kilku częściach ... Po pierwsze: Adaptacyjne próbkowanie sprowadza się do promienia promienia, w miejscu, w którym są bardziej skłonni do dostarczania informacji, a następnie uwzględnienia błędu podczas integracji. Prostym, skutecznym podejściem byłoby wykonanie jednolitego początkowego próbkowania, a następnie rekurencyjne podzielenie i ponowne próbkowanie półprzestrzeni, które były wystarczająco niejednorodne. Ostateczna odpowiedź = średnia ważona próbek (waga = obszar próbki zawierający przestrzeń wyszukiwania).
Dan S.
Dokładność: adaptacyjne próbkowanie oznacza, że ​​dokładność jest trudniejsza do uzasadnienia. Otrzymujesz taką samą bazową dokładność, jak w przypadku początkowych jednorodnych próbek, a także dodatkową dokładność, która w dużym stopniu zależy od techniki adaptacji i skali cech wysokich częstotliwości w geometrii sceny. Uważam jednak, że w sytuacji „prawdziwego świata” można dość szybko osiągnąć konwergencję na błąd o% mniejszy niż błąd danych źródłowych.
Dan S.
3

Współczynnik widoku nieba (SVF) jest definiowany przez część widzialnego nieba (Ω) powyżej pewnego punktu obserwacyjnego widzianego z dwuwymiarowej reprezentacji (patrz rysunek a). Algorytm oblicza pionowy kąt elewacji horyzontu γi w kierunkach n (osiem tutaj jest pokazanych) do określonego promienia R (b).

Definicja współczynnika widoku nieba Aby wyeliminować wady istniejących technik wizualizacji, na przykład problemy z kierunkowym oświetleniem w analitycznym cieniowaniu wzgórza, zaproponowano współczynnik widoku nieba.

Najwygodniejszym sposobem wyrażenia części widocznego nieba jest kąt bryłowy Ω. Jest to miara tego, jak duży obiekt wydaje się obserwatorowi. Kąt bryłowy obiektu jest proporcjonalny do obszaru A rzutu obiektu na kulę jedności wyśrodkowaną w punkcie obserwacyjnym.

SVF mieści się w zakresie od 0 do 1. Wartości bliskie 1 oznaczają, że widoczna jest prawie cała półkula, co ma miejsce w przypadku elementów odsłoniętych (płaszczyzn i szczytów), podczas gdy wartości bliskie 0 są obecne w głębokich zlewach i dolnych częściach głębokich dolin z gdzie prawie nie widać nieba. SVF jest wielkością fizyczną (jeśli nie manipulujemy danymi wysokości przez przesadę pionową).

Jak wskazał @mic_cord, w Remote Sens. 2011, 3 (2), 398-415 opublikowano artykuł na temat wizualizacji danych za pomocą SVF. doi: 10.3390 / rs3020398.

Bezpłatne narzędzie do obliczania SVF (i więcej) jest dostępne pod adresem http://iaps.zrc-sazu.si/en/rvt#v

KrOstir
źródło
+1 Ilustracje i odnośniki dodają jasności i autorytetu, twój pierwszy post tutaj. Witamy na naszej stronie!
whuber
2

Umożliwia to Ecotect (obecnie narzędzie AutoDesk ). Mówiąc bardziej ogólnie, jest to często badane w obszarze światła dziennego, a narzędzie z tego pola może być łatwiejsze w użyciu niż GIS. (Chociaż słyszałem o wtyczce GIS, która może to zrobić i obliczyć ekspozycję słoneczną, ale nigdy nie udało mi się jej znaleźć).

djq
źródło
Analityk słoneczny ESRI? (Działa poprzez utworzenie siatki rzutowanego nieba, a następnie podsumowanie siatki.)
whuber
1
Pomyślałem, że jest to odpowiednie tylko dla roślinności i nie rozważałem przesłonięcia budynków itp. Esri.com/software/arcgis/extensions/spatialanalyst/solar.html Plik pomocy wspomina, że bierze pod uwagę topografię, ale nie budynków, na przykład: pomoc. arcgis.com/en/arcgisdesktop/10.0/help/index.html#/…
djq
budynki (przynajmniej te bez nawisów) można łatwo „wypalić” w kraty. Prawdopodobnie nie jest to skuteczny sposób, aby to zrobić, ponieważ potrzebujesz małej wielkości komórki (a Solar Analyst ma swoje ograniczenia ...). Pomyślałem, że o tym myślałeś.
whuber
@ whuber Myślałem więcej o ekspozycji ścian słonecznych (na przykład jaki obszar jest skierowany na południe). Przyjąłem, że obliczenia uwzględniają tylko obszar komórki siatki, a nie „ścianę” (piksele zamiast wokseli mogą być innym sposobem opisania tego).
djq 24.03.11
2

W GRASS GIS w wersji 7 (właściwie niestabilnej) znajduje się polecenie r.skyview (oparte na poleceniu r.horizon , dostępne również w stabilnej wersji GRASS v.6).

Odczytuje obraz rastrowy reprezentujący model terenu, z wartością piksela odpowiadającą wysokościom elementów terenu (np. Wysokości budynków) i oblicza dla każdego piksela „współczynnik widoku nieba”.

Najpierw musisz przekonwertować swoje dane (nieznany format) na zestaw danych rastrowych.

Widzieć:

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

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

mic_cord
źródło