knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(gyokaikyor)
gyakaikyor
(漁海況R)パッケージは,漁海況業務をミスなく遂行するためのRパッケージです.
主な機能はデータ整形と作図のみですが,数値と図を一貫性のある形式で出力することで
するための基礎を作ります.
これを執筆している2019年3月末時点において, 漁海況予報業務のワークフローは,数々の問題を抱えています.
特に問題なのが,手作業の介在が多すぎることです. これは,以下のような問題を生じています.
パッケージ gyokaikyor
は,漁海況業務における手作業の介在を減らすことで,
成果物の品質向上に貢献します^[漁海況予報業務がいつまで続くかはわかりませんが,資源評価事業も同じ問題を抱えています].
gyokaikyor
の守備範囲2019年3月末時点において,漁海況予報業務を構成する作業は,大きく
に分けることができます.
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 データを処理し,そこから該当の県を抽出すれば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
```` しかし,これらの関数は「各県いわし」ファイルの存在を前提としているので, デフォルトでは使用可能にしていません.
上記の妥協関数と同様に,新ワークフローへの移行期間に使う程度にするのが望ましいでしょう.
もしよければ実際に使用していただき, 問題がありましたら GitHub の Issues または GITTERからご連絡いただけると大変助かります.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.