国土地理院 基盤地図情報データを扱うための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) |