我需要R语言的帮助
从我的代码:
inter1= read.table("C:/inter.csv", header=TRUE)
inter1$xx<-inter1$long
inter1$yy<-inter1$lat
coordinates(inter1) = ~long + lat
#Plot the results:
plot(inter1)
Run Code Online (Sandbox Code Playgroud)
我有这个情节:http://i.stack.imgur.com/98aTf.png
我现在正在寻找情节上绘制多边形的每一组点,我不知道这个过程我必须更加努力才能到达那里,谢谢你的帮助
inter.csv:
long lat var1.pred
1 4.2 19 31.8216045615229
2 4.3 19 31.913824396486
3 4.4 19 32.0090783396173
4 4.5 19 32.1067681024233
5 4.6 19 32.2061094352961
6 4.7 19 32.3061148156713
7 4.8 19 32.4055837134796
8 4.9 19 32.503104196147
9 5 19 32.5970697606984
10 5.1 19 32.6857147918646
11 5.2 19 32.767170733855
12 5.3 19 32.8395428348418
13 5.4 19 32.9010042955024
14 5.5 19 32.9499012300441
15 5.6 19 32.9848587133105
16 5.7 19 33.004876178167
17 5.8 19 33.0094002932703
18 5.9 19 32.998365567474
19 6 19 32.9721970820907
20 6.1 19 32.9317751315546
21 6.2 19 32.8783669584517
22 6.3 19 32.8135349988031
23 6.4 19 32.7390332831422
24 6.5 19 32.6567036402505
Run Code Online (Sandbox Code Playgroud)
在您的情况下,一种解决方案是通过中间光栅化,然后将其多边形化.可以平滑多边形以获得更好的可视化效果.见下面的代码
inter1= read.table("inter.csv", header=TRUE)
#add a category (required for later rasterizing/polygonizing)
inter1 <- cbind(inter1, cat = rep(1L, nrow(inter1)),stringsAsFactors = FALSE)
#convert to spatial points
coordinates(inter1) = ~long + lat
#gridify your set of points
gridded(inter1) <- TRUE
#convert to raster
r <- raster(inter1)
#convert raster to polygons
sp = rasterToPolygons(r, dissolve = T)
#addition transformation to distinguish well the set of polygons
polys <- slot(sp@polygons[[1]], "Polygons")
output <- SpatialPolygons(
Srl = lapply(1:length(polys),
function(x){
p <- polys[[x]]
#applying spline.poly function for smoothing polygon edges
px <- slot(polys[[x]], "coords")[,1]
py <- slot(polys[[x]], "coords")[,2]
bz <- spline.poly(slot(polys[[x]], "coords"),100, k=3)
bz <- rbind(bz, bz[1,])
slot(p, "coords") <- bz
# create Polygons object
poly <- Polygons(list(p), ID = x)
return(poly)
}),
proj4string = CRS("+init=epsg:4326")
)
#plot
plot(sp, border = "gray", lwd = 2) #polygonize result
plot(output, border = "red", add = TRUE) #smoothed polygons
Run Code Online (Sandbox Code Playgroud)

注意:你有长/纬坐标(crs = EPSG:4326),所以我做了一个例子,这样你就可以看到在构造过程中指定空间多边形投影的位置.如果您此时未指定proj4string,则在创建output对象后仍可以执行此操作proj4string(output) <- CRS("+init=epsg:4326")
| 归档时间: |
|
| 查看次数: |
3903 次 |
| 最近记录: |