Traçage de données interpolées sur la carte

J'ai des données de l'enquête de la richesse en espèces qui a été pris à différents endroits dans la Baie de Chesapeake, etats-unis, et je tiens à présenter graphiquement les données comme une "carte de chaleur."

J'ai un dataframe de coordonnées lat/long et la richesse des valeurs, que j'ai converti en un SpatialPointsDataFrame et utilisé le autoKrige() fonction de l'automap paquet pour générer les valeurs interpolées.

Tout d'abord, quelqu'un peut-il dire si je suis correctement mise en œuvre de la autoKrige() fonction?

Deuxième, j'ai du mal à la représentation des données et en y ajoutant une carte de la région. Sinon, pourrais-je spécifier l'interpolation de la grille afin de refléter les frontières de la Baie (comme l'a suggéré ici)? Des idées sur comment je pourrais faire et où je pourrais obtenir cette information? La fourniture de la grille de autoKrige() semble assez facile.


EDIT: Merci à Paul pour son super utile post! Voici ce que j'ai maintenant. La difficulté à obtenir les ggplot à accepter à la fois les données interpolées et la projection de la carte:

require(rgdal)
require(automap)
#Generate lat/long coordinates and richness data
set.seed(6)
df=data.frame(
  lat=sample(seq(36.9,39.3,by=0.01),100,rep=T),
  long=sample(seq(-76.5,-76,by=0.01),100,rep=T),
  fd=runif(10,0,10))
initial.df=df

#Convert dataframe into SpatialPointsDataFrame
coordinates(df)=~long+lat

#Project latlong coordinates onto an ellipse
proj4string(df)="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"
#+proj = the type of projection (lat/long)
#+ellps and +datum = the irregularity in the ellipse represented by planet earth

#Transform the projection into Euclidean distances
project_df=spTransform(df, CRS("+proj=merc +zone=18s +ellps=WGS84 +datum=WGS84")) #projInfo(type="proj")

#Perform the interpolation using kriging
kr=autoKrige(fd~1,project_df)
#Extract the output and convert to dataframe for easy plotting with ggplot2
kr.output=as.data.frame(kr$krige_output)
#Plot the output
#Load the map data for the Chesapeake Bay
cb=data.frame(map("state",xlim=range(initial.df$long),ylim=range(initial.df$lat),plot=F)[c("x","y")])

ggplot()+
  geom_tile(data=kr.output,aes(x=x1,y=x2,fill=var1.pred))+  
  geom_path(data=cb,aes(x=x,y=y))+
  coord_map(projection="mercator")
  • l'exemple de code donne-moi un vide parcelle avec la ggplot_0.9.3 dans R 2.15 et une erreur de la parcelle R 3.0.0 (pas de méthode applicable pour la profondeur)
InformationsquelleAutor jslefche | 2012-04-06