天天看點

r語言read.xlsx編碼_R語言空間資料分析(三):坐标系設定

作者:黃天元,複旦大學博士在讀,熱愛資料科學與開源工具(R),緻力于利用資料科學迅速積累行業經驗優勢和科學知識發現,涉獵内容包括但不限于資訊計量、機器學習、資料可視化、應用統計模組化、知識圖譜等,著有《R語言高效資料處理指南》(

《R語言資料高效處理指南》(黃天元)【摘要 書評 試讀】- 京東圖書

)。知乎專欄:

R語言資料挖掘。

郵箱:[email protected].歡迎合作交流。

HopeR:R語言空間資料分析(零):總目錄​zhuanlan.zhihu.com

r語言read.xlsx編碼_R語言空間資料分析(三):坐标系設定

在地理空間資料中,一般都有一個坐标系,常用的是WGS 84。如果我們已經讀入了一個地理資料資訊,比如儲存在data中,那麼可以這樣檢視它的坐标系:

library(sf)
st_crs(data)$proj4string
           

如果資料中沒有坐标系,則可以使用st_set_crs函數來指定它的坐标系。坐标系的表示方法有兩種,一種叫做Proj4,會由一長串字元串構成,比如“+proj=longlat +datum=WGS84 +no_defs”。另一種叫做EPSG(EPSG.io: Coordinate Systems Worldwide),由數字編碼構成,如4326。後者要更友善一些,比如對于一個沒有坐标系的編碼,我們可以這樣設定其成為WGS84坐标系:

data <- data %>%
  st_set_crs(., 4326)
           

如果地理資訊已經有坐标系,但是需要轉換的話,可以使用st_transform函數。比如我們要把上面的data轉化為GDA94坐标系,可以這樣操作:

dataPROJECTED <- data %>%
  st_transform(.,3112)
           

通常,我們讀取的資料為sf格式的,sf和sp格式可以通過一定的方法互相轉換,例子如下(假設Ausoutline為我們的地理資料):

#From sf to sp
AusoutlineSP <- Ausoutline %>%
  as(., "Spatial")

#From sp to sf
AusoutlineSF <- AusoutlineSP %>%
  st_as_sf()
           

對于栅格資料,則需要用raster包來加載,raster函數可以載入資料,stack函數可以堆疊圖層,而 projectRaster函數則可以根據其proj4的字元串來進行不同形式的投影。詳細的操作可參考:https://andrewmaclachlan.github.io/CASA0005repo/rasters-descriptive-statistics-and-interpolation.html#worldclim-data