空間分析  實習三

助教 杜承軒 2021.03.29

利用村里淹水面積比例,計算洪災影響人數,並依照行政區彙總統計。


*初步環境建置與讀取檔案

library(sf);library(dplyr)
setwd("D:/1092SA/Data")
TPE=st_read("Taipei_Vill.shp",options="ENCODING=BIG5")
flood=st_read("flood.shp")

  1. 洪災影響人數
TPE$VillArea=st_area(TPE)
TP.fd=st_intersection(TPE,flood)
TP.fd$area=st_area(TP.fd)
TP.fd$POP=round(TP.fd$CENSUS*TP.fd$area/TP.fd$VillArea)

sprintf("洪災影響總人數:%d人",sum(TP.fd$POP))
## [1] "洪災影響總人數:393462人"

  1. 行政區彙總統計
TP.fd%>%group_by(TOWN)%>%summarise(POP=sum(POP))%>%st_drop_geometry
## # A tibble: 12 x 2
##    TOWN      POP
##  * <chr>     [1]
##  1 士林區  43200
##  2 大同區  36997
##  3 大安區  23037
##  4 中山區 113554
##  5 中正區  14122
##  6 內湖區  32555
##  7 文山區  18870
##  8 北投區  37932
##  9 松山區  58487
## 10 信義區   3359
## 11 南港區   4402
## 12 萬華區   6947
data.frame(xtabs(POP~TOWN,TP.fd))
##      TOWN   Freq
## 1  士林區  43200
## 2  大同區  36997
## 3  大安區  23037
## 4  中山區 113554
## 5  中正區  14122
## 6  內湖區  32555
## 7  文山區  18870
## 8  北投區  37932
## 9  松山區  58487
## 10 信義區   3359
## 11 南港區   4402
## 12 萬華區   6947