R語言地理空間分析(三)矢量柵格數據操作


sp包矢量數據操作

s1 <- readRDS("Income_schooling.rds")

s2 <- readRDS("dist.rds")

l1 <- readRDS("highway.rds")
#函數bbox獲取空間數據邊界,sp包
b1<-bbox(s1)
b2<-bbox(s2)
b3<-pmax(b1,b2)
b3[,1]<-pmin(b1[,1],b2[,1])

#aggregate()函數,融合邊界,合為一體,raster包
ME<-aggregate(s1)

s1$med<-s1$Income>median(s1$Income)
#以某種屬性進行融合
ME.inc<-aggregate(s1,by="med")
#group_by()對s1@data進行以med屬性分組,然后summarize()統計各組的中位數
#.$medinc將統計結果賦值給
ME.inc$Income <- s1@data %>% group_by(med) %>%
  summarize(medinc = median(Income)) %>% .$medinc
#計算面積
ME.inc$Area<-gArea(ME.inc,byid=TRUE)/1000000

#intersect()截取相交部分,raster
clp1<-intersect(s1,s2)
#按照輸入數據順序,來決定輸出數據類型,clp2為線空間數據
clp2<-intersect(l1,s1)
#clp3為面空間數據
clp3<-intersect(s1,l1)


#union()相交融合,raster包
un1<-union(s1,s2)

sf包矢量數據操作

提取對象幾何信息:

  • st_bbox(): 提取對象的坐標范圍
  • st_area(): 求對象的各要素面積
  • st_length(): 提取對象的各要素周長
  • st_geometry(): 提取對象的幾何信息
  • st_drop_geometry(): 刪除對象的幾何要素,成為數據框
  • st_coordinates(): 提取各要素幾何信息的地理或投影坐標
  • st_boundary(): 提取各要素的邊界,返回線對象
  • st_centriod(): 提取各要素的質心,返回點對象
  • st_voronoi(): 生成泰森多邊形。
    疊置分析:
  • st_intersection:生成對象內要素兩兩之間的交集;
  • st_difference:生成對象內要素兩兩之間的差集;
  • st_sym_difference:交集取反操作,即去除對象內兩兩要素的相交部分,保留不相交部分;
  • st_crop:用指定地理或投影坐標確定的矩形范圍截取矢量對象;
    其他函數:
  • st_simplify:簡化對象的拓撲關系;
  • st_make_grid:在指定地理或投影坐標范圍內創建網格;
  • st_jitter:隨機偏移矢量對象各要素的位置;
  • st_sample:在面數據內部按某種規則選取若干個點(默認隨機選取);
  • st_line_sample:在線數據上按某種規則選取若干點(默認均勻選取)。

柵格操作

bath2 <- bath * (-1)
bath3 <- bath2 < 0
tm_shape(bath3) + tm_raster(palette = "Greys") + 
  tm_legend(outside = TRUE, text.size = .8)
#重分類reclassify()
#創建一個矩陣,第一列和第二列為重分類的起始值和結束值,第三列為顯示值
m <- c(0, 100, 100,  100, 500, 500,  500, 
       1000,  1000, 1000, 11000, 11000)
m <- matrix(m, ncol=3, byrow = T)
#right表示右閉合
bath3 <- reclassify(bath, m, right = T)

#兩個柵格操作
elevation<-elev-bath
#平滑處理focal()
f1<-focal(elevation,w=matrix(1,nrow = 11,ncol = 11),fun=mean)

m  <- matrix(c(1,1,1,1,0,1,1,1,1)/8,nrow = 3) 
f2 <- focal(elevation, w=m, fun=sum)
#Sobel過濾器
Sobel <- matrix(c(-1,0,1,-2,0,2,-1,0,1) / 4, nrow=3) 
f3    <- focal(elevation, w=Sobel, fun=sum)

#單元格合並aggregate(),raster
z1<-aggregate(elevation,fact=2,fun=mean,expand=TRUE)
#res()用於查看像素大小
res(z1)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM