Ich stelle eine Anwendung zusammen, in der ich ein Vektorraster erstellen muss, in dem eine Heatmap gespeichert und angezeigt wird. Es hat folgende Anforderungen:
- Kann den gesamten Planeten abdecken.
- Die überwiegende Mehrheit der Gitterquadrate hat keine Werte.
- Ich möchte das Raster selbst nicht speichern müssen. Ich würde es gerne im laufenden Betrieb berechnen.
- Der Umfang der mit dem Raster verwendeten Daten kann massiv variieren.
- Ich gehe davon aus, dass Gitterquadrate von 1 km bis 100 km Durchmesser gewünscht werden. (Mir ist bewusst, wie viele dies sein werden (~ 510 Millionen für 1 km, ~ 51.000 für 100 km)).
- Die Werte werden für jedes Gitterquadrat akkumuliert / aggregiert.
- Im Idealfall könnte ich problemlos kleinere Gitterzellen verwenden, um Werte für größere zu berechnen, anstatt die größeren Gitterzellenwerte zu speichern.
- Ich werde OpenLayers verwenden, um es über OpenStreetMap zu drapieren.
- Ich werde es in SpatiaLite oder SQLite speichern, also vorzugsweise von diesen nativ unterstützt (dh für SpatiaLite = ein unterstütztes CRS; oder für SQLite = ein auf reinen Zahlen basierendes System).
Meine Frage lautet also: Welche Projektion soll ich für dieses Raster verwenden?
Auch - gibt es eine gute Möglichkeit, dies zu entwerfen? Kennt jemand eine gute mögliche Lösung für dieses Problem oder hat eine ähnliche Lösung schon einmal gelöst? Oder kann mich in eine nützliche Richtung weisen.
Anwendungsfall bearbeiten - im Grunde fasse ich Begrenzungsrahmen in verschiedenen Formen und Größen zusammen. Sie können von einigen Hektar bis zu Tausenden Quadratkilometern groß sein. Sie können auch in unterschiedlichen Projektionen vorliegen.
Unten finden Sie eine maßgeschneiderte Version von dem, was ich automatisch in größerem Maßstab erreichen möchte.
Danke vielmals.
quelle
Antworten:
Standard-OSM-Kacheln befinden sich in Spherical Mercator (SRID = 3857), sodass es wahrscheinlich am einfachsten ist, Ihr Raster mit derselben Projektion zu erstellen.
Wenn Sie SM verwenden, können Sie die Daten auf der höchsten von OSM unterstützten Zoomstufe oder auf der höchsten Zoomstufe speichern, in die Benutzer hineinzoomen können. Wenn die Abdeckung gering ist, verwenden Sie eine Datenstruktur nach dem Vorbild von
XIndex, YIndex, Count
Wenn die Indizes die Indizes für das Kachelraster mit der gewünschten Zoomstufe sind, ist count die Anzahl der Features, die diese Kachel schneiden, und enthält keine Einträge für Punkte, bei denen count null ist. Dann können Sie einfach die Anzahl nach Index auswählen oder bei niedrigeren Zoomstufen die Summe der Anzahl nach Indexbereich auswählen, wobei Sie wissen, dass die Anzahl für die angegebene Region Null ist, wenn die Abfrage nichts zurückgibt.
Dies ist natürlich eine Abstraktion. Ich gehe von einer Softwareebene zwischen dieser und Ihrem Heatmap-Renderer aus. Eine genauere Beschreibung, wie Sie die Heatmap rendern, würde mir helfen, bessere Ratschläge zu geben.
quelle
Der in einer Zelle aus einer Heatmap gespeicherte Wert wird häufig durch seine Fläche normalisiert. In diesem Fall würde ich eher eine flächengleiche Projektion vorschlagen, damit Sie leicht in größerem Maßstab aggregieren können
quelle
Dies ist eine Antwort darauf, wie Sie eine Heatmap entwerfen können. Mein Vorschlag ist, dass Sie sich das Quarter Degree Grid Cell-System ansehen . QDGC stellt eine Möglichkeit dar, (fast) gleich große Flächenquadrate zu erstellen, die einen bestimmten Bereich abdecken, um bestimmte Qualitäten des abgedeckten Bereichs darzustellen. Die Quadrate selbst basieren auf den Gradquadraten, die die Erde bedecken. Um den Äquator haben wir 360 Längslinien und vom Nord- zum Südpol haben wir 180 Breitenlinien. Zusammen ergibt dies 64800 Segmente oder Kacheln, die die Erde bedecken. Die Form der Quadrate wird rechteckiger, je länger wir nach Norden kommen. An den Polen sind sie nicht quadratisch oder gar rechteckig, sondern enden in länglichen Dreiecken.
Die Gitterzellen können in vier geteilt werden, und die resultierenden Gitterzellen können wieder in vier geteilt werden. Das System bietet dem Benutzer eine vorhersehbare Namenskonvention. Durch die Berechnung der Flächen für die verschiedenen Gitterzellen sollten sie für flächenabhängige Präsentationen geeignet sein.
Detailliertere Informationen und Verweise auf einige andere Systeme finden Sie auch in einem Artikel, den ich vor einigen Jahren veröffentlicht habe. Der Standard wird in mehreren afrikanischen Atlanten für Umweltinformationen verwendet.
Shapefiles für verschiedene Kontinente und Länder können auf meiner Blog-Site heruntergeladen werden.
Ich habe mit dem Gedanken herumgespielt, den Standard so zu erweitern, dass die Gitterzellen über oder unter einem bestimmten Breitengrad in zwei Teile geteilt werden können, um bei Verwendung ein optisch ansprechenderes Kartenprodukt zu erhalten.
quelle