国土地理院 基盤地図情報データを扱うためのRパッケージfgdrパッケージ(バージョン1.1.0)をCRANに登録しました。 数値標高モデルデータを対象にしたときの返り値のクラスにdata.tableとterraが選択可能になりました。
Rで国土地理院 基盤地図情報データを扱うためのパッケージ、fgdr
のバージョンアップ(1.0.1から1.1.0へ)を行いました。 この更新での変更点は
data.table
の採用 (高速化)terra
サポートdata.frame
, data.table
を指定した際の数値標高の値に対して単位(m)を付与するようにです。いずれも数値標高モデルデータを対象にしたときの話題です。この記事ではそれらの利用方法を紹介します。
パッケージのインストールはinstall.packages()
を通じて行ってください。
install.packages("fgdr")
開発版の利用に興味がある方は以下のリンクを辿ってください。開発を支援してくださるスポンサーも募集しています。
fgdr
パッケージには、以前から国土地理院 基盤地図情報でダウンロード可能な数値標高モデルのファイルを読み込み、Rのオブジェクトして処理できるread_fgd_dem()
がありました。
この関数では読み込んだ際のオブジェクトの種類を指定でき、従来は表形式のdata.frame
、空間オブジェクト(ラスタ)クラスのraster
およびstars
が候補となっていました。今回のアップデートでは、これらに加えて表形式の選択肢にdata.table
、ラスタ形式の候補にterra
をそれぞれ追加しました。この2つのオプションを追加した理由は速度の改善と互換性の拡張です。
# 5m DEM
r_dt <-
read_fgd_dem(system.file("extdata/FG-GML-0000-00-00-DEM5A-dummy.xml", package = "fgdr"),
resolution = 5,
return_class = "data.table")
r_dt
type value
1: その他 -9999 [m]
2: 地表面 -9999 [m]
3: 海水面 -9999 [m]
4: 地表面 -9999 [m]
5: データなし NA [m]
---
33746: データなし NA [m]
33747: データなし NA [m]
33748: データなし NA [m]
33749: データなし NA [m]
33750: データなし NA [m]
valueの値にm単位がつくようになり、数値標高に対するイメージがつきやすくなったと思います。
# unitsパッケージのunitsオブジェクトです
class(r_dt$value)
[1] "units"
続いてterra
を指定した時の結果です。
# 10m DEM
r_terra <-
read_fgd_dem(system.file("extdata/FG-GML-0000-10-dem10b-dummy.xml", package = "fgdr"),
resolution = 10,
return_class = "terra")
r_terra
class : SpatRaster
dimensions : 750, 1125, 1 (nrow, ncol, nlyr)
resolution : 0.0001111111, 0.0001111067 (x, y)
extent : 140, 140.125, 36, 36.08333 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=GRS80 +no_defs
data source : memory
names : lyr.1
min values : -9999
max values : -9999
class(r_terra)
[1] "SpatRaster"
attr(,"package")
[1] "terra"
SpatRaster
クラスはterra
パッケージにおけるラスタ形式のデータで、出力すると座標系や最小値・最大値、次元数などが確認できます。
read_fgd_dem(return_class = "data.frame")
で数値標高モデルファイルを読み込むと、読み込み時間が少々長く感じることがありました。ところが、ここでdata.frame
を選択した際にそこで今回のアップデートでは読み込み速度の改善を目標にdata.table
オブジェクトへの変換を行うオプションを用意しました。
https://github.com/uribo/fgdr/pull/20
簡単な比較結果ですが、読み込み後のオブジェクトの種類をdata.table
とするとdata.frame
の時よりも高速に処理されます。また、表形式の状態で操作を行うときにはdata.table
の恩恵を受けられる利点もあります。データ操作のフレームワークとしてdplyr
かdata.table
か、使い慣れている方を選択すると良いでしょう。
read_fgd_dem()
では、これまでラスタの形式としてraster
およびstars
クラスをサポートしていました。stars
クラスはstars
パッケージが提供するオブジェクトのクラスです。sf
パッケージでおなじみのEdzer Pebesmaさんらを開発メンバーとするr-spatialが作っています。st_*()
がつく関数が用意されており、sfパッケージに馴染みがあると親しみやすく、またパイプフレンドリーに操作できるパッケージです。
一方のterra
は、従来のRでのラスタデータを扱う際によく使われるraster
の後継とされる新しいパッケージです(こちらの開発にもEdzerさんは携わっています)。raster
よりも単純かつ高速であるという謳い文句です。
The package is similar to the ‘raster’ package; but ‘terra’ is simpler and faster.
今後、Rで地理空間のラスタデータを扱う際には使う機会が増えそうです。それを見越しての対応となります。
package | version | attached | date | source |
---|---|---|---|---|
data.table | 1.13.2 | TRUE | 2020-10-19 | CRAN (R 4.0.2) |
fgdr | 1.1.0 | TRUE | 2020-09-30 | CRAN (R 4.0.2) |
terra | 0.9-8 | TRUE | 2020-11-13 | CRAN (R 4.0.2) |
package | version | attached | date | source |
---|---|---|---|---|
abind | 1.4-5 | FALSE | 2016-07-21 | CRAN (R 4.0.2) |
assertthat | 0.2.1 | FALSE | 2019-03-21 | CRAN (R 4.0.2) |
class | 7.3-17 | FALSE | 2020-04-26 | CRAN (R 4.0.3) |
classInt | 0.4-3 | FALSE | 2020-04-07 | CRAN (R 4.0.2) |
cli | 2.2.0 | FALSE | 2020-11-20 | CRAN (R 4.0.2) |
codetools | 0.2-18 | FALSE | 2020-11-04 | CRAN (R 4.0.2) |
crayon | 1.3.4 | FALSE | 2017-09-16 | CRAN (R 4.0.2) |
crosstalk | 1.1.0.1 | FALSE | 2020-03-13 | CRAN (R 4.0.2) |
data.table | 1.13.2 | TRUE | 2020-10-19 | CRAN (R 4.0.2) |
DBI | 1.1.0 | FALSE | 2019-12-15 | CRAN (R 4.0.2) |
digest | 0.6.27 | FALSE | 2020-10-24 | CRAN (R 4.0.2) |
distill | 1.0 | FALSE | 2020-10-22 | CRAN (R 4.0.3) |
downlit | 0.2.1 | FALSE | 2020-11-04 | CRAN (R 4.0.2) |
dplyr | 1.0.2 | FALSE | 2020-08-18 | CRAN (R 4.0.2) |
e1071 | 1.7-4 | FALSE | 2020-10-14 | CRAN (R 4.0.2) |
ellipsis | 0.3.1 | FALSE | 2020-05-15 | CRAN (R 4.0.2) |
evaluate | 0.14 | FALSE | 2019-05-28 | CRAN (R 4.0.1) |
fansi | 0.4.1 | FALSE | 2020-01-08 | CRAN (R 4.0.2) |
fastmap | 1.0.1 | FALSE | 2019-10-08 | CRAN (R 4.0.2) |
fgdr | 1.1.0 | TRUE | 2020-09-30 | CRAN (R 4.0.2) |
fs | 1.5.0 | FALSE | 2020-07-31 | CRAN (R 4.0.2) |
generics | 0.1.0 | FALSE | 2020-10-31 | CRAN (R 4.0.2) |
glue | 1.4.2 | FALSE | 2020-08-27 | CRAN (R 4.0.2) |
hms | 0.5.3 | FALSE | 2020-01-08 | CRAN (R 4.0.2) |
htmltools | 0.5.0 | FALSE | 2020-06-16 | CRAN (R 4.0.2) |
htmlwidgets | 1.5.2 | FALSE | 2020-10-03 | CRAN (R 4.0.2) |
httpuv | 1.5.4 | FALSE | 2020-06-06 | CRAN (R 4.0.2) |
jpmesh | 2.0.0 | FALSE | 2020-11-26 | CRAN (R 4.0.3) |
KernSmooth | 2.23-18 | FALSE | 2020-10-29 | CRAN (R 4.0.2) |
knitr | 1.30 | FALSE | 2020-09-22 | CRAN (R 4.0.2) |
later | 1.1.0.1 | FALSE | 2020-06-05 | CRAN (R 4.0.2) |
lattice | 0.20-41 | FALSE | 2020-04-02 | CRAN (R 4.0.3) |
leaflet | 2.0.3 | FALSE | 2019-11-16 | CRAN (R 4.0.2) |
lifecycle | 0.2.0 | FALSE | 2020-03-06 | CRAN (R 4.0.2) |
lubridate | 1.7.9.2 | FALSE | 2020-11-13 | CRAN (R 4.0.2) |
lwgeom | 0.2-5 | FALSE | 2020-06-12 | CRAN (R 4.0.2) |
magrittr | 2.0.1 | FALSE | 2020-11-17 | CRAN (R 4.0.2) |
memoise | 1.1.0 | FALSE | 2017-04-21 | CRAN (R 4.0.2) |
mime | 0.9 | FALSE | 2020-02-04 | CRAN (R 4.0.2) |
miniUI | 0.1.1.1 | FALSE | 2018-05-18 | CRAN (R 4.0.2) |
pillar | 1.4.7 | FALSE | 2020-11-20 | CRAN (R 4.0.2) |
pkgconfig | 2.0.3 | FALSE | 2019-09-22 | CRAN (R 4.0.2) |
promises | 1.1.1 | FALSE | 2020-06-09 | CRAN (R 4.0.2) |
purrr | 0.3.4 | FALSE | 2020-04-17 | CRAN (R 4.0.2) |
R6 | 2.5.0 | FALSE | 2020-10-28 | CRAN (R 4.0.2) |
raster | 3.4-5 | FALSE | 2020-11-14 | CRAN (R 4.0.2) |
Rcpp | 1.0.5 | FALSE | 2020-07-06 | CRAN (R 4.0.2) |
readr | 1.4.0 | FALSE | 2020-10-05 | CRAN (R 4.0.2) |
renv | 0.12.3 | FALSE | 2020-11-25 | CRAN (R 4.0.3) |
rlang | 0.4.9 | FALSE | 2020-11-26 | CRAN (R 4.0.3) |
rmarkdown | 2.5 | FALSE | 2020-10-21 | CRAN (R 4.0.3) |
sessioninfo | 1.1.1 | FALSE | 2018-11-05 | CRAN (R 4.0.2) |
sf | 0.9-6 | FALSE | 2020-09-13 | CRAN (R 4.0.2) |
shiny | 1.5.0 | FALSE | 2020-06-23 | CRAN (R 4.0.2) |
sp | 1.4-4 | FALSE | 2020-10-07 | CRAN (R 4.0.2) |
stars | 0.4-3 | FALSE | 2020-07-08 | CRAN (R 4.0.2) |
stringi | 1.5.3 | FALSE | 2020-09-09 | CRAN (R 4.0.2) |
stringr | 1.4.0 | FALSE | 2019-02-10 | CRAN (R 4.0.2) |
terra | 0.9-8 | TRUE | 2020-11-13 | CRAN (R 4.0.2) |
tibble | 3.0.4 | FALSE | 2020-10-12 | CRAN (R 4.0.2) |
tidyselect | 1.1.0 | FALSE | 2020-05-11 | CRAN (R 4.0.2) |
units | 0.6-7 | FALSE | 2020-06-13 | CRAN (R 4.0.2) |
vctrs | 0.3.5 | FALSE | 2020-11-17 | CRAN (R 4.0.2) |
withr | 2.3.0 | FALSE | 2020-09-22 | CRAN (R 4.0.2) |
xfun | 0.19 | FALSE | 2020-10-30 | CRAN (R 4.0.2) |
xml2 | 1.3.2 | FALSE | 2020-04-23 | CRAN (R 4.0.2) |
xtable | 1.8-4 | FALSE | 2019-04-21 | CRAN (R 4.0.2) |
yaml | 2.2.1 | FALSE | 2020-02-01 | CRAN (R 4.0.2) |
If you see mistakes or want to suggest changes, please create an issue on the source repository.
Text and figures are licensed under Creative Commons Attribution CC BY-SA 4.0. Source code is available at https://github.com/uribo/suryu.me, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".