问题是在R中投影LON/LAT数据

问题是在R中投影LON/LAT数据,r,spatial,rgdal,sp,gstat,R,Spatial,Rgdal,Sp,Gstat,我有一个数据框,包含了韩国首都首尔上空空气中的PM10浓度。我想从这个数据集中绘制半变异函数。因为这里的LAT/LON数据是以度为单位的,所以我有这个数据。我以这种方式预测数据: library(rgdal) seoul3112 <- read.csv("seoul3112.csv", row.name=1) seoul3112 <- na.omit(seoul3112) coordinates(seoul3112) <- ~LON+LAT proj4string(seou

我有一个数据框,包含了韩国首都首尔上空空气中的PM10浓度。我想从这个数据集中绘制半变异函数。因为这里的LAT/LON数据是以度为单位的,所以我有这个数据。我以这种方式预测数据:

library(rgdal)

seoul3112 <- read.csv("seoul3112.csv", row.name=1)
seoul3112 <- na.omit(seoul3112)

coordinates(seoul3112) <- ~LON+LAT
proj4string(seoul3112) <- "+proj=longlat +datum=WGS84"

seoul3112
Q1:我发现投影后,LON/LAT的值显示出与前一个数据帧几乎相同的值。我的问题是这个
proj4string(seoul311)=“+proj=longlat+datum=WGS84”
命令的实际功能是什么。这里,LON/LAT(度)被转换为km/m或类似的值

我尝试使用rgdal包编写另一个代码,如下所示:

proj4string(seoul3112) <- "+proj=longlat +datum=WGS84" 
seoul3112 <- spTransform(seoul3112, 
                         CRS("+proj=utm +north +zone=52 +datum=WGS84"))
seoul3112
问题2。在这里,我可以看到LON/LAT值被转换为一些较大的值!这些价值是什么意思?米/公里或类似的东西?在上面的代码中,north是什么意思?北半球

第三季度。正如我前面提到的,我想在韩国首尔绘制半方差图(utm区域52)。那么,我应该使用哪种投影规则呢?我应该考虑UTM区吗?什么时候应该考虑UTM区域?< /P> 我对预测数据有很多困惑。你能详细回答我的三个问题吗?

(仅供参考:在一篇SO帖子中回答三个问题通常形式不好)

问题1:在第一个操作块中,您实际上没有“计划”任何内容。您从一个普通数据框创建了一个“空间”对象,并“说明”了它所在的坐标参照系(CRS)。你也做得很准确,因为你只有lat/lon值。执行
str(seoul3112)
查看最终创建的
空间点数据帧的结构

问题2:您实际上将坐标“投影”到了通用横向墨卡托(UTM)CRS。UTM网格坐标表示为以米为单位向东的距离,称为“东距”,以米为单位向北的距离,称为“北距”

问题3:您应该查看建议的“官方”政府投影建议,但您可能可以使用类似于韩国的方位角等距(而且它在
mapproject
中得到支持,因此在
ggplot
中很容易使用):

然后计算距离(我在这里假设了很多):

dists(仅供参考:在一篇SO帖子中,3个问题的形式通常不好)

问题1:在第一个操作块中,您实际上没有“计划”任何内容。您从一个普通数据框创建了一个“空间”对象,并“说明”了它所在的坐标参照系(CRS)。你也做得很准确,因为你只有lat/lon值。执行
str(seoul3112)
查看最终创建的
空间点数据帧的结构

问题2:您实际上将坐标“投影”到了通用横向墨卡托(UTM)CRS。UTM网格坐标表示为以米为单位向东的距离,称为“东距”,以米为单位向北的距离,称为“北距”

问题3:您应该查看建议的“官方”政府投影建议,但您可能可以使用类似于韩国的方位角等距(而且它在
mapproject
中得到支持,因此在
ggplot
中很容易使用):

然后计算距离(我在这里假设了很多):


dists我更喜欢投影方法代码的最后一部分(在地图下面)。在这段代码中,您最终从空间点数据帧创建了一个数据帧。我的问题是我能从
seoul3112\u utm
绘制半变异函数吗?或者我必须制作一个数据框,然后绘制半变异函数?我想你需要制作一个数据框(或矩阵)来与R中最常见的变异函数包一起使用。不过,我对它们并不都熟悉,有些可能会让你直接使用
SpatialPointsDataFrame
。我不确定,但据我所知,要通过
gstat
软件包绘制半变异函数,我必须通过命令
坐标(df)将数据框作为空间点数据框。另一件事是在
seoul3112\u utm中,我更喜欢投影方法代码的最后一部分(在地图下)。在这段代码中,您最终从空间点数据帧创建了一个数据帧。我的问题是我能从
seoul3112\u utm
绘制半变异函数吗?或者我必须制作一个数据框,然后绘制半变异函数?我想你需要制作一个数据框(或矩阵)来与R中最常见的变异函数包一起使用。不过,我对它们并不都熟悉,有些可能会让你直接使用
SpatialPointsDataFrame
。我不确定,但据我所知,要通过
gstat
包绘制半变异函数,我必须通过命令
坐标(df)将数据框作为空间点数据框。另一件事是在
seoul3112\u utm中
proj4string(seoul3112) <- "+proj=longlat +datum=WGS84" 
seoul3112 <- spTransform(seoul3112, 
                         CRS("+proj=utm +north +zone=52 +datum=WGS84"))
seoul3112
       coordinates     ID       time PM10
12      (321241, 4159438) 111121 2012030112   68
173   (323824.6, 4160203) 111123 2012030112   64
334   (323754.6, 4156684) 111131 2012030112   67
495   (331771.9, 4156998) 111141 2012030112   65
656   (326946.2, 4156927) 111142 2012030112   69
library(ggplot2)
library(ggthemes)
library(mapdata)

seoul3112 <- read.csv("seoul3112.csv", row.name=1)
seoul3112 <- na.omit(seoul3112)

sk <- map_data("worldHires", "South Korea")

gg <- ggplot()
gg <- gg + geom_map(data=sk, map=sk,
                    aes(x=long, y=lat, map_id=region),
                    color="black", fill="white", size=0.25)
gg <- gg + geom_point(data=seoul3112, aes(x=LON, y=LAT))
gg <- gg + coord_map("azequidistant")
gg <- gg + theme_map()
gg
coordinates(seoul3112) <- ~LON+LAT
proj4string(seoul3112) <- "+proj=longlat +datum=WGS84"
seoul3112_utm <- spTransform(seoul3112, 
                             CRS("+proj=utm +north +zone=52 +datum=WGS84"))

proj_3112 <- as.data.frame(coordinates(seoul3112_utm))
proj_3112 <- cbind.data.frame(proj_3112, seoul3112_utm@data)
dists <- dist(proj_3112[,1:2])