knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(gyokaikyor)

概要

gyakaikyor (漁海況R)パッケージは,漁海況業務をミスなく遂行するためのRパッケージです. 主な機能はデータ整形と作図のみですが,数値と図を一貫性のある形式で出力することで

するための基礎を作ります.

なぜこのパッケージが必要か

これを執筆している2019年3月末時点において, 漁海況予報業務のワークフローは,数々の問題を抱えています.

特に問題なのが,手作業の介在が多すぎることです. これは,以下のような問題を生じています.

パッケージ gyokaikyor は,漁海況業務における手作業の介在を減らすことで, 成果物の品質向上に貢献します^[漁海況予報業務がいつまで続くかはわかりませんが,資源評価事業も同じ問題を抱えています].

漁海況予報業務のあるべき姿とgyokaikyorの守備範囲

2019年3月末時点において,漁海況予報業務を構成する作業は,大きく

  1. データ整理
  2. データベース作成
  3. グラフ作成
  4. 漁況予測
  5. 予報文案作成
  6. 予報案説明スライド作成

に分けることができます. gyokaikyor は,これらのうち,頭脳労働を必要としない 「データ整理」から「グラフ作成」までの作業を受け持ちます^[2019年3月末時点では,「データ整理」のみの実装ですが,新機能を順次追加予定です.] 本パッケージを使えば,データ整理からグラフ作成までが一挙動で完了するため, 実質的に,業務フローを「漁況予測」から始めることができます.

使い方

漁獲量データの整理

漁獲量データを整形するためには, 整形したいファイルのファイル名をformat_catch()関数に与えます. ただし,設計の都合上,

は明示的に与える必要があります ^[熊本県の場合はファイルが「まき網」と「棒受網」とに分かれているため, 「漁法」の引数が必要です.詳細は help(format_catch) をご参照ください].

カタクチイワシを例に

例として,鹿児島県のカタクチイワシの漁獲量データを整形してみましょう.

catch_kagoshima <- format_catch("../data.git/漁海況/2019年3月/各県資料/鹿児島県/4港月計表(30年度).xlsx",
                                prefec = "kagoshima", spcs = "katakuchi")
catch_kagoshima
unique(catch_kagoshima$type)

主要4港のまき網,阿久根の棒受網,内之浦の棒受網による漁獲量を取得することができました.

他の魚種で試してみる

2019年3月末時点のバージョン 0.0.0 は,カタクチイワシを題材に開発されました. 基本的に spcs = "katakuchi" としたときしか動作保証はありませんが, 少しのコード変更で他の魚種にも対応できるはずです. 実際,鹿児島県のまき網データを使って試してみたところ,他の魚種でも正常に動作することを確認できました.

マアジ
spcs <- "maaji"
format_catch("../data.git/漁海況/2019年3月/各県資料/鹿児島県/4港月計表(30年度).xlsx",
             prefec = "kagoshima", spcs = spcs)
さば類
spcs <- "sabarui"
format_catch("../data.git/漁海況/2019年3月/各県資料/鹿児島県/4港月計表(30年度).xlsx",
             prefec = "kagoshima", spcs = spcs)
マイワシ
spcs <- "maiwashi"
format_catch("../data.git/漁海況/2019年3月/各県資料/鹿児島県/4港月計表(30年度).xlsx",
             prefec = "kagoshima", spcs = spcs)
ウルメイワシ
spcs <- "urume"
format_catch("../data.git/漁海況/2019年3月/各県資料/鹿児島県/4港月計表(30年度).xlsx",
             prefec = "kagoshima", spcs = spcs)

使用可能な引数は,help(format_catch) とすると確認できます.

妥協関数 export2kakuken_iwashi()

本来,手作業によるコピー & ペーストは完全に排除されるべきですが, そのようなワークフローをすぐに構築できないことも事実です. そこで,整形したデータを,現状のワークフローで用いられている Excel ファイルの 様式に合うように整形して出力する export2kakuken_iwashi() 関数を作りました.

カタクチイワシの場合,「★カタクチ18.xlsx」というファイルに体長の月別集計結果を 貼り付けることになっています. format_bl() の出力を export2kakuken_iwashi() 関数に渡し, 出力されたデータをコピー & ペーストで「★カタクチ18.xlsx」に貼り付けください^[いずれ,このファイルはワークフローの中核から外されるべきです].

ただし,漁法が複数ある場合には,合計するなり除外するなりして, 月別に集計してから渡してください. 例えば,「主要4港まき網」,「阿久根棒受」,「内之浦棒受」からなる鹿児島県データを そのまま export2kakuken_iwashi() に渡してしまうと,以下のように,月別集計値が 3漁法別に出てしまいます.

library(magrittr)
catch_kagoshima %>%
  export2kakuken_iwashi(fname = "catch_kagoshima.csv")

これを期待される形で書き出すには,以下のようにします.

library(magrittr)
catch_kagoshima %>%
  dplyr::group_by(year, month) %>%
  dplyr::summarize(catch = sum(catch, na.rm =TRUE)) %>%
  export2kakuken_iwashi(fname = "catch_kagoshima.csv")

この関数が使われなくなる日が来ることを祈っています.

体長データの整理

県提出データを処理する場合

県から提出された体長データの処理には,format_bl() 関数を使います.

format_bl("../data.git/漁海況/2019年3月/各県資料/鹿児島県/体長組成(H30年度).xlsx",
          prefec = "kagoshima", spcs = "katakuchi")

fresco データを処理する場合

fresco にデータを登録してくれている県の場合には, まず fresco データを処理し,そこから該当の県を抽出すればOKです. fresco データの処理には, fmtbs_fresco()関数を使います. 「体長」または「精密」のデータ形式に合わせて,type 引数を "taichou" または "seimitsu" にセットします.

fmtbl_fresco("../data.git/fresco/201801_201812_nihonkai_taichou_katakuchi.csv",
             type = "taichou") %>%
  dplyr::filter(!is.na(count))

妥協関数 conv2hoshifile()

体長データの集計にも,妥協関数を用意しました. format_bl() で整形したデータを妥協関数 export2kakuken_iwashi() に渡し, 出力されたデータをコピー & ペーストで「★カタクチ18.xlsx」に貼り付けます.

その他

その他,データ整理後の業務を補助する補助関数もいくつかあります. ```r

list_by_prefec <- iwashi2list("/Volumes/評価研/漁海況/2019年3月/漁況資料作成/いわし/各県いわし_林20190312.xlsx")

catch_seikai <- summarize_seikai(list_by_prefec)

make_summary(list_by_prefec)

```` しかし,これらの関数は「各県いわし」ファイルの存在を前提としているので, デフォルトでは使用可能にしていません.

上記の妥協関数と同様に,新ワークフローへの移行期間に使う程度にするのが望ましいでしょう.

まずは使ってみて下さい

もしよければ実際に使用していただき, 問題がありましたら GitHub の Issues または GITTERからご連絡いただけると大変助かります.



kikirinrin/gyokaikyor documentation built on May 17, 2019, 8:21 p.m.