Berechnen von Linienschnittpunkten auf einem trapezförmigen GitterPython

Python-Programme
Anonymous
 Berechnen von Linienschnittpunkten auf einem trapezförmigen Gitter

Post by Anonymous »

  • Ich muss ~2 Millionen Koordinaten berechnen (64-Bit-Float-Tupel)
  • Sie sind die Schnittpunkte von Linien, die ein trapezförmiges Gitter bilden (siehe Abbildung unten)
  • Die Form des Trapezes ist bei jeder Iteration anders.
  • Ich habe alle Die Grenzkoordinaten (in Grün) stehen mir zur Verfügung.
  • Die Ost-West-Linien haben konstante Breitengrade.
Image

Ich bin sicher, dass dies schon oft gelöst wurde, aber leider weiß ich nicht, nach welchen Schlüsselwörtern ich suchen sollte, um die Lösung zu finden. Logische Ansätze, die ich bisher in Betracht gezogen habe:
  • Berechnen Sie die Steigungen der Nord-Süd-Linie (d. h.: (y2 – y1) / (x2 – x1)). Lösen Sie nach x auf (d. h.: Längengrad der Ost-West-Linie am Schnittpunkt).
  • Berechnen Sie die Längen der Ost-West-Linie. Subtrahieren Sie die gesamten konstanten Breiten (d. h. 6x schmale Streifen). Teilen Sie den Rest durch 6. Wenden Sie das Ergebnis als Längsversatz für jeden Punkt auf der Ost-West-Linie an.
  • Ich habe versucht, mit der Funktion „split()“ von Shapely das trapezförmige Polygon mit Linienzeichenfolgen zu teilen, aber es wurde schnell klar, dass es ein Albtraum wäre, die zurückgegebenen GeometryCollection zu verarbeiten und sie durchsortieren zu müssen.
Da bin ich mir sicher Ihr kennt allerdings viel bessere Möglichkeiten.
Fragen:
  • Was ist der beste mathematische Berechnungsansatz, um dies zu erreichen? und
  • Gibt es Python-Bibliotheken, mit denen ich die Dinge beschleunigen könnte?
  • Bonus: Ich muss dies wahrscheinlich als Multiprozess ausführen, wenn die Zeit gekommen ist, den Datensatz zu generieren. Können Sie bestätigen, dass diese Art von Berechnungen am besten auf den CPU-Kernen und nicht auf den GPU-Kernen durchgeführt werden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post