r - 问题是在R

r - 问题是在R,第1张

我的数据框包含韩国首尔(首都)空气中的PM10浓度。 Please, take a look.我想从这个数据集中绘制半变异函数。由于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
投射后我得到了seoul311,如下所示

        coordinates PM10
1    (126.976, 37.56464)   42
2    (127.005, 37.57203)   37
3   (127.0051, 37.54031)   46
4   (127.0957, 37.54464)   47
5   (127.0411, 37.54311)   46

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
投射后我得到了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

Q2。在这里,我可以看到LON / LAT值转化为一些大值!什么是这些价值的含义?米/公里或类似的东西?在上面代码北方意味着什么?北半球?

Q3。正如我之前提到的,我想在韩国(首都52区)策划semivarigram超过首尔。那么,我应该使用哪种投影规则?我应该考虑使用区域吗?什么时候应该考虑使用区域?

我对投射数据有很多困惑。你能否详细回答我的三个问题?

最佳答案:

1 个答案:

答案 0 :(得分:0)

(仅供参考:在单个SO帖子中,这通常是3个问题的不良形式)

Q1:你实际上没有在第一个操作块中“投射”任何东西。您从普通数据框创建了一个“空间”对象,并“声明”它所处的坐标参考系统(CRS)。您也可以准确地做到这一点,因为您只有lat / lon值。执行str(seoul3112)查看您最终创建的SpatialPointsDataFrame的结构。

Q2:您实际上“投影”到Universal Transverse Mercator(UTM)CRS的坐标。 UTM网格坐标表示为以东为单位的距离,称为“东向”,以及以米为单位的距离,称为“北向”。

问题3:你应该查看建议的“官方”政府预测建议,但是你可能会对韩国的方位角等距离有所帮助(mapproject支持它,因此很容易在ggplot中使用{1}}):

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

r - 问题是在R,enter image description here,第2张

正如您所看到的,根据投影(mapproject仅支持41)ggplot可以减少首先投射点的需要。

但是,你正在计算半变异函数,所以如果你想用米工作,你可以这样做:

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])

然后完成你的模型。 nlmegeoR和其他一些R包可以帮助进行半变异函数模型的开发和计算(以及绘图)。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复