Upgrade to Pro — share decks privately, control downloads, hide ads and more …

tidyterraを使ってみる

Avatar for t_akaike t_akaike
April 24, 2025
510

 tidyterraを使ってみる

Avatar for t_akaike

t_akaike

April 24, 2025
Tweet

Transcript

  1. © GO Inc. 2 ⾃⼰紹介 GO株式会社 AI技術開発部 分析グループ / ⾚池

    嵩⽂ 【経歴】 - ERPパッケージのベンダー - 企業の信⽤調査会社 - AIベンダー - HR系ベンチャー - 薬局系スタートアップ - 現在 【R歴】2年とちょっと(主に学⽣時代。GO⼊社後、リハビリ中。) 【地理空間データ歴】 1年程度 @takaike12
  2. © GO Inc. 【扱うこと】 - 「tidyterra」によるラスタデータの操作⽅法‧例 - ベクタデータ、ラスタデータの説明 【扱わないこと】 -

    「terra」パッケージの操作⽅法 - 「tidyterra」によるベクタデータの操作⽅法 3 0. この資料で扱うこと ∕ 扱わないこと
  3. © GO Inc. 5 2. 「ラスタデータ」って何? - ラスタデータは「格⼦状に並んだピクセルで構成されているデータ」で「位置情報を持っ た画像ファイル」(※1) -

    GISで可視化できるデータには他に「ベクタデータ」があり、そちらは点や線、線で囲ま れたポリゴンを地図上に表⽰できる ※1 「GISデータについて知ろう!ベクタデータとラスタデータの違いを解説」より引⽤ ※2 「⼟地利⽤細分メッシュ(ラスタ版)データ 2014年度(平成26年度)版」の東京周辺のデータを筆者が可視化したもの データ 形状 ベクタデータ 点, 線, ポリゴン 拡張⼦の例 shp, shx, dbf, prj, cpg ラスタデータ 画像 tif, png, jpg raster, terra, stars 利⽤できる パッケージ例 sf GIS(地理情報システム)で地図上に表⽰できるデータ(※1) ラスタデータの可視化例(※2)
  4. © GO Inc. まずはterraパッケージでラスタデータを読み込んでみる - 「⼟地利⽤細分メッシュ(ラスタ版)データ 2014年度(平成26年度)版」(※) で試す 6 3. 「tidyterra」を使ってみる

    (⼀部抜粋) - class : データ型 - dimensions : ピクセルの縦横 & レイヤー - extent : データの緯度経度の範囲 - coord. ref. : CRS - source : ファイル名 - name : レイヤーの名称 ※ https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L03-b_r.html 読み込んだオブジェクトを実⾏すると、 データの説明が表⽰される (データの中⾝は⾒られない)
  5. © GO Inc. 8 3. 「tidyterra」を使ってみる ラスタデータから緯度経度を取得してみる 緯度経度が取れそうなas_coordinates() を 使ってみる

    → 画像ピクセルのindexが取れる  (緯度経度じゃないんかい‧‧‧) as_tibble()の引数xyをTRUEにすると緯度経 度が取れる
  6. © GO Inc. 11 3. 「tidyterra」を使ってみる ggplot2でレイヤーごとに可視化してみる 【前処理】 レイヤーの名前を変更し、区分値を別レ イヤーとして切り出す

    (左の例では「⽥」「森林」「建物⽤地」を切 り出した) 「mutate()でカラムを追加する」 = 「画像に対してレイヤーを追加する」 ggplotのfacetでは、このレイヤー ごとに可視化を分割して描画できる
  7. © GO Inc. - tidyterraを使うと、terraで読み込まれたラスタデータやベクタデータに対して dplyrやggplot2などの関数で処理できるようになる - ラスタデータは「位置情報を持った画像ファイル(※) 」 -

    tidyterraで、ラスタデータに対してこんなことができる - データ説明表⽰: (オブジェクトを実⾏) - データ表⽰: glimpse() - ピクセルのインデックス取得: as_coordinates() - tibbleで出⼒: as_tibble() - 緯度経度も出⼒: as_tibble(xy = TRUE) - 可視化: geom_spatraster() - レイヤーを分割して可視化: geom_spatraster()とfacet_wrap(~lyr)を組み合わせる 13 4. まとめ ※ 「GISデータについて知ろう!ベクタデータとラスタデータの違いを解説」より引用
  8. © GO Inc. - tidyterraのgithubページ - https://dieghernan.github.io/tidyterra/ - 「GISデータについて知ろう!ベクタデータとラスタデータの違いを解説」 -

    https://qgis.mierune.co.jp/posts/howto_1_about_data-type - 国⼟数値情報ダウンロードサイト「⼟地利⽤細分メッシュ(ラスタ版)データ」 - https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L03-b_r.html 14 5. Reference