Board index FlightGear Development Weather

NOAA GFS weather model => FG sim model

Everything related to weather simulation, visuals should be discussed in the shader subforum.

NOAA GFS weather model => FG sim model

Postby sgofferj » Fri Dec 16, 2011 4:28 pm

Hi,

as I mentioned earlier, I am running a weather website for stormchasers as a hobby.
For this project, I pull every 6h the latest forecast data from NOAA.
The NOAA, US National Weather Service, has a numeric weather forecast model which provides data for the whole world in various resolutions. The data is extensive and lots of parameters are available. Every result block contains the analysis (the actual data from weather stations around the world which fed the model input) and then 180h forecast data in 3h steps.
Among others, the forecast data contains temperature, wind vectors, etc. at different heights. Precipitation and much much more.
The data is freely available from NOAA servers (public domain as US GOVT work) and provided in various formats. The format which I find most convenient is the GRIB2 format.

A plugin that could poll the data, read the GRIB2 format and then feed the data into FG's sim model would add an incredible amount of realism! Plus the data is not - like METAR - limited to airfields. GFS covers the whole world in a 0,5° grid. And parameters like 4 Layer Lifted Index and the determination if precipitation is convective or not can tell you if it's a thunderstorm or just rain. GFS even gives out e.g. Vertical Velocity, means upwinds and downwinds in different levels.

Talking about "real weather" :D.

Here's the idx file of a current forecast. The format is relatively easy.
Field number:Bytepos:Date valid:Param name:Level:Description
The bytepos field allows to download only the params that are actually wanted/needed vie HTTP partial content.
Code: Select all
1:0:d=2011121612:HGT:10 mb:3 hour fcst:
2:250345:d=2011121612:TMP:10 mb:3 hour fcst:
3:316131:d=2011121612:RH:10 mb:3 hour fcst:
4.1:326916:d=2011121612:UGRD:10 mb:3 hour fcst:
4.2:326916:d=2011121612:VGRD:10 mb:3 hour fcst:
5:647112:d=2011121612:ABSV:10 mb:3 hour fcst:
6:732137:d=2011121612:O3MR:10 mb:3 hour fcst:
7:845963:d=2011121612:HGT:20 mb:3 hour fcst:
8:1090556:d=2011121612:TMP:20 mb:3 hour fcst:
9.1:1155976:d=2011121612:UGRD:20 mb:3 hour fcst:
9.2:1155976:d=2011121612:VGRD:20 mb:3 hour fcst:
10:1478255:d=2011121612:ABSV:20 mb:3 hour fcst:
11:1562806:d=2011121612:O3MR:20 mb:3 hour fcst:
12:1801069:d=2011121612:HGT:30 mb:3 hour fcst:
13:2041728:d=2011121612:TMP:30 mb:3 hour fcst:
14:2106310:d=2011121612:RH:30 mb:3 hour fcst:
15.1:2138348:d=2011121612:UGRD:30 mb:3 hour fcst:
15.2:2138348:d=2011121612:VGRD:30 mb:3 hour fcst:
16:2442188:d=2011121612:ABSV:30 mb:3 hour fcst:
17:2531485:d=2011121612:O3MR:30 mb:3 hour fcst:
18:2775264:d=2011121612:HGT:50 mb:3 hour fcst:
19:3013731:d=2011121612:TMP:50 mb:3 hour fcst:
20:3079073:d=2011121612:RH:50 mb:3 hour fcst:
21.1:3097609:d=2011121612:UGRD:50 mb:3 hour fcst:
21.2:3097609:d=2011121612:VGRD:50 mb:3 hour fcst:
22:3414372:d=2011121612:ABSV:50 mb:3 hour fcst:
23:3514608:d=2011121612:O3MR:50 mb:3 hour fcst:
24:3762150:d=2011121612:HGT:70 mb:3 hour fcst:
25:4001051:d=2011121612:TMP:70 mb:3 hour fcst:
26:4067179:d=2011121612:RH:70 mb:3 hour fcst:
27.1:4100516:d=2011121612:UGRD:70 mb:3 hour fcst:
27.2:4100516:d=2011121612:VGRD:70 mb:3 hour fcst:
28:4421320:d=2011121612:ABSV:70 mb:3 hour fcst:
29:4621136:d=2011121612:O3MR:70 mb:3 hour fcst:
30:4848498:d=2011121612:HGT:100 mb:3 hour fcst:
31:5090273:d=2011121612:TMP:100 mb:3 hour fcst:
32:5155989:d=2011121612:RH:100 mb:3 hour fcst:
33:5202084:d=2011121612:VVEL:100 mb:3 hour fcst:
34.1:5531488:d=2011121612:UGRD:100 mb:3 hour fcst:
34.2:5531488:d=2011121612:VGRD:100 mb:3 hour fcst:
35:5859390:d=2011121612:ABSV:100 mb:3 hour fcst:
36:6060116:d=2011121612:CLWMR:100 mb:3 hour fcst:
37:6093872:d=2011121612:O3MR:100 mb:3 hour fcst:
38:6298450:d=2011121612:HGT:150 mb:3 hour fcst:
39:6543382:d=2011121612:TMP:150 mb:3 hour fcst:
40:6608739:d=2011121612:RH:150 mb:3 hour fcst:
41:6674859:d=2011121612:VVEL:150 mb:3 hour fcst:
42.1:6935346:d=2011121612:UGRD:150 mb:3 hour fcst:
42.2:6935346:d=2011121612:VGRD:150 mb:3 hour fcst:
43:7299399:d=2011121612:ABSV:150 mb:3 hour fcst:
44:7513619:d=2011121612:CLWMR:150 mb:3 hour fcst:
45:7557674:d=2011121612:HGT:200 mb:3 hour fcst:
46:7803483:d=2011121612:TMP:200 mb:3 hour fcst:
47:7873211:d=2011121612:RH:200 mb:3 hour fcst:
48:7957314:d=2011121612:VVEL:200 mb:3 hour fcst:
49.1:8245574:d=2011121612:UGRD:200 mb:3 hour fcst:
49.2:8245574:d=2011121612:VGRD:200 mb:3 hour fcst:
50:8449850:d=2011121612:ABSV:200 mb:3 hour fcst:
51:8580283:d=2011121612:CLWMR:200 mb:3 hour fcst:
52:8621476:d=2011121612:HGT:250 mb:3 hour fcst:
53:8866269:d=2011121612:TMP:250 mb:3 hour fcst:
54:8936889:d=2011121612:RH:250 mb:3 hour fcst:
55:9031639:d=2011121612:VVEL:250 mb:3 hour fcst:
56.1:9339374:d=2011121612:UGRD:250 mb:3 hour fcst:
56.2:9339374:d=2011121612:VGRD:250 mb:3 hour fcst:
57:9555374:d=2011121612:ABSV:250 mb:3 hour fcst:
58:9697795:d=2011121612:CLWMR:250 mb:3 hour fcst:
59:9750919:d=2011121612:HGT:300 mb:3 hour fcst:
60:9993137:d=2011121612:TMP:300 mb:3 hour fcst:
61:10064156:d=2011121612:RH:300 mb:3 hour fcst:
62:10165620:d=2011121612:VVEL:300 mb:3 hour fcst:
63.1:10485658:d=2011121612:UGRD:300 mb:3 hour fcst:
63.2:10485658:d=2011121612:VGRD:300 mb:3 hour fcst:
64:10709713:d=2011121612:ABSV:300 mb:3 hour fcst:
65:10860177:d=2011121612:CLWMR:300 mb:3 hour fcst:
66:10919984:d=2011121612:HGT:350 mb:3 hour fcst:
67:11159820:d=2011121612:TMP:350 mb:3 hour fcst:
68:11228300:d=2011121612:RH:350 mb:3 hour fcst:
69:11329568:d=2011121612:VVEL:350 mb:3 hour fcst:
70.1:11654786:d=2011121612:UGRD:350 mb:3 hour fcst:
70.2:11654786:d=2011121612:VGRD:350 mb:3 hour fcst:
71:11874784:d=2011121612:ABSV:350 mb:3 hour fcst:
72:12024094:d=2011121612:CLWMR:350 mb:3 hour fcst:
73:12087989:d=2011121612:HGT:400 mb:3 hour fcst:
74:12324878:d=2011121612:TMP:400 mb:3 hour fcst:
75:12395170:d=2011121612:RH:400 mb:3 hour fcst:
76:12498228:d=2011121612:VVEL:400 mb:3 hour fcst:
77.1:12828435:d=2011121612:UGRD:400 mb:3 hour fcst:
77.2:12828435:d=2011121612:VGRD:400 mb:3 hour fcst:
78:13048796:d=2011121612:ABSV:400 mb:3 hour fcst:
79:13199109:d=2011121612:CLWMR:400 mb:3 hour fcst:
80:13264718:d=2011121612:HGT:450 mb:3 hour fcst:
81:13499290:d=2011121612:TMP:450 mb:3 hour fcst:
82:13568272:d=2011121612:RH:450 mb:3 hour fcst:
83:13670240:d=2011121612:VVEL:450 mb:3 hour fcst:
84.1:14003516:d=2011121612:UGRD:450 mb:3 hour fcst:
84.2:14003516:d=2011121612:VGRD:450 mb:3 hour fcst:
85:14218302:d=2011121612:ABSV:450 mb:3 hour fcst:
86:14365760:d=2011121612:CLWMR:450 mb:3 hour fcst:
87:14431451:d=2011121612:HGT:500 mb:3 hour fcst:
88:14663908:d=2011121612:TMP:500 mb:3 hour fcst:
89:14735332:d=2011121612:RH:500 mb:3 hour fcst:
90:14837674:d=2011121612:VVEL:500 mb:3 hour fcst:
91.1:15174685:d=2011121612:UGRD:500 mb:3 hour fcst:
91.2:15174685:d=2011121612:VGRD:500 mb:3 hour fcst:
92:15581155:d=2011121612:ABSV:500 mb:3 hour fcst:
93:15728870:d=2011121612:CLWMR:500 mb:3 hour fcst:
94:15793539:d=2011121612:HGT:550 mb:3 hour fcst:
95:16137062:d=2011121612:TMP:550 mb:3 hour fcst:
96:16208709:d=2011121612:RH:550 mb:3 hour fcst:
97:16309612:d=2011121612:VVEL:550 mb:3 hour fcst:
98.1:16649960:d=2011121612:UGRD:550 mb:3 hour fcst:
98.2:16649960:d=2011121612:VGRD:550 mb:3 hour fcst:
99:17043451:d=2011121612:ABSV:550 mb:3 hour fcst:
100:17190125:d=2011121612:CLWMR:550 mb:3 hour fcst:
101:17253953:d=2011121612:HGT:600 mb:3 hour fcst:
102:17596656:d=2011121612:TMP:600 mb:3 hour fcst:
103:17670601:d=2011121612:RH:600 mb:3 hour fcst:
104:17772031:d=2011121612:VVEL:600 mb:3 hour fcst:
105.1:18116403:d=2011121612:UGRD:600 mb:3 hour fcst:
105.2:18116403:d=2011121612:VGRD:600 mb:3 hour fcst:
106:18511568:d=2011121612:ABSV:600 mb:3 hour fcst:
107:18659072:d=2011121612:CLWMR:600 mb:3 hour fcst:
108:18722599:d=2011121612:HGT:650 mb:3 hour fcst:
109:19065036:d=2011121612:TMP:650 mb:3 hour fcst:
110:19142115:d=2011121612:RH:650 mb:3 hour fcst:
111:19243860:d=2011121612:VVEL:650 mb:3 hour fcst:
112.1:19593024:d=2011121612:UGRD:650 mb:3 hour fcst:
112.2:19593024:d=2011121612:VGRD:650 mb:3 hour fcst:
113:19992916:d=2011121612:ABSV:650 mb:3 hour fcst:
114:20143642:d=2011121612:CLWMR:650 mb:3 hour fcst:
115:20210417:d=2011121612:HGT:700 mb:3 hour fcst:
116:20553133:d=2011121612:TMP:700 mb:3 hour fcst:
117:20632503:d=2011121612:RH:700 mb:3 hour fcst:
118:20734407:d=2011121612:VVEL:700 mb:3 hour fcst:
119.1:21087691:d=2011121612:UGRD:700 mb:3 hour fcst:
119.2:21087691:d=2011121612:VGRD:700 mb:3 hour fcst:
120:21489876:d=2011121612:ABSV:700 mb:3 hour fcst:
121:21642412:d=2011121612:CLWMR:700 mb:3 hour fcst:
122:21711753:d=2011121612:HGT:750 mb:3 hour fcst:
123:22055628:d=2011121612:TMP:750 mb:3 hour fcst:
124:22138211:d=2011121612:RH:750 mb:3 hour fcst:
125:22240879:d=2011121612:VVEL:750 mb:3 hour fcst:
126.1:22598039:d=2011121612:UGRD:750 mb:3 hour fcst:
126.2:22598039:d=2011121612:VGRD:750 mb:3 hour fcst:
127:23003492:d=2011121612:ABSV:750 mb:3 hour fcst:
128:23157848:d=2011121612:CLWMR:750 mb:3 hour fcst:
129:23224794:d=2011121612:HGT:800 mb:3 hour fcst:
130:23570674:d=2011121612:TMP:800 mb:3 hour fcst:
131:23659433:d=2011121612:RH:800 mb:3 hour fcst:
132:23763496:d=2011121612:VVEL:800 mb:3 hour fcst:
133.1:24124405:d=2011121612:UGRD:800 mb:3 hour fcst:
133.2:24124405:d=2011121612:VGRD:800 mb:3 hour fcst:
134:24533762:d=2011121612:ABSV:800 mb:3 hour fcst:
135:24690417:d=2011121612:CLWMR:800 mb:3 hour fcst:
136:24758942:d=2011121612:HGT:850 mb:3 hour fcst:
137:25108338:d=2011121612:TMP:850 mb:3 hour fcst:
138:25203712:d=2011121612:RH:850 mb:3 hour fcst:
139:25309804:d=2011121612:VVEL:850 mb:3 hour fcst:
140.1:25673066:d=2011121612:UGRD:850 mb:3 hour fcst:
140.2:25673066:d=2011121612:VGRD:850 mb:3 hour fcst:
141:26088096:d=2011121612:ABSV:850 mb:3 hour fcst:
142:26247668:d=2011121612:CLWMR:850 mb:3 hour fcst:
143:26403412:d=2011121612:HGT:900 mb:3 hour fcst:
144:26757272:d=2011121612:TMP:900 mb:3 hour fcst:
145:26853038:d=2011121612:RH:900 mb:3 hour fcst:
146:26954026:d=2011121612:VVEL:900 mb:3 hour fcst:
147.1:27316310:d=2011121612:UGRD:900 mb:3 hour fcst:
147.2:27316310:d=2011121612:VGRD:900 mb:3 hour fcst:
148:27733372:d=2011121612:ABSV:900 mb:3 hour fcst:
149:27893256:d=2011121612:CLWMR:900 mb:3 hour fcst:
150:28052195:d=2011121612:HGT:925 mb:3 hour fcst:
151:28408650:d=2011121612:TMP:925 mb:3 hour fcst:
152:28504133:d=2011121612:RH:925 mb:3 hour fcst:
153:28601759:d=2011121612:VVEL:925 mb:3 hour fcst:
154.1:28960592:d=2011121612:UGRD:925 mb:3 hour fcst:
154.2:28960592:d=2011121612:VGRD:925 mb:3 hour fcst:
155:29377282:d=2011121612:ABSV:925 mb:3 hour fcst:
156:29536459:d=2011121612:CLWMR:925 mb:3 hour fcst:
157:29671494:d=2011121612:HGT:950 mb:3 hour fcst:
158:30031170:d=2011121612:TMP:950 mb:3 hour fcst:
159:30125235:d=2011121612:RH:950 mb:3 hour fcst:
160:30218554:d=2011121612:VVEL:950 mb:3 hour fcst:
161.1:30570442:d=2011121612:UGRD:950 mb:3 hour fcst:
161.2:30570442:d=2011121612:VGRD:950 mb:3 hour fcst:
162:30988102:d=2011121612:ABSV:950 mb:3 hour fcst:
163:31146401:d=2011121612:CLWMR:950 mb:3 hour fcst:
164:31243721:d=2011121612:HGT:975 mb:3 hour fcst:
165:31606789:d=2011121612:TMP:975 mb:3 hour fcst:
166:31698918:d=2011121612:RH:975 mb:3 hour fcst:
167:31787228:d=2011121612:VVEL:975 mb:3 hour fcst:
168.1:32125846:d=2011121612:UGRD:975 mb:3 hour fcst:
168.2:32125846:d=2011121612:VGRD:975 mb:3 hour fcst:
169:32544267:d=2011121612:ABSV:975 mb:3 hour fcst:
170:32701380:d=2011121612:CLWMR:975 mb:3 hour fcst:
171:32767607:d=2011121612:TMP:1000 mb:3 hour fcst:
172:32858113:d=2011121612:RH:1000 mb:3 hour fcst:
173:32943312:d=2011121612:VVEL:1000 mb:3 hour fcst:
174.1:33263579:d=2011121612:UGRD:1000 mb:3 hour fcst:
174.2:33263579:d=2011121612:VGRD:1000 mb:3 hour fcst:
175:33678903:d=2011121612:ABSV:1000 mb:3 hour fcst:
176:33832961:d=2011121612:CLWMR:1000 mb:3 hour fcst:
177:33869705:d=2011121612:MSLET:mean sea level:3 hour fcst:
178:34241435:d=2011121612:HGT:1000 mb:3 hour fcst:
179:34608433:d=2011121612:PRES:surface:3 hour fcst:
180:34959998:d=2011121612:HGT:surface:3 hour fcst:
181:35275846:d=2011121612:TMP:surface:3 hour fcst:
182:35382030:d=2011121612:TMP:0-0.1 m below ground:3 hour fcst:
183:35507728:d=2011121612:SOILW:0-0.1 m below ground:3 hour fcst:
184:35598711:d=2011121612:TMP:0.1-0.4 m below ground:3 hour fcst:
185:35723470:d=2011121612:SOILW:0.1-0.4 m below ground:3 hour fcst:
186:35808038:d=2011121612:TMP:0.4-1 m below ground:3 hour fcst:
187:35931539:d=2011121612:SOILW:0.4-1 m below ground:3 hour fcst:
188:36014286:d=2011121612:TMP:1-2 m below ground:3 hour fcst:
189:36135914:d=2011121612:SOILW:1-2 m below ground:3 hour fcst:
190:36216926:d=2011121612:WEASD:surface:3 hour fcst:
191:36254767:d=2011121612:PEVPR:surface:3 hour fcst:
192:36413297:d=2011121612:TMP:2 m above ground:3 hour fcst:
193:36605092:d=2011121612:SPFH:2 m above ground:3 hour fcst:
194:36754111:d=2011121612:RH:2 m above ground:3 hour fcst:
195:36921758:d=2011121612:TMAX:2 m above ground:0-3 hour fcst:
196:37123792:d=2011121612:TMIN:2 m above ground:0-3 hour fcst:
197.1:37328254:d=2011121612:UGRD:10 m above ground:3 hour fcst:
197.2:37328254:d=2011121612:VGRD:10 m above ground:3 hour fcst:
198:37731493:d=2011121612:CPRAT:surface:0-3 hour ave fcst:
199:37821276:d=2011121612:PRATE:surface:0-3 hour ave fcst:
200:37942970:d=2011121612:APCP:surface:0-3 hour acc fcst:
201:38067039:d=2011121612:ACPCP:surface:0-3 hour acc fcst:
202:38158564:d=2011121612:WATR:surface:0-3 hour acc fcst:
203:38251947:d=2011121612:CSNOW:surface:0-3 hour ave fcst:
204:38259600:d=2011121612:CICEP:surface:0-3 hour ave fcst:
205:38260014:d=2011121612:CFRZR:surface:0-3 hour ave fcst:
206:38260947:d=2011121612:CRAIN:surface:0-3 hour ave fcst:
207:38274097:d=2011121612:LHTFL:surface:0-3 hour ave fcst:
208:38491683:d=2011121612:SHTFL:surface:0-3 hour ave fcst:
209:38701718:d=2011121612:GFLUX:surface:0-3 hour ave fcst:
210:38833929:d=2011121612:UFLX:surface:0-3 hour ave fcst:
211:38982985:d=2011121612:VFLX:surface:0-3 hour ave fcst:
212:39129559:d=2011121612:U-GWD:surface:0-3 hour ave fcst:
213:39211542:d=2011121612:V-GWD:surface:0-3 hour ave fcst:
214:39295042:d=2011121612:WILT:surface:3 hour fcst:
215:39383802:d=2011121612:FLDCP:surface:3 hour fcst:
216:39474431:d=2011121612:SUNSD:surface:3 hour fcst:
217:39552233:d=2011121612:LFTX:surface:3 hour fcst:
218:39654780:d=2011121612:CAPE:surface:3 hour fcst:
219:39761413:d=2011121612:CIN:surface:3 hour fcst:
220:39897332:d=2011121612:PWAT:entire atmosphere (considered as a single layer):3 hour fcst:
221:40004060:d=2011121612:CWAT:entire atmosphere (considered as a single layer):3 hour fcst:
222:40088456:d=2011121612:RH:entire atmosphere (considered as a single layer):3 hour fcst:
223:40146090:d=2011121612:TOZNE:entire atmosphere (considered as a single layer):3 hour fcst:
224:40258719:d=2011121612:TCDC:low cloud layer:0-3 hour ave fcst:
225:40386914:d=2011121612:TCDC:middle cloud layer:0-3 hour ave fcst:
226:40476999:d=2011121612:TCDC:high cloud layer:0-3 hour ave fcst:
227:40592778:d=2011121612:TCDC:entire atmosphere (considered as a single layer):0-3 hour ave fcst:
228:40734691:d=2011121612:PRES:convective cloud bottom level:3 hour fcst:
229:40910151:d=2011121612:PRES:low cloud bottom level:0-3 hour ave fcst:
230:41258416:d=2011121612:PRES:middle cloud bottom level:0-3 hour ave fcst:
231:41503130:d=2011121612:PRES:high cloud bottom level:0-3 hour ave fcst:
232:41886049:d=2011121612:PRES:convective cloud top level:3 hour fcst:
233:42079355:d=2011121612:PRES:low cloud top level:0-3 hour ave fcst:
234:42432055:d=2011121612:PRES:middle cloud top level:0-3 hour ave fcst:
235:42672130:d=2011121612:PRES:high cloud top level:0-3 hour ave fcst:
236:43033498:d=2011121612:TMP:low cloud top level:0-3 hour ave fcst:
237:43179269:d=2011121612:TMP:middle cloud top level:0-3 hour ave fcst:
238:43292152:d=2011121612:TMP:high cloud top level:0-3 hour ave fcst:
239:43459449:d=2011121612:TCDC:convective cloud layer:3 hour fcst:
240:43541425:d=2011121612:TCDC:boundary layer cloud layer:0-3 hour ave fcst:
241:43645723:d=2011121612:CWORK:entire atmosphere (considered as a single layer):0-3 hour ave fcst:
242:43719398:d=2011121612:DSWRF:surface:0-3 hour ave fcst:
243:43765265:d=2011121612:DLWRF:surface:0-3 hour ave fcst:
244:43893313:d=2011121612:USWRF:surface:0-3 hour ave fcst:
245:43958059:d=2011121612:ULWRF:surface:0-3 hour ave fcst:
246:44044760:d=2011121612:USWRF:top of atmosphere:0-3 hour ave fcst:
247:44131335:d=2011121612:ULWRF:top of atmosphere:0-3 hour ave fcst:
248:44249672:d=2011121612:HLCY:3000-0 m above ground:3 hour fcst:
249:44388840:d=2011121612:HLCY:1000-0 m above ground:3 hour fcst:
250:44528008:d=2011121612:USTM:6000-0 m above ground:3 hour fcst:
251:44750325:d=2011121612:VSTM:6000-0 m above ground:3 hour fcst:
252:44965280:d=2011121612:PRES:tropopause:3 hour fcst:
253:45348818:d=2011121612:ICAHT:tropopause:3 hour fcst:
254:45681176:d=2011121612:HGT:tropopause:3 hour fcst:
255:46011358:d=2011121612:TMP:tropopause:3 hour fcst:
256.1:46107192:d=2011121612:UGRD:tropopause:3 hour fcst:
256.2:46107192:d=2011121612:VGRD:tropopause:3 hour fcst:
257:46348534:d=2011121612:VWSH:tropopause:3 hour fcst:
258:46505760:d=2011121612:PRES:max wind:3 hour fcst:
259:46972967:d=2011121612:ICAHT:max wind:3 hour fcst:
260:47383903:d=2011121612:HGT:max wind:3 hour fcst:
261.1:47794818:d=2011121612:UGRD:max wind:3 hour fcst:
261.2:47794818:d=2011121612:VGRD:max wind:3 hour fcst:
262:48078223:d=2011121612:TMP:max wind:3 hour fcst:
263:48242713:d=2011121612:TMP:1829 m above mean sea level:3 hour fcst:
264.1:48387401:d=2011121612:UGRD:1829 m above mean sea level:3 hour fcst:
264.2:48387401:d=2011121612:VGRD:1829 m above mean sea level:3 hour fcst:
265:48885386:d=2011121612:TMP:2743 m above mean sea level:3 hour fcst:
266.1:49024603:d=2011121612:UGRD:2743 m above mean sea level:3 hour fcst:
266.2:49024603:d=2011121612:VGRD:2743 m above mean sea level:3 hour fcst:
267:49532989:d=2011121612:TMP:3658 m above mean sea level:3 hour fcst:
268.1:49669842:d=2011121612:UGRD:3658 m above mean sea level:3 hour fcst:
268.2:49669842:d=2011121612:VGRD:3658 m above mean sea level:3 hour fcst:
269:50183501:d=2011121612:HGT:0C isotherm:3 hour fcst:
270:50480499:d=2011121612:RH:0C isotherm:3 hour fcst:
271:50579344:d=2011121612:HGT:highest tropospheric freezing level:3 hour fcst:
272:50878303:d=2011121612:RH:highest tropospheric freezing level:3 hour fcst:
273:50977356:d=2011121612:TMP:30-0 mb above ground:3 hour fcst:
274:51077167:d=2011121612:RH:30-0 mb above ground:3 hour fcst:
275:51162028:d=2011121612:SPFH:30-0 mb above ground:3 hour fcst:
276.1:51402347:d=2011121612:UGRD:30-0 mb above ground:3 hour fcst:
276.2:51402347:d=2011121612:VGRD:30-0 mb above ground:3 hour fcst:
277:51817912:d=2011121612:4LFTX:surface:3 hour fcst:
278:51926053:d=2011121612:CAPE:180-0 mb above ground:3 hour fcst:
279:52033699:d=2011121612:CIN:180-0 mb above ground:3 hour fcst:
280:52174138:d=2011121612:HPBL:surface:3 hour fcst:
281:52610023:d=2011121612:RH:0.33-1 sigma layer:3 hour fcst:
282:52695757:d=2011121612:RH:0.44-1 sigma layer:3 hour fcst:
283:52777982:d=2011121612:RH:0.72-0.94 sigma layer:3 hour fcst:
284:52956565:d=2011121612:RH:0.44-0.72 sigma layer:3 hour fcst:
285:53048227:d=2011121612:TMP:0.995 sigma level:3 hour fcst:
286:53235502:d=2011121612:POT:0.995 sigma level:3 hour fcst:
287:53411843:d=2011121612:RH:0.995 sigma level:3 hour fcst:
288.1:53496239:d=2011121612:UGRD:0.995 sigma level:3 hour fcst:
288.2:53496239:d=2011121612:VGRD:0.995 sigma level:3 hour fcst:
289:53908072:d=2011121612:VVEL:0.995 sigma level:3 hour fcst:
290:54221297:d=2011121612:GUST:surface:3 hour fcst:
291:54341008:d=2011121612:LAND:surface:3 hour fcst:
292:54347373:d=2011121612:ICEC:surface:3 hour fcst:
293:54373966:d=2011121612:ALBDO:surface:0-3 hour ave fcst:
294.1:54511660:d=2011121612:UGRD:PV=2e-06 (Km^2/kg/s) surface:3 hour fcst:
294.2:54511660:d=2011121612:VGRD:PV=2e-06 (Km^2/kg/s) surface:3 hour fcst:
295:54733729:d=2011121612:TMP:PV=2e-06 (Km^2/kg/s) surface:3 hour fcst:
296:54912759:d=2011121612:HGT:PV=2e-06 (Km^2/kg/s) surface:3 hour fcst:
297:55171342:d=2011121612:PRES:PV=2e-06 (Km^2/kg/s) surface:3 hour fcst:
298:55459895:d=2011121612:VWSH:PV=2e-06 (Km^2/kg/s) surface:3 hour fcst:
299.1:55600765:d=2011121612:UGRD:PV=-2e-06 (Km^2/kg/s) surface:3 hour fcst:
299.2:55600765:d=2011121612:VGRD:PV=-2e-06 (Km^2/kg/s) surface:3 hour fcst:
300:55818463:d=2011121612:TMP:PV=-2e-06 (Km^2/kg/s) surface:3 hour fcst:
301:55995071:d=2011121612:HGT:PV=-2e-06 (Km^2/kg/s) surface:3 hour fcst:
302:56250285:d=2011121612:PRES:PV=-2e-06 (Km^2/kg/s) surface:3 hour fcst:
303:56535413:d=2011121612:VWSH:PV=-2e-06 (Km^2/kg/s) surface:3 hour fcst:
304:56674609:d=2011121612:PRMSL:mean sea level:3 hour fcst:
305:56948019:d=2011121612:5WAVH:500 mb:3 hour fcst:
306:57030554:d=2011121612:GPA:1000 mb:3 hour fcst:
307:57398942:d=2011121612:GPA:500 mb:3 hour fcst:
308:57633749:d=2011121612:5WAVA:500 mb:3 hour fcst:
FG 3.1 GIT / Opensuse 12.3 / Phenom II X4 / GForce GTX560
Stefan's little Flightgear corner | The Finnish Weather Center | Wolves in Finland

Working on: EFTP
COM: IAX2:home.gofferje.net/stefan (MO-FR 0700-2000 UTC, SA+SU 0900-2000 UTC)
sgofferj
 
Posts: 790
Joined: Mon Dec 05, 2011 4:13 pm
Location: EFTP
Callsign: OH-SW
Version: 3.1 GIT
OS: Opensuse

Re: NOAA GFS weather model => FG sim model

Postby Torsten » Fri Dec 16, 2011 4:39 pm

That looks interesting.
I'm having an implementation of Navlost.eu NWX Weather Web Service in my backlog. I don't remember if they have lifted index in stock, but I know they have global winds aloft data.
I hope we get Mathias' HLA interface productive soon, so we can add a detailed weather simulation outside the main loop...

Torsten
flightgear.org - where development happens.
User avatar
Torsten
 
Posts: 637
Joined: Fri Feb 01, 2008 9:22 pm
Location: near Hamburg, Germany
Callsign: offline
Version: next
OS: Linux

Re: NOAA GFS weather model => FG sim model

Postby sgofferj » Fri Dec 16, 2011 4:54 pm

Just to give some more ideas about "interesting" :).

Some charts I make, are CAPE, low level shear and deep layer shear as well as CAPE, storm-relative helicity (how probable is it that a storm starts rotating?) and storm motion (where does the weather move?).
Image
Image

For the SRH e.g., I calculate the wind vectors across roughly 3km of atmosphere from different levels (level height in hPa):
Code: Select all
'define u1000=ugrdprs(lev=1000)'
'define u950=ugrdprs(lev=950)'
'define u900=ugrdprs(lev=900)'
'define u850=ugrdprs(lev=850)'
'define u800=ugrdprs(lev=800)'
'define u750=ugrdprs(lev=750)'
'define u700=ugrdprs(lev=700)'
'define u650=ugrdprs(lev=650)'
'define u600=ugrdprs(lev=600)'
'define u550=ugrdprs(lev=550)'
'define u500=ugrdprs(lev=500)'
'define u450=ugrdprs(lev=450)'
'define u400=ugrdprs(lev=400)'

'define v1000=vgrdprs(lev=1000)'
'define v950=vgrdprs(lev=950)'
'define v900=vgrdprs(lev=900)'
'define v850=vgrdprs(lev=850)'
'define v800=vgrdprs(lev=800)'
'define v750=vgrdprs(lev=750)'
'define v700=vgrdprs(lev=700)'
'define v650=vgrdprs(lev=650)'
'define v600=vgrdprs(lev=600)'
'define v550=vgrdprs(lev=550)'
'define v500=vgrdprs(lev=500)'
'define v450=vgrdprs(lev=450)'
'define v400=vgrdprs(lev=400)'

'define umean=(u1000+u950+u900+u850+u800+u750+u700+u650+u600+u550+u500+u450+u400)/13.0'
'define vmean=(v1000+v950+v900+v850+v800+v750+v700+v650+v600+v550+v500+v450+v400)/13.0'
'define ushear=u500-u1000'
'define vshear=v500-v1000'
'define shear=mag(ushear,vshear)'
'define umotion=((umean+(7.5/(shear))*vshear))'
'define vmotion=((vmean-(7.5/(shear))*ushear))'

'define srh1=((u950-umotion)*(v1000-vmotion)-(u1000-umotion)*(v950-vmotion))'
'define srh2=((u900-umotion)*(v950-vmotion)-(u950-umotion)*(v900-vmotion))'
'define srh3=((u850-umotion)*(v900-vmotion)-(u900-umotion)*(v850-vmotion))'
'define srh4=((u800-umotion)*(v850-vmotion)-(u850-umotion)*(v800-vmotion))'
'define srh5=((u750-umotion)*(v800-vmotion)-(u800-umotion)*(v750-vmotion))'
'define srh6=((u700-umotion)*(v750-vmotion)-(u750-umotion)*(v700-vmotion))'

'define srh3km=srh1+srh2+srh3+srh4+srh5+srh6'


The big downside is that each 3h step is 48MBytes of data... Of course that can be reduced by polling only some fields but it will always be a pretty big amount of data for the whole world.
FG 3.1 GIT / Opensuse 12.3 / Phenom II X4 / GForce GTX560
Stefan's little Flightgear corner | The Finnish Weather Center | Wolves in Finland

Working on: EFTP
COM: IAX2:home.gofferje.net/stefan (MO-FR 0700-2000 UTC, SA+SU 0900-2000 UTC)
sgofferj
 
Posts: 790
Joined: Mon Dec 05, 2011 4:13 pm
Location: EFTP
Callsign: OH-SW
Version: 3.1 GIT
OS: Opensuse

Re: NOAA GFS weather model => FG sim model

Postby Hooray » Fri Dec 16, 2011 7:32 pm

At the moment, Thorsten's local weather system is certainly the most promising system for anything weather related. So, one possibility might be equipping Nasal with some socket I/O options, so that Nasal threads could be used for downloading these files from the web, parsing/analyzing the data and then feeding it into Thorsten's local weather system to improve his heuristics. Maybe Thorsten could comment on the feasibility of something like this?

Just today, there was an announcement regarding AIS driven traffic here: http://www.mail-archive.com/flightgear- ... 35295.html

This could also benefit from some socket connectivity options.

torsten wrote:I hope we get Mathias' HLA interface productive soon, so we can add a detailed weather simulation outside the main loop...

This is probably referring to the following posting?
http://www.mail-archive.com/flightgear- ... 33349.html
In the future, I hope to have a completely independent weather module using
the HLA stuff that runs in an own process/thread. So, at that time you might be
able to do more sophisticated stuff. May be it will then be possible to do a
full cfd for subparts of the scene. That might be a good thing for a glider
scene where you might want to have a more detailed fluid behaviour ...


Personally, I still think that Thorsten's system is the way to go, but parts of it could quite obviously run outside of the FG main loop (and he said so himself already), this could be possible using Nasal threads - or by running some of his Nasal code in a dedicated process that merely interacts with the FG property tree via sockets. Looking at his code, some more MVC separation might eventually be beneficial to separate LW code into units that can clearly run outside the fgfs main process, and code that needs to run within. Eventually, pursuing MVC patterns would also make it possible to move towards a client/server approach were the controller part could be run as part of a central server that might feed data into several clients, i.e. multiplayer or complex multi-client setups.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11329
Joined: Tue Mar 25, 2008 8:40 am

Re: NOAA GFS weather model => FG sim model

Postby Thorsten » Sat Dec 17, 2011 10:49 am

Technically, we have an infrastructure in place to do a full 3d wind modelling, i.e. if you specify a set of interpolation points with coordinates and wind direction and strength given altitude, you get a fully 3d interpolated vector field in return. We don't have vertical motion in this yet (that's done by explicit thermal models and ridge lift model), but that'd be a two liner to add in. However, I'm guessing data resolution is too coarse to get the actual vertical movement with any precision - that tends to be small-scale (thermals, terrain-driven updrafts...)

Currently that uses either manual input (cumbersome) or METAR data for which the altitude dependence is guessed - if we have a way of feeding the system more detailed data, then we can have a windfield given the detailed data. All it needs is to create property nodes from which it can be picked up.

Of course that can be reduced by polling only some fields but it will always be a pretty big amount of data for the whole world.


You don't need the whole world - you pick up the 10 interpolation points which are closest to you.
Thorsten
 
Posts: 10939
Joined: Mon Nov 02, 2009 8:33 am

Re: NOAA GFS weather model => FG sim model

Postby sgofferj » Sat Dec 17, 2011 11:11 am

Thorsten wrote in Sat Dec 17, 2011 10:49 am:You don't need the whole world - you pick up the 10 interpolation points which are closest to you.


Yeah, but the NOAA data always contains the whole grid in one file. You can pull out single parameters with the .idx file but there is no way to only download specific grid points. For that, we would need some kind of middleware, like an FG weather server or so.

About the Vertival Velocity - I found at least the interpolated results that GrADS draws from the NOAA grid data relatively accurate. Vertical Velocity also is a commonly used parameter in the prediction of severe weather. And GFS takes the topography into account when modelling VVEL.

Do you have some docs on the GRIB2 format or shall I compile a link list?
FG 3.1 GIT / Opensuse 12.3 / Phenom II X4 / GForce GTX560
Stefan's little Flightgear corner | The Finnish Weather Center | Wolves in Finland

Working on: EFTP
COM: IAX2:home.gofferje.net/stefan (MO-FR 0700-2000 UTC, SA+SU 0900-2000 UTC)
sgofferj
 
Posts: 790
Joined: Mon Dec 05, 2011 4:13 pm
Location: EFTP
Callsign: OH-SW
Version: 3.1 GIT
OS: Opensuse

Re: NOAA GFS weather model => FG sim model

Postby Hooray » Sat Dec 17, 2011 11:21 am

The middleware you are referring to, could certainly be easily implemented as a simple Perl/Python script in less than 100 lines of code. In fact, if Nasal had support for socket I/O, even Nasal could be used here.

That'd certainly be better than having dozens or possibly hundreds of clients downloading huge amounts of data that is not even required. So, I don't think that's a real obstacle in all honesty.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11329
Joined: Tue Mar 25, 2008 8:40 am

Re: NOAA GFS weather model => FG sim model

Postby sgofferj » Sat Dec 17, 2011 11:31 am

I think, Perl would be a good choice because then it would be easy for interested people to provide "colocation". Everybody with a decent hosted webspace could offer an FG weather server, which would greatly reduce the load.
FG 3.1 GIT / Opensuse 12.3 / Phenom II X4 / GForce GTX560
Stefan's little Flightgear corner | The Finnish Weather Center | Wolves in Finland

Working on: EFTP
COM: IAX2:home.gofferje.net/stefan (MO-FR 0700-2000 UTC, SA+SU 0900-2000 UTC)
sgofferj
 
Posts: 790
Joined: Mon Dec 05, 2011 4:13 pm
Location: EFTP
Callsign: OH-SW
Version: 3.1 GIT
OS: Opensuse

Re: NOAA GFS weather model => FG sim model

Postby Thorsten » Sat Dec 17, 2011 3:33 pm

[qiote]About the Vertival Velocity - I found at least the interpolated results that GrADS draws from the NOAA grid data relatively accurate.[/quote]

*shrugs* Thermals have a size scale of a few hundred meters - you need a very fine grid to get their structure correctly. And large-scale vertical airmass movement is probably too slow to affect an aircraft in a meaningful way. Likewise updraft and downwash associated with a thunderstorm are not some mean nicely-interpolatable velocity fields - they are local, turbulent phenomena with lots of random variation. I haven't had time to look at the data, but I'm guessing that the interesting vertical movement (thermals, ridge lift, wave lift, tropical strom,...) needs to be put in via heuristic modelling.
Thorsten
 
Posts: 10939
Joined: Mon Nov 02, 2009 8:33 am

Re: NOAA GFS weather model => FG sim model

Postby sgofferj » Sat Dec 17, 2011 9:19 pm

Just as I saw the viewtopic.php?f=37&t=14693&p=145082#p145082... GFS also contains snow coverage data (WEASD - accumulated snow [kg/m^2])...
So it would even be possible to determine how high the snow is in some grid.

Format docs for GRIB2:
http://www.nco.ncep.noaa.gov/pmb/docs/g ... _doc.shtml
http://www.wmo.int/pages/prog/www/WMOCo ... 062006.pdf

Data:
http://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/

Filename format:
Data: ${RUNDATE}/gfs.t${RUNTIMEHOUR}z.pgrb2f${STEP}
Index: ${RUNDATE}/gfs.t${RUNTIMEHOUR}z.pgrb2f${STEP}.idx
FG 3.1 GIT / Opensuse 12.3 / Phenom II X4 / GForce GTX560
Stefan's little Flightgear corner | The Finnish Weather Center | Wolves in Finland

Working on: EFTP
COM: IAX2:home.gofferje.net/stefan (MO-FR 0700-2000 UTC, SA+SU 0900-2000 UTC)
sgofferj
 
Posts: 790
Joined: Mon Dec 05, 2011 4:13 pm
Location: EFTP
Callsign: OH-SW
Version: 3.1 GIT
OS: Opensuse

Re: NOAA GFS weather model => FG sim model

Postby Hooray » Wed Feb 29, 2012 6:08 pm

sgofferj wrote in Sat Dec 17, 2011 11:31 am:I think, Perl would be a good choice because then it would be easy for interested people to provide "colocation". Everybody with a decent hosted webspace could offer an FG weather server, which would greatly reduce the load.


Well, it doesn't really matter if it's Perl, Php, Ruby, Python or even shell scripts - the main issue will be finding web hosts that allow you tun background processes. Otherwise, your scripts could only run after being started by a HTTP request, with corresponding timeout restrictions (i.e. +30 secs). Which would basically mean that the "weather server" would need to be implemented as a CGI "script".
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11329
Joined: Tue Mar 25, 2008 8:40 am

Re: NOAA GFS weather model => FG sim model

Postby sgofferj » Wed Feb 29, 2012 6:20 pm

My hoster permits own programs after separate clearance and perl scripts are generally allowed - also via cron jobs. However, for performance reasons, I have a server at home which pulls the GFS data, magles them, creates all the images and pushes them to the web server every 6h. Image rendering and math stuff doesn't perform well on a shared hosting webserver. I have a triple core Phenom with a RAID array for this.
Integrating an additional process that generates weather data and uploads them to a Flightgear MP weather server would be no problem for me.
FG 3.1 GIT / Opensuse 12.3 / Phenom II X4 / GForce GTX560
Stefan's little Flightgear corner | The Finnish Weather Center | Wolves in Finland

Working on: EFTP
COM: IAX2:home.gofferje.net/stefan (MO-FR 0700-2000 UTC, SA+SU 0900-2000 UTC)
sgofferj
 
Posts: 790
Joined: Mon Dec 05, 2011 4:13 pm
Location: EFTP
Callsign: OH-SW
Version: 3.1 GIT
OS: Opensuse

Re: NOAA GFS weather model => FG sim model

Postby sgofferj » Wed Feb 29, 2012 6:31 pm

Addition:
The GFS data comes with 0.5° resolution but the tool I use for rendering the charts, GrADS, can interpolate to arbitrary precision. I would have to look into it in detail as I haven't used it yet, but GrADS can also create numeric output instead of images. However, as I understand it, the grib2 format is fairly straightforward, so somebody with better math and C++ skills than me could probably come up with some tool to create a format more convenient for FG use. Handling multi-dimensional matrices I had to do the last time something like 23 years ago...
FG 3.1 GIT / Opensuse 12.3 / Phenom II X4 / GForce GTX560
Stefan's little Flightgear corner | The Finnish Weather Center | Wolves in Finland

Working on: EFTP
COM: IAX2:home.gofferje.net/stefan (MO-FR 0700-2000 UTC, SA+SU 0900-2000 UTC)
sgofferj
 
Posts: 790
Joined: Mon Dec 05, 2011 4:13 pm
Location: EFTP
Callsign: OH-SW
Version: 3.1 GIT
OS: Opensuse


Return to Weather

Who is online

Users browsing this forum: No registered users and 2 guests