Rで解析:植物生理学で役に立つかも?コンダクタンスの単位を変換する「gunit」パッケージの紹介
植物生理学では、熱・二酸化炭素(CO2)・水蒸気(H2O)に対するコンダクタンス(気孔コンダクタンスなどの気孔のガスの通りやすさを示す指標)が、目的に応じて異なる単位で表されることがあるようです。本パッケージは、こうしたコンダクタンスの単位を m/s、mol/m^2/s、umol/m^2/s/Pa といった相互に変換する機能を提供し、単位換算の手間を減らすことが可能です。気圧や温度を指定して換算できるため、データ分析やレポート作成に使用してみてはいかがでしょうか?
パッケージバージョンは1.0.3。Windows 11 x64 (build 26200)のR version 4.6.1で確認しています。
パッケージのインストール
下記コマンドを実行してください。
# パッケージのインストール
install.packages("gunit")
# パッケージの読み込み
library("gunit")
# コマンド例実行で必要なパッケージを読み込み
# install.packages("units")
library("units")スポンサーリンク
コマンド例
詳細はコメント、パッケージのヘルプを確認してください。
- コンダクタンス(g):気体の通りやすさを表す量。用途に応じて m/s、mol/m^2/s、umol/m^2/s/Pa などの単位で表される。
- g_w:水蒸気(H2O)に対するコンダクタンス。
- g_c:二酸化炭素(CO2)に対するコンダクタンス。
gw2gc/gc2gwは、水蒸気に対するコンダクタンス(g_w)とCO2に対するコンダクタンス(g_c)を相互に変換します。convert_conductanceは、コンダクタンスを m/s・umol/m^2/s/Pa・mol/m^2/s の各単位系へ変換します。
水蒸気コンダクタンスからCO2コンダクタンスへの変換:gw2gcコマンド
| オプション | 意味 | 初期値 |
|---|---|---|
| g_w | 水蒸気に対するコンダクタンス(μmol H2O/(m^2 s Pa)) | |
| D_c | 空気中のCO2の拡散係数(m^2/s) | |
| D_w | 空気中のH2Oの拡散係数(m^2/s) | |
| unitless | 論理値。引数の単位をチェックして設定するかを指定する。TRUEは安全だが低速、FALSEでは与えた値が正しい単位であると仮定する | |
| a | 変換に用いる指数。静止気流の場合は1、層流の場合は0.67(Jones 2014)。単位なしで指定する | |
| g_c | CO2に対するコンダクタンス(μmol/(m^2 s Pa)) |
### データ例を作成#####
# unitsパッケージで単位を付与
# 空気中のCO2の拡散係数 (m^2/s)
D_c <- set_units(1.29e-05, "m^2/s")
# 空気中のH2O(水蒸気)の拡散係数 (m^2/s)
D_w <- set_units(2.12e-05, "m^2/s")
# CO2に対するコンダクタンス (umol/m^2/s/Pa)
g_c <- set_units(3, "umol/m^2/s/Pa")
########
# 変換に用いる指数
a <- 1
# gc2gwでCO2コンダクタンス(g_c)を水蒸気コンダクタンス(g_w)に変換
g_w <- gc2gw(g_c, D_c, D_w, a, unitless = FALSE)
# gw2gcで水蒸気コンダクタンス(g_w)をCO2コンダクタンス(g_c)に戻す
gw2gc(g_w, D_c, D_w, a, unitless = FALSE)実行結果:
# gc2gwでCO2コンダクタンス(g_c)を水蒸気コンダクタンス(g_w)に変換
4.930233 [umol/(m^2*Pa*s)]
# gw2gcで水蒸気コンダクタンス(g_w)をCO2コンダクタンス(g_c)に戻す
3 [umol/(m^2*Pa*s)]コンダクタンスの単位変換:convert_conductanceコマンド
| オプション | 意味 | 初期値 |
|---|---|---|
| .g | units クラスのコンダクタンス。”m/s”・”umol/m^2/s/Pa”・”mol/m^2/s”のいずれかに変換可能である必要がある | |
| P | kPaに変換可能な units クラスの圧力値。デフォルトは101.3246 kPa(海面での地球の大気圧) | set_units(101.3246, kPa) |
| R | J/K/kgに変換可能な units クラスの理想気体定数。デフォルトは8.31446 J/K/mol | set_units(8.31446, J/K/mol) |
| Temp | Kに変換可能な units クラスの温度値。デフォルトは25℃(298.15 K) | set_units(298.15, K) |
### データ例を作成#####
# unitsパッケージで単位を付与
# m/s
g_1 <- set_units(10, "m/s")
# umol/m^2/s/Pa
g_2 <- set_units(4, "umol/m^2/s/Pa")
# mol/m^2/s
g_3 <- set_units(0.4, "mol/m^2/s")
########
# 各単位系(m/s・umol/m^2/s/Pa・mol/m^2/s)へ変換
convert_conductance(g_1)
# 各単位系(m/s・umol/m^2/s/Pa・mol/m^2/s)へ変換
convert_conductance(g_2)
# 各単位系(m/s・umol/m^2/s/Pa・mol/m^2/s)へ変換
convert_conductance(g_3)実行結果:
> # 各単位系(m/s・umol/m^2/s/Pa・mol/m^2/s)へ変換
> convert_conductance(g_1)
# A tibble: 1 × 3
`m/s` `umol/m^2/s/Pa` `mol/m^2/s`
[m/s] [umol/(m^2*s*Pa)] [mol/(m^2*s)]
1 10 4034. 409.
> # 各単位系(m/s・umol/m^2/s/Pa・mol/m^2/s)へ変換
> convert_conductance(g_2)
# A tibble: 1 × 3
`m/s` `umol/m^2/s/Pa` `mol/m^2/s`
[m/s] [umol/(m^2*s*Pa)] [mol/(m^2*s)]
1 0.00992 4 0.405
> # 各単位系(m/s・umol/m^2/s/Pa・mol/m^2/s)へ変換
> convert_conductance(g_3)
# A tibble: 1 × 3
`m/s` `umol/m^2/s/Pa` `mol/m^2/s`
[m/s] [umol/(m^2*s*Pa)] [mol/(m^2*s)]
1 0.00979 実行例
パッケージの機能を組み合わせた、実践的な使い方の例です。
水蒸気⇔CO2コンダクタンスの相互変換を確認する実装例
# 空気中のCO2とH2O(水蒸気)の拡散係数を設定 (m^2/s)
D_c <- set_units(1.29e-05, "m^2/s")
D_w <- set_units(2.12e-05, "m^2/s")
# 変換に用いる指数(静止気流では1)
a <- 1
# 水蒸気に対するコンダクタンス g_w を設定 (umol/m^2/s/Pa)
g_w <- set_units(0.4, "umol/m^2/s/Pa")
# gw2gcで水蒸気コンダクタンスをCO2コンダクタンスに変換
g_c <- gw2gc(g_w, D_c, D_w, a, unitless = FALSE)
# gc2gwで元の水蒸気コンダクタンスに戻せることを確認
gc2gw(g_c, D_c, D_w, a, unitless = FALSE)実行結果:
# gw2gcで水蒸気コンダクタンスをCO2コンダクタンスに変換
gw2gc(g_w, D_c, D_w, a, unitless = FALSE)
0.2433962 [umol/(m^2*Pa*s)]
# gc2gwで元の水蒸気コンダクタンスに戻せることを確認
gc2gw(g_c, D_c, D_w, a, unitless = FALSE)
0.4 [umol/(m^2*Pa*s)]
この記事が誰かの役に立ちますように。
スポンサーリンク