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を使用してコードに関する助言を得た.サービスを利用した後,内容を確認し,必要に応じて編集を行った.