Durchschnittswerte eines Punktdatensatzes in einem Grid-Dataset

8

Ich bin relativ neu bei ggplot, also bitte vergib mir, wenn einige meiner Probleme wirklich einfach oder überhaupt nicht lösbar sind.

Was ich versuche, ist die Erstellung einer "Heat Map" eines Landes, in dem die Füllung der Form kontinuierlich ist. Außerdem habe ich die Form des Landes als .RData . Ich habe hadley wickhams Skript verwendet, um meine SpatialPolygon-Daten in einen Datenrahmen umzuwandeln . Die long und lat Daten meines Datenrahmens sehen nun so aus.

%Vor%

Diese Long / Lat-Daten zeichnen den Umriss von Deutschland. Der Rest des Datenrahmens wird hier weggelassen, da ich denke, dass er nicht benötigt wird. Ich habe auch einen zweiten Datenrahmen von Werten für bestimmte long / lat Punkte. Das sieht so aus.

%Vor%

Was ich jetzt tun möchte, ist, jeden Punkt der Karte nach einem Durchschnittswert über alle Fixpunkte zu färben, die innerhalb einer bestimmten Entfernung von diesem Punkt liegen. Auf diese Weise würde ich eine (fast) durchgehende Färbung der gesamten Landkarte des Landes bekommen. Was ich bisher gesehen habe, ist die Karte des Landes, die mit ggplot2 geplottet wurde

%Vor%

Meine erste Idee war es, Punkte zu generieren, die innerhalb der Karte liegen, die gezeichnet wurde, und dann den Wert für jeden generierten Punkt my_generated_point like so

zu berechnen %Vor%

Ich habe jedoch keine Möglichkeit gefunden, diese Punkte zu generieren. Und wie bei dem ganzen Problem weiß ich nicht einmal, ob es möglich ist, diesen Weg zu lösen. Meine Frage ist jetzt, ob es eine Möglichkeit gibt, diese Punkte zu generieren und / oder ob es eine andere Möglichkeit gibt, zu einer Lösung zu kommen.

Lösung

Dank Paul habe ich fast bekommen, was ich wollte. Hier ist ein Beispiel mit Beispieldaten für die Niederlande.

%Vor%

    
Marco 19.12.2011, 15:13
quelle

2 Antworten

15

Ich denke, was Sie wollen, ist etwas in dieser Richtung. Ich prophezeie, dass dieses Homebrew für große Datensätze sehr ineffizient sein wird, aber es funktioniert mit einem kleinen Beispieldatensatz. Ich würde in Kernel-Dichten und vielleicht das raster -Paket schauen. Aber vielleicht passt dir das gut ...

Der folgende Codeschnipsel berechnet den Mittelwert der Cadmiumkonzentration eines Gitters von Punkten, die den ursprünglichen Punktdatensatz überlagern. Es werden nur Punkte näher als 1000 m berücksichtigt.

%Vor%

was zu folgendem Bild führt:

Ein alternativer Ansatz besteht darin, einen Interpolationsalgorithmus zu verwenden. Ein Beispiel ist Kriging. Dies ist ziemlich einfach mit dem Automap-Paket (finde die Eigenwerbung :), schrieb ich das Paket):

%Vor%

was zu folgendem Bild führt:

Aber ohne Wissen darüber, was Ihr Ziel mit dieser Karte ist, ist es schwer für mich zu sehen, was Sie genau wollen.

    
Paul Hiemstra 19.12.2011, 15:41
quelle
2

Diese Diashow bietet einen anderen Ansatz - siehe Seite 18 für eine Beschreibung des Ansatzes und Seite 21 , um zu sehen, wie die Ergebnisse für den Folienhersteller aussahen.

Beachten Sie jedoch, dass der Slide-Maker das Paket sp und die Funktion spplot anstelle von ggplot2 und seinen Zeichenfunktionen verwendet hat.

    
prabhasp 20.12.2011 07:43
quelle