本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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)に対するコンダクタンス。

gw2gcgc2gwは、水蒸気に対するコンダクタンス(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_cCO2に対するコンダクタンス(μ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コマンド

オプション意味初期値
.gunits クラスのコンダクタンス。”m/s”・”umol/m^2/s/Pa”・”mol/m^2/s”のいずれかに変換可能である必要がある
PkPaに変換可能な units クラスの圧力値。デフォルトは101.3246 kPa(海面での地球の大気圧)set_units(101.3246, kPa)
RJ/K/kgに変換可能な units クラスの理想気体定数。デフォルトは8.31446 J/K/molset_units(8.31446, J/K/mol)
TempKに変換可能な 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)]


この記事が誰かの役に立ちますように。

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.