shapefile
- ggplot
, sp
, sf
.shp
raster
팩키지 1raster
팩키지를 활용하여 SpatialPointsDataFrame
혹은 SpatialPolygonsDataFrame
객체를 데이터프레임으로부터 다소 복잡할 수 있는 과정을 거쳐 생성시킬 수 있다.
library(sf)
library(tidyverse)
# 데이터프레임 생성 -----
site_f <- c("a","b","c","d")
prop_v <- c(0.88,0.48,0.15,0.47)
lat <- c(44.22,38.38,33.35,43.48)
lng <- c(-124.45, -123.70, -124.40, -124.05)
sample_df <- cbind.data.frame(lat, lng, site_f, prop_v)
# shapefile 생성
library(raster)
sample_coord <- sample_df
coordinates(sample_coord) = ~lng+lat
proj4string(sample_coord) <- CRS("+proj=longlat +datum=WGS84")
sample_shp <- spTransform(sample_coord, CRS("+proj=longlat"))
sample_shp
class : SpatialPointsDataFrame
features : 4
extent : -124.45, -123.7, 33.35, 44.22 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84
variables : 2
names : site_f, prop_v
min values : a, 0.15
max values : d, 0.88
plot(sample_shp)
sf
팩키지 2sf
팩키지를 사용할 경우 st_as_sf()
함수를 사용하게 되면 데이터프레임을 넣고 coord =
인자를 지정하고 crs =
좌표계를 설정하게 되면 앞서와 동일하게 하지만 간결하게 sf
데이터프레임 객체를 생성시킬 수 있다.
sample_sf <- st_as_sf(
sample_df,
coords = c('lng', 'lat'),
crs = "+init=epsg:4326")
sample_sf
Simple feature collection with 4 features and 2 fields
geometry type: POINT
dimension: XY
bbox: xmin: -124.45 ymin: 33.35 xmax: -123.7 ymax: 44.22
epsg (SRID): 4326
proj4string: +proj=longlat +datum=WGS84 +no_defs
site_f prop_v geometry
1 a 0.88 POINT (-124.45 44.22)
2 b 0.48 POINT (-123.7 38.38)
3 c 0.15 POINT (-124.4 33.35)
4 d 0.47 POINT (-124.05 43.48)
plot(sample_sf)