衰减订正
English version: Attenuation Correction
这页介绍 pycwr 中和衰减订正最相关的公开用法,重点是:
什么时候应该做衰减订正
原始场和订正场会怎么存放
哪条 API 适合数组级处理,哪条适合
PRD工作流
Attenuation Correction
在双偏振 workflow 里,衰减订正通常和 KDP / PhiDP 处理、非气象回波剔除、
后续绘图与导出连在一起。pycwr 推荐优先走 run_dualpol_qc /
apply_dualpol_qc 这条公开链路。
在工作流中的位置
典型顺序通常是:
读取文件得到
PRD对目标 sweep 或整卷运行双偏振 QC
得到订正反射率、订正差分反射率、
PIA等结果在绘图、HID 或导出时显式使用订正后的字段
输入与输出
类型 |
字段 |
说明 |
|---|---|---|
输入 |
|
原始反射率 |
输入 |
|
双偏振衰减订正的关键输入 |
输入 |
|
可选辅助双偏振/QC字段 |
输出 |
|
订正后的反射率 |
输出 |
|
订正后的差分反射率 |
输出 |
|
积分衰减量 |
输出 |
|
QC / 补充结果 |
字段行为
原始字段和订正字段分开存储,不会覆盖原始
dBZ/ZDR跑完
PRD.apply_dualpol_qc后,订正字段会写回PRD.fields[sweep]后续绘图可以显式用
Zc、ZDRc、PIA等字段
快速开始
from pycwr.io import read_auto
radar = read_auto("./data/file.bin.bz2")
qc_radar = radar.apply_dualpol_qc(inplace=False, band="C")
raw_dbz = radar.get_sweep_field(0, "dBZ")
corrected_dbz = qc_radar.get_sweep_field(0, "Zc")
pia = qc_radar.get_sweep_field(0, "PIA")
print(qc_radar.available_fields(0))
数组级 API 示例
如果你已经拿到了二维 sweep 数组,也可以直接使用 pycwr.qc 下的公开函数:
from pycwr.qc import correct_attenuation_kdp
z_corr, pia, zdr_corr, pia_zdr = correct_attenuation_kdp(
ref=dbz_2d,
kdp=kdp_2d,
dr=0.075,
zdr=zdr_2d,
)
适用场景:
你已经在自定义 workflow 里单独处理某个二维 sweep
你只需要数组结果,不需要把结果写回
PRD
完整 PRD 工作流示例
from pycwr.io import read_auto
from pycwr.qc import run_dualpol_qc
radar = read_auto("./data/file.bin.bz2")
sweep = radar.fields[0]
gate_length_km = float((sweep["range"].values[1] - sweep["range"].values[0]) / 1000.0)
results = run_dualpol_qc(
ref=sweep["dBZ"].values,
zdr=None if "ZDR" not in sweep else sweep["ZDR"].values,
phidp=None if "PhiDP" not in sweep else sweep["PhiDP"].values,
kdp=None if "KDP" not in sweep else sweep["KDP"].values,
rhohv=None if "CC" not in sweep else sweep["CC"].values,
snr=None if "SNRH" not in sweep else sweep["SNRH"].values,
dr=gate_length_km,
band="C",
)
print(results.keys())
# ref_corrected, zdr_corrected, pia, pia_zdr, phidp_smooth, kdp_used, ...
下游怎么使用
绘图:显式画
Zc、ZDRc、PIA,不要假设项目会自动替换dBZHID:如果 corrected 字段存在,分类流程会优先使用
Zc/ZDRc/KDPc导出:标准接口导出会按当前公开规则选择合适数据源字段,但不会修改
PRD的原始变量
补充说明
单偏振历史接口
correct_attenuation/correct_attenuation_HB仍然保留,但新 workflow 更推荐correct_attenuation_kdp或apply_dualpol_qc如果 sweep 缺少
KDP和PhiDP,双偏振 QC 无法完成衰减订正