euler314 commited on
Commit
425fa71
·
verified ·
1 Parent(s): 2385fd7

document Trackformer1.1 data and forecast grids

Browse files
Files changed (1) hide show
  1. README.md +129 -14
README.md CHANGED
@@ -17,18 +17,99 @@ pressure, intensity, and wind-structure inference over the western Pacific.
17
  It is not an operational warning system and must not be used for evacuation,
18
  aviation, maritime, emergency-management, or other safety-critical decisions.
19
 
20
- ## What it uses
21
-
22
- Inference accepts the observed storm history and weather analyses available at
23
- the issue time. It uses the current, 12-hour, and 24-hour analysis states to
24
- extrapolate a bounded western-Pacific pressure and flow state. The route sees
25
- a domain covering China, Japan, Taiwan, the Philippines, and the open western
26
- Pacific, so nearby lows, subtropical ridges, troughs, jets, and other storms
27
- can affect the steering field.
28
-
29
- No positive-lead weather field, official agency forecast, or post-issue
30
- observation is passed to the model. Later observations can be used only for
31
- verification after a forecast has been generated.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  ## Model structure
34
 
@@ -45,11 +126,43 @@ verification after a forecast has been generated.
45
  adjustment; pressure remains on the calibrated primary path.
46
  6. The final intensity output is coupled to the causal pressure-map minimum,
47
  pressure deficit, 850 hPa wind, and quadrant anomaly extent. Radius outputs
48
- remain ordered as R34 >= R50 >= R64.
49
 
50
  The public bundle contains frozen inference checkpoints and calibration state;
51
  it does not include raw weather archives or a training service.
52
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  ## Files
54
 
55
  - `trackformer_1_1.py` - public loader and route API.
@@ -57,6 +170,8 @@ it does not include raw weather archives or a training service.
57
  - `trackformer_1_1_intensity.py` - intensity and wind-structure inference.
58
  - `trackformer_1_1_temporal.py` - inference-only temporal expert architecture.
59
  - `models/trackformer_1_1/` - three expert groups, calibration, and manifest.
 
 
60
 
61
  ## Quick start
62
 
@@ -64,7 +179,7 @@ it does not include raw weather archives or a training service.
64
  python -m pip install -r requirements.txt
65
  python - <<'PY'
66
  import numpy as np
67
- from trackformer_1_1 import load_intensity, forecast_pacific_state
68
 
69
  model = load_intensity(device="cpu")
70
  track = np.zeros((9, 54), dtype="float32")
 
17
  It is not an operational warning system and must not be used for evacuation,
18
  aviation, maritime, emergency-management, or other safety-critical decisions.
19
 
20
+ ## Release names
21
+
22
+ - **Current public release:** `Trackformer1.1`
23
+ - **Historical public releases:** `Trackformer1.0.x`, where `x` identifies the
24
+ historical patch or experiment in that family.
25
+
26
+ The current public package and model card use `Trackformer1.1` only. Historical
27
+ experiments are described as `Trackformer1.0.x` so old internal experiment
28
+ labels are not presented as current models.
29
+
30
+ ## Demo and forecast grids
31
+
32
+ Open the interactive demonstration on the project GitHub Pages site:
33
+
34
+ **[Trackformer1.1 live demo](https://yu314-coder.github.io/typhoon-tracks.html)**
35
+
36
+ The repository also contains the forecast maps, pressure maps, and intensity
37
+ plots used for the two public case snapshots:
38
+
39
+ - [Dolphin world map](https://github.com/yu314-coder/typhoon-predict/blob/main/paper/dolphin_trackformer_1_1_pacific_domain_world_map.html)
40
+ - [Dolphin pressure map](https://github.com/yu314-coder/typhoon-predict/raw/refs/heads/main/paper/dolphin_trackformer_1_1_pacific_pressure_forecast.png)
41
+ - [Dolphin intensity and structure plot](https://github.com/yu314-coder/typhoon-predict/raw/refs/heads/main/paper/dolphin_trackformer_1_1_intensity_structure.png)
42
+ - [Tip world map](https://github.com/yu314-coder/typhoon-predict/blob/main/paper/tip_trackformer_1_1_pacific_domain_world_map.html)
43
+ - [Tip pressure map](https://github.com/yu314-coder/typhoon-predict/raw/refs/heads/main/paper/tip_trackformer_1_1_pacific_pressure_forecast.png)
44
+ - [Tip intensity and structure plot](https://github.com/yu314-coder/typhoon-predict/raw/refs/heads/main/paper/tip_trackformer_1_1_intensity_structure.png)
45
+
46
+ These tables are compact forecast grids from the checked-in case artifacts.
47
+ They are examples for inspecting the output, not a skill score and not a
48
+ replacement for an official forecast. Wind is maximum 1-minute wind in knots;
49
+ pressure is central pressure in hPa; radius is the radius of maximum wind in
50
+ kilometres.
51
+
52
+ ### Dolphin, issue time 2026-07-31 15:00 UTC
53
+
54
+ | Lead | Latitude | Longitude | Max wind (kt) | Pressure (hPa) | RMW (km) |
55
+ |---:|---:|---:|---:|---:|---:|
56
+ | +6 h | 19.856 | 158.902 | 124.8 | 924.5 | 25.1 |
57
+ | +24 h | 20.723 | 156.159 | 118.3 | 931.5 | 22.0 |
58
+ | +48 h | 21.335 | 152.621 | 106.0 | 949.4 | 21.6 |
59
+ | +72 h | 22.093 | 149.456 | 95.6 | 963.9 | 22.8 |
60
+ | +96 h | 23.162 | 146.200 | 88.1 | 973.5 | 23.4 |
61
+ | +120 h | 24.242 | 142.811 | 80.1 | 980.5 | 25.1 |
62
+
63
+ ### Tip, issue time 1979-10-12 00:00 UTC
64
+
65
+ | Lead | Latitude | Longitude | Max wind (kt) | Pressure (hPa) | RMW (km) |
66
+ |---:|---:|---:|---:|---:|---:|
67
+ | +6 h | 16.860 | 137.717 | 161.1 | 892.6 | 19.0 |
68
+ | +24 h | 18.005 | 135.849 | 152.1 | 898.8 | 17.8 |
69
+ | +48 h | 18.794 | 133.396 | 135.7 | 913.8 | 16.9 |
70
+ | +72 h | 19.569 | 131.390 | 118.6 | 931.5 | 18.1 |
71
+ | +96 h | 20.614 | 129.499 | 108.2 | 942.7 | 18.7 |
72
+ | +120 h | 21.668 | 127.791 | 97.8 | 952.6 | 21.6 |
73
+
74
+ ## Data used and how to get it
75
+
76
+ Trackformer1.1 uses observed or analyzed weather available at the forecast
77
+ issue time and earlier. The model does not use another agency's predicted
78
+ track or positive-lead weather forecast as an input.
79
+
80
+ | Data | Role in Trackformer1.1 | How to obtain it |
81
+ |---|---|---|
82
+ | IBTrACS | Observed storm track history, intensity history, training labels, and post-run verification | [NOAA/NCEI IBTrACS](https://www.ncei.noaa.gov/products/international-best-track-archive) |
83
+ | Historical atmospheric analysis | Current, -12 h, and -24 h pressure, height, and wind states for causal hindcasts | [NOAA Climate Forecast System data and documentation](https://www.ncei.noaa.gov/products/weather-climate-models/climate-forecast-system) |
84
+ | Current atmospheric analysis | The latest available pressure and multi-level wind state for a live-style run | [NOAA NOMADS](https://nomads.ncep.noaa.gov/) using an analysis/`f000` product whose valid time is no later than the issue time |
85
+ | Derived arrays and case artifacts | Compact tensors, manifests, maps, and plots consumed by the public inference bundle | Build from the repository scripts locally or in GitHub Actions; raw archives are intentionally not stored in this model repository |
86
+
87
+ For historical coverage, CFSR and CFSv2 are different sources: CFSR does not
88
+ cover the full modern period, so later cases must use the matching CFSv2/CDAS
89
+ analysis product when that is the source selected for the run. The source and
90
+ valid time must be recorded in the preprocessing manifest.
91
+
92
+ The public GitHub Pages site serves generated JSON, PNG, HTML, and model-demo
93
+ assets. It should not hold private credentials or try to download large raw
94
+ archives in a browser. A GitHub Actions job can fetch public analysis files,
95
+ reject files newer than the issue time, build compact derived arrays, and
96
+ publish the resulting artifacts for the [live demo](https://yu314-coder.github.io/typhoon-tracks.html).
97
+
98
+ ### Causal data boundary
99
+
100
+ At inference time, the model uses:
101
+
102
+ - the observed storm track and intensity history up to the issue time;
103
+ - current, 12-hour-old, and 24-hour-old analysis fields;
104
+ - the full western-Pacific domain covering China, Japan, Taiwan, the
105
+ Philippines, and the surrounding Pacific;
106
+ - derived pressure minima, pressure deficit, wind flow, steering layers, and
107
+ nearby-system context computed from those analysis fields.
108
+
109
+ It does **not** use JMA or JTWC forecast tracks, any official forecast track,
110
+ positive-lead GFS/GEFS/CFS forecast fields, or observations that became
111
+ available after the issue time. Later data may be used only to score the
112
+ forecast.
113
 
114
  ## Model structure
115
 
 
126
  adjustment; pressure remains on the calibrated primary path.
127
  6. The final intensity output is coupled to the causal pressure-map minimum,
128
  pressure deficit, 850 hPa wind, and quadrant anomaly extent. Radius outputs
129
+ remain ordered as `R34 >= R50 >= R64`.
130
 
131
  The public bundle contains frozen inference checkpoints and calibration state;
132
  it does not include raw weather archives or a training service.
133
 
134
+ ## Intensity upgrade plan using the same data
135
+
136
+ The current intensity head is the weakest part of the public model. The next
137
+ improvement should keep the existing causal data boundary and change only the
138
+ target formulation, feature extraction, and calibration:
139
+
140
+ 1. Build a lead-wise feature vector from data already available to Trackformer1.1:
141
+ current wind and pressure, 6/12/24-hour observed tendencies, pressure-map
142
+ minimum and deficit, 850/500/200 hPa flow, vertical-shear proxies, latitude,
143
+ and the pressure-anomaly area around the storm.
144
+ 2. Predict changes from the current observed intensity (`delta wind`, `delta
145
+ pressure`, and `delta radius`) rather than predicting every future absolute
146
+ value from scratch. Use separate short-, medium-, and long-lead heads so a
147
+ 120-hour estimate cannot dominate the 6-hour behavior.
148
+ 3. Fit the calibration and regime gate only on the existing storm-held-out
149
+ training/validation arrays. Keep complete storms in one split, and keep the
150
+ test storms untouched until the final comparison against persistence and
151
+ the current Trackformer1.1 head.
152
+ 4. Add physical consistency constraints: pressure deepening must agree with
153
+ wind strengthening, weakening must not create an implausible pressure fall,
154
+ radii must be non-negative and ordered, and changes must be bounded by the
155
+ observed analysis tendency and map confidence.
156
+ 5. Report wind MAE, pressure MAE, RMW/radius MAE, bias by lead, and uncertainty
157
+ coverage for every split. Publish new checkpoints only if the same-data
158
+ model improves both all-lead and 120-hour test metrics without degrading
159
+ track error.
160
+
161
+ The current calibration reference is 16.40 kt test wind MAE across leads and
162
+ 14.52 hPa test pressure MAE at 120 hours. Those numbers are a baseline for the
163
+ next experiment, not a guarantee of operational accuracy. No new intensity
164
+ weights are claimed by this README update.
165
+
166
  ## Files
167
 
168
  - `trackformer_1_1.py` - public loader and route API.
 
170
  - `trackformer_1_1_intensity.py` - intensity and wind-structure inference.
171
  - `trackformer_1_1_temporal.py` - inference-only temporal expert architecture.
172
  - `models/trackformer_1_1/` - three expert groups, calibration, and manifest.
173
+ - `track_build/` - checked-in Dolphin and Tip forecast-grid source artifacts.
174
+ - `paper/` - map, pressure-map, and intensity/structure visualizations.
175
 
176
  ## Quick start
177
 
 
179
  python -m pip install -r requirements.txt
180
  python - <<'PY'
181
  import numpy as np
182
+ from trackformer_1_1 import load_intensity
183
 
184
  model = load_intensity(device="cpu")
185
  track = np.zeros((9, 54), dtype="float32")