terra
パッケージを利用.sf
パッケージで読み込むとsf
オブジェクト.
R
ではデータはすべてオブジェクトとして格納.sf
オブジェクトは「sf
クラス(クラスとはデータの種類,型のこと)のオブジェクト」のこと(湯谷,2018).sf
オブジェクトはデータフレーム.各行が1つの地物(点,線,面)を表し,列には属性情報が格納されている.最大の特徴が属性情報に地理空間情報(geometry:ジオメトリ)が格納されていること.地理空間情報は,他の属性情報の列と異なりsfc
クラス.
terra
パッケージで読み込むと
SpatRaster
オブジェクト.sfg
,sfc
,sf
の関係sfg
オブジェクトsfg
オブジェクト:点,線,面のいずれかを表す単一の地理空間情報.座標を持つが,座標参照系(CRS
)は含まれない.
sfg
オブジェクトを作成.
WGS84
またはEPSG:4326
.library(sf)
library(tidyverse)
#神奈川大学の位置(経度,緯度の順,世界測地系)
KU <- c(139.6207997, 35.4841722)
#sfgオブジェクトの作成
KU_sfg <- KU %>%
st_point()
sfg
オブジェクトの可視化
139.62
°あたり,北緯35.48
°あたりを指しているわけではない.sfc
オブジェクトsfc
オブジェクト:点,線,面を表す地理空間情報.sfg
オブジェクトとの違いは,複数の地理空間情報を格納でき,かつ座標参照系(CRS
)を含むことが可能.
sfg
オブジェクトにする.st_sfc()
を用いて,stg
オブジェクトをsfc
オブジェクトに変換.crs=
で座標参照系を設定.
st_sfc()
は新しくsfc
オブジェクトを作成.それに対して,st_as_sfc()
はすでにあるデータをsfc
オブジェクトに変換.例えば,st_bbox()
などの地理空間情報で作成された境界ボックス(数値のリスト)をsfc
オブジェクトに変換する際に利用.#白楽駅,セブン-イレブンの位置(経度,緯度の順,世界測地系)
Hakuraku <- c(139.6278862, 35.4894679)
Seven_Eleven <- c(139.6235194, 35.4866059)
#sfgオブジェクトの作成
Hakuraku_sfg <- Hakuraku %>%
st_point()
Seven_Eleven_sfg <- Seven_Eleven %>%
st_point()
#sfcオブジェクトの作成
KU_sfc <- st_sfc(KU_sfg, Hakuraku_sfg,
Seven_Eleven_sfg, crs=4326)
#sfcオブジェクトの内容
KU_sfc %>% head()
## Geometry set for 3 features
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: 139.6208 ymin: 35.48417 xmax: 139.6279 ymax: 35.48947
## Geodetic CRS: WGS 84
## POINT (139.6208 35.48417)
## POINT (139.6279 35.48947)
## POINT (139.6235 35.48661)
sfc
オブジェクトの可視化
sfc
オブジェクトは属性を含んでいないため,どのポイントが「神奈川大学」を指すかわからない.sf
オブジェクトsf
オブジェクト:点,線,面を表す地理空間情報.最大の特徴は属性情報を含み,データフレームであること.
sfc
オブジェクトにsf
オブジェクトに変更し,属性として地名
を加える.st_sf()
を用いて,stc
オブジェクトをsf
オブジェクトに変換.st_sc()
は新しくsf
オブジェクトを作成.それに対して,st_as_sfc()
はすでにあるデータをsf
オブジェクトに変換.sf
オブジェクト(KU_sf
)に追加(mutate()
).#sfオブジェクトの作成
KU_sf <- st_sf(KU_sfc)
#地名作成
地名 <- c("神奈川大学", "白楽駅", "セブン-イレブン")
#地名の追加
KU_sf <- KU_sf %>%
mutate(地名=地名)
#KU_sfの内容
KU_sf %>% head()
KU_sfc | 地名 |
---|---|
POINT (139.6208 35.48417) | 神奈川大学 |
POINT (139.6279 35.48947) | 白楽駅 |
POINT (139.6235 35.48661) | セブン-イレブン |
sf
オブジェクト(データフレーム)になっている.sf
オブジェクトの可視化
ggplot()+
geom_sf(data=KU_sf, aes(color=地名),
size=5)+
scale_color_viridis_d(option="G")+
ggtitle("図3:sfオブジェクト")+
theme_bw()
地名
を色分け,凡例により識別している.地名
列によりこのようなことが可能に.Rによる地理空間データの可視化
チュートリアルホーム
参考文献
アイコン
Font Awesome 6.7.2
生成AIの使用について
本稿の作成過程において,ChatGPTを使用してコードに関する助言を得た.サービスを利用した後,内容を確認し,必要に応じて編集を行った.