Berechnung des sichtbaren Himmelsanteils?


14

Kann jemand so einfach wie möglich erklären, wie der Prozentsatz des sichtbaren Himmels berechnet wird?

Ich habe eine Satellitenuntersuchung durchgeführt und die Höhe der Gebäude und die Entfernung zwischen ihnen ermittelt.

Wie verwende ich diese Daten, um den Prozentsatz des sichtbaren Himmels entsprechend meiner Position zu berechnen?

Antworten:


12

Wir haben normalerweise Daten darüber, wo sich der Boden befindet, also müssen wir diese verwenden. Der Boden bestimmt eine feste Figur in 3D. Sie projizieren diese Figur radial auf die Einheitskugel, die auf den Betrachter zentriert ist. Dadurch wird der Boden auf eine Region in der Kugel abgebildet. Berechnen Sie die Fläche der verbleibenden Region: Dies ist der Raumwinkel, der vom Himmel begrenzt wird (in Steradians ). Teilen Sie es durch die Gesamtfläche der Kugel (gleich 4 pi) und multiplizieren Sie es mit 100, um den Himmelsprozentsatz zu erhalten.

Wenn Sie eine anschaulichere Erklärung bevorzugen, stellen Sie den Betrachter in die Mitte einer kleinen Kugelblase und bitten Sie ihn, über den Himmel zu malen. Teilen Sie die Menge an Farbe, die sie verbraucht, durch die Menge, die zum Malen der gesamten Blase erforderlich ist, und multiplizieren Sie sie mit 100.

In Wirklichkeit gibt es einige nicht so einfache technische Details.

Die Projektion auf die Kugel ist ziemlich einfach, wenn der Boden als trianguliertes Netzwerk (TIN) angegeben wird, da Sie nur Code schreiben müssen, um ein Dreieck auf eine Kugel zu projizieren. Wenn der Boden als Rasterhöhenmodell (DEM) angegeben wird, können Sie sich jede Rasterzelle als 3D-Viereck vorstellen. Sie können das in zwei Dreiecke entlang einer Diagonale aufteilen und jedes Dreieck auf die Kugel abbilden. In beiden Fällen verbleibt eine Sammlung von projizierten Dreiecken auf der Kugel. Durch Projizieren der Kugel auf eine Karte (z. B. mit einer stereografischen Projektion) kann die Aggregation dieser Dreiecke in einen polygonalen Bereich auf ein Standardproblem der Ebenenberechnungsgeometrie reduziert werden (z. B. unter Verwendung eines Ebenen-Sweep-Verfahrens). Der Rest ist einfach (für ein GIS).

Dieses Bild zeigt eine kleine Stadt von simulierten Wolkenkratzern in einer gnomonischen Projektion, die auf einen Betrachter im Stadtzentrum zentriert ist, der gerade nach oben schaut. Das GIS kann die Polygone, die die Seiten und Dächer dieser Gebäude darstellen, "zusammenführen" (die Vereinigung bilden) und dann die Fläche des verbleibenden (weißen) Raums berechnen. Eine gnomonische Projektion wurde gewählt, da die geraden architektonischen Linien eher als Liniensegmente als als Kurven gerendert werden.

Simulierte Gebäude

Ein GIS kann in Betrieb genommen werden, um diese Berechnung durchzuführen, wenn Sie nur ein Grundstück und Gebäude haben. Die Gebäude sind höchstwahrscheinlich als Rechtecksammlungen erhältlich. Ein Eckpunkt eines Rechtecks ​​hat euklidische Koordinaten (x, y, z) relativ zu einem Betrachter. Konvertieren Sie diese in sphärische Koordinaten: das heißt Breite und Länge. Erstellen Sie ein Polygon für das konvertierte Rechteck. Führen Sie dies für alle Rechtecke für alle Teile aller Gebäude aus, was zu einem "Polygon-Feature-Layer" führt. Dann wird im GIS (1) die satztheoretische Vereinigung der Merkmale berechnet, (2) die resultierende Fläche berechnet, (3) diese von der Hälfte der Erdoberfläche subtrahiert (die andere Hälfte ist für den Boden). und (4) durch die gesamte Fläche der Erde dividieren (mit 100 multiplizieren, um einen Prozentsatz zu erhalten). Der Rechenaufwand ist proportional zu N * log (N), wobei N die Anzahl der Eckpunkte ist. Die Genauigkeit hängt davon ab, wie gut das GIS die Rechtecke darstellt (möglicherweise müssen Sie die Rechteckseiten in Sequenzen mit engeren Scheitelpunkten aufteilen). Abhängig von Ihren Genauigkeitsanforderungen können Sie Monte-Carlo-basierte Ansätze in Betracht ziehen (zB die in einer anderen Antwort empfohlene Strahlverfolgung), wenn Sie mehr als mehrere hunderttausend Scheitelpunkte haben - das heißt, wenn der Betrachter vollständig von Zehntausenden von Gebäuden umgeben ist (und Teile davon sehen kann) :-).


Ich habe eine Satellitenvermessung durchgeführt und die Höhe und den Abstand zwischen den Gebäuden ermittelt. Wie berechne ich anhand dieser Daten den Prozentsatz des sichtbaren Himmels, je nachdem, wo ich stand? und wenn möglich, könnten Sie ein Beispiel zeigen, ich hätte dies an erster Stelle

@chris Es ist in Ordnung, die ursprüngliche Frage zu bearbeiten. Geben Sie einfach an, welche Aspekte der Frage Sie geändert haben, damit die Benutzer den Kontext vorhandener Antworten und Kommentare verstehen.
whuber

Möglicherweise möchten Sie präzisieren, dass nach der Projektion ein Vereinigungsschritt erforderlich ist, um das Doppelzählen überlappender Okkluder zu verhindern.
Dan S.

@Dan Das Wort "Union" steht genau dort im Original bei Schritt 1 :-).
whuber

@whuber So ist es; Ich glaube, mein Kommentar ist vor Ihrer Bearbeitung eingegangen. Entweder das oder es ist das Ergebnis eines schweren Koffeinmangels gestern.
Dan S.

5

Hier ist eine Antwort, die eher aus der Computergrafik als aus GIS stammt. Daher ist es eine Beschreibung eines Algorithmus und keine Anweisung, für welches Tool bzw. welche Tools verwendet werden sollen.

Definition: Ein Strahl ist ein Ursprung + eine Richtung; Es ist die Linie, die am Ursprung beginnt und sich in dieser Richtung bis ins Unendliche fortsetzt.

Sie benötigen folgende Grundzutaten:

  • Fähigkeit zu testen, ob ein bestimmter Strahl auf den Boden trifft.

  • Möglichkeit zu testen, ob ein bestimmter Strahl auf ein Gebäude trifft.

  • Alle Ihre Daten (die Gebäude, Informationen, die den Boden darstellen) in einem kartesischen 3D-Koordinatenraum.

Die genauen Formeln, die für Strahlentests implementiert werden müssen, hängen davon ab, wie Sie "den Boden" (eine perfekte Kugel? Gelände?) Und "ein Gebäude" (ein extrudiertes Rechteck? Ein vollständiges 3D-Modell?) Darstellen. Für einfache Geometrie sind sie leicht zu finden und leicht zu implementieren. (zB Suche nach "Strahlwürfelschnitt").

In jedem Fall ist die Antwort in% der Sichtbarkeit des Himmels von einem Punkt aus trivial: Feuern Sie viele Strahlen mit zufälligen Richtungen von Ihrem Abfragepunkt ab. Der Anteil des Himmels, der von Ihrem Testpunkt aus sichtbar ist, entspricht der Anzahl der Strahlen, die kein Gebäude oder den Boden getroffen haben.

Die Antwort ist nicht genau, aber Sie können sie mit jeder gewünschten Genauigkeit berechnen, indem Sie einfach weitere Strahlen hinzufügen.

Wie oben beschrieben, ist es nicht unbedingt sehr schnell; Aber es gibt eine Vielzahl gut dokumentierter Optimierungen, die Sie anwenden können.

(Ich würde erwarten, dass zur Berechnung der Sichtbarkeit des Himmels über mehrere Punkte und denselben Gebäudedatensatz dieser Ansatz reprojektionsbasierte Ansätze aus dem Wasser bläst, nachdem ein einfacher räumlicher Index hinzugefügt wurde.)


Das Hauptproblem besteht darin, dass die Genauigkeit nur mit der Quadratwurzel der Anzahl der Strahlen zunimmt . Wenn der prozentuale Anteil am Himmel beispielsweise 50% beträgt, benötigen Sie 100 Strahlen, um eine Genauigkeit von 5% zu erzielen (was wirklich bedeutet, dass Sie zu 95% zuversichtlich sind, innerhalb von + -10% zu gelangen), 10.000 Strahlen, um 0,5% zu erzielen, 1.000.000, um 0,05 zu erzielen %, (drei Ziffern) usw.
whuber

@whuber Ich stimme zu, aber (1) für die Frage, wie beschrieben, Genauigkeit jenseits einer Ziffer oder zwei ist ein Narrengeschäft, und (2) adaptive Abtastung würde in den "riesigen Körper von gut dokumentierten Optimierungen" fallen, die ich von Hand winkte Vergangenheit ;). Ob es sich dabei um den "besten" Ansatz handelt, ist jedoch durchaus situativ.
Dan S.

@Dan OK, adaptives Sampling ist eine gute Idee. Aber wie führt man das in der Praxis durch? Angenommen, Sie haben ein DEM und beispielsweise ein paar Dutzend Gebäude in der Nähe. Wie würde der Algorithmus genau funktionieren? Es ist schwierig, sich einen effektiven Algorithmus vorzustellen, der einfacher oder genauer ist als eine direkte Berechnung der Himmelsbedeckung.
whuber

@whuber Ich werde in ein paar Teilen antworten ... Die erste: Adaptive Abtastung beschränkt sich darauf, Strahlen dahin zu lenken, wo sie mit größerer Wahrscheinlichkeit Informationen liefern und dann die Verzerrung bei der Integration berücksichtigen. Ein einfacher, effektiver Ansatz wäre, eine einheitliche Anfangsabtastung durchzuführen und dann rekursiv Halbräume zu unterteilen und erneut abzutasten, die ausreichend ungleichmäßig waren. Endgültige Antwort = gewichteter Durchschnitt der Stichproben (Gewicht = Fläche der Stichprobe, die den Suchraum enthält).
Dan S.

Zur Genauigkeit: Adaptive Abtastung bedeutet, dass es schwieriger ist, über die Genauigkeit nachzudenken. Sie erhalten die gleiche Grundgenauigkeit wie bei den ersten einheitlichen Stichproben sowie eine zusätzliche Genauigkeit, die in hohem Maße von der Adaptionstechnik und dem Maßstab der Hochfrequenzmerkmale in der Szenengeometrie abhängt. Ich glaube jedoch, dass Sie in einer "realen" Situation in der Lage sein würden, relativ schnell zu einem Fehler zu gelangen, der um% geringer ist als der der Quelldaten.
Dan S.

3

Der Sky-View-Faktor (SVF) wird definiert durch den Teil des sichtbaren Himmels (Ω) über einem bestimmten Beobachtungspunkt, gesehen aus einer zweidimensionalen Darstellung (siehe Abbildung a). Der Algorithmus berechnet den vertikalen Höhenwinkel des Horizonts γi in n (hier sind acht dargestellt) Richtungen zu dem angegebenen Radius R (b).

Definition des Himmelssichtfaktors Der Sky-View-Faktor wurde vorgeschlagen, um die Nachteile der vorhandenen Visualisierungstechniken zu überwinden, z. B. Richtungsbeleuchtungsprobleme bei der analytischen Verschattung von Hügeln.

Das bequemste Maß, um den Teil des sichtbaren Himmels auszudrücken, ist der Raumwinkel Ω. Dies ist ein Maß dafür, wie groß ein Objekt für einen Betrachter erscheint. Der Raumwinkel eines Objekts ist proportional zur Fläche A der Projektion des Objekts auf die am Beobachtungspunkt zentrierte Einheitskugel.

SVF-Werte liegen zwischen 0 und 1. Werte nahe 1 bedeuten, dass fast die gesamte Hemisphäre sichtbar ist, was bei exponierten Merkmalen (Ebenen und Spitzen) der Fall ist, während Werte nahe 0 in tiefen Senken und unteren Teilen tiefer Täler von vorhanden sind wo fast kein Himmel sichtbar ist. SVF ist eine physikalische Größe (wenn wir die Höhendaten nicht durch vertikale Übertreibung manipulieren).

Wie @mic_cord ausführte, wurde in Remote Sens. 2011, 3 (2), 398-415 ein Artikel zur Datenvisualisierung mit SVF veröffentlicht. doi: 10.3390 / rs3020398.

Ein kostenloses Tool zur Berechnung von SVF (und mehr) ist unter http://iaps.zrc-sazu.si/en/rvt#v verfügbar


+1 Die Abbildungen und Verweise verleihen diesem ersten Beitrag hier Klarheit und Autorität. Willkommen auf unserer Webseite!
whuber

2

Mit Ecotect (jetzt ein AutoDesk-Tool ) können Sie dies tun. Im Allgemeinen wird dies häufig im Bereich Tageslicht untersucht, und ein Tool aus diesem Bereich ist möglicherweise einfacher zu verwenden als GIS. (Obwohl ich von einem GIS-Plugin gehört habe, das dies kann und die Sonneneinstrahlung berechnet, habe ich es nie geschafft, es zu finden).


ESRI Solar Analyst? (Es funktioniert, indem ein Raster des projizierten Himmels erstellt und dann das Raster zusammengefasst wird.)
whuber

1
Ich dachte , dass nur geeignet für die Vegetation war und berücksichtigte nicht von Gebäude überschattend usw. esri.com/software/arcgis/extensions/spatialanalyst/solar.html Die Hilfe - Datei erwähnt , dass es Topographie hält, aber nicht Gebäude zum Beispiel: Hilfe. arcgis.com/de/arcgisdesktop/10.0/help/index.html#/…
djq

Gebäude (zumindest solche ohne Überhänge) können leicht in Gitter "eingebrannt" werden. Dies ist wahrscheinlich kein effizienter Weg, da Sie eine kleine Zellengröße benötigen (und Solar Analyst hat seine eigenen Einschränkungen ...). Ich dachte nur, du hättest darüber nachdenken können.
whuber

@whuber Ich habe mehr über die Sonneneinstrahlung von Wänden nachgedacht (zum Beispiel, welche Fläche nach Süden ausgerichtet ist). Ich nahm an, dass die Berechnung nur die Gitterzellenfläche und nicht die "Wand" berücksichtigt (Pixel anstelle von Voxeln könnten eine andere Art der Beschreibung sein).
Dienstag,

2

In GRASS GIS Version 7 ( derzeit nicht stabil) gibt es den Befehl r.skyview (basierend auf dem Befehl r.horizon , der auch in der stabilen GRASS-Version 6 verfügbar ist).

Es liest ein Rasterbild, das ein Geländemodell darstellt, wobei der Pixelwert den Geländemerkmalhöhen (z. B. Gebäudehöhen) entspricht, und berechnet für jedes Pixel den "Skyview-Faktor".

Sie müssen zuerst Ihre Daten (unbekanntes Format) in ein Raster-Dataset konvertieren.

Sehen:

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

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.