JasonYangyoung commited on
Commit
5bc810c
·
verified ·
1 Parent(s): 20e20b4

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +173 -0
README.md CHANGED
@@ -1,3 +1,176 @@
1
  ---
2
  license: cc-by-4.0
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: cc-by-4.0
3
+ language:
4
+ - en
5
+ tags:
6
+ - scikit-learn
7
+ - xgboost
8
+ - random-forest
9
+ - regression
10
+ - weather-radar
11
+ - quantitative-precipitation-estimation
12
+ - dual-polarization-radar
13
+ - geoscience
14
+ - taiwan
15
  ---
16
+ # Tree-Based Radar Quantitative Precipitation Estimation Models
17
+
18
+ ## Overview
19
+
20
+ This archive contains trained Random Forest (RF) and Extreme Gradient Boosting
21
+ (XGB) models used to evaluate how radar predictor representation affects
22
+ quantitative precipitation estimation (QPE). Models are provided for 10-minute
23
+ and 1-hour rainfall estimation and for Experiments A-G described below.
24
+
25
+ The RF models were trained with scikit-learn, and the XGB models were trained
26
+ with XGBoost. The restricted radar, rain-gauge, training, and validation data
27
+ are not included in this archive.
28
+
29
+ ## File Naming
30
+
31
+ Model filenames follow this pattern:
32
+
33
+ ```text
34
+ {model}_{timescale}_Exp{experiment}[_{KDP_variant}].joblib
35
+ ```
36
+
37
+ - `model`: `RF` or `XGB`
38
+ - `timescale`: `10min` or `1h`
39
+ - `experiment`: `A` through `G`
40
+ - `KDP_variant`: present only for Experiments F and G
41
+
42
+ Examples:
43
+
44
+ - `RF_10min_ExpA.joblib`: 10-minute RF model for Experiment A
45
+ - `XGB_1h_ExpE.joblib`: 1-hour XGB model for Experiment E
46
+ - `RF_10min_ExpF_3d.joblib`: 10-minute RF model using the formal
47
+ three-dimensional KDP representation in Experiment F
48
+ - `XGB_1h_ExpG_3d_plus_max.joblib`: 1-hour XGB model using the vertical KDP
49
+ profile together with maximum KDP in Experiment G
50
+
51
+ ## Experiments
52
+
53
+ | Experiment | Predictor representation |
54
+ | --- | --- |
55
+ | A | Composite reflectivity: two-dimensional maximum dBZ |
56
+ | B | Experiment A plus latitude, longitude, and elevation |
57
+ | C | Vertical reflectivity profiles sampled from CAPPI data |
58
+ | D | Experiment C plus maximum dBZ, 18-dBZ echo top, 45-dBZ echo top, and vertically integrated liquid (VIL) |
59
+ | E | Experiment D plus latitude, longitude, and elevation |
60
+ | F | Experiment D plus a KDP representation |
61
+ | G | Experiment E plus a KDP representation |
62
+
63
+ The formal Experiments F and G use the vertical KDP profile (`3d`). Additional
64
+ F/G files are sensitivity experiments that use alternative KDP
65
+ representations:
66
+
67
+ | Suffix | KDP representation |
68
+ | --- | --- |
69
+ | `3d` | Vertical KDP profile |
70
+ | `low` | Low-level KDP representation |
71
+ | `max` | Maximum KDP representation |
72
+ | `3d_plus_max` | Vertical KDP profile plus maximum KDP |
73
+
74
+ The reflectivity profile contains 21 CAPPI levels from 1.0 to 17.0 km. The KDP
75
+ profile contains 34 levels from 0.5 to 17.0 km. Radar predictors use seven
76
+ temporal lags from `t-60` to `t0`, matched to the nearest radar observation
77
+ within 5 minutes.
78
+
79
+ The formal A-G representations contain 7, 10, 147, 175, 178, 413, and 416
80
+ predictors, respectively. Sensitivity variants of F and G may have different
81
+ predictor counts.
82
+
83
+ ## Prediction Targets
84
+
85
+ - `10min`: rainfall accumulated over 10 minutes and expressed as an
86
+ hourly-equivalent intensity in mm h^-1. It is not a 1-hour accumulation.
87
+ - `1h`: hourly rainfall intensity in mm h^-1.
88
+
89
+ Model predictions therefore use units of mm h^-1 for both time scales.
90
+
91
+ ## Joblib Contents
92
+
93
+ Each joblib file contains a dictionary with these entries:
94
+
95
+ | Key | Meaning |
96
+ | --- | --- |
97
+ | `model` | Trained RF or XGB model |
98
+ | `features` | Ordered feature names required by the model |
99
+ | `feature_importances` | Stored feature-importance table |
100
+ | `importance_type` | `impurity` for RF or `gain` for XGB |
101
+ | `model_type` | `RF` or `XGB` |
102
+ | `target` | `10min` or `1h` |
103
+ | `experiment` | Experiment identifier |
104
+ | `kdp_shape` | KDP representation, where applicable |
105
+ | `backend` | Model implementation recorded during export |
106
+ | `versions` | Relevant package versions recorded during export |
107
+
108
+ Always prepare input columns in the exact order stored in `features`. A model
109
+ should not be applied to data with a different preprocessing procedure, feature
110
+ definition, vertical level, temporal lag, unit, or column order.
111
+
112
+ ## Loading and Prediction
113
+
114
+ The following example loads an artifact and produces predictions from a pandas
115
+ DataFrame named `frame`:
116
+
117
+ ```python
118
+ import joblib
119
+ import numpy as np
120
+ import xgboost as xgb
121
+
122
+ artifact = joblib.load("RF_10min_ExpA.joblib")
123
+ model = artifact["model"]
124
+ feature_names = artifact["features"]
125
+
126
+ X = frame.loc[:, feature_names].to_numpy(dtype=np.float32)
127
+
128
+ if artifact["model_type"] == "XGB":
129
+ predictions = model.predict(xgb.DMatrix(X, feature_names=feature_names))
130
+ else:
131
+ predictions = model.predict(X)
132
+ ```
133
+
134
+ The required Python packages include `joblib`, `numpy`, `scikit-learn`, and
135
+ `xgboost`. Consult `artifact["versions"]` for the package versions recorded for
136
+ an individual model. Matching those versions as closely as possible is
137
+ recommended for reproducible loading and prediction.
138
+
139
+ ## Feature Importance
140
+
141
+ Feature importance is available in `artifact["feature_importances"]`:
142
+
143
+ - RF importance is the scikit-learn impurity-based importance.
144
+ - XGB importance is the XGBoost gain importance.
145
+
146
+ These definitions measure different quantities. Importance values should be
147
+ interpreted within the context of each model and should not be treated as
148
+ directly equivalent between RF and XGB. Correlated radar predictors can also
149
+ share or redistribute importance.
150
+
151
+ ## Validation Design
152
+
153
+ The models were developed using observations from 2020-2023 at 252 stations in
154
+ the training region. Spatial validation used 30 held-out stations from the same
155
+ period, and temporal validation used 2024 observations from the training-region
156
+ stations. Validation data and results are not part of this model-only archive.
157
+
158
+ ## Data Availability and Limitations
159
+
160
+ The source radar products, including three-dimensional CAPPI reflectivity were
161
+ provided by the Central Weather Administration and the National Science and
162
+ Technology Center for Disaster Reduction. Redistribution restrictions prevent
163
+ their inclusion. Rain-gauge observations and derived training or validation
164
+ samples are also not included here.
165
+
166
+ Reusing these models requires independently obtained data with matching
167
+ variables and identical preprocessing. The archive alone is not sufficient to
168
+ reconstruct the restricted input dataset or reproduce model training from raw
169
+ observations.
170
+
171
+ ## Security Notice
172
+
173
+ Joblib files use Python's pickle-based serialization. Load these files only
174
+ from a trusted source, because loading an untrusted pickle or joblib file can
175
+ execute arbitrary code.
176
+