我如何可以绘制在R A地理坐标数据集?(How can I plot a georeferenced

2019-10-23 12:13发布

我有我想在美国地图上绘制这个网格数据: https://www.dropbox.com/s/9khcjgtv8ipo2u5/windspeed.txt?dl=0

library(ggplot2)
library(RColorBrewer)
library(rgdal)
library(sp)
library(maps)
options(max.print=5.5E5) 

all_data = read.table("windspeed.txt",header = TRUE)

res=0.01 #spacing of row and col coords pre-specified
origin_lat_lon=c(24.55, -130) 
all_data$row=(all_data$row)*res+origin_lat_lon[1] 
all_data$col=(all_data$col)*res+origin_lat_lon[2]
coords = cbind(all_data$col, all_data$row)
spdf = SpatialPointsDataFrame(coords, data=all_data) #sp = SpatialPoints(coords)
proj4string(spdf) <- CRS("+init=epsg:4269") 

df=as.data.frame(spdf)
myPalette <- colorRampPalette(rev(brewer.pal(10, "Spectral")))
usamap <- map_data("state")
ggplot(data=df,aes(x=col,y=row,color=m)) + 
  geom_polygon( data=usamap, aes(x=long, y=lat,group=group),colour="black", fill="white" )+
  geom_point()+
  scale_colour_gradientn(name = "Wind",colours = myPalette(10), limits=c(0,1))+
  xlab('Longitude')+
  ylab('Latitude')+
  theme_bw()+
  theme(line = element_blank())+
  theme(legend.position = c(.93,.20),panel.grid.major = element_line(colour = "#854440"))+
  ggsave("test.png",width=10, height=8,dpi=300)

但是,我得到一个倒置的情节。 能否请您帮忙吗?

我以前有一个类似的数据集的答案在这里: 如何在发车间隔采集点的数据转换为R A地理坐标数据集?

Answer 1:

相较于先前从你所提到的前一个问题有数据集时,在这个CSV你的纬度值将恢复。 所有你需要做的就是在这个新的数据集反转行号:

你行后右:

all_data = read.table("windspeed.txt",header = TRUE)

倒置使用行号:

max_row= max(all_data$row)
all_data$row=max_row-all_data$row 

这应该照顾它。



文章来源: How can I plot a georeferenced dataset in R?