chattenmasken-Algorithmus für Strahlungsberechnung

Ich arbeite an einer Software (Ruby - Sketchup) zur Berechnung der Strahlung (Sonne, Himmel und umgebende Gebäude) innerhalb der Stadtentwicklung auf Fußgängerebene. Das endgültige Ziel ist es, eine Konturkarte zu erstellen, die die Höhe der Gesamtstrahlung anzeigt. Mit Gesamtstrahlung meine ich Kurzwelle (Licht) und Langwelle (Wärme). (Um Ihnen eine Idee zu geben:http: //www.iaacblog.com/maa2011-2012-digitaltools/files/2012/01/Insolation-Analysis-All-Year.jp)

Ich weiß, dass es verschiedene Software gibt, die dies tun, aber ich muss meine eigene schreiben, da diese Berechnung nur Teil eines komplexeren Workflows ist.

Der (offensichtliche) Pseudocode lautet wie folgt:

Select and mesh surface for analysis
From each point of the mesh
  Cast n (see below) rays in the upper hemisphere (precalculated)
    For each ray check whether it is in shade
      If in shade => Extract properties from intersected surface
      If not in shade => Flag it
    loop
  loop
loop   

Der obige Ansatz ist brachiale Gewalt, aber er ist der einzige, an den ich denken kann. Die Rechenzeit erhöht sich mit der vierten Potenz der Genauigkeit (Dx, Dy, Dazimth, Dtilt). Ich weiß, dass Software wie Radiance einen Montecarlo-Ansatz verwendet, um die Anzahl der Strahlen zu verringern.

Wie Sie sich vorstellen können, hängt die Genauigkeit der Berechnung für einen bestimmten Punkt des Netzes stark von der Genauigkeit der Skydome-Unterteilung ab. Ebenso hängt die Genauigkeit der Oberfläche von der Grobheit des Netzes ab.

Ich dachte an einen anderen Ansatz mit adaptiver Verfeinerung basierend auf den Ergebnissen der Berechnungen. Die Verfeinerung könnte für die analysierte Oberfläche und den Skydome funktionieren. Wenn sich die Ergebnisse zwischen zwei benachbarten Punkten um mehr als einen Schwellenwert unterscheiden, wird eine Verfeinerung durchgeführt. Dies geschieht normalerweise in der Fluidsimulation, aber ich konnte nichts über die Lichtsimulation herausfinden.

Auch ich frage mich, ob es Algorithmen gibt, zum Beispiel von Computergrafiken, mit denen sich die Anzahl der Berechnungen minimieren lässt. Beispiel: Überprüfen Sie die maximale Höhe der Umgebung, um bestimmte Teile des Skydome für bestimmte Punkte auszuschließen.

Ich brauche keine extreme Genauigkeit, da ich kein Rendering mache. Meine Priorität ist Geschwindigkeit in diesem Moment.

Irgendein Vorschlag zum Ansatz?

Vielen Dan

n Strahlen Im Moment unterteile ich den Himmel durch konstante Azimut- und Neigungsschritte; Dies führt zu unregelmäßigen Raumwinkeln. Es gibt andere Unterteilungen (z. B. Tregenza), die einen konstanten Raumwinkel beibehalte

EDIT: Antwort auf die tollen Fragen von Spektre

Zeitfenster. Ich führe eine Simulation für jede Stunde des Jahres durch. Die Wetterdaten werden aus einer EPW-Wetterdatei extrahiert. Es enthält für jede Stunde Sonnenhöhe und Azimut, direkte Strahlung, diffuse Strahlung, Trübung (für atmosphärische langwellige diffuse Strahlung). Mein Algorithmus berechnet die Schattenmaske separat und verwendet sie dann, um die Strahlung auf der Oberfläche (und auf einem typischen Fußgänger) für jede Stunde des Jahres zu berechnen. In diesem zweiten Schritt füge ich die tatsächliche Strahlung hinzu. Im ersten Schritt sammle ich nur Informationen über die Geometrie und Eigenschaften der verschiedenen Oberflächen.

Sun Pfade. Nein ich nicht Siehe Punkt 1

Reflexion von Gebäuden einbeziehen? Im Moment nicht, aber ich plane, es als diffuse Kurzwellenreflexion basierend auf dem Himmelssichtfaktor zu berücksichtigen. Ich betrachte jetzt nur die Kurzwellenreflexion vom Boden.

Wärmeabfuhr von Gebäuden berücksichtigen? Absolut ja. Aus diesem Grund habe ich diesen Code selbst geschrieben. Hier in Dubai ist dies der Schlüssel, da die Gebäudeflächen sehr, sehr heiß werden.

Surfaces Albedo? Ja, ich will. In Skethcup habe ich jeder Oberfläche ein Wörterbuch zugeordnet und in diesem Wörterbuch sind alle Oberflächeneigenschaften aufgeführt: Temperatur, Emissionsgrad usw. Im Moment sind die Temperaturen festgelegt (Umgebungstemperatur, falls nicht zugewiesen), aber ich plane, in Zukunft , um dies mit den Ergebnissen einer gebäudedynamischen Wärmesimulation zu kombinieren, die bereits alle Oberflächentemperaturen berechnet.

Kartenauflösung. Die Auflösung wird vom Benutzer ausgewählt und das Netz vom Algorithmus generiert. In Bezug auf den Maßstab verwende ich dies für Masterpläne. Die Skala reicht von 100mx100m bis zu 2000mx2000m. Normalerweise verwende ich eine Mindestauflösung von 2 m. Das Limit ist der Speicher und die Simulationszeit. Ich habe auch die Möglichkeit, bestimmte Bereiche mit einer viel feineren Masche zu verfeinern: zum Beispiel Bereiche, in denen es Restaurants oder andere Annehmlichkeiten gibt.

Framerate. Ich muss keine Animation machen. Die Ergebnisse werden in eine VTK-Datei exportiert und in Paraview visualisiert und dort animiert, um sie während der Präsentationen vorzuführen: -)

Hitze und Licht. Ja. Kurzwelle und Langwelle werden getrennt behandelt. Siehe Punkt 4. Die Geolokalisierung wird nur zur Auswahl der richtigen Wetterdatei verwendet. Ich berechne nicht alle Strahlungskomponenten. Die Wetterdateien, die ich brauche, haben Messdaten. Sie sind nicht großartig, aber gut genug für den Moment.https: //www.lucidchart.com/documents/view/5ca88b92-9a21-40a8-aa3a-0ff7a5968142/

Antworten auf die Frage(1)

Ihre Antwort auf die Frage