Chemistry 模組
化學成分數據處理模組。
結構
Chemistry/
├── __init__.py # Chemistry (Writer 入口)
├── _mass_volume.py # 質量重建、體積計算、折射率
├── _calculate.py # 衍生參數、氣粒分配比
├── _ocec.py # OC/EC 比值計算
└── _isoropia.py # ISORROPIA 熱力學模型
快速開始
from pathlib import Path
from AeroViz.dataProcess import DataProcess
dp = DataProcess('Chemistry', Path('./output'))
result = dp.reconstruction_basic(df_chem)
方法列表
| 方法 | 說明 | 相關理論 |
|---|---|---|
reconstruction_basic(df) |
基本質量重建 | → 質量重建 |
reconstruction_full(df) |
完整質量重建 (含 ite) | → 質量重建 |
volume_RI(df) |
體積分率與折射率 | → Mie 理論 |
kappa(df, df_RH) |
κ 吸濕參數 | → κ-Köhler |
derived(df) |
衍生化學參數 | - |
partition_ratios(df) |
氣粒分配比 (SOR, NOR) | - |
ocec_ratio(df) |
OC/EC 比值分析 | - |
ISORROPIA(df) |
熱力學平衡計算 | - |
輸出說明
reconstruction_basic
| 輸出 | 欄位 |
|---|---|
mass |
AS, AN, OM, EC, Soil, SS, PM25_rc |
NH4_status |
Excess / Balance / Deficiency |
volume_RI
| 輸出 | 欄位 |
|---|---|
volume |
{species}_volume |
RI |
n, k |
kappa
| 輸出 | 說明 |
|---|---|
kappa |
κ 值 |
gRH |
成長因子 |
partition_ratios
| 輸出 | 公式 |
|---|---|
| SOR | SO₄²⁻/(SO₄²⁻+SO₂) |
| NOR | NO₃⁻/(NO₃⁻+NO₂) |
| NTR | NO₃⁻/(NO₃⁻+HNO₃) |
| epsilon_ite | NO₃⁻/(NO₃⁻+Cl⁻) |
| epsilon_ss | Cl⁻/(NO₃⁻+Cl⁻) |
輸入格式
基本化學成分
required_columns = [
'SO42-', 'NO3-', 'Cl-', 'Na+', 'NH4+', 'K+', 'Mg2+', 'Ca2+',
'OC', 'EC', 'Al', 'Fe', 'Ti', 'PM25'
]
氣體成分(氣粒分配用)
相關資源
API 參考
AeroViz.dataProcess.Chemistry.Chemistry
Bases: Writer
Functions
ReConstrc_basic
Partition
Calculate gas-particle partitioning ratios (SOR, NOR, NTR, epsilon).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df_data
|
DataFrame
|
Data containing particle and gas concentrations (μg/m³). Required: 'temp' column (temperature in Celsius) Optional species (at least one pair needed): - SO42-, SO2 : for SOR - NO3-, NO2 : for NOR - NH4+, NH3 : for NTR - Cl-, HCl : for chloride partitioning |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
Partitioning ratios: SOR, NOR, NOR_2, NTR, epls_* columns. |
Notes
- SOR > 0.1 indicates secondary sulfate formation
- Values near 1.0: particle phase dominant
- Values near 0.0: gas phase dominant
OCEC_basic
OCEC_basic(df_lcres, df_mass=None, ocec_ratio=None, ocec_ratio_month=1, hr_lim=200, least_square_range=(0.1, 2.5, 0.1), WISOC_OC_range=(0.2, 0.7, 0.01))
volume_average_mixing
Calculate volume-average refractive index and growth factor.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df_volume
|
DataFrame
|
Volume data with AS_volume, AN_volume, etc. and total_dry columns. |
required |
df_alwc
|
DataFrame
|
Aerosol liquid water content data. |
None
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
RI data with n_dry, k_dry, n_amb, k_amb, gRH columns. |
kappa
Calculate hygroscopicity parameter kappa.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df_data
|
DataFrame
|
Data containing gRH, AT (temperature in C), and RH (%). |
required |
diameter
|
float
|
Particle dry diameter in micrometers. |
0.5
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
Kappa values. |
gRH
Calculate hygroscopic growth factor.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
df_volume
|
DataFrame
|
Volume data with 'total_dry' column. |
required |
df_alwc
|
DataFrame
|
Aerosol liquid water content with 'ALWC' column. |
required |
Returns:
| Type | Description |
|---|---|
DataFrame
|
Growth factor data. |