diff --git a/ci/environment-py310.yml b/ci/environment-py310.yml index 970acd42..f549b713 100644 --- a/ci/environment-py310.yml +++ b/ci/environment-py310.yml @@ -23,6 +23,7 @@ dependencies: - dask - scipy - s3fs + - gcsfs - python-blosc - flake8 - black diff --git a/ci/environment-py311.yml b/ci/environment-py311.yml index 20604aa8..a3c2d789 100644 --- a/ci/environment-py311.yml +++ b/ci/environment-py311.yml @@ -23,6 +23,7 @@ dependencies: - dask - scipy - s3fs + - gcsfs - python-blosc - flake8 - fastparquet diff --git a/ci/environment-py312.yml b/ci/environment-py312.yml index 0f8f69d5..1c43ed7d 100644 --- a/ci/environment-py312.yml +++ b/ci/environment-py312.yml @@ -20,6 +20,7 @@ dependencies: - aiohttp - pytest-cov - fsspec + - gcsfs - dask - scipy - s3fs diff --git a/kerchunk/_grib_idx.py b/kerchunk/_grib_idx.py index 1c5ddbc2..e038749d 100644 --- a/kerchunk/_grib_idx.py +++ b/kerchunk/_grib_idx.py @@ -68,7 +68,6 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ # noqa: E501 - import ujson import itertools import os diff --git a/pyproject.toml b/pyproject.toml index 5a79c469..b0743a50 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,13 +36,14 @@ netcdf3 = ["scipy"] dev = [ "cftime", "dask", - "fastparquet", + "fastparquet>=2024.11.0", "h5netcdf", "h5py", "jinja2", "mypy", "pytest", "s3fs", + "gcsfs", "types-ujson", "xarray>=2024.10.0", "cfgrib", diff --git a/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.idx b/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.idx new file mode 100644 index 00000000..a5daf3f8 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.idx @@ -0,0 +1,696 @@ +1:0:d=2022101400:PRMSL:mean sea level:anl: +2:995942:d=2022101400:CLWMR:1 hybrid level:anl: +3:1082992:d=2022101400:ICMR:1 hybrid level:anl: +4:1363134:d=2022101400:RWMR:1 hybrid level:anl: +5:1597235:d=2022101400:SNMR:1 hybrid level:anl: +6:1697225:d=2022101400:GRLE:1 hybrid level:anl: +7:1745644:d=2022101400:REFD:1 hybrid level:anl: +8:2562710:d=2022101400:REFD:2 hybrid level:anl: +9:3380262:d=2022101400:REFC:entire atmosphere:anl: +10:4270093:d=2022101400:VIS:surface:anl: +11:4983458:d=2022101400:UGRD:planetary boundary layer:anl: +12:5581635:d=2022101400:VGRD:planetary boundary layer:anl: +13:6181848:d=2022101400:VRATE:planetary boundary layer:anl: +14:6778902:d=2022101400:GUST:surface:anl: +15:7399999:d=2022101400:HGT:0.01 mb:anl: +16:8317787:d=2022101400:TMP:0.01 mb:anl: +17:8812312:d=2022101400:RH:0.01 mb:anl: +18:8828182:d=2022101400:SPFH:0.01 mb:anl: +19:9808022:d=2022101400:VVEL:0.01 mb:anl: +20:11044927:d=2022101400:DZDT:0.01 mb:anl: +21:12208588:d=2022101400:UGRD:0.01 mb:anl: +22:12723655:d=2022101400:VGRD:0.01 mb:anl: +23:13171232:d=2022101400:ABSV:0.01 mb:anl: +24:13759215:d=2022101400:O3MR:0.01 mb:anl: +25:14637867:d=2022101400:HGT:0.02 mb:anl: +26:15652735:d=2022101400:TMP:0.02 mb:anl: +27:16398229:d=2022101400:RH:0.02 mb:anl: +28:16409073:d=2022101400:SPFH:0.02 mb:anl: +29:17440842:d=2022101400:VVEL:0.02 mb:anl: +30:18636834:d=2022101400:DZDT:0.02 mb:anl: +31:20002981:d=2022101400:UGRD:0.02 mb:anl: +32:20573236:d=2022101400:VGRD:0.02 mb:anl: +33:21075639:d=2022101400:ABSV:0.02 mb:anl: +34:21778429:d=2022101400:O3MR:0.02 mb:anl: +35:22804573:d=2022101400:HGT:0.04 mb:anl: +36:23757088:d=2022101400:TMP:0.04 mb:anl: +37:24530229:d=2022101400:RH:0.04 mb:anl: +38:24530450:d=2022101400:SPFH:0.04 mb:anl: +39:25561869:d=2022101400:VVEL:0.04 mb:anl: +40:26918638:d=2022101400:DZDT:0.04 mb:anl: +41:28193454:d=2022101400:UGRD:0.04 mb:anl: +42:29137375:d=2022101400:VGRD:0.04 mb:anl: +43:30003456:d=2022101400:ABSV:0.04 mb:anl: +44:30797179:d=2022101400:O3MR:0.04 mb:anl: +45:31795618:d=2022101400:HGT:0.07 mb:anl: +46:32630416:d=2022101400:TMP:0.07 mb:anl: +47:33424668:d=2022101400:RH:0.07 mb:anl: +48:33424878:d=2022101400:SPFH:0.07 mb:anl: +49:34386315:d=2022101400:VVEL:0.07 mb:anl: +50:35707325:d=2022101400:DZDT:0.07 mb:anl: +51:36975841:d=2022101400:UGRD:0.07 mb:anl: +52:37543539:d=2022101400:VGRD:0.07 mb:anl: +53:38064769:d=2022101400:ABSV:0.07 mb:anl: +54:38854765:d=2022101400:O3MR:0.07 mb:anl: +55:39898813:d=2022101400:HGT:0.1 mb:anl: +56:40726245:d=2022101400:TMP:0.1 mb:anl: +57:41497945:d=2022101400:RH:0.1 mb:anl: +58:41498155:d=2022101400:SPFH:0.1 mb:anl: +59:42421562:d=2022101400:VVEL:0.1 mb:anl: +60:43790653:d=2022101400:DZDT:0.1 mb:anl: +61:45175835:d=2022101400:UGRD:0.1 mb:anl: +62:46137829:d=2022101400:VGRD:0.1 mb:anl: +63:47002204:d=2022101400:ABSV:0.1 mb:anl: +64:47754729:d=2022101400:O3MR:0.1 mb:anl: +65:49008969:d=2022101400:HGT:0.2 mb:anl: +66:49808356:d=2022101400:TMP:0.2 mb:anl: +67:50559058:d=2022101400:RH:0.2 mb:anl: +68:50559268:d=2022101400:SPFH:0.2 mb:anl: +69:51438924:d=2022101400:VVEL:0.2 mb:anl: +70:52601606:d=2022101400:DZDT:0.2 mb:anl: +71:53835841:d=2022101400:UGRD:0.2 mb:anl: +72:54760840:d=2022101400:VGRD:0.2 mb:anl: +73:55574012:d=2022101400:ABSV:0.2 mb:anl: +74:56249468:d=2022101400:O3MR:0.2 mb:anl: +75:57567941:d=2022101400:HGT:0.4 mb:anl: +76:58353342:d=2022101400:TMP:0.4 mb:anl: +77:59106250:d=2022101400:RH:0.4 mb:anl: +78:59106460:d=2022101400:SPFH:0.4 mb:anl: +79:59947742:d=2022101400:VVEL:0.4 mb:anl: +80:61205906:d=2022101400:DZDT:0.4 mb:anl: +81:62410589:d=2022101400:UGRD:0.4 mb:anl: +82:63322563:d=2022101400:VGRD:0.4 mb:anl: +83:64110419:d=2022101400:ABSV:0.4 mb:anl: +84:64751881:d=2022101400:O3MR:0.4 mb:anl: +85:65707369:d=2022101400:HGT:0.7 mb:anl: +86:66475181:d=2022101400:TMP:0.7 mb:anl: +87:67229090:d=2022101400:RH:0.7 mb:anl: +88:67229300:d=2022101400:SPFH:0.7 mb:anl: +89:68088215:d=2022101400:VVEL:0.7 mb:anl: +90:69283316:d=2022101400:DZDT:0.7 mb:anl: +91:70466385:d=2022101400:UGRD:0.7 mb:anl: +92:71368570:d=2022101400:VGRD:0.7 mb:anl: +93:72145836:d=2022101400:ABSV:0.7 mb:anl: +94:72769101:d=2022101400:O3MR:0.7 mb:anl: +95:73787261:d=2022101400:HGT:1 mb:anl: +96:74547264:d=2022101400:TMP:1 mb:anl: +97:75297425:d=2022101400:RH:1 mb:anl: +98:75297635:d=2022101400:SPFH:1 mb:anl: +99:76190504:d=2022101400:VVEL:1 mb:anl: +100:77141974:d=2022101400:DZDT:1 mb:anl: +101:78301293:d=2022101400:UGRD:1 mb:anl: +102:79193803:d=2022101400:VGRD:1 mb:anl: +103:79956735:d=2022101400:ABSV:1 mb:anl: +104:80575273:d=2022101400:O3MR:1 mb:anl: +105:81633037:d=2022101400:HGT:2 mb:anl: +106:82366718:d=2022101400:TMP:2 mb:anl: +107:83157653:d=2022101400:RH:2 mb:anl: +108:83158268:d=2022101400:SPFH:2 mb:anl: +109:84157460:d=2022101400:VVEL:2 mb:anl: +110:85223909:d=2022101400:DZDT:2 mb:anl: +111:86374050:d=2022101400:UGRD:2 mb:anl: +112:87293354:d=2022101400:VGRD:2 mb:anl: +113:88081542:d=2022101400:ABSV:2 mb:anl: +114:88722001:d=2022101400:O3MR:2 mb:anl: +115:89828615:d=2022101400:HGT:3 mb:anl: +116:90558757:d=2022101400:TMP:3 mb:anl: +117:91327907:d=2022101400:RH:3 mb:anl: +118:91331428:d=2022101400:SPFH:3 mb:anl: +119:92327758:d=2022101400:VVEL:3 mb:anl: +120:93452144:d=2022101400:DZDT:3 mb:anl: +121:94575967:d=2022101400:UGRD:3 mb:anl: +122:95479942:d=2022101400:VGRD:3 mb:anl: +123:96251470:d=2022101400:ABSV:3 mb:anl: +124:96882307:d=2022101400:O3MR:3 mb:anl: +125:97942343:d=2022101400:HGT:5 mb:anl: +126:98654460:d=2022101400:TMP:5 mb:anl: +127:99433691:d=2022101400:RH:5 mb:anl: +128:99441231:d=2022101400:SPFH:5 mb:anl: +129:100443352:d=2022101400:VVEL:5 mb:anl: +130:101655278:d=2022101400:DZDT:5 mb:anl: +131:102897022:d=2022101400:UGRD:5 mb:anl: +132:103813762:d=2022101400:VGRD:5 mb:anl: +133:104607550:d=2022101400:ABSV:5 mb:anl: +134:105268874:d=2022101400:O3MR:5 mb:anl: +135:106261416:d=2022101400:HGT:7 mb:anl: +136:106967125:d=2022101400:TMP:7 mb:anl: +137:107717299:d=2022101400:RH:7 mb:anl: +138:107730155:d=2022101400:SPFH:7 mb:anl: +139:108713243:d=2022101400:VVEL:7 mb:anl: +140:109967951:d=2022101400:DZDT:7 mb:anl: +141:111180985:d=2022101400:UGRD:7 mb:anl: +142:112078981:d=2022101400:VGRD:7 mb:anl: +143:112853948:d=2022101400:ABSV:7 mb:anl: +144:113510617:d=2022101400:O3MR:7 mb:anl: +145:114277966:d=2022101400:HGT:10 mb:anl: +146:114971280:d=2022101400:TMP:10 mb:anl: +147:115711750:d=2022101400:RH:10 mb:anl: +148:115759575:d=2022101400:SPFH:10 mb:anl: +149:116769294:d=2022101400:VVEL:10 mb:anl: +150:118079305:d=2022101400:DZDT:10 mb:anl: +151:119276530:d=2022101400:UGRD:10 mb:anl: +152:119766523:d=2022101400:VGRD:10 mb:anl: +153:120208584:d=2022101400:ABSV:10 mb:anl: +154:120905163:d=2022101400:O3MR:10 mb:anl: +155:121761043:d=2022101400:HGT:15 mb:anl: +156:122438081:d=2022101400:TMP:15 mb:anl: +157:123180965:d=2022101400:RH:15 mb:anl: +158:123227123:d=2022101400:SPFH:15 mb:anl: +159:124231893:d=2022101400:VVEL:15 mb:anl: +160:125473945:d=2022101400:DZDT:15 mb:anl: +161:126655116:d=2022101400:UGRD:15 mb:anl: +162:127144972:d=2022101400:VGRD:15 mb:anl: +163:127592170:d=2022101400:ABSV:15 mb:anl: +164:128301122:d=2022101400:O3MR:15 mb:anl: +165:129230744:d=2022101400:HGT:20 mb:anl: +166:129893751:d=2022101400:TMP:20 mb:anl: +167:130635130:d=2022101400:RH:20 mb:anl: +168:130740460:d=2022101400:SPFH:20 mb:anl: +169:131729411:d=2022101400:VVEL:20 mb:anl: +170:133013365:d=2022101400:DZDT:20 mb:anl: +171:134181546:d=2022101400:UGRD:20 mb:anl: +172:135078853:d=2022101400:VGRD:20 mb:anl: +173:135876423:d=2022101400:ABSV:20 mb:anl: +174:137019960:d=2022101400:O3MR:20 mb:anl: +175:138274710:d=2022101400:HGT:30 mb:anl: +176:138922731:d=2022101400:TMP:30 mb:anl: +177:139649666:d=2022101400:RH:30 mb:anl: +178:139833171:d=2022101400:SPFH:30 mb:anl: +179:140829002:d=2022101400:VVEL:30 mb:anl: +180:141870870:d=2022101400:DZDT:30 mb:anl: +181:143011608:d=2022101400:UGRD:30 mb:anl: +182:143899464:d=2022101400:VGRD:30 mb:anl: +183:144692525:d=2022101400:ABSV:30 mb:anl: +184:145839996:d=2022101400:O3MR:30 mb:anl: +185:147082722:d=2022101400:HGT:40 mb:anl: +186:147830943:d=2022101400:TMP:40 mb:anl: +187:148588088:d=2022101400:RH:40 mb:anl: +188:148834918:d=2022101400:SPFH:40 mb:anl: +189:150005629:d=2022101400:VVEL:40 mb:anl: +190:151102291:d=2022101400:DZDT:40 mb:anl: +191:152245745:d=2022101400:UGRD:40 mb:anl: +192:153160267:d=2022101400:VGRD:40 mb:anl: +193:153994643:d=2022101400:ABSV:40 mb:anl: +194:154767417:d=2022101400:O3MR:40 mb:anl: +195:156137075:d=2022101400:HGT:50 mb:anl: +196:156881053:d=2022101400:TMP:50 mb:anl: +197:157621869:d=2022101400:RH:50 mb:anl: +198:157904883:d=2022101400:TCDC:50 mb:anl: +199:157905062:d=2022101400:SPFH:50 mb:anl: +200:158952565:d=2022101400:VVEL:50 mb:anl: +201:160077407:d=2022101400:DZDT:50 mb:anl: +202:161203291:d=2022101400:UGRD:50 mb:anl: +203:162063092:d=2022101400:VGRD:50 mb:anl: +204:162891141:d=2022101400:ABSV:50 mb:anl: +205:163664482:d=2022101400:CLWMR:50 mb:anl: +206:163664661:d=2022101400:ICMR:50 mb:anl: +207:163664871:d=2022101400:RWMR:50 mb:anl: +208:164793364:d=2022101400:SNMR:50 mb:anl: +209:165988832:d=2022101400:GRLE:50 mb:anl: +210:167062936:d=2022101400:O3MR:50 mb:anl: +211:168371281:d=2022101400:HGT:70 mb:anl: +212:169110673:d=2022101400:TMP:70 mb:anl: +213:169869548:d=2022101400:RH:70 mb:anl: +214:170277435:d=2022101400:SPFH:70 mb:anl: +215:171279353:d=2022101400:VVEL:70 mb:anl: +216:172463763:d=2022101400:DZDT:70 mb:anl: +217:173582595:d=2022101400:UGRD:70 mb:anl: +218:174463854:d=2022101400:VGRD:70 mb:anl: +219:175320274:d=2022101400:ABSV:70 mb:anl: +220:176129356:d=2022101400:O3MR:70 mb:anl: +221:177385327:d=2022101400:HGT:100 mb:anl: +222:178130266:d=2022101400:TMP:100 mb:anl: +223:178902724:d=2022101400:RH:100 mb:anl: +224:179445981:d=2022101400:TCDC:100 mb:anl: +225:179598226:d=2022101400:SPFH:100 mb:anl: +226:180761555:d=2022101400:VVEL:100 mb:anl: +227:182038882:d=2022101400:DZDT:100 mb:anl: +228:183177613:d=2022101400:UGRD:100 mb:anl: +229:184143055:d=2022101400:VGRD:100 mb:anl: +230:185051981:d=2022101400:ABSV:100 mb:anl: +231:185927849:d=2022101400:CLWMR:100 mb:anl: +232:185929018:d=2022101400:ICMR:100 mb:anl: +233:185972588:d=2022101400:RWMR:100 mb:anl: +234:187149075:d=2022101400:SNMR:100 mb:anl: +235:187174355:d=2022101400:GRLE:100 mb:anl: +236:187196287:d=2022101400:O3MR:100 mb:anl: +237:188312322:d=2022101400:HGT:150 mb:anl: +238:189054602:d=2022101400:TMP:150 mb:anl: +239:189807244:d=2022101400:RH:150 mb:anl: +240:190439803:d=2022101400:TCDC:150 mb:anl: +241:190634518:d=2022101400:SPFH:150 mb:anl: +242:191809896:d=2022101400:VVEL:150 mb:anl: +243:192778223:d=2022101400:DZDT:150 mb:anl: +244:193961677:d=2022101400:UGRD:150 mb:anl: +245:194897357:d=2022101400:VGRD:150 mb:anl: +246:195818320:d=2022101400:ABSV:150 mb:anl: +247:196706937:d=2022101400:CLWMR:150 mb:anl: +248:196729012:d=2022101400:ICMR:150 mb:anl: +249:196867639:d=2022101400:RWMR:150 mb:anl: +250:197824826:d=2022101400:SNMR:150 mb:anl: +251:197835115:d=2022101400:GRLE:150 mb:anl: +252:197836873:d=2022101400:O3MR:150 mb:anl: +253:198819247:d=2022101400:HGT:200 mb:anl: +254:199560078:d=2022101400:TMP:200 mb:anl: +255:200318200:d=2022101400:RH:200 mb:anl: +256:201074999:d=2022101400:TCDC:200 mb:anl: +257:201421491:d=2022101400:SPFH:200 mb:anl: +258:202607787:d=2022101400:VVEL:200 mb:anl: +259:203645186:d=2022101400:DZDT:200 mb:anl: +260:204721210:d=2022101400:UGRD:200 mb:anl: +261:205303969:d=2022101400:VGRD:200 mb:anl: +262:205882926:d=2022101400:ABSV:200 mb:anl: +263:206803088:d=2022101400:CLWMR:200 mb:anl: +264:206854376:d=2022101400:ICMR:200 mb:anl: +265:207104924:d=2022101400:RWMR:200 mb:anl: +266:208121758:d=2022101400:SNMR:200 mb:anl: +267:208184901:d=2022101400:GRLE:200 mb:anl: +268:208188406:d=2022101400:O3MR:200 mb:anl: +269:209388605:d=2022101400:HGT:250 mb:anl: +270:210121469:d=2022101400:TMP:250 mb:anl: +271:210869951:d=2022101400:RH:250 mb:anl: +272:211697252:d=2022101400:TCDC:250 mb:anl: +273:212161530:d=2022101400:SPFH:250 mb:anl: +274:213333328:d=2022101400:VVEL:250 mb:anl: +275:214428740:d=2022101400:DZDT:250 mb:anl: +276:215527443:d=2022101400:UGRD:250 mb:anl: +277:216123469:d=2022101400:VGRD:250 mb:anl: +278:216730638:d=2022101400:ABSV:250 mb:anl: +279:217695876:d=2022101400:CLWMR:250 mb:anl: +280:217697072:d=2022101400:ICMR:250 mb:anl: +281:218060863:d=2022101400:RWMR:250 mb:anl: +282:218970106:d=2022101400:SNMR:250 mb:anl: +283:219081418:d=2022101400:GRLE:250 mb:anl: +284:219088869:d=2022101400:O3MR:250 mb:anl: +285:220369475:d=2022101400:HGT:300 mb:anl: +286:221088107:d=2022101400:TMP:300 mb:anl: +287:221844168:d=2022101400:RH:300 mb:anl: +288:222698110:d=2022101400:TCDC:300 mb:anl: +289:223179174:d=2022101400:SPFH:300 mb:anl: +290:224364800:d=2022101400:VVEL:300 mb:anl: +291:225501496:d=2022101400:DZDT:300 mb:anl: +292:226608111:d=2022101400:UGRD:300 mb:anl: +293:227219186:d=2022101400:VGRD:300 mb:anl: +294:227851703:d=2022101400:ABSV:300 mb:anl: +295:228862982:d=2022101400:CLWMR:300 mb:anl: +296:228864701:d=2022101400:ICMR:300 mb:anl: +297:229263531:d=2022101400:RWMR:300 mb:anl: +298:230175843:d=2022101400:SNMR:300 mb:anl: +299:230313537:d=2022101400:GRLE:300 mb:anl: +300:230326544:d=2022101400:O3MR:300 mb:anl: +301:231571204:d=2022101400:HGT:350 mb:anl: +302:232284688:d=2022101400:TMP:350 mb:anl: +303:233018600:d=2022101400:RH:350 mb:anl: +304:233853530:d=2022101400:TCDC:350 mb:anl: +305:234314019:d=2022101400:SPFH:350 mb:anl: +306:235487241:d=2022101400:VVEL:350 mb:anl: +307:236639124:d=2022101400:DZDT:350 mb:anl: +308:237739585:d=2022101400:UGRD:350 mb:anl: +309:238333515:d=2022101400:VGRD:350 mb:anl: +310:238950191:d=2022101400:ABSV:350 mb:anl: +311:239944083:d=2022101400:CLWMR:350 mb:anl: +312:239946389:d=2022101400:ICMR:350 mb:anl: +313:240396985:d=2022101400:RWMR:350 mb:anl: +314:240921804:d=2022101400:SNMR:350 mb:anl: +315:241080805:d=2022101400:GRLE:350 mb:anl: +316:241101464:d=2022101400:O3MR:350 mb:anl: +317:242288679:d=2022101400:HGT:400 mb:anl: +318:242995590:d=2022101400:TMP:400 mb:anl: +319:243727204:d=2022101400:RH:400 mb:anl: +320:244552563:d=2022101400:TCDC:400 mb:anl: +321:244989747:d=2022101400:SPFH:400 mb:anl: +322:246256043:d=2022101400:VVEL:400 mb:anl: +323:247415245:d=2022101400:DZDT:400 mb:anl: +324:248635529:d=2022101400:UGRD:400 mb:anl: +325:249217147:d=2022101400:VGRD:400 mb:anl: +326:249814108:d=2022101400:ABSV:400 mb:anl: +327:250781737:d=2022101400:CLWMR:400 mb:anl: +328:250786235:d=2022101400:ICMR:400 mb:anl: +329:251228205:d=2022101400:RWMR:400 mb:anl: +330:251644496:d=2022101400:SNMR:400 mb:anl: +331:251819256:d=2022101400:GRLE:400 mb:anl: +332:251848945:d=2022101400:O3MR:400 mb:anl: +333:253002492:d=2022101400:HGT:450 mb:anl: +334:253703568:d=2022101400:TMP:450 mb:anl: +335:254433557:d=2022101400:RH:450 mb:anl: +336:255245343:d=2022101400:TCDC:450 mb:anl: +337:255669038:d=2022101400:SPFH:450 mb:anl: +338:256882259:d=2022101400:VVEL:450 mb:anl: +339:258045564:d=2022101400:DZDT:450 mb:anl: +340:259250434:d=2022101400:UGRD:450 mb:anl: +341:259816261:d=2022101400:VGRD:450 mb:anl: +342:260398606:d=2022101400:ABSV:450 mb:anl: +343:261343389:d=2022101400:CLWMR:450 mb:anl: +344:261361227:d=2022101400:ICMR:450 mb:anl: +345:261818555:d=2022101400:RWMR:450 mb:anl: +346:262117647:d=2022101400:SNMR:450 mb:anl: +347:262308452:d=2022101400:GRLE:450 mb:anl: +348:262345107:d=2022101400:O3MR:450 mb:anl: +349:263466120:d=2022101400:HGT:500 mb:anl: +350:264162779:d=2022101400:TMP:500 mb:anl: +351:264893903:d=2022101400:RH:500 mb:anl: +352:265698786:d=2022101400:TCDC:500 mb:anl: +353:266115198:d=2022101400:SPFH:500 mb:anl: +354:267384942:d=2022101400:VVEL:500 mb:anl: +355:268550059:d=2022101400:DZDT:500 mb:anl: +356:269741469:d=2022101400:UGRD:500 mb:anl: +357:270293991:d=2022101400:VGRD:500 mb:anl: +358:270853551:d=2022101400:ABSV:500 mb:anl: +359:271762394:d=2022101400:CLWMR:500 mb:anl: +360:271815270:d=2022101400:ICMR:500 mb:anl: +361:272262025:d=2022101400:RWMR:500 mb:anl: +362:272504411:d=2022101400:SNMR:500 mb:anl: +363:272710619:d=2022101400:GRLE:500 mb:anl: +364:272758175:d=2022101400:O3MR:500 mb:anl: +365:273841702:d=2022101400:HGT:550 mb:anl: +366:274536559:d=2022101400:TMP:550 mb:anl: +367:275276061:d=2022101400:RH:550 mb:anl: +368:276082208:d=2022101400:TCDC:550 mb:anl: +369:276498490:d=2022101400:SPFH:550 mb:anl: +370:277821576:d=2022101400:VVEL:550 mb:anl: +371:278990632:d=2022101400:DZDT:550 mb:anl: +372:280172879:d=2022101400:UGRD:550 mb:anl: +373:281095898:d=2022101400:VGRD:550 mb:anl: +374:282014800:d=2022101400:ABSV:550 mb:anl: +375:282900753:d=2022101400:CLWMR:550 mb:anl: +376:283005000:d=2022101400:ICMR:550 mb:anl: +377:283438177:d=2022101400:RWMR:550 mb:anl: +378:283479762:d=2022101400:SNMR:550 mb:anl: +379:283698395:d=2022101400:GRLE:550 mb:anl: +380:283762013:d=2022101400:O3MR:550 mb:anl: +381:284812661:d=2022101400:HGT:600 mb:anl: +382:285622315:d=2022101400:TMP:600 mb:anl: +383:286368218:d=2022101400:RH:600 mb:anl: +384:287180989:d=2022101400:TCDC:600 mb:anl: +385:287565611:d=2022101400:SPFH:600 mb:anl: +386:288804911:d=2022101400:VVEL:600 mb:anl: +387:289981101:d=2022101400:DZDT:600 mb:anl: +388:291157928:d=2022101400:UGRD:600 mb:anl: +389:292077302:d=2022101400:VGRD:600 mb:anl: +390:292989555:d=2022101400:ABSV:600 mb:anl: +391:293861363:d=2022101400:CLWMR:600 mb:anl: +392:293981768:d=2022101400:ICMR:600 mb:anl: +393:294340665:d=2022101400:RWMR:600 mb:anl: +394:294413942:d=2022101400:SNMR:600 mb:anl: +395:294597515:d=2022101400:GRLE:600 mb:anl: +396:294655301:d=2022101400:O3MR:600 mb:anl: +397:295674614:d=2022101400:HGT:650 mb:anl: +398:296491141:d=2022101400:TMP:650 mb:anl: +399:297244084:d=2022101400:RH:650 mb:anl: +400:298060391:d=2022101400:TCDC:650 mb:anl: +401:298414653:d=2022101400:SPFH:650 mb:anl: +402:299649288:d=2022101400:VVEL:650 mb:anl: +403:300835323:d=2022101400:DZDT:650 mb:anl: +404:302010068:d=2022101400:UGRD:650 mb:anl: +405:302928636:d=2022101400:VGRD:650 mb:anl: +406:303843952:d=2022101400:ABSV:650 mb:anl: +407:304720103:d=2022101400:CLWMR:650 mb:anl: +408:304836488:d=2022101400:ICMR:650 mb:anl: +409:305193144:d=2022101400:RWMR:650 mb:anl: +410:305284102:d=2022101400:SNMR:650 mb:anl: +411:305470861:d=2022101400:GRLE:650 mb:anl: +412:305524357:d=2022101400:O3MR:650 mb:anl: +413:306514247:d=2022101400:HGT:700 mb:anl: +414:307335599:d=2022101400:TMP:700 mb:anl: +415:308099536:d=2022101400:RH:700 mb:anl: +416:308920044:d=2022101400:TCDC:700 mb:anl: +417:309265626:d=2022101400:SPFH:700 mb:anl: +418:310531775:d=2022101400:VVEL:700 mb:anl: +419:311729643:d=2022101400:DZDT:700 mb:anl: +420:312905100:d=2022101400:UGRD:700 mb:anl: +421:313824936:d=2022101400:VGRD:700 mb:anl: +422:314743173:d=2022101400:ABSV:700 mb:anl: +423:315619907:d=2022101400:CLWMR:700 mb:anl: +424:315757677:d=2022101400:ICMR:700 mb:anl: +425:316087826:d=2022101400:RWMR:700 mb:anl: +426:316193412:d=2022101400:SNMR:700 mb:anl: +427:316369217:d=2022101400:GRLE:700 mb:anl: +428:316417491:d=2022101400:O3MR:700 mb:anl: +429:317677656:d=2022101400:HGT:750 mb:anl: +430:318505588:d=2022101400:TMP:750 mb:anl: +431:319288422:d=2022101400:RH:750 mb:anl: +432:320118596:d=2022101400:TCDC:750 mb:anl: +433:320480052:d=2022101400:SPFH:750 mb:anl: +434:321777770:d=2022101400:VVEL:750 mb:anl: +435:322988515:d=2022101400:DZDT:750 mb:anl: +436:324167009:d=2022101400:UGRD:750 mb:anl: +437:325096092:d=2022101400:VGRD:750 mb:anl: +438:326023533:d=2022101400:ABSV:750 mb:anl: +439:326917933:d=2022101400:CLWMR:750 mb:anl: +440:327096705:d=2022101400:ICMR:750 mb:anl: +441:327421909:d=2022101400:RWMR:750 mb:anl: +442:327544711:d=2022101400:SNMR:750 mb:anl: +443:327727724:d=2022101400:GRLE:750 mb:anl: +444:327780282:d=2022101400:O3MR:750 mb:anl: +445:329027136:d=2022101400:HGT:800 mb:anl: +446:329870035:d=2022101400:TMP:800 mb:anl: +447:330681609:d=2022101400:RH:800 mb:anl: +448:331530777:d=2022101400:TCDC:800 mb:anl: +449:331930528:d=2022101400:SPFH:800 mb:anl: +450:333261448:d=2022101400:VVEL:800 mb:anl: +451:334484206:d=2022101400:DZDT:800 mb:anl: +452:335665027:d=2022101400:UGRD:800 mb:anl: +453:336601494:d=2022101400:VGRD:800 mb:anl: +454:337544034:d=2022101400:ABSV:800 mb:anl: +455:338461592:d=2022101400:CLWMR:800 mb:anl: +456:338707474:d=2022101400:ICMR:800 mb:anl: +457:339041287:d=2022101400:RWMR:800 mb:anl: +458:339193975:d=2022101400:SNMR:800 mb:anl: +459:339381272:d=2022101400:GRLE:800 mb:anl: +460:339440591:d=2022101400:O3MR:800 mb:anl: +461:340677277:d=2022101400:HGT:850 mb:anl: +462:341576771:d=2022101400:TMP:850 mb:anl: +463:342419725:d=2022101400:RH:850 mb:anl: +464:343291935:d=2022101400:TCDC:850 mb:anl: +465:343776362:d=2022101400:SPFH:850 mb:anl: +466:345138958:d=2022101400:VVEL:850 mb:anl: +467:346371100:d=2022101400:DZDT:850 mb:anl: +468:347549551:d=2022101400:UGRD:850 mb:anl: +469:348500589:d=2022101400:VGRD:850 mb:anl: +470:349461854:d=2022101400:ABSV:850 mb:anl: +471:350412771:d=2022101400:CLWMR:850 mb:anl: +472:350776606:d=2022101400:ICMR:850 mb:anl: +473:351114671:d=2022101400:RWMR:850 mb:anl: +474:351332864:d=2022101400:SNMR:850 mb:anl: +475:351533719:d=2022101400:GRLE:850 mb:anl: +476:351601943:d=2022101400:O3MR:850 mb:anl: +477:352832236:d=2022101400:HGT:900 mb:anl: +478:353754958:d=2022101400:TMP:900 mb:anl: +479:354615640:d=2022101400:RH:900 mb:anl: +480:355487340:d=2022101400:TCDC:900 mb:anl: +481:356035652:d=2022101400:SPFH:900 mb:anl: +482:357286026:d=2022101400:VVEL:900 mb:anl: +483:358514801:d=2022101400:DZDT:900 mb:anl: +484:359677793:d=2022101400:UGRD:900 mb:anl: +485:360635129:d=2022101400:VGRD:900 mb:anl: +486:361604230:d=2022101400:ABSV:900 mb:anl: +487:362564259:d=2022101400:CLWMR:900 mb:anl: +488:362960831:d=2022101400:ICMR:900 mb:anl: +489:363296199:d=2022101400:RWMR:900 mb:anl: +490:363575884:d=2022101400:SNMR:900 mb:anl: +491:363731815:d=2022101400:GRLE:900 mb:anl: +492:363812869:d=2022101400:O3MR:900 mb:anl: +493:365018432:d=2022101400:HGT:925 mb:anl: +494:365957053:d=2022101400:TMP:925 mb:anl: +495:366813579:d=2022101400:RH:925 mb:anl: +496:367676542:d=2022101400:TCDC:925 mb:anl: +497:368251586:d=2022101400:SPFH:925 mb:anl: +498:369494552:d=2022101400:VVEL:925 mb:anl: +499:370705746:d=2022101400:DZDT:925 mb:anl: +500:371850868:d=2022101400:UGRD:925 mb:anl: +501:372808099:d=2022101400:VGRD:925 mb:anl: +502:373773093:d=2022101400:ABSV:925 mb:anl: +503:374729610:d=2022101400:CLWMR:925 mb:anl: +504:375074221:d=2022101400:ICMR:925 mb:anl: +505:375372802:d=2022101400:RWMR:925 mb:anl: +506:375661553:d=2022101400:SNMR:925 mb:anl: +507:375800607:d=2022101400:GRLE:925 mb:anl: +508:375868763:d=2022101400:O3MR:925 mb:anl: +509:377058485:d=2022101400:HGT:950 mb:anl: +510:378010283:d=2022101400:TMP:950 mb:anl: +511:378859786:d=2022101400:RH:950 mb:anl: +512:379703980:d=2022101400:TCDC:950 mb:anl: +513:380173545:d=2022101400:SPFH:950 mb:anl: +514:381407482:d=2022101400:VVEL:950 mb:anl: +515:382580895:d=2022101400:DZDT:950 mb:anl: +516:383684410:d=2022101400:UGRD:950 mb:anl: +517:384644244:d=2022101400:VGRD:950 mb:anl: +518:385605584:d=2022101400:ABSV:950 mb:anl: +519:386555409:d=2022101400:CLWMR:950 mb:anl: +520:386786024:d=2022101400:ICMR:950 mb:anl: +521:387035723:d=2022101400:RWMR:950 mb:anl: +522:387316710:d=2022101400:SNMR:950 mb:anl: +523:387428881:d=2022101400:GRLE:950 mb:anl: +524:387499199:d=2022101400:O3MR:950 mb:anl: +525:388671700:d=2022101400:HINDEX:surface:anl: +526:388876234:d=2022101400:HGT:975 mb:anl: +527:389845831:d=2022101400:TMP:975 mb:anl: +528:390692677:d=2022101400:RH:975 mb:anl: +529:391517230:d=2022101400:TCDC:975 mb:anl: +530:391874472:d=2022101400:SPFH:975 mb:anl: +531:393102094:d=2022101400:VVEL:975 mb:anl: +532:394202555:d=2022101400:DZDT:975 mb:anl: +533:395229478:d=2022101400:UGRD:975 mb:anl: +534:396196099:d=2022101400:VGRD:975 mb:anl: +535:397155675:d=2022101400:ABSV:975 mb:anl: +536:398098736:d=2022101400:CLWMR:975 mb:anl: +537:398231982:d=2022101400:ICMR:975 mb:anl: +538:398395048:d=2022101400:RWMR:975 mb:anl: +539:398649982:d=2022101400:SNMR:975 mb:anl: +540:398715700:d=2022101400:GRLE:975 mb:anl: +541:398764169:d=2022101400:O3MR:975 mb:anl: +542:399922386:d=2022101400:TMP:1000 mb:anl: +543:400781799:d=2022101400:RH:1000 mb:anl: +544:401589087:d=2022101400:TCDC:1000 mb:anl: +545:401804303:d=2022101400:SPFH:1000 mb:anl: +546:403034476:d=2022101400:VVEL:1000 mb:anl: +547:404010365:d=2022101400:DZDT:1000 mb:anl: +548:404910705:d=2022101400:UGRD:1000 mb:anl: +549:405879844:d=2022101400:VGRD:1000 mb:anl: +550:406837426:d=2022101400:ABSV:1000 mb:anl: +551:407775881:d=2022101400:CLWMR:1000 mb:anl: +552:407816580:d=2022101400:ICMR:1000 mb:anl: +553:407906497:d=2022101400:RWMR:1000 mb:anl: +554:408091951:d=2022101400:SNMR:1000 mb:anl: +555:408112616:d=2022101400:GRLE:1000 mb:anl: +556:408136981:d=2022101400:O3MR:1000 mb:anl: +557:409288365:d=2022101400:MSLET:mean sea level:anl: +558:410234766:d=2022101400:HGT:1000 mb:anl: +559:411227856:d=2022101400:REFD:4000 m above ground:anl: +560:411518706:d=2022101400:REFD:1000 m above ground:anl: +561:412304616:d=2022101400:PRES:surface:anl: +562:413142160:d=2022101400:HGT:surface:anl: +563:413634603:d=2022101400:TMP:surface:anl: +564:414193714:d=2022101400:TSOIL:0-0.1 m below ground:anl: +565:414794443:d=2022101400:SOILW:0-0.1 m below ground:anl: +566:415154651:d=2022101400:SOILL:0-0.1 m below ground:anl: +567:415507558:d=2022101400:TSOIL:0.1-0.4 m below ground:anl: +568:416083557:d=2022101400:SOILW:0.1-0.4 m below ground:anl: +569:416444890:d=2022101400:SOILL:0.1-0.4 m below ground:anl: +570:416804828:d=2022101400:TSOIL:0.4-1 m below ground:anl: +571:417323113:d=2022101400:SOILW:0.4-1 m below ground:anl: +572:417688280:d=2022101400:SOILL:0.4-1 m below ground:anl: +573:418051760:d=2022101400:TSOIL:1-2 m below ground:anl: +574:418573574:d=2022101400:SOILW:1-2 m below ground:anl: +575:418931548:d=2022101400:SOILL:1-2 m below ground:anl: +576:419288583:d=2022101400:CNWAT:surface:anl: +577:419591279:d=2022101400:WEASD:surface:anl: +578:420099181:d=2022101400:SNOD:surface:anl: +579:420621481:d=2022101400:ICETK:surface:anl: +580:420704797:d=2022101400:TMP:2 m above ground:anl: +581:421212360:d=2022101400:SPFH:2 m above ground:anl: +582:422547382:d=2022101400:DPT:2 m above ground:anl: +583:423083992:d=2022101400:RH:2 m above ground:anl: +584:423869452:d=2022101400:APTMP:2 m above ground:anl: +585:424427403:d=2022101400:UGRD:10 m above ground:anl: +586:425394137:d=2022101400:VGRD:10 m above ground:anl: +587:426344294:d=2022101400:ICEG:10 m above mean sea level:anl: +588:426367122:d=2022101400:CPOFP:surface:anl: +589:426943529:d=2022101400:PRATE:surface:anl: +590:427534300:d=2022101400:CSNOW:surface:anl: +591:427567255:d=2022101400:CICEP:surface:anl: +592:427567668:d=2022101400:CFRZR:surface:anl: +593:427569054:d=2022101400:CRAIN:surface:anl: +594:427680045:d=2022101400:SFCR:surface:anl: +595:428174600:d=2022101400:FRICV:surface:anl: +596:429120154:d=2022101400:VEG:surface:anl: +597:429442918:d=2022101400:SOTYP:surface:anl: +598:429741377:d=2022101400:WILT:surface:anl: +599:430103033:d=2022101400:FLDCP:surface:anl: +600:430470074:d=2022101400:SUNSD:surface:anl: +601:430829735:d=2022101400:LFTX:surface:anl: +602:431378305:d=2022101400:CAPE:surface:anl: +603:431902684:d=2022101400:CIN:surface:anl: +604:432174718:d=2022101400:PWAT:entire atmosphere (considered as a single layer):anl: +605:433373647:d=2022101400:CWAT:entire atmosphere (considered as a single layer):anl: +606:433759241:d=2022101400:RH:entire atmosphere (considered as a single layer):anl: +607:434365311:d=2022101400:TOZNE:entire atmosphere (considered as a single layer):anl: +608:434969150:d=2022101400:LCDC:low cloud layer:anl: +609:435753981:d=2022101400:MCDC:middle cloud layer:anl: +610:436324714:d=2022101400:HCDC:high cloud layer:anl: +611:437050120:d=2022101400:TCDC:entire atmosphere:anl: +612:437879591:d=2022101400:HGT:cloud ceiling:anl: +613:439083360:d=2022101400:HLCY:3000-0 m above ground:anl: +614:439773769:d=2022101400:USTM:6000-0 m above ground:anl: +615:440761756:d=2022101400:VSTM:6000-0 m above ground:anl: +616:441732998:d=2022101400:PRES:tropopause:anl: +617:443152512:d=2022101400:ICAHT:tropopause:anl: +618:444642827:d=2022101400:HGT:tropopause:anl: +619:445991954:d=2022101400:TMP:tropopause:anl: +620:446979689:d=2022101400:UGRD:tropopause:anl: +621:447701398:d=2022101400:VGRD:tropopause:anl: +622:448397892:d=2022101400:VWSH:tropopause:anl: +623:448963189:d=2022101400:PRES:max wind:anl: +624:450568556:d=2022101400:ICAHT:max wind:anl: +625:452214304:d=2022101400:HGT:max wind:anl: +626:453872292:d=2022101400:UGRD:max wind:anl: +627:454594585:d=2022101400:VGRD:max wind:anl: +628:455358755:d=2022101400:TMP:max wind:anl: +629:456613617:d=2022101400:UGRD:20 m above ground:anl: +630:457579558:d=2022101400:VGRD:20 m above ground:anl: +631:458531881:d=2022101400:UGRD:30 m above ground:anl: +632:459507341:d=2022101400:VGRD:30 m above ground:anl: +633:460468735:d=2022101400:UGRD:40 m above ground:anl: +634:461444950:d=2022101400:VGRD:40 m above ground:anl: +635:462408560:d=2022101400:UGRD:50 m above ground:anl: +636:463390391:d=2022101400:VGRD:50 m above ground:anl: +637:464356589:d=2022101400:TMP:80 m above ground:anl: +638:465210680:d=2022101400:SPFH:80 m above ground:anl: +639:466528975:d=2022101400:PRES:80 m above ground:anl: +640:467361464:d=2022101400:UGRD:80 m above ground:anl: +641:468343881:d=2022101400:VGRD:80 m above ground:anl: +642:469312931:d=2022101400:TMP:100 m above ground:anl: +643:470168303:d=2022101400:UGRD:100 m above ground:anl: +644:471149838:d=2022101400:VGRD:100 m above ground:anl: +645:472119505:d=2022101400:TMP:1829 m above mean sea level:anl: +646:473014775:d=2022101400:UGRD:1829 m above mean sea level:anl: +647:474028727:d=2022101400:VGRD:1829 m above mean sea level:anl: +648:475051706:d=2022101400:TMP:2743 m above mean sea level:anl: +649:475924919:d=2022101400:UGRD:2743 m above mean sea level:anl: +650:476947007:d=2022101400:VGRD:2743 m above mean sea level:anl: +651:477967310:d=2022101400:TMP:3658 m above mean sea level:anl: +652:478833976:d=2022101400:UGRD:3658 m above mean sea level:anl: +653:479871603:d=2022101400:VGRD:3658 m above mean sea level:anl: +654:480907149:d=2022101400:HGT:0C isotherm:anl: +655:481875046:d=2022101400:RH:0C isotherm:anl: +656:482729253:d=2022101400:HGT:highest tropospheric freezing level:anl: +657:483697007:d=2022101400:RH:highest tropospheric freezing level:anl: +658:484540229:d=2022101400:TMP:30-0 mb above ground:anl: +659:485388612:d=2022101400:RH:30-0 mb above ground:anl: +660:486185836:d=2022101400:SPFH:30-0 mb above ground:anl: +661:487497413:d=2022101400:UGRD:30-0 mb above ground:anl: +662:488467876:d=2022101400:VGRD:30-0 mb above ground:anl: +663:489429728:d=2022101400:4LFTX:surface:anl: +664:489951511:d=2022101400:CAPE:180-0 mb above ground:anl: +665:490443405:d=2022101400:CIN:180-0 mb above ground:anl: +666:490995751:d=2022101400:HPBL:surface:anl: +667:492447732:d=2022101400:RH:0.33-1 sigma layer:anl: +668:493178002:d=2022101400:RH:0.44-1 sigma layer:anl: +669:493895412:d=2022101400:RH:0.72-0.94 sigma layer:anl: +670:494674005:d=2022101400:RH:0.44-0.72 sigma layer:anl: +671:495411097:d=2022101400:TMP:0.995 sigma level:anl: +672:496280163:d=2022101400:POT:0.995 sigma level:anl: +673:497142298:d=2022101400:RH:0.995 sigma level:anl: +674:497948106:d=2022101400:UGRD:0.995 sigma level:anl: +675:498941683:d=2022101400:VGRD:0.995 sigma level:anl: +676:499916674:d=2022101400:VVEL:0.995 sigma level:anl: +677:500858119:d=2022101400:CAPE:90-0 mb above ground:anl: +678:501312205:d=2022101400:CIN:90-0 mb above ground:anl: +679:501637585:d=2022101400:CAPE:255-0 mb above ground:anl: +680:502111792:d=2022101400:CIN:255-0 mb above ground:anl: +681:502553773:d=2022101400:PLPL:255-0 mb above ground:anl: +682:503495793:d=2022101400:LAND:surface:anl: +683:503527829:d=2022101400:ICEC:surface:anl: +684:503649391:d=2022101400:ICETMP:surface:anl: +685:503838214:d=2022101400:UGRD:PV=2e-06 (Km^2/kg/s) surface:anl: +686:504477776:d=2022101400:VGRD:PV=2e-06 (Km^2/kg/s) surface:anl: +687:505096104:d=2022101400:TMP:PV=2e-06 (Km^2/kg/s) surface:anl: +688:505722907:d=2022101400:HGT:PV=2e-06 (Km^2/kg/s) surface:anl: +689:506845421:d=2022101400:PRES:PV=2e-06 (Km^2/kg/s) surface:anl: +690:507930347:d=2022101400:VWSH:PV=2e-06 (Km^2/kg/s) surface:anl: +691:508410023:d=2022101400:UGRD:PV=-2e-06 (Km^2/kg/s) surface:anl: +692:509086641:d=2022101400:VGRD:PV=-2e-06 (Km^2/kg/s) surface:anl: +693:509744071:d=2022101400:TMP:PV=-2e-06 (Km^2/kg/s) surface:anl: +694:510403742:d=2022101400:HGT:PV=-2e-06 (Km^2/kg/s) surface:anl: +695:511581084:d=2022101400:PRES:PV=-2e-06 (Km^2/kg/s) surface:anl: +696:512719284:d=2022101400:VWSH:PV=-2e-06 (Km^2/kg/s) surface:anl: diff --git a/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10 b/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10 new file mode 100644 index 00000000..44b45acc Binary files /dev/null and b/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx b/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx new file mode 100644 index 00000000..69a3cd76 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2022101400:PRMSL:mean sea level:anl: +2:995942:d=2022101400:CLWMR:1 hybrid level:anl: +3:1082992:d=2022101400:ICMR:1 hybrid level:anl: +4:1363134:d=2022101400:RWMR:1 hybrid level:anl: +5:1597235:d=2022101400:SNMR:1 hybrid level:anl: +6:1697225:d=2022101400:GRLE:1 hybrid level:anl: +7:1745644:d=2022101400:REFD:1 hybrid level:anl: +8:2562710:d=2022101400:REFD:2 hybrid level:anl: +9:3380262:d=2022101400:REFC:entire atmosphere:anl: +10:4270093:d=2022101400:VIS:surface:anl: +11:4983458:d=2022101400:UGRD:planetary boundary layer:anl: diff --git a/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.idx b/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.idx new file mode 100644 index 00000000..e6f2a4e5 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.idx @@ -0,0 +1,743 @@ +1:0:d=2022101406:PRMSL:mean sea level:21 hour fcst: +2:986627:d=2022101406:CLWMR:1 hybrid level:21 hour fcst: +3:1071190:d=2022101406:ICMR:1 hybrid level:21 hour fcst: +4:1334374:d=2022101406:RWMR:1 hybrid level:21 hour fcst: +5:1576714:d=2022101406:SNMR:1 hybrid level:21 hour fcst: +6:1669840:d=2022101406:GRLE:1 hybrid level:21 hour fcst: +7:1708612:d=2022101406:REFD:1 hybrid level:21 hour fcst: +8:2515402:d=2022101406:REFD:2 hybrid level:21 hour fcst: +9:3322351:d=2022101406:REFC:entire atmosphere:21 hour fcst: +10:4201577:d=2022101406:VIS:surface:21 hour fcst: +11:4895751:d=2022101406:UGRD:planetary boundary layer:21 hour fcst: +12:5492544:d=2022101406:VGRD:planetary boundary layer:21 hour fcst: +13:6087261:d=2022101406:VRATE:planetary boundary layer:21 hour fcst: +14:6690486:d=2022101406:GUST:surface:21 hour fcst: +15:7304841:d=2022101406:HGT:0.01 mb:21 hour fcst: +16:8299773:d=2022101406:TMP:0.01 mb:21 hour fcst: +17:8877091:d=2022101406:RH:0.01 mb:21 hour fcst: +18:8898414:d=2022101406:SPFH:0.01 mb:21 hour fcst: +19:10018005:d=2022101406:VVEL:0.01 mb:21 hour fcst: +20:11459439:d=2022101406:DZDT:0.01 mb:21 hour fcst: +21:12694391:d=2022101406:UGRD:0.01 mb:21 hour fcst: +22:13266824:d=2022101406:VGRD:0.01 mb:21 hour fcst: +23:13763131:d=2022101406:ABSV:0.01 mb:21 hour fcst: +24:14424756:d=2022101406:O3MR:0.01 mb:21 hour fcst: +25:15380065:d=2022101406:HGT:0.02 mb:21 hour fcst: +26:16352384:d=2022101406:TMP:0.02 mb:21 hour fcst: +27:17185676:d=2022101406:RH:0.02 mb:21 hour fcst: +28:17204266:d=2022101406:SPFH:0.02 mb:21 hour fcst: +29:18347587:d=2022101406:VVEL:0.02 mb:21 hour fcst: +30:19629549:d=2022101406:DZDT:0.02 mb:21 hour fcst: +31:21083894:d=2022101406:UGRD:0.02 mb:21 hour fcst: +32:21711595:d=2022101406:VGRD:0.02 mb:21 hour fcst: +33:22272317:d=2022101406:ABSV:0.02 mb:21 hour fcst: +34:23086077:d=2022101406:O3MR:0.02 mb:21 hour fcst: +35:24191580:d=2022101406:HGT:0.04 mb:21 hour fcst: +36:25219722:d=2022101406:TMP:0.04 mb:21 hour fcst: +37:26061621:d=2022101406:RH:0.04 mb:21 hour fcst: +38:26062862:d=2022101406:SPFH:0.04 mb:21 hour fcst: +39:27200750:d=2022101406:VVEL:0.04 mb:21 hour fcst: +40:28638063:d=2022101406:DZDT:0.04 mb:21 hour fcst: +41:29991148:d=2022101406:UGRD:0.04 mb:21 hour fcst: +42:30602960:d=2022101406:VGRD:0.04 mb:21 hour fcst: +43:31239806:d=2022101406:ABSV:0.04 mb:21 hour fcst: +44:32261926:d=2022101406:O3MR:0.04 mb:21 hour fcst: +45:33355514:d=2022101406:HGT:0.07 mb:21 hour fcst: +46:34253068:d=2022101406:TMP:0.07 mb:21 hour fcst: +47:35118617:d=2022101406:RH:0.07 mb:21 hour fcst: +48:35118827:d=2022101406:SPFH:0.07 mb:21 hour fcst: +49:36214270:d=2022101406:VVEL:0.07 mb:21 hour fcst: +50:37612800:d=2022101406:DZDT:0.07 mb:21 hour fcst: +51:38955931:d=2022101406:UGRD:0.07 mb:21 hour fcst: +52:39598028:d=2022101406:VGRD:0.07 mb:21 hour fcst: +53:40253497:d=2022101406:ABSV:0.07 mb:21 hour fcst: +54:41293456:d=2022101406:O3MR:0.07 mb:21 hour fcst: +55:42437025:d=2022101406:HGT:0.1 mb:21 hour fcst: +56:43320444:d=2022101406:TMP:0.1 mb:21 hour fcst: +57:44152824:d=2022101406:RH:0.1 mb:21 hour fcst: +58:44153034:d=2022101406:SPFH:0.1 mb:21 hour fcst: +59:45205103:d=2022101406:VVEL:0.1 mb:21 hour fcst: +60:46645734:d=2022101406:DZDT:0.1 mb:21 hour fcst: +61:48102370:d=2022101406:UGRD:0.1 mb:21 hour fcst: +62:48719765:d=2022101406:VGRD:0.1 mb:21 hour fcst: +63:49339882:d=2022101406:ABSV:0.1 mb:21 hour fcst: +64:50338060:d=2022101406:O3MR:0.1 mb:21 hour fcst: +65:51692810:d=2022101406:HGT:0.2 mb:21 hour fcst: +66:52540096:d=2022101406:TMP:0.2 mb:21 hour fcst: +67:53333263:d=2022101406:RH:0.2 mb:21 hour fcst: +68:53333473:d=2022101406:SPFH:0.2 mb:21 hour fcst: +69:54315568:d=2022101406:VVEL:0.2 mb:21 hour fcst: +70:55530435:d=2022101406:DZDT:0.2 mb:21 hour fcst: +71:56817984:d=2022101406:UGRD:0.2 mb:21 hour fcst: +72:57802963:d=2022101406:VGRD:0.2 mb:21 hour fcst: +73:58749931:d=2022101406:ABSV:0.2 mb:21 hour fcst: +74:59661007:d=2022101406:O3MR:0.2 mb:21 hour fcst: +75:60921961:d=2022101406:HGT:0.4 mb:21 hour fcst: +76:61741163:d=2022101406:TMP:0.4 mb:21 hour fcst: +77:62522409:d=2022101406:RH:0.4 mb:21 hour fcst: +78:62522619:d=2022101406:SPFH:0.4 mb:21 hour fcst: +79:63445811:d=2022101406:VVEL:0.4 mb:21 hour fcst: +80:64744841:d=2022101406:DZDT:0.4 mb:21 hour fcst: +81:66128034:d=2022101406:UGRD:0.4 mb:21 hour fcst: +82:67077146:d=2022101406:VGRD:0.4 mb:21 hour fcst: +83:67969307:d=2022101406:ABSV:0.4 mb:21 hour fcst: +84:68799556:d=2022101406:O3MR:0.4 mb:21 hour fcst: +85:69800642:d=2022101406:HGT:0.7 mb:21 hour fcst: +86:70594555:d=2022101406:TMP:0.7 mb:21 hour fcst: +87:71370927:d=2022101406:RH:0.7 mb:21 hour fcst: +88:71371137:d=2022101406:SPFH:0.7 mb:21 hour fcst: +89:72298901:d=2022101406:VVEL:0.7 mb:21 hour fcst: +90:73657915:d=2022101406:DZDT:0.7 mb:21 hour fcst: +91:75004669:d=2022101406:UGRD:0.7 mb:21 hour fcst: +92:75935372:d=2022101406:VGRD:0.7 mb:21 hour fcst: +93:76788542:d=2022101406:ABSV:0.7 mb:21 hour fcst: +94:77572189:d=2022101406:O3MR:0.7 mb:21 hour fcst: +95:78623731:d=2022101406:HGT:1 mb:21 hour fcst: +96:79405464:d=2022101406:TMP:1 mb:21 hour fcst: +97:80173443:d=2022101406:RH:1 mb:21 hour fcst: +98:80173653:d=2022101406:SPFH:1 mb:21 hour fcst: +99:81126852:d=2022101406:VVEL:1 mb:21 hour fcst: +100:82532020:d=2022101406:DZDT:1 mb:21 hour fcst: +101:83849273:d=2022101406:UGRD:1 mb:21 hour fcst: +102:84766201:d=2022101406:VGRD:1 mb:21 hour fcst: +103:85597630:d=2022101406:ABSV:1 mb:21 hour fcst: +104:86354975:d=2022101406:O3MR:1 mb:21 hour fcst: +105:87435728:d=2022101406:HGT:2 mb:21 hour fcst: +106:88181750:d=2022101406:TMP:2 mb:21 hour fcst: +107:88986945:d=2022101406:RH:2 mb:21 hour fcst: +108:88987671:d=2022101406:SPFH:2 mb:21 hour fcst: +109:90021045:d=2022101406:VVEL:2 mb:21 hour fcst: +110:91106187:d=2022101406:DZDT:2 mb:21 hour fcst: +111:92404181:d=2022101406:UGRD:2 mb:21 hour fcst: +112:93339502:d=2022101406:VGRD:2 mb:21 hour fcst: +113:94182937:d=2022101406:ABSV:2 mb:21 hour fcst: +114:94943862:d=2022101406:O3MR:2 mb:21 hour fcst: +115:96071382:d=2022101406:HGT:3 mb:21 hour fcst: +116:96810287:d=2022101406:TMP:3 mb:21 hour fcst: +117:97589397:d=2022101406:RH:3 mb:21 hour fcst: +118:97592652:d=2022101406:SPFH:3 mb:21 hour fcst: +119:98608347:d=2022101406:VVEL:3 mb:21 hour fcst: +120:99752228:d=2022101406:DZDT:3 mb:21 hour fcst: +121:101019407:d=2022101406:UGRD:3 mb:21 hour fcst: +122:101935136:d=2022101406:VGRD:3 mb:21 hour fcst: +123:102757069:d=2022101406:ABSV:3 mb:21 hour fcst: +124:103493875:d=2022101406:O3MR:3 mb:21 hour fcst: +125:104569657:d=2022101406:HGT:5 mb:21 hour fcst: +126:105290264:d=2022101406:TMP:5 mb:21 hour fcst: +127:106080263:d=2022101406:RH:5 mb:21 hour fcst: +128:106088484:d=2022101406:SPFH:5 mb:21 hour fcst: +129:107097220:d=2022101406:VVEL:5 mb:21 hour fcst: +130:108325220:d=2022101406:DZDT:5 mb:21 hour fcst: +131:109580681:d=2022101406:UGRD:5 mb:21 hour fcst: +132:110512493:d=2022101406:VGRD:5 mb:21 hour fcst: +133:111351013:d=2022101406:ABSV:5 mb:21 hour fcst: +134:112099777:d=2022101406:O3MR:5 mb:21 hour fcst: +135:113099616:d=2022101406:HGT:7 mb:21 hour fcst: +136:113810019:d=2022101406:TMP:7 mb:21 hour fcst: +137:114569440:d=2022101406:RH:7 mb:21 hour fcst: +138:114582771:d=2022101406:SPFH:7 mb:21 hour fcst: +139:115559996:d=2022101406:VVEL:7 mb:21 hour fcst: +140:116826772:d=2022101406:DZDT:7 mb:21 hour fcst: +141:118051258:d=2022101406:UGRD:7 mb:21 hour fcst: +142:118956342:d=2022101406:VGRD:7 mb:21 hour fcst: +143:119754600:d=2022101406:ABSV:7 mb:21 hour fcst: +144:120459943:d=2022101406:O3MR:7 mb:21 hour fcst: +145:121219525:d=2022101406:HGT:10 mb:21 hour fcst: +146:121917718:d=2022101406:TMP:10 mb:21 hour fcst: +147:122663901:d=2022101406:RH:10 mb:21 hour fcst: +148:122710365:d=2022101406:SPFH:10 mb:21 hour fcst: +149:123706667:d=2022101406:VVEL:10 mb:21 hour fcst: +150:125026686:d=2022101406:DZDT:10 mb:21 hour fcst: +151:126233803:d=2022101406:UGRD:10 mb:21 hour fcst: +152:127131158:d=2022101406:VGRD:10 mb:21 hour fcst: +153:127920396:d=2022101406:ABSV:10 mb:21 hour fcst: +154:128618248:d=2022101406:O3MR:10 mb:21 hour fcst: +155:129461892:d=2022101406:HGT:15 mb:21 hour fcst: +156:130140463:d=2022101406:TMP:15 mb:21 hour fcst: +157:130887511:d=2022101406:RH:15 mb:21 hour fcst: +158:130936662:d=2022101406:SPFH:15 mb:21 hour fcst: +159:131929271:d=2022101406:VVEL:15 mb:21 hour fcst: +160:133182304:d=2022101406:DZDT:15 mb:21 hour fcst: +161:134373958:d=2022101406:UGRD:15 mb:21 hour fcst: +162:135273197:d=2022101406:VGRD:15 mb:21 hour fcst: +163:136064650:d=2022101406:ABSV:15 mb:21 hour fcst: +164:136767832:d=2022101406:O3MR:15 mb:21 hour fcst: +165:137677651:d=2022101406:HGT:20 mb:21 hour fcst: +166:138343540:d=2022101406:TMP:20 mb:21 hour fcst: +167:139087853:d=2022101406:RH:20 mb:21 hour fcst: +168:139192005:d=2022101406:SPFH:20 mb:21 hour fcst: +169:140164632:d=2022101406:VVEL:20 mb:21 hour fcst: +170:141457150:d=2022101406:DZDT:20 mb:21 hour fcst: +171:142633183:d=2022101406:UGRD:20 mb:21 hour fcst: +172:143527336:d=2022101406:VGRD:20 mb:21 hour fcst: +173:144323256:d=2022101406:ABSV:20 mb:21 hour fcst: +174:145461475:d=2022101406:O3MR:20 mb:21 hour fcst: +175:146698482:d=2022101406:HGT:30 mb:21 hour fcst: +176:147349136:d=2022101406:TMP:30 mb:21 hour fcst: +177:148073124:d=2022101406:RH:30 mb:21 hour fcst: +178:148244343:d=2022101406:SPFH:30 mb:21 hour fcst: +179:149227783:d=2022101406:VVEL:30 mb:21 hour fcst: +180:150572556:d=2022101406:DZDT:30 mb:21 hour fcst: +181:151720840:d=2022101406:UGRD:30 mb:21 hour fcst: +182:152606323:d=2022101406:VGRD:30 mb:21 hour fcst: +183:153396674:d=2022101406:ABSV:30 mb:21 hour fcst: +184:154537225:d=2022101406:O3MR:30 mb:21 hour fcst: +185:155765705:d=2022101406:HGT:40 mb:21 hour fcst: +186:156510929:d=2022101406:TMP:40 mb:21 hour fcst: +187:157269190:d=2022101406:RH:40 mb:21 hour fcst: +188:157511803:d=2022101406:SPFH:40 mb:21 hour fcst: +189:158672490:d=2022101406:VVEL:40 mb:21 hour fcst: +190:159775209:d=2022101406:DZDT:40 mb:21 hour fcst: +191:160924594:d=2022101406:UGRD:40 mb:21 hour fcst: +192:161837393:d=2022101406:VGRD:40 mb:21 hour fcst: +193:162669445:d=2022101406:ABSV:40 mb:21 hour fcst: +194:163439137:d=2022101406:O3MR:40 mb:21 hour fcst: +195:164800377:d=2022101406:HGT:50 mb:21 hour fcst: +196:165545975:d=2022101406:TMP:50 mb:21 hour fcst: +197:166286066:d=2022101406:RH:50 mb:21 hour fcst: +198:166564046:d=2022101406:TCDC:50 mb:21 hour fcst: +199:166564225:d=2022101406:SPFH:50 mb:21 hour fcst: +200:167587806:d=2022101406:VVEL:50 mb:21 hour fcst: +201:168717254:d=2022101406:DZDT:50 mb:21 hour fcst: +202:169847346:d=2022101406:UGRD:50 mb:21 hour fcst: +203:170701252:d=2022101406:VGRD:50 mb:21 hour fcst: +204:171524417:d=2022101406:ABSV:50 mb:21 hour fcst: +205:172717876:d=2022101406:CLWMR:50 mb:21 hour fcst: +206:172718055:d=2022101406:ICMR:50 mb:21 hour fcst: +207:172719572:d=2022101406:RWMR:50 mb:21 hour fcst: +208:173846781:d=2022101406:SNMR:50 mb:21 hour fcst: +209:175038264:d=2022101406:GRLE:50 mb:21 hour fcst: +210:176108657:d=2022101406:O3MR:50 mb:21 hour fcst: +211:177406580:d=2022101406:HGT:70 mb:21 hour fcst: +212:178145359:d=2022101406:TMP:70 mb:21 hour fcst: +213:178903388:d=2022101406:RH:70 mb:21 hour fcst: +214:179304442:d=2022101406:SPFH:70 mb:21 hour fcst: +215:180397759:d=2022101406:VVEL:70 mb:21 hour fcst: +216:181585157:d=2022101406:DZDT:70 mb:21 hour fcst: +217:182709786:d=2022101406:UGRD:70 mb:21 hour fcst: +218:183586955:d=2022101406:VGRD:70 mb:21 hour fcst: +219:184432705:d=2022101406:ABSV:70 mb:21 hour fcst: +220:185230246:d=2022101406:O3MR:70 mb:21 hour fcst: +221:186472354:d=2022101406:HGT:100 mb:21 hour fcst: +222:187214517:d=2022101406:TMP:100 mb:21 hour fcst: +223:187985317:d=2022101406:RH:100 mb:21 hour fcst: +224:188518120:d=2022101406:TCDC:100 mb:21 hour fcst: +225:188652409:d=2022101406:SPFH:100 mb:21 hour fcst: +226:189779243:d=2022101406:VVEL:100 mb:21 hour fcst: +227:191053212:d=2022101406:DZDT:100 mb:21 hour fcst: +228:192191598:d=2022101406:UGRD:100 mb:21 hour fcst: +229:193109299:d=2022101406:VGRD:100 mb:21 hour fcst: +230:194005403:d=2022101406:ABSV:100 mb:21 hour fcst: +231:194864738:d=2022101406:CLWMR:100 mb:21 hour fcst: +232:194866183:d=2022101406:ICMR:100 mb:21 hour fcst: +233:194898535:d=2022101406:RWMR:100 mb:21 hour fcst: +234:196058413:d=2022101406:SNMR:100 mb:21 hour fcst: +235:196082482:d=2022101406:GRLE:100 mb:21 hour fcst: +236:196107350:d=2022101406:O3MR:100 mb:21 hour fcst: +237:197214220:d=2022101406:HGT:150 mb:21 hour fcst: +238:197955185:d=2022101406:TMP:150 mb:21 hour fcst: +239:198700821:d=2022101406:RH:150 mb:21 hour fcst: +240:199324107:d=2022101406:TCDC:150 mb:21 hour fcst: +241:199531776:d=2022101406:SPFH:150 mb:21 hour fcst: +242:200684996:d=2022101406:VVEL:150 mb:21 hour fcst: +243:201654167:d=2022101406:DZDT:150 mb:21 hour fcst: +244:202834369:d=2022101406:UGRD:150 mb:21 hour fcst: +245:203762462:d=2022101406:VGRD:150 mb:21 hour fcst: +246:204677599:d=2022101406:ABSV:150 mb:21 hour fcst: +247:205554596:d=2022101406:CLWMR:150 mb:21 hour fcst: +248:205574807:d=2022101406:ICMR:150 mb:21 hour fcst: +249:205719142:d=2022101406:RWMR:150 mb:21 hour fcst: +250:206667422:d=2022101406:SNMR:150 mb:21 hour fcst: +251:206677339:d=2022101406:GRLE:150 mb:21 hour fcst: +252:206679375:d=2022101406:O3MR:150 mb:21 hour fcst: +253:207646472:d=2022101406:HGT:200 mb:21 hour fcst: +254:208383117:d=2022101406:TMP:200 mb:21 hour fcst: +255:209130725:d=2022101406:RH:200 mb:21 hour fcst: +256:209873341:d=2022101406:TCDC:200 mb:21 hour fcst: +257:210223571:d=2022101406:SPFH:200 mb:21 hour fcst: +258:211390253:d=2022101406:VVEL:200 mb:21 hour fcst: +259:212421575:d=2022101406:DZDT:200 mb:21 hour fcst: +260:213618087:d=2022101406:UGRD:200 mb:21 hour fcst: +261:214194928:d=2022101406:VGRD:200 mb:21 hour fcst: +262:214767120:d=2022101406:ABSV:200 mb:21 hour fcst: +263:215677113:d=2022101406:CLWMR:200 mb:21 hour fcst: +264:215722866:d=2022101406:ICMR:200 mb:21 hour fcst: +265:216008102:d=2022101406:RWMR:200 mb:21 hour fcst: +266:217017527:d=2022101406:SNMR:200 mb:21 hour fcst: +267:217079139:d=2022101406:GRLE:200 mb:21 hour fcst: +268:217083134:d=2022101406:O3MR:200 mb:21 hour fcst: +269:218268029:d=2022101406:HGT:250 mb:21 hour fcst: +270:218998215:d=2022101406:TMP:250 mb:21 hour fcst: +271:219735429:d=2022101406:RH:250 mb:21 hour fcst: +272:220548411:d=2022101406:TCDC:250 mb:21 hour fcst: +273:221010800:d=2022101406:SPFH:250 mb:21 hour fcst: +274:222164327:d=2022101406:VVEL:250 mb:21 hour fcst: +275:223249035:d=2022101406:DZDT:250 mb:21 hour fcst: +276:224460981:d=2022101406:UGRD:250 mb:21 hour fcst: +277:225049134:d=2022101406:VGRD:250 mb:21 hour fcst: +278:225645788:d=2022101406:ABSV:250 mb:21 hour fcst: +279:226595614:d=2022101406:CLWMR:250 mb:21 hour fcst: +280:226596577:d=2022101406:ICMR:250 mb:21 hour fcst: +281:227000099:d=2022101406:RWMR:250 mb:21 hour fcst: +282:227898853:d=2022101406:SNMR:250 mb:21 hour fcst: +283:228003942:d=2022101406:GRLE:250 mb:21 hour fcst: +284:228012352:d=2022101406:O3MR:250 mb:21 hour fcst: +285:229276985:d=2022101406:HGT:300 mb:21 hour fcst: +286:229996249:d=2022101406:TMP:300 mb:21 hour fcst: +287:230744969:d=2022101406:RH:300 mb:21 hour fcst: +288:231588383:d=2022101406:TCDC:300 mb:21 hour fcst: +289:232080329:d=2022101406:SPFH:300 mb:21 hour fcst: +290:233254273:d=2022101406:VVEL:300 mb:21 hour fcst: +291:234378131:d=2022101406:DZDT:300 mb:21 hour fcst: +292:235605867:d=2022101406:UGRD:300 mb:21 hour fcst: +293:236209261:d=2022101406:VGRD:300 mb:21 hour fcst: +294:236828411:d=2022101406:ABSV:300 mb:21 hour fcst: +295:237819534:d=2022101406:CLWMR:300 mb:21 hour fcst: +296:237821231:d=2022101406:ICMR:300 mb:21 hour fcst: +297:238216312:d=2022101406:RWMR:300 mb:21 hour fcst: +298:239113912:d=2022101406:SNMR:300 mb:21 hour fcst: +299:239246504:d=2022101406:GRLE:300 mb:21 hour fcst: +300:239259167:d=2022101406:O3MR:300 mb:21 hour fcst: +301:240488252:d=2022101406:HGT:350 mb:21 hour fcst: +302:241197789:d=2022101406:TMP:350 mb:21 hour fcst: +303:241923032:d=2022101406:RH:350 mb:21 hour fcst: +304:242736961:d=2022101406:TCDC:350 mb:21 hour fcst: +305:243212585:d=2022101406:SPFH:350 mb:21 hour fcst: +306:244366899:d=2022101406:VVEL:350 mb:21 hour fcst: +307:245509753:d=2022101406:DZDT:350 mb:21 hour fcst: +308:246731251:d=2022101406:UGRD:350 mb:21 hour fcst: +309:247316293:d=2022101406:VGRD:350 mb:21 hour fcst: +310:247916147:d=2022101406:ABSV:350 mb:21 hour fcst: +311:248886191:d=2022101406:CLWMR:350 mb:21 hour fcst: +312:248888255:d=2022101406:ICMR:350 mb:21 hour fcst: +313:249346320:d=2022101406:RWMR:350 mb:21 hour fcst: +314:249859852:d=2022101406:SNMR:350 mb:21 hour fcst: +315:250016061:d=2022101406:GRLE:350 mb:21 hour fcst: +316:250035465:d=2022101406:O3MR:350 mb:21 hour fcst: +317:251206219:d=2022101406:HGT:400 mb:21 hour fcst: +318:251907901:d=2022101406:TMP:400 mb:21 hour fcst: +319:252629764:d=2022101406:RH:400 mb:21 hour fcst: +320:253438010:d=2022101406:TCDC:400 mb:21 hour fcst: +321:253894757:d=2022101406:SPFH:400 mb:21 hour fcst: +322:255021514:d=2022101406:VVEL:400 mb:21 hour fcst: +323:256174797:d=2022101406:DZDT:400 mb:21 hour fcst: +324:257385682:d=2022101406:UGRD:400 mb:21 hour fcst: +325:257956162:d=2022101406:VGRD:400 mb:21 hour fcst: +326:258538719:d=2022101406:ABSV:400 mb:21 hour fcst: +327:259484362:d=2022101406:CLWMR:400 mb:21 hour fcst: +328:259489047:d=2022101406:ICMR:400 mb:21 hour fcst: +329:259944534:d=2022101406:RWMR:400 mb:21 hour fcst: +330:260287324:d=2022101406:SNMR:400 mb:21 hour fcst: +331:260463233:d=2022101406:GRLE:400 mb:21 hour fcst: +332:260490325:d=2022101406:O3MR:400 mb:21 hour fcst: +333:261627231:d=2022101406:HGT:450 mb:21 hour fcst: +334:262322742:d=2022101406:TMP:450 mb:21 hour fcst: +335:263042917:d=2022101406:RH:450 mb:21 hour fcst: +336:263837629:d=2022101406:TCDC:450 mb:21 hour fcst: +337:264275079:d=2022101406:SPFH:450 mb:21 hour fcst: +338:265470371:d=2022101406:VVEL:450 mb:21 hour fcst: +339:266626407:d=2022101406:DZDT:450 mb:21 hour fcst: +340:267824234:d=2022101406:UGRD:450 mb:21 hour fcst: +341:268383353:d=2022101406:VGRD:450 mb:21 hour fcst: +342:268951846:d=2022101406:ABSV:450 mb:21 hour fcst: +343:269873786:d=2022101406:CLWMR:450 mb:21 hour fcst: +344:269890565:d=2022101406:ICMR:450 mb:21 hour fcst: +345:270360664:d=2022101406:RWMR:450 mb:21 hour fcst: +346:270574928:d=2022101406:SNMR:450 mb:21 hour fcst: +347:270767536:d=2022101406:GRLE:450 mb:21 hour fcst: +348:270802548:d=2022101406:O3MR:450 mb:21 hour fcst: +349:271903216:d=2022101406:HGT:500 mb:21 hour fcst: +350:272709956:d=2022101406:TMP:500 mb:21 hour fcst: +351:273430575:d=2022101406:RH:500 mb:21 hour fcst: +352:274224841:d=2022101406:TCDC:500 mb:21 hour fcst: +353:274655492:d=2022101406:SPFH:500 mb:21 hour fcst: +354:275909408:d=2022101406:VVEL:500 mb:21 hour fcst: +355:277068059:d=2022101406:DZDT:500 mb:21 hour fcst: +356:278256277:d=2022101406:UGRD:500 mb:21 hour fcst: +357:278798493:d=2022101406:VGRD:500 mb:21 hour fcst: +358:279345477:d=2022101406:ABSV:500 mb:21 hour fcst: +359:280233439:d=2022101406:CLWMR:500 mb:21 hour fcst: +360:280288252:d=2022101406:ICMR:500 mb:21 hour fcst: +361:280748797:d=2022101406:RWMR:500 mb:21 hour fcst: +362:280768131:d=2022101406:SNMR:500 mb:21 hour fcst: +363:280979753:d=2022101406:GRLE:500 mb:21 hour fcst: +364:281025921:d=2022101406:O3MR:500 mb:21 hour fcst: +365:282095716:d=2022101406:HGT:550 mb:21 hour fcst: +366:282900662:d=2022101406:TMP:550 mb:21 hour fcst: +367:283625993:d=2022101406:RH:550 mb:21 hour fcst: +368:284420644:d=2022101406:TCDC:550 mb:21 hour fcst: +369:284853380:d=2022101406:SPFH:550 mb:21 hour fcst: +370:286034837:d=2022101406:VVEL:550 mb:21 hour fcst: +371:287199407:d=2022101406:DZDT:550 mb:21 hour fcst: +372:288375906:d=2022101406:UGRD:550 mb:21 hour fcst: +373:289286278:d=2022101406:VGRD:550 mb:21 hour fcst: +374:290191971:d=2022101406:ABSV:550 mb:21 hour fcst: +375:291054301:d=2022101406:CLWMR:550 mb:21 hour fcst: +376:291162187:d=2022101406:ICMR:550 mb:21 hour fcst: +377:291609887:d=2022101406:RWMR:550 mb:21 hour fcst: +378:291646550:d=2022101406:SNMR:550 mb:21 hour fcst: +379:291869394:d=2022101406:GRLE:550 mb:21 hour fcst: +380:291933478:d=2022101406:O3MR:550 mb:21 hour fcst: +381:292964204:d=2022101406:HGT:600 mb:21 hour fcst: +382:293768904:d=2022101406:TMP:600 mb:21 hour fcst: +383:294507744:d=2022101406:RH:600 mb:21 hour fcst: +384:295308041:d=2022101406:TCDC:600 mb:21 hour fcst: +385:295711828:d=2022101406:SPFH:600 mb:21 hour fcst: +386:296940325:d=2022101406:VVEL:600 mb:21 hour fcst: +387:298113762:d=2022101406:DZDT:600 mb:21 hour fcst: +388:299286544:d=2022101406:UGRD:600 mb:21 hour fcst: +389:300195346:d=2022101406:VGRD:600 mb:21 hour fcst: +390:301093615:d=2022101406:ABSV:600 mb:21 hour fcst: +391:301947714:d=2022101406:CLWMR:600 mb:21 hour fcst: +392:302081730:d=2022101406:ICMR:600 mb:21 hour fcst: +393:302456514:d=2022101406:RWMR:600 mb:21 hour fcst: +394:302532904:d=2022101406:SNMR:600 mb:21 hour fcst: +395:302747373:d=2022101406:GRLE:600 mb:21 hour fcst: +396:302797211:d=2022101406:O3MR:600 mb:21 hour fcst: +397:303797752:d=2022101406:HGT:650 mb:21 hour fcst: +398:304647277:d=2022101406:TMP:650 mb:21 hour fcst: +399:305394544:d=2022101406:RH:650 mb:21 hour fcst: +400:306203429:d=2022101406:TCDC:650 mb:21 hour fcst: +401:306576926:d=2022101406:SPFH:650 mb:21 hour fcst: +402:307804221:d=2022101406:VVEL:650 mb:21 hour fcst: +403:308987320:d=2022101406:DZDT:650 mb:21 hour fcst: +404:310158436:d=2022101406:UGRD:650 mb:21 hour fcst: +405:311069247:d=2022101406:VGRD:650 mb:21 hour fcst: +406:311970164:d=2022101406:ABSV:650 mb:21 hour fcst: +407:312831851:d=2022101406:CLWMR:650 mb:21 hour fcst: +408:312954442:d=2022101406:ICMR:650 mb:21 hour fcst: +409:313288843:d=2022101406:RWMR:650 mb:21 hour fcst: +410:313380297:d=2022101406:SNMR:650 mb:21 hour fcst: +411:313574443:d=2022101406:GRLE:650 mb:21 hour fcst: +412:313624076:d=2022101406:O3MR:650 mb:21 hour fcst: +413:314891134:d=2022101406:HGT:700 mb:21 hour fcst: +414:315746550:d=2022101406:TMP:700 mb:21 hour fcst: +415:316504707:d=2022101406:RH:700 mb:21 hour fcst: +416:317323587:d=2022101406:TCDC:700 mb:21 hour fcst: +417:317689605:d=2022101406:SPFH:700 mb:21 hour fcst: +418:318952938:d=2022101406:VVEL:700 mb:21 hour fcst: +419:320147364:d=2022101406:DZDT:700 mb:21 hour fcst: +420:321319361:d=2022101406:UGRD:700 mb:21 hour fcst: +421:322233716:d=2022101406:VGRD:700 mb:21 hour fcst: +422:323146494:d=2022101406:ABSV:700 mb:21 hour fcst: +423:324017412:d=2022101406:CLWMR:700 mb:21 hour fcst: +424:324162411:d=2022101406:ICMR:700 mb:21 hour fcst: +425:324476706:d=2022101406:RWMR:700 mb:21 hour fcst: +426:324584768:d=2022101406:SNMR:700 mb:21 hour fcst: +427:324773322:d=2022101406:GRLE:700 mb:21 hour fcst: +428:324828929:d=2022101406:O3MR:700 mb:21 hour fcst: +429:326076809:d=2022101406:HGT:750 mb:21 hour fcst: +430:326939887:d=2022101406:TMP:750 mb:21 hour fcst: +431:327719998:d=2022101406:RH:750 mb:21 hour fcst: +432:328550572:d=2022101406:TCDC:750 mb:21 hour fcst: +433:328930670:d=2022101406:SPFH:750 mb:21 hour fcst: +434:330227544:d=2022101406:VVEL:750 mb:21 hour fcst: +435:331434909:d=2022101406:DZDT:750 mb:21 hour fcst: +436:332607043:d=2022101406:UGRD:750 mb:21 hour fcst: +437:333529550:d=2022101406:VGRD:750 mb:21 hour fcst: +438:334453723:d=2022101406:ABSV:750 mb:21 hour fcst: +439:335339532:d=2022101406:CLWMR:750 mb:21 hour fcst: +440:335532630:d=2022101406:ICMR:750 mb:21 hour fcst: +441:335875616:d=2022101406:RWMR:750 mb:21 hour fcst: +442:336003179:d=2022101406:SNMR:750 mb:21 hour fcst: +443:336192849:d=2022101406:GRLE:750 mb:21 hour fcst: +444:336250667:d=2022101406:O3MR:750 mb:21 hour fcst: +445:337492839:d=2022101406:HGT:800 mb:21 hour fcst: +446:338367409:d=2022101406:TMP:800 mb:21 hour fcst: +447:339175260:d=2022101406:RH:800 mb:21 hour fcst: +448:340028235:d=2022101406:TCDC:800 mb:21 hour fcst: +449:340443418:d=2022101406:SPFH:800 mb:21 hour fcst: +450:341779046:d=2022101406:VVEL:800 mb:21 hour fcst: +451:342999287:d=2022101406:DZDT:800 mb:21 hour fcst: +452:344171119:d=2022101406:UGRD:800 mb:21 hour fcst: +453:345102341:d=2022101406:VGRD:800 mb:21 hour fcst: +454:346036712:d=2022101406:ABSV:800 mb:21 hour fcst: +455:346943456:d=2022101406:CLWMR:800 mb:21 hour fcst: +456:347203309:d=2022101406:ICMR:800 mb:21 hour fcst: +457:347540772:d=2022101406:RWMR:800 mb:21 hour fcst: +458:347699541:d=2022101406:SNMR:800 mb:21 hour fcst: +459:347887899:d=2022101406:GRLE:800 mb:21 hour fcst: +460:347951959:d=2022101406:O3MR:800 mb:21 hour fcst: +461:349181748:d=2022101406:HGT:850 mb:21 hour fcst: +462:350077536:d=2022101406:TMP:850 mb:21 hour fcst: +463:350919402:d=2022101406:RH:850 mb:21 hour fcst: +464:351797060:d=2022101406:TCDC:850 mb:21 hour fcst: +465:352292727:d=2022101406:SPFH:850 mb:21 hour fcst: +466:353659256:d=2022101406:VVEL:850 mb:21 hour fcst: +467:354885702:d=2022101406:DZDT:850 mb:21 hour fcst: +468:356058182:d=2022101406:UGRD:850 mb:21 hour fcst: +469:357005249:d=2022101406:VGRD:850 mb:21 hour fcst: +470:357960000:d=2022101406:ABSV:850 mb:21 hour fcst: +471:358901245:d=2022101406:CLWMR:850 mb:21 hour fcst: +472:359283109:d=2022101406:ICMR:850 mb:21 hour fcst: +473:359618760:d=2022101406:RWMR:850 mb:21 hour fcst: +474:359845886:d=2022101406:SNMR:850 mb:21 hour fcst: +475:360030505:d=2022101406:GRLE:850 mb:21 hour fcst: +476:360101226:d=2022101406:O3MR:850 mb:21 hour fcst: +477:361325774:d=2022101406:HGT:900 mb:21 hour fcst: +478:362243913:d=2022101406:TMP:900 mb:21 hour fcst: +479:363097647:d=2022101406:RH:900 mb:21 hour fcst: +480:363970021:d=2022101406:TCDC:900 mb:21 hour fcst: +481:364515987:d=2022101406:SPFH:900 mb:21 hour fcst: +482:365765031:d=2022101406:VVEL:900 mb:21 hour fcst: +483:366989132:d=2022101406:DZDT:900 mb:21 hour fcst: +484:368147376:d=2022101406:UGRD:900 mb:21 hour fcst: +485:369100728:d=2022101406:VGRD:900 mb:21 hour fcst: +486:370067097:d=2022101406:ABSV:900 mb:21 hour fcst: +487:371021462:d=2022101406:CLWMR:900 mb:21 hour fcst: +488:371425949:d=2022101406:ICMR:900 mb:21 hour fcst: +489:371717987:d=2022101406:RWMR:900 mb:21 hour fcst: +490:372008895:d=2022101406:SNMR:900 mb:21 hour fcst: +491:372166128:d=2022101406:GRLE:900 mb:21 hour fcst: +492:372241852:d=2022101406:O3MR:900 mb:21 hour fcst: +493:373438776:d=2022101406:HGT:925 mb:21 hour fcst: +494:374368780:d=2022101406:TMP:925 mb:21 hour fcst: +495:375214891:d=2022101406:RH:925 mb:21 hour fcst: +496:376073261:d=2022101406:TCDC:925 mb:21 hour fcst: +497:376637542:d=2022101406:SPFH:925 mb:21 hour fcst: +498:377881404:d=2022101406:VVEL:925 mb:21 hour fcst: +499:379090099:d=2022101406:DZDT:925 mb:21 hour fcst: +500:380232463:d=2022101406:UGRD:925 mb:21 hour fcst: +501:381181788:d=2022101406:VGRD:925 mb:21 hour fcst: +502:382141854:d=2022101406:ABSV:925 mb:21 hour fcst: +503:383090269:d=2022101406:CLWMR:925 mb:21 hour fcst: +504:383425579:d=2022101406:ICMR:925 mb:21 hour fcst: +505:383711202:d=2022101406:RWMR:925 mb:21 hour fcst: +506:384006422:d=2022101406:SNMR:925 mb:21 hour fcst: +507:384137258:d=2022101406:GRLE:925 mb:21 hour fcst: +508:384197869:d=2022101406:O3MR:925 mb:21 hour fcst: +509:385376276:d=2022101406:HGT:950 mb:21 hour fcst: +510:386319137:d=2022101406:TMP:950 mb:21 hour fcst: +511:387163315:d=2022101406:RH:950 mb:21 hour fcst: +512:388004122:d=2022101406:TCDC:950 mb:21 hour fcst: +513:388474070:d=2022101406:SPFH:950 mb:21 hour fcst: +514:389708787:d=2022101406:VVEL:950 mb:21 hour fcst: +515:390885826:d=2022101406:DZDT:950 mb:21 hour fcst: +516:391993229:d=2022101406:UGRD:950 mb:21 hour fcst: +517:392945092:d=2022101406:VGRD:950 mb:21 hour fcst: +518:393901923:d=2022101406:ABSV:950 mb:21 hour fcst: +519:394844674:d=2022101406:CLWMR:950 mb:21 hour fcst: +520:395065541:d=2022101406:ICMR:950 mb:21 hour fcst: +521:395309061:d=2022101406:RWMR:950 mb:21 hour fcst: +522:395594879:d=2022101406:SNMR:950 mb:21 hour fcst: +523:395699571:d=2022101406:GRLE:950 mb:21 hour fcst: +524:395747779:d=2022101406:O3MR:950 mb:21 hour fcst: +525:396906956:d=2022101406:HINDEX:surface:21 hour fcst: +526:397109642:d=2022101406:HGT:975 mb:21 hour fcst: +527:398069601:d=2022101406:TMP:975 mb:21 hour fcst: +528:398915196:d=2022101406:RH:975 mb:21 hour fcst: +529:399733484:d=2022101406:TCDC:975 mb:21 hour fcst: +530:400074253:d=2022101406:SPFH:975 mb:21 hour fcst: +531:401298446:d=2022101406:VVEL:975 mb:21 hour fcst: +532:402399539:d=2022101406:DZDT:975 mb:21 hour fcst: +533:403427255:d=2022101406:UGRD:975 mb:21 hour fcst: +534:404388831:d=2022101406:VGRD:975 mb:21 hour fcst: +535:405344475:d=2022101406:ABSV:975 mb:21 hour fcst: +536:406281797:d=2022101406:CLWMR:975 mb:21 hour fcst: +537:406406201:d=2022101406:ICMR:975 mb:21 hour fcst: +538:406559547:d=2022101406:RWMR:975 mb:21 hour fcst: +539:406819814:d=2022101406:SNMR:975 mb:21 hour fcst: +540:406877269:d=2022101406:GRLE:975 mb:21 hour fcst: +541:406922514:d=2022101406:O3MR:975 mb:21 hour fcst: +542:408066071:d=2022101406:TMP:1000 mb:21 hour fcst: +543:408918641:d=2022101406:RH:1000 mb:21 hour fcst: +544:409723408:d=2022101406:TCDC:1000 mb:21 hour fcst: +545:409933489:d=2022101406:SPFH:1000 mb:21 hour fcst: +546:411157790:d=2022101406:VVEL:1000 mb:21 hour fcst: +547:412138524:d=2022101406:DZDT:1000 mb:21 hour fcst: +548:413043477:d=2022101406:UGRD:1000 mb:21 hour fcst: +549:414011486:d=2022101406:VGRD:1000 mb:21 hour fcst: +550:414961206:d=2022101406:ABSV:1000 mb:21 hour fcst: +551:415889203:d=2022101406:CLWMR:1000 mb:21 hour fcst: +552:415923667:d=2022101406:ICMR:1000 mb:21 hour fcst: +553:416009747:d=2022101406:RWMR:1000 mb:21 hour fcst: +554:416199475:d=2022101406:SNMR:1000 mb:21 hour fcst: +555:416233315:d=2022101406:GRLE:1000 mb:21 hour fcst: +556:416272628:d=2022101406:O3MR:1000 mb:21 hour fcst: +557:417408511:d=2022101406:MSLET:mean sea level:21 hour fcst: +558:418357369:d=2022101406:HGT:1000 mb:21 hour fcst: +559:419340777:d=2022101406:REFD:4000 m above ground:21 hour fcst: +560:419632389:d=2022101406:REFD:1000 m above ground:21 hour fcst: +561:420410917:d=2022101406:PRES:surface:21 hour fcst: +562:421247238:d=2022101406:HGT:surface:21 hour fcst: +563:421739681:d=2022101406:TMP:surface:21 hour fcst: +564:422301448:d=2022101406:TSOIL:0-0.1 m below ground:21 hour fcst: +565:422715077:d=2022101406:SOILW:0-0.1 m below ground:21 hour fcst: +566:423075286:d=2022101406:SOILL:0-0.1 m below ground:21 hour fcst: +567:423427830:d=2022101406:TSOIL:0.1-0.4 m below ground:21 hour fcst: +568:424003702:d=2022101406:SOILW:0.1-0.4 m below ground:21 hour fcst: +569:424365513:d=2022101406:SOILL:0.1-0.4 m below ground:21 hour fcst: +570:424725892:d=2022101406:TSOIL:0.4-1 m below ground:21 hour fcst: +571:425244168:d=2022101406:SOILW:0.4-1 m below ground:21 hour fcst: +572:425609646:d=2022101406:SOILL:0.4-1 m below ground:21 hour fcst: +573:425973463:d=2022101406:TSOIL:1-2 m below ground:21 hour fcst: +574:426494934:d=2022101406:SOILW:1-2 m below ground:21 hour fcst: +575:426853297:d=2022101406:SOILL:1-2 m below ground:21 hour fcst: +576:427210641:d=2022101406:CNWAT:surface:21 hour fcst: +577:427506791:d=2022101406:WEASD:surface:21 hour fcst: +578:428022471:d=2022101406:SNOD:surface:21 hour fcst: +579:428549602:d=2022101406:PEVPR:surface:21 hour fcst: +580:429076016:d=2022101406:ICETK:surface:21 hour fcst: +581:429159298:d=2022101406:TMP:2 m above ground:21 hour fcst: +582:429664478:d=2022101406:SPFH:2 m above ground:21 hour fcst: +583:430867240:d=2022101406:DPT:2 m above ground:21 hour fcst: +584:431397079:d=2022101406:RH:2 m above ground:21 hour fcst: +585:432180096:d=2022101406:APTMP:2 m above ground:21 hour fcst: +586:432731112:d=2022101406:TMAX:2 m above ground:18-21 hour max fcst: +587:433217491:d=2022101406:TMIN:2 m above ground:18-21 hour min fcst: +588:433717880:d=2022101406:UGRD:10 m above ground:21 hour fcst: +589:434684286:d=2022101406:VGRD:10 m above ground:21 hour fcst: +590:435626759:d=2022101406:ICEG:10 m above mean sea level:21 hour fcst: +591:435649881:d=2022101406:CPOFP:surface:21 hour fcst: +592:436218101:d=2022101406:CPRAT:surface:21 hour fcst: +593:436886134:d=2022101406:PRATE:surface:21 hour fcst: +594:437552317:d=2022101406:CPRAT:surface:18-21 hour ave fcst: +595:438256167:d=2022101406:PRATE:surface:18-21 hour ave fcst: +596:438850184:d=2022101406:APCP:surface:18-21 hour acc fcst: +597:439155575:d=2022101406:APCP:surface:0-21 hour acc fcst: +598:439636618:d=2022101406:ACPCP:surface:18-21 hour acc fcst: +599:439864359:d=2022101406:ACPCP:surface:0-21 hour acc fcst: +600:440232278:d=2022101406:WATR:surface:18-21 hour acc fcst: +601:440550129:d=2022101406:CSNOW:surface:21 hour fcst: +602:440580884:d=2022101406:CICEP:surface:21 hour fcst: +603:440581123:d=2022101406:CFRZR:surface:21 hour fcst: +604:440582233:d=2022101406:CRAIN:surface:21 hour fcst: +605:440693640:d=2022101406:CSNOW:surface:18-21 hour ave fcst: +606:440719182:d=2022101406:CICEP:surface:18-21 hour ave fcst: +607:440719445:d=2022101406:CFRZR:surface:18-21 hour ave fcst: +608:440720686:d=2022101406:CRAIN:surface:18-21 hour ave fcst: +609:440817795:d=2022101406:LHTFL:surface:18-21 hour ave fcst: +610:441736492:d=2022101406:SHTFL:surface:18-21 hour ave fcst: +611:442596647:d=2022101406:GFLUX:surface:18-21 hour ave fcst: +612:443119343:d=2022101406:UFLX:surface:18-21 hour ave fcst: +613:443788360:d=2022101406:VFLX:surface:18-21 hour ave fcst: +614:444435883:d=2022101406:SFCR:surface:21 hour fcst: +615:444929180:d=2022101406:FRICV:surface:21 hour fcst: +616:445876584:d=2022101406:U-GWD:surface:18-21 hour ave fcst: +617:446164747:d=2022101406:V-GWD:surface:18-21 hour ave fcst: +618:446456382:d=2022101406:VEG:surface:21 hour fcst: +619:446777461:d=2022101406:SOTYP:surface:21 hour fcst: +620:447075920:d=2022101406:WILT:surface:21 hour fcst: +621:447437586:d=2022101406:FLDCP:surface:21 hour fcst: +622:447804630:d=2022101406:SUNSD:surface:21 hour fcst: +623:448151617:d=2022101406:LFTX:surface:21 hour fcst: +624:448693883:d=2022101406:CAPE:surface:21 hour fcst: +625:449210647:d=2022101406:CIN:surface:21 hour fcst: +626:449682968:d=2022101406:PWAT:entire atmosphere (considered as a single layer):21 hour fcst: +627:450882193:d=2022101406:CWAT:entire atmosphere (considered as a single layer):21 hour fcst: +628:451946107:d=2022101406:RH:entire atmosphere (considered as a single layer):21 hour fcst: +629:452552663:d=2022101406:TOZNE:entire atmosphere (considered as a single layer):21 hour fcst: +630:453145170:d=2022101406:LCDC:low cloud layer:21 hour fcst: +631:453931848:d=2022101406:LCDC:low cloud layer:18-21 hour ave fcst: +632:454758845:d=2022101406:MCDC:middle cloud layer:21 hour fcst: +633:455337182:d=2022101406:MCDC:middle cloud layer:18-21 hour ave fcst: +634:455971225:d=2022101406:HCDC:high cloud layer:21 hour fcst: +635:456685793:d=2022101406:HCDC:high cloud layer:18-21 hour ave fcst: +636:457493794:d=2022101406:TCDC:entire atmosphere:21 hour fcst: +637:458310355:d=2022101406:TCDC:entire atmosphere:18-21 hour ave fcst: +638:459148421:d=2022101406:HGT:cloud ceiling:21 hour fcst: +639:460383311:d=2022101406:PRES:convective cloud bottom level:21 hour fcst: +640:460925669:d=2022101406:PRES:low cloud bottom level:18-21 hour ave fcst: +641:462225780:d=2022101406:PRES:middle cloud bottom level:18-21 hour ave fcst: +642:463318261:d=2022101406:PRES:high cloud bottom level:18-21 hour ave fcst: +643:464692454:d=2022101406:PRES:convective cloud top level:21 hour fcst: +644:465282790:d=2022101406:PRES:low cloud top level:18-21 hour ave fcst: +645:466590244:d=2022101406:PRES:middle cloud top level:18-21 hour ave fcst: +646:467642097:d=2022101406:PRES:high cloud top level:18-21 hour ave fcst: +647:469028891:d=2022101406:TMP:low cloud top level:18-21 hour ave fcst: +648:469965672:d=2022101406:TMP:middle cloud top level:18-21 hour ave fcst: +649:470786913:d=2022101406:TMP:high cloud top level:18-21 hour ave fcst: +650:471904962:d=2022101406:TCDC:convective cloud layer:21 hour fcst: +651:472622203:d=2022101406:TCDC:boundary layer cloud layer:18-21 hour ave fcst: +652:473409024:d=2022101406:CWORK:entire atmosphere (considered as a single layer):18-21 hour ave fcst: +653:473765463:d=2022101406:DSWRF:surface:18-21 hour ave fcst: +654:474569888:d=2022101406:DLWRF:surface:18-21 hour ave fcst: +655:475524593:d=2022101406:USWRF:surface:18-21 hour ave fcst: +656:476219799:d=2022101406:ULWRF:surface:18-21 hour ave fcst: +657:476915468:d=2022101406:USWRF:top of atmosphere:18-21 hour ave fcst: +658:477736270:d=2022101406:ULWRF:top of atmosphere:18-21 hour ave fcst: +659:478649075:d=2022101406:HLCY:3000-0 m above ground:21 hour fcst: +660:479332385:d=2022101406:USTM:6000-0 m above ground:21 hour fcst: +661:480308891:d=2022101406:VSTM:6000-0 m above ground:21 hour fcst: +662:481275635:d=2022101406:PRES:tropopause:21 hour fcst: +663:482682739:d=2022101406:ICAHT:tropopause:21 hour fcst: +664:484164960:d=2022101406:HGT:tropopause:21 hour fcst: +665:485506451:d=2022101406:TMP:tropopause:21 hour fcst: +666:486483123:d=2022101406:UGRD:tropopause:21 hour fcst: +667:487196228:d=2022101406:VGRD:tropopause:21 hour fcst: +668:487883257:d=2022101406:VWSH:tropopause:21 hour fcst: +669:488440051:d=2022101406:PRES:max wind:21 hour fcst: +670:490034371:d=2022101406:ICAHT:max wind:21 hour fcst: +671:491664687:d=2022101406:HGT:max wind:21 hour fcst: +672:493307323:d=2022101406:UGRD:max wind:21 hour fcst: +673:494020158:d=2022101406:VGRD:max wind:21 hour fcst: +674:494775831:d=2022101406:TMP:max wind:21 hour fcst: +675:496020654:d=2022101406:UGRD:20 m above ground:21 hour fcst: +676:496985110:d=2022101406:VGRD:20 m above ground:21 hour fcst: +677:497929293:d=2022101406:UGRD:30 m above ground:21 hour fcst: +678:498903400:d=2022101406:VGRD:30 m above ground:21 hour fcst: +679:499856495:d=2022101406:UGRD:40 m above ground:21 hour fcst: +680:500831163:d=2022101406:VGRD:40 m above ground:21 hour fcst: +681:501786026:d=2022101406:UGRD:50 m above ground:21 hour fcst: +682:502762370:d=2022101406:VGRD:50 m above ground:21 hour fcst: +683:503723278:d=2022101406:TMP:80 m above ground:21 hour fcst: +684:504571958:d=2022101406:SPFH:80 m above ground:21 hour fcst: +685:505884560:d=2022101406:PRES:80 m above ground:21 hour fcst: +686:506716205:d=2022101406:UGRD:80 m above ground:21 hour fcst: +687:507692780:d=2022101406:VGRD:80 m above ground:21 hour fcst: +688:508656383:d=2022101406:TMP:100 m above ground:21 hour fcst: +689:509502340:d=2022101406:UGRD:100 m above ground:21 hour fcst: +690:510478437:d=2022101406:VGRD:100 m above ground:21 hour fcst: +691:511443458:d=2022101406:TMP:1829 m above mean sea level:21 hour fcst: +692:512339208:d=2022101406:UGRD:1829 m above mean sea level:21 hour fcst: +693:513234894:d=2022101406:VGRD:1829 m above mean sea level:21 hour fcst: +694:514139022:d=2022101406:TMP:2743 m above mean sea level:21 hour fcst: +695:514891451:d=2022101406:UGRD:2743 m above mean sea level:21 hour fcst: +696:515789315:d=2022101406:VGRD:2743 m above mean sea level:21 hour fcst: +697:516689205:d=2022101406:TMP:3658 m above mean sea level:21 hour fcst: +698:517435326:d=2022101406:UGRD:3658 m above mean sea level:21 hour fcst: +699:518341852:d=2022101406:VGRD:3658 m above mean sea level:21 hour fcst: +700:519240534:d=2022101406:HGT:0C isotherm:21 hour fcst: +701:520204539:d=2022101406:RH:0C isotherm:21 hour fcst: +702:521045589:d=2022101406:HGT:highest tropospheric freezing level:21 hour fcst: +703:522002043:d=2022101406:RH:highest tropospheric freezing level:21 hour fcst: +704:522838207:d=2022101406:TMP:30-0 mb above ground:21 hour fcst: +705:523678639:d=2022101406:RH:30-0 mb above ground:21 hour fcst: +706:524470961:d=2022101406:SPFH:30-0 mb above ground:21 hour fcst: +707:525780325:d=2022101406:UGRD:30-0 mb above ground:21 hour fcst: +708:526745865:d=2022101406:VGRD:30-0 mb above ground:21 hour fcst: +709:527703403:d=2022101406:4LFTX:surface:21 hour fcst: +710:528222420:d=2022101406:CAPE:180-0 mb above ground:21 hour fcst: +711:528709390:d=2022101406:CIN:180-0 mb above ground:21 hour fcst: +712:529253702:d=2022101406:HPBL:surface:21 hour fcst: +713:530714157:d=2022101406:RH:0.33-1 sigma layer:21 hour fcst: +714:531441785:d=2022101406:RH:0.44-1 sigma layer:21 hour fcst: +715:532159231:d=2022101406:RH:0.72-0.94 sigma layer:21 hour fcst: +716:532934519:d=2022101406:RH:0.44-0.72 sigma layer:21 hour fcst: +717:533662476:d=2022101406:TMP:0.995 sigma level:21 hour fcst: +718:534525209:d=2022101406:POT:0.995 sigma level:21 hour fcst: +719:535380017:d=2022101406:RH:0.995 sigma level:21 hour fcst: +720:536180604:d=2022101406:UGRD:0.995 sigma level:21 hour fcst: +721:537168085:d=2022101406:VGRD:0.995 sigma level:21 hour fcst: +722:538138198:d=2022101406:VVEL:0.995 sigma level:21 hour fcst: +723:539080499:d=2022101406:CAPE:90-0 mb above ground:21 hour fcst: +724:539530405:d=2022101406:CIN:90-0 mb above ground:21 hour fcst: +725:540059961:d=2022101406:CAPE:255-0 mb above ground:21 hour fcst: +726:540536841:d=2022101406:CIN:255-0 mb above ground:21 hour fcst: +727:540974872:d=2022101406:PLPL:255-0 mb above ground:21 hour fcst: +728:541913327:d=2022101406:LAND:surface:21 hour fcst: +729:541945363:d=2022101406:ICEC:surface:21 hour fcst: +730:542066925:d=2022101406:ALBDO:surface:18-21 hour ave fcst: +731:542636436:d=2022101406:ICETMP:surface:21 hour fcst: +732:542819300:d=2022101406:UGRD:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +733:543442399:d=2022101406:VGRD:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +734:544045455:d=2022101406:TMP:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +735:544656773:d=2022101406:HGT:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +736:545755347:d=2022101406:PRES:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +737:546819210:d=2022101406:VWSH:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +738:547286386:d=2022101406:UGRD:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +739:547934695:d=2022101406:VGRD:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +740:548562202:d=2022101406:TMP:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +741:549191739:d=2022101406:HGT:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +742:550321621:d=2022101406:PRES:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +743:551415171:d=2022101406:VWSH:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: diff --git a/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10 b/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10 new file mode 100644 index 00000000..ce5484d7 Binary files /dev/null and b/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10.idx b/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10.idx new file mode 100644 index 00000000..43c97619 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2022101406:PRMSL:mean sea level:21 hour fcst: +2:986627:d=2022101406:CLWMR:1 hybrid level:21 hour fcst: +3:1071190:d=2022101406:ICMR:1 hybrid level:21 hour fcst: +4:1334374:d=2022101406:RWMR:1 hybrid level:21 hour fcst: +5:1576714:d=2022101406:SNMR:1 hybrid level:21 hour fcst: +6:1669840:d=2022101406:GRLE:1 hybrid level:21 hour fcst: +7:1708612:d=2022101406:REFD:1 hybrid level:21 hour fcst: +8:2515402:d=2022101406:REFD:2 hybrid level:21 hour fcst: +9:3322351:d=2022101406:REFC:entire atmosphere:21 hour fcst: +10:4201577:d=2022101406:VIS:surface:21 hour fcst: +11:4895751:d=2022101406:UGRD:planetary boundary layer:21 hour fcst: diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.idx b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.idx new file mode 100644 index 00000000..f73d07b1 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.idx @@ -0,0 +1,170 @@ +1:0:d=2022101401:REFC:entire atmosphere:anl: +2:464700:d=2022101401:RETOP:cloud top:anl: +3:797270:d=2022101401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:anl: +4:1279418:d=2022101401:VIL:entire atmosphere:anl: +5:1629309:d=2022101401:VIS:surface:anl: +6:3031911:d=2022101401:REFD:1000 m above ground:anl: +7:3324038:d=2022101401:REFD:4000 m above ground:anl: +8:3573815:d=2022101401:REFD:263 K level:anl: +9:3860080:d=2022101401:GUST:surface:anl: +10:5058926:d=2022101401:UGRD:250 mb:anl: +11:5853053:d=2022101401:VGRD:250 mb:anl: +12:6618262:d=2022101401:UGRD:300 mb:anl: +13:7400136:d=2022101401:VGRD:300 mb:anl: +14:8151598:d=2022101401:HGT:500 mb:anl: +15:8885831:d=2022101401:TMP:500 mb:anl: +16:9432910:d=2022101401:DPT:500 mb:anl: +17:10403024:d=2022101401:UGRD:500 mb:anl: +18:10991346:d=2022101401:VGRD:500 mb:anl: +19:11587686:d=2022101401:HGT:700 mb:anl: +20:12305017:d=2022101401:TMP:700 mb:anl: +21:12859067:d=2022101401:DPT:700 mb:anl: +22:13913033:d=2022101401:DZDT:700 mb:anl: +23:14225291:d=2022101401:UGRD:700 mb:anl: +24:14822752:d=2022101401:VGRD:700 mb:anl: +25:15443030:d=2022101401:HGT:850 mb:anl: +26:16150754:d=2022101401:TMP:850 mb:anl: +27:16726305:d=2022101401:DPT:850 mb:anl: +28:17848040:d=2022101401:UGRD:850 mb:anl: +29:18458023:d=2022101401:VGRD:850 mb:anl: +30:19089986:d=2022101401:TMP:925 mb:anl: +31:19688326:d=2022101401:DPT:925 mb:anl: +32:20828612:d=2022101401:UGRD:925 mb:anl: +33:21458121:d=2022101401:VGRD:925 mb:anl: +34:22094352:d=2022101401:TMP:1000 mb:anl: +35:22701465:d=2022101401:DPT:1000 mb:anl: +36:23829721:d=2022101401:UGRD:1000 mb:anl: +37:24453401:d=2022101401:VGRD:1000 mb:anl: +38:25076605:d=2022101401:MAXUVV:100-1000 mb above ground:0-0 day max fcst: +39:25211183:d=2022101401:MAXDVV:100-1000 mb above ground:0-0 day max fcst: +40:25421473:d=2022101401:DZDT:0.5-0.8 sigma layer:0-0 day ave fcst: +41:25589854:d=2022101401:MSLMA:mean sea level:anl: +42:26196823:d=2022101401:HGT:1000 mb:anl: +43:26876848:d=2022101401:MAXREF:1000 m above ground:0-0 day max fcst: +44:27095445:d=2022101401:REFD:263 K level:0-0 day max fcst: +45:27373508:d=2022101401:MXUPHL:5000-2000 m above ground:0-0 day max fcst: +46:27373720:d=2022101401:MNUPHL:5000-2000 m above ground:0-0 day min fcst: +47:27373932:d=2022101401:MXUPHL:2000-0 m above ground:0-0 day max fcst: +48:27374144:d=2022101401:MNUPHL:2000-0 m above ground:0-0 day min fcst: +49:27374356:d=2022101401:MXUPHL:3000-0 m above ground:0-0 day max fcst: +50:27374568:d=2022101401:MNUPHL:3000-0 m above ground:0-0 day min fcst: +51:27374780:d=2022101401:RELV:2000-0 m above ground:0-0 day max fcst: +52:27374992:d=2022101401:RELV:1000-0 m above ground:0-0 day max fcst: +53:27375204:d=2022101401:HAIL:entire atmosphere:0-0 day max fcst: +54:27614124:d=2022101401:HAIL:0.1 sigma level:0-0 day max fcst: +55:27624989:d=2022101401:HAIL:surface:0-0 day max fcst: +56:27625201:d=2022101401:TCOLG:entire atmosphere (considered as a single layer):0-0 day max fcst: +57:27652136:d=2022101401:LTNGSD:1 m above ground:anl: +58:27652324:d=2022101401:LTNGSD:2 m above ground:anl: +59:27737182:d=2022101401:LTNG:entire atmosphere:anl: +60:27737370:d=2022101401:UGRD:80 m above ground:anl: +61:28866120:d=2022101401:VGRD:80 m above ground:anl: +62:29990913:d=2022101401:PRES:surface:anl: +63:31500434:d=2022101401:HGT:surface:anl: +64:33654129:d=2022101401:TMP:surface:anl: +65:34878729:d=2022101401:ASNOW:surface:0-0 day acc fcst: +66:34878941:d=2022101401:MSTAV:0 m underground:anl: +67:36223738:d=2022101401:CNWAT:surface:anl: +68:36301236:d=2022101401:WEASD:surface:anl: +69:36325558:d=2022101401:SNOWC:surface:anl: +70:36345003:d=2022101401:SNOD:surface:anl: +71:36362081:d=2022101401:TMP:2 m above ground:anl: +72:37527637:d=2022101401:POT:2 m above ground:anl: +73:38635438:d=2022101401:SPFH:2 m above ground:anl: +74:40130169:d=2022101401:DPT:2 m above ground:anl: +75:41313369:d=2022101401:RH:2 m above ground:anl: +76:42828342:d=2022101401:MASSDEN:8 m above ground:anl: +77:43192837:d=2022101401:UGRD:10 m above ground:anl: +78:45574452:d=2022101401:VGRD:10 m above ground:anl: +79:47956067:d=2022101401:WIND:10 m above ground:0-0 day max fcst: +80:49153909:d=2022101401:MAXUW:10 m above ground:0-0 day max fcst: +81:50345853:d=2022101401:MAXVW:10 m above ground:0-0 day max fcst: +82:51496752:d=2022101401:CPOFP:surface:anl: +83:51496940:d=2022101401:PRATE:surface:anl: +84:51497128:d=2022101401:APCP:surface:0-0 day acc fcst: +85:51497340:d=2022101401:WEASD:surface:0-0 day acc fcst: +86:51497552:d=2022101401:FROZR:surface:0-0 day acc fcst: +87:51497764:d=2022101401:FRZR:surface:0-0 day acc fcst: +88:51499493:d=2022101401:SSRUN:surface:0-0 day acc fcst: +89:51499705:d=2022101401:BGRUN:surface:0-0 day acc fcst: +90:51499917:d=2022101401:CSNOW:surface:anl: +91:51500105:d=2022101401:CICEP:surface:anl: +92:51500293:d=2022101401:CFRZR:surface:anl: +93:51500481:d=2022101401:CRAIN:surface:anl: +94:51500669:d=2022101401:SFCR:surface:anl: +95:53406318:d=2022101401:FRICV:surface:anl: +96:54420561:d=2022101401:SHTFL:surface:anl: +97:55543177:d=2022101401:LHTFL:surface:anl: +98:56625664:d=2022101401:VEG:surface:anl: +99:58071925:d=2022101401:var discipline=2 center=7 local_table=1 parmcat=0 parm=231:surface:anl: +100:59188062:d=2022101401:var discipline=2 center=7 local_table=1 parmcat=0 parm=232:surface:anl: +101:60064996:d=2022101401:LAI:surface:anl: +102:60839373:d=2022101401:GFLUX:surface:anl: +103:61414201:d=2022101401:VGTYP:surface:anl: +104:62195380:d=2022101401:LFTX:500-1000 mb:anl: +105:63121072:d=2022101401:CAPE:surface:anl: +106:63613994:d=2022101401:CIN:surface:anl: +107:63876006:d=2022101401:PWAT:entire atmosphere (considered as a single layer):anl: +108:64783912:d=2022101401:AOTK:entire atmosphere (considered as a single layer):anl: +109:64784100:d=2022101401:COLMD:entire atmosphere (considered as a single layer):anl: +110:65276443:d=2022101401:TCOLW:entire atmosphere:anl: +111:66249348:d=2022101401:TCOLI:entire atmosphere:anl: +112:67109731:d=2022101401:TCDC:boundary layer cloud layer:anl: +113:67672649:d=2022101401:LCDC:low cloud layer:anl: +114:68299254:d=2022101401:MCDC:middle cloud layer:anl: +115:68635791:d=2022101401:HCDC:high cloud layer:anl: +116:68917612:d=2022101401:TCDC:entire atmosphere:anl: +117:69566611:d=2022101401:HGT:cloud ceiling:anl: +118:70595777:d=2022101401:HGT:cloud base:anl: +119:72458332:d=2022101401:PRES:cloud base:anl: +120:73401628:d=2022101401:PRES:cloud top:anl: +121:74037702:d=2022101401:HGT:cloud top:anl: +122:74944390:d=2022101401:ULWRF:top of atmosphere:anl: +123:76799204:d=2022101401:DSWRF:surface:anl: +124:77176562:d=2022101401:DLWRF:surface:anl: +125:79101732:d=2022101401:USWRF:surface:anl: +126:79345954:d=2022101401:ULWRF:surface:anl: +127:80946255:d=2022101401:CFNSF:surface:anl: +128:80949779:d=2022101401:VBDSF:surface:anl: +129:81330793:d=2022101401:VDDSF:surface:anl: +130:81829061:d=2022101401:USWRF:top of atmosphere:anl: +131:82183499:d=2022101401:HLCY:3000-0 m above ground:anl: +132:83324440:d=2022101401:HLCY:1000-0 m above ground:anl: +133:85189359:d=2022101401:USTM:0-6000 m above ground:anl: +134:86167889:d=2022101401:VSTM:0-6000 m above ground:anl: +135:87147965:d=2022101401:VUCSH:0-1000 m above ground:anl: +136:89529580:d=2022101401:VVCSH:0-1000 m above ground:anl: +137:91911195:d=2022101401:VUCSH:0-6000 m above ground:anl: +138:94530952:d=2022101401:VVCSH:0-6000 m above ground:anl: +139:97150709:d=2022101401:HGT:0C isotherm:anl: +140:99073414:d=2022101401:RH:0C isotherm:anl: +141:99758884:d=2022101401:PRES:0C isotherm:anl: +142:100470470:d=2022101401:HGT:highest tropospheric freezing level:anl: +143:101211423:d=2022101401:RH:highest tropospheric freezing level:anl: +144:101893927:d=2022101401:PRES:highest tropospheric freezing level:anl: +145:102600075:d=2022101401:HGT:263 K level:anl: +146:103272054:d=2022101401:HGT:253 K level:anl: +147:103895875:d=2022101401:4LFTX:180-0 mb above ground:anl: +148:104812154:d=2022101401:CAPE:180-0 mb above ground:anl: +149:105302746:d=2022101401:CIN:180-0 mb above ground:anl: +150:105541725:d=2022101401:HPBL:surface:anl: +151:108514309:d=2022101401:HGT:level of adiabatic condensation from sfc:anl: +152:111393934:d=2022101401:CAPE:90-0 mb above ground:anl: +153:111768089:d=2022101401:CIN:90-0 mb above ground:anl: +154:112001483:d=2022101401:CAPE:255-0 mb above ground:anl: +155:112515612:d=2022101401:CIN:255-0 mb above ground:anl: +156:112771084:d=2022101401:HGT:equilibrium level:anl: +157:115075666:d=2022101401:PLPL:255-0 mb above ground:anl: +158:116228736:d=2022101401:CAPE:0-3000 m above ground:anl: +159:116985258:d=2022101401:HGT:level of free convection:anl: +160:119703278:d=2022101401:var discipline=0 center=7 local_table=1 parmcat=7 parm=204:surface:anl: +161:120520311:d=2022101401:var discipline=0 center=7 local_table=1 parmcat=7 parm=206:0-500 m above ground:anl: +162:122621569:d=2022101401:LAYTH:261 K level - 256 K level:anl: +163:123921507:d=2022101401:var discipline=0 center=7 local_table=1 parmcat=7 parm=205:0-3000 m above ground:anl: +164:124663817:d=2022101401:RHPW:entire atmosphere:anl: +165:125792368:d=2022101401:LAND:surface:anl: +166:125842844:d=2022101401:ICEC:surface:anl: +167:125843077:d=2022101401:SBT123:top of atmosphere:anl: +168:127436698:d=2022101401:SBT124:top of atmosphere:anl: +169:129136789:d=2022101401:SBT113:top of atmosphere:anl: +170:130576022:d=2022101401:SBT114:top of atmosphere:anl: diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10 b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10 new file mode 100644 index 00000000..bfd0d338 Binary files /dev/null and b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx new file mode 100644 index 00000000..ca5d6140 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2022101401:REFC:entire atmosphere:anl: +2:464700:d=2022101401:RETOP:cloud top:anl: +3:797270:d=2022101401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:anl: +4:1279418:d=2022101401:VIL:entire atmosphere:anl: +5:1629309:d=2022101401:VIS:surface:anl: +6:3031911:d=2022101401:REFD:1000 m above ground:anl: +7:3324038:d=2022101401:REFD:4000 m above ground:anl: +8:3573815:d=2022101401:REFD:263 K level:anl: +9:3860080:d=2022101401:GUST:surface:anl: +10:5058926:d=2022101401:UGRD:250 mb:anl: +11:5853053:d=2022101401:VGRD:250 mb:anl: diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.idx b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.idx new file mode 100644 index 00000000..568a3b20 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.idx @@ -0,0 +1,49 @@ +1:0:d=2022101401:REFC:entire atmosphere:anl: +2:464700:d=2022101401:RETOP:cloud top:anl: +3:797270:d=2022101401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:anl: +4:1279418:d=2022101401:VIL:entire atmosphere:anl: +5:1629309:d=2022101401:VIS:surface:anl: +6:3031911:d=2022101401:REFD:1000 m above ground:anl: +7:3324038:d=2022101401:REFD:4000 m above ground:anl: +8:3573815:d=2022101401:GUST:surface:anl: +9:4772661:d=2022101401:UPHL:5000-2000 m above ground:anl: +10:4842120:d=2022101401:UGRD:80 m above ground:anl: +11:5970870:d=2022101401:VGRD:80 m above ground:anl: +12:7095663:d=2022101401:PRES:surface:anl: +13:8605184:d=2022101401:HGT:surface:anl: +14:10758879:d=2022101401:TMP:2 m above ground:anl: +15:11924435:d=2022101401:SPFH:2 m above ground:anl: +16:13419166:d=2022101401:DPT:2 m above ground:anl: +17:14602366:d=2022101401:UGRD:10 m above ground:anl: +18:16983981:d=2022101401:VGRD:10 m above ground:anl: +19:19365596:d=2022101401:WIND:10 m above ground:0-0 day ave fcst: +20:21181306:d=2022101401:UGRD:10 m above ground:0-0 day ave fcst: +21:22994362:d=2022101401:VGRD:10 m above ground:0-0 day ave fcst: +22:24756729:d=2022101401:DSWRF:surface:0-0 day ave fcst: +23:24996008:d=2022101401:VBDSF:surface:0-0 day ave fcst: +24:25267157:d=2022101401:CPOFP:surface:anl: +25:25267345:d=2022101401:PRATE:surface:anl: +26:25267533:d=2022101401:APCP:surface:0-0 day acc fcst: +27:25267745:d=2022101401:WEASD:surface:0-0 day acc fcst: +28:25267957:d=2022101401:FROZR:surface:0-0 day acc fcst: +29:25268169:d=2022101401:CSNOW:surface:anl: +30:25268357:d=2022101401:CICEP:surface:anl: +31:25268545:d=2022101401:CFRZR:surface:anl: +32:25268733:d=2022101401:CRAIN:surface:anl: +33:25268921:d=2022101401:TCOLW:entire atmosphere:anl: +34:26241826:d=2022101401:TCOLI:entire atmosphere:anl: +35:27102209:d=2022101401:HGT:cloud ceiling:anl: +36:28131375:d=2022101401:HGT:cloud base:anl: +37:29993930:d=2022101401:HGT:cloud top:anl: +38:30900618:d=2022101401:ULWRF:top of atmosphere:anl: +39:32755432:d=2022101401:DSWRF:surface:anl: +40:33132790:d=2022101401:DLWRF:surface:anl: +41:35057960:d=2022101401:USWRF:surface:anl: +42:35302182:d=2022101401:ULWRF:surface:anl: +43:36902483:d=2022101401:VBDSF:surface:anl: +44:37283497:d=2022101401:VDDSF:surface:anl: +45:37781765:d=2022101401:USWRF:top of atmosphere:anl: +46:38136203:d=2022101401:SBT123:top of atmosphere:anl: +47:39729824:d=2022101401:SBT124:top of atmosphere:anl: +48:41429915:d=2022101401:SBT113:top of atmosphere:anl: +49:42869148:d=2022101401:SBT114:top of atmosphere:anl: diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10 b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10 new file mode 100644 index 00000000..3ab82af6 Binary files /dev/null and b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx new file mode 100644 index 00000000..099f66d7 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2022101401:REFC:entire atmosphere:anl: +2:464700:d=2022101401:RETOP:cloud top:anl: +3:797270:d=2022101401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:anl: +4:1279418:d=2022101401:VIL:entire atmosphere:anl: +5:1629309:d=2022101401:VIS:surface:anl: +6:3031911:d=2022101401:REFD:1000 m above ground:anl: +7:3324038:d=2022101401:REFD:4000 m above ground:anl: +8:3573815:d=2022101401:GUST:surface:anl: +9:4772661:d=2022101401:UPHL:5000-2000 m above ground:anl: +10:4842120:d=2022101401:UGRD:80 m above ground:anl: +11:5970870:d=2022101401:VGRD:80 m above ground:anl: diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.idx b/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.idx new file mode 100644 index 00000000..c9c23dc3 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.idx @@ -0,0 +1,196 @@ +1:0:d=2022101403:REFC:entire atmosphere:495 min fcst: +2:673634:d=2022101403:RETOP:cloud top:495 min fcst: +3:972668:d=2022101403:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:495 min fcst: +4:1595732:d=2022101403:VIL:entire atmosphere:495 min fcst: +5:2037511:d=2022101403:VIS:surface:495 min fcst: +6:3618808:d=2022101403:REFD:1000 m above ground:495 min fcst: +7:4005177:d=2022101403:REFD:4000 m above ground:495 min fcst: +8:4246364:d=2022101403:GUST:surface:495 min fcst: +9:5596949:d=2022101403:UPHL:5000-2000 m above ground:495 min fcst: +10:5614214:d=2022101403:UGRD:80 m above ground:495 min fcst: +11:6858508:d=2022101403:VGRD:80 m above ground:495 min fcst: +12:8116521:d=2022101403:PRES:surface:495 min fcst: +13:9630638:d=2022101403:HGT:surface:495 min fcst: +14:11784333:d=2022101403:TMP:2 m above ground:495 min fcst: +15:13090745:d=2022101403:SPFH:2 m above ground:495 min fcst: +16:14625180:d=2022101403:DPT:2 m above ground:495 min fcst: +17:15855578:d=2022101403:UGRD:10 m above ground:495 min fcst: +18:18237193:d=2022101403:VGRD:10 m above ground:495 min fcst: +19:20618808:d=2022101403:WIND:10 m above ground:490-495 min ave fcst: +20:22620869:d=2022101403:UGRD:10 m above ground:490-495 min ave fcst: +21:24617314:d=2022101403:VGRD:10 m above ground:490-495 min ave fcst: +22:26565126:d=2022101403:DSWRF:surface:480-495 min ave fcst: +23:26724399:d=2022101403:VBDSF:surface:480-495 min ave fcst: +24:26792805:d=2022101403:CPOFP:surface:495 min fcst: +25:26982910:d=2022101403:PRATE:surface:495 min fcst: +26:27095522:d=2022101403:APCP:surface:480-495 min acc fcst: +27:27538734:d=2022101403:WEASD:surface:480-495 min acc fcst: +28:27606638:d=2022101403:FROZR:surface:480-495 min acc fcst: +29:27649292:d=2022101403:CSNOW:surface:495 min fcst: +30:27659279:d=2022101403:CICEP:surface:495 min fcst: +31:27660211:d=2022101403:CFRZR:surface:495 min fcst: +32:27660901:d=2022101403:CRAIN:surface:495 min fcst: +33:27759779:d=2022101403:TCOLW:entire atmosphere:495 min fcst: +34:28718272:d=2022101403:TCOLI:entire atmosphere:495 min fcst: +35:29751371:d=2022101403:HGT:cloud ceiling:495 min fcst: +36:31278267:d=2022101403:HGT:cloud base:495 min fcst: +37:33495356:d=2022101403:HGT:cloud top:495 min fcst: +38:34773442:d=2022101403:ULWRF:top of atmosphere:495 min fcst: +39:36715679:d=2022101403:DSWRF:surface:495 min fcst: +40:36953107:d=2022101403:DLWRF:surface:495 min fcst: +41:38987587:d=2022101403:USWRF:surface:495 min fcst: +42:39090855:d=2022101403:ULWRF:surface:495 min fcst: +43:40751440:d=2022101403:VBDSF:surface:495 min fcst: +44:40850636:d=2022101403:VDDSF:surface:495 min fcst: +45:41086636:d=2022101403:USWRF:top of atmosphere:495 min fcst: +46:41382580:d=2022101403:SBT123:top of atmosphere:495 min fcst: +47:42951006:d=2022101403:SBT124:top of atmosphere:495 min fcst: +48:44727205:d=2022101403:SBT113:top of atmosphere:495 min fcst: +49:46131451:d=2022101403:SBT114:top of atmosphere:495 min fcst: +50:47829085:d=2022101403:REFC:entire atmosphere:510 min fcst: +51:48501599:d=2022101403:RETOP:cloud top:510 min fcst: +52:48800295:d=2022101403:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:510 min fcst: +53:49423399:d=2022101403:VIL:entire atmosphere:510 min fcst: +54:49864323:d=2022101403:VIS:surface:510 min fcst: +55:51447390:d=2022101403:REFD:1000 m above ground:510 min fcst: +56:51832587:d=2022101403:REFD:4000 m above ground:510 min fcst: +57:52075634:d=2022101403:GUST:surface:510 min fcst: +58:53427824:d=2022101403:UPHL:5000-2000 m above ground:510 min fcst: +59:53444578:d=2022101403:UGRD:80 m above ground:510 min fcst: +60:54690344:d=2022101403:VGRD:80 m above ground:510 min fcst: +61:55950617:d=2022101403:PRES:surface:510 min fcst: +62:57465695:d=2022101403:HGT:surface:510 min fcst: +63:59619390:d=2022101403:TMP:2 m above ground:510 min fcst: +64:60926997:d=2022101403:SPFH:2 m above ground:510 min fcst: +65:62462382:d=2022101403:DPT:2 m above ground:510 min fcst: +66:63693338:d=2022101403:UGRD:10 m above ground:510 min fcst: +67:66074953:d=2022101403:VGRD:10 m above ground:510 min fcst: +68:68456568:d=2022101403:WIND:10 m above ground:505-510 min ave fcst: +69:70459738:d=2022101403:UGRD:10 m above ground:505-510 min ave fcst: +70:72458224:d=2022101403:VGRD:10 m above ground:505-510 min ave fcst: +71:74408011:d=2022101403:DSWRF:surface:495-510 min ave fcst: +72:74597378:d=2022101403:VBDSF:surface:495-510 min ave fcst: +73:74738075:d=2022101403:CPOFP:surface:510 min fcst: +74:74929724:d=2022101403:PRATE:surface:510 min fcst: +75:75042827:d=2022101403:APCP:surface:495-510 min acc fcst: +76:75486666:d=2022101403:WEASD:surface:495-510 min acc fcst: +77:75556306:d=2022101403:FROZR:surface:495-510 min acc fcst: +78:75598901:d=2022101403:CSNOW:surface:510 min fcst: +79:75608849:d=2022101403:CICEP:surface:510 min fcst: +80:75609796:d=2022101403:CFRZR:surface:510 min fcst: +81:75610502:d=2022101403:CRAIN:surface:510 min fcst: +82:75710614:d=2022101403:TCOLW:entire atmosphere:510 min fcst: +83:76658554:d=2022101403:TCOLI:entire atmosphere:510 min fcst: +84:77801006:d=2022101403:HGT:cloud ceiling:510 min fcst: +85:79326165:d=2022101403:HGT:cloud base:510 min fcst: +86:81549850:d=2022101403:HGT:cloud top:510 min fcst: +87:82825713:d=2022101403:ULWRF:top of atmosphere:510 min fcst: +88:84769761:d=2022101403:DSWRF:surface:510 min fcst: +89:85096004:d=2022101403:DLWRF:surface:510 min fcst: +90:87134783:d=2022101403:USWRF:surface:510 min fcst: +91:87335708:d=2022101403:ULWRF:surface:510 min fcst: +92:88996714:d=2022101403:VBDSF:surface:510 min fcst: +93:89199114:d=2022101403:VDDSF:surface:510 min fcst: +94:89523849:d=2022101403:USWRF:top of atmosphere:510 min fcst: +95:89871089:d=2022101403:SBT123:top of atmosphere:510 min fcst: +96:91438043:d=2022101403:SBT124:top of atmosphere:510 min fcst: +97:93215897:d=2022101403:SBT113:top of atmosphere:510 min fcst: +98:94619783:d=2022101403:SBT114:top of atmosphere:510 min fcst: +99:96318685:d=2022101403:REFC:entire atmosphere:525 min fcst: +100:96989544:d=2022101403:RETOP:cloud top:525 min fcst: +101:97284841:d=2022101403:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:525 min fcst: +102:97906088:d=2022101403:VIL:entire atmosphere:525 min fcst: +103:98350739:d=2022101403:VIS:surface:525 min fcst: +104:99935832:d=2022101403:REFD:1000 m above ground:525 min fcst: +105:100319385:d=2022101403:REFD:4000 m above ground:525 min fcst: +106:100556922:d=2022101403:GUST:surface:525 min fcst: +107:101910866:d=2022101403:UPHL:5000-2000 m above ground:525 min fcst: +108:101928630:d=2022101403:UGRD:80 m above ground:525 min fcst: +109:103176053:d=2022101403:VGRD:80 m above ground:525 min fcst: +110:104436796:d=2022101403:PRES:surface:525 min fcst: +111:105949813:d=2022101403:HGT:surface:525 min fcst: +112:108103508:d=2022101403:TMP:2 m above ground:525 min fcst: +113:109412617:d=2022101403:SPFH:2 m above ground:525 min fcst: +114:110947474:d=2022101403:DPT:2 m above ground:525 min fcst: +115:112178099:d=2022101403:UGRD:10 m above ground:525 min fcst: +116:114559714:d=2022101403:VGRD:10 m above ground:525 min fcst: +117:116941329:d=2022101403:WIND:10 m above ground:520-525 min ave fcst: +118:118946403:d=2022101403:UGRD:10 m above ground:520-525 min ave fcst: +119:120945435:d=2022101403:VGRD:10 m above ground:520-525 min ave fcst: +120:122896416:d=2022101403:DSWRF:surface:510-525 min ave fcst: +121:123183890:d=2022101403:VBDSF:surface:510-525 min ave fcst: +122:123443025:d=2022101403:CPOFP:surface:525 min fcst: +123:123633943:d=2022101403:PRATE:surface:525 min fcst: +124:123746283:d=2022101403:APCP:surface:510-525 min acc fcst: +125:124187493:d=2022101403:WEASD:surface:510-525 min acc fcst: +126:124256608:d=2022101403:FROZR:surface:510-525 min acc fcst: +127:124294596:d=2022101403:CSNOW:surface:525 min fcst: +128:124305079:d=2022101403:CICEP:surface:525 min fcst: +129:124305922:d=2022101403:CFRZR:surface:525 min fcst: +130:124306628:d=2022101403:CRAIN:surface:525 min fcst: +131:124407631:d=2022101403:TCOLW:entire atmosphere:525 min fcst: +132:125687061:d=2022101403:TCOLI:entire atmosphere:525 min fcst: +133:126728851:d=2022101403:HGT:cloud ceiling:525 min fcst: +134:128253339:d=2022101403:HGT:cloud base:525 min fcst: +135:130484038:d=2022101403:HGT:cloud top:525 min fcst: +136:131758011:d=2022101403:ULWRF:top of atmosphere:525 min fcst: +137:133703941:d=2022101403:DSWRF:surface:525 min fcst: +138:134179515:d=2022101403:DLWRF:surface:525 min fcst: +139:136220645:d=2022101403:USWRF:surface:525 min fcst: +140:136535206:d=2022101403:ULWRF:surface:525 min fcst: +141:138196520:d=2022101403:VBDSF:surface:525 min fcst: +142:138567964:d=2022101403:VDDSF:surface:525 min fcst: +143:139040416:d=2022101403:USWRF:top of atmosphere:525 min fcst: +144:139526014:d=2022101403:SBT123:top of atmosphere:525 min fcst: +145:141092243:d=2022101403:SBT124:top of atmosphere:525 min fcst: +146:142872229:d=2022101403:SBT113:top of atmosphere:525 min fcst: +147:144274013:d=2022101403:SBT114:top of atmosphere:525 min fcst: +148:145973131:d=2022101403:REFC:entire atmosphere:540 min fcst: +149:146644329:d=2022101403:RETOP:cloud top:540 min fcst: +150:146938301:d=2022101403:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:540 min fcst: +151:147558637:d=2022101403:VIL:entire atmosphere:540 min fcst: +152:147934594:d=2022101403:VIS:surface:540 min fcst: +153:149522932:d=2022101403:REFD:1000 m above ground:540 min fcst: +154:149905873:d=2022101403:REFD:4000 m above ground:540 min fcst: +155:150143425:d=2022101403:GUST:surface:540 min fcst: +156:151498652:d=2022101403:UPHL:5000-2000 m above ground:540 min fcst: +157:151515885:d=2022101403:UGRD:80 m above ground:540 min fcst: +158:152764492:d=2022101403:VGRD:80 m above ground:540 min fcst: +159:154027592:d=2022101403:PRES:surface:540 min fcst: +160:155542300:d=2022101403:HGT:surface:540 min fcst: +161:157695995:d=2022101403:TMP:2 m above ground:540 min fcst: +162:159004446:d=2022101403:SPFH:2 m above ground:540 min fcst: +163:160538421:d=2022101403:DPT:2 m above ground:540 min fcst: +164:161768763:d=2022101403:UGRD:10 m above ground:540 min fcst: +165:164150378:d=2022101403:VGRD:10 m above ground:540 min fcst: +166:166531993:d=2022101403:WIND:10 m above ground:535-540 min ave fcst: +167:168537899:d=2022101403:UGRD:10 m above ground:535-540 min ave fcst: +168:170536839:d=2022101403:VGRD:10 m above ground:535-540 min ave fcst: +169:172488938:d=2022101403:DSWRF:surface:525-540 min ave fcst: +170:172857132:d=2022101403:VBDSF:surface:525-540 min ave fcst: +171:173241031:d=2022101403:CPOFP:surface:540 min fcst: +172:173432480:d=2022101403:PRATE:surface:540 min fcst: +173:173544375:d=2022101403:APCP:surface:525-540 min acc fcst: +174:173984939:d=2022101403:WEASD:surface:525-540 min acc fcst: +175:174053376:d=2022101403:FROZR:surface:525-540 min acc fcst: +176:174089958:d=2022101403:CSNOW:surface:540 min fcst: +177:174100128:d=2022101403:CICEP:surface:540 min fcst: +178:174100870:d=2022101403:CFRZR:surface:540 min fcst: +179:174101604:d=2022101403:CRAIN:surface:540 min fcst: +180:174202842:d=2022101403:TCOLW:entire atmosphere:540 min fcst: +181:175164551:d=2022101403:TCOLI:entire atmosphere:540 min fcst: +182:176212373:d=2022101403:HGT:cloud ceiling:540 min fcst: +183:177736767:d=2022101403:HGT:cloud base:540 min fcst: +184:179979830:d=2022101403:HGT:cloud top:540 min fcst: +185:181254057:d=2022101403:ULWRF:top of atmosphere:540 min fcst: +186:183202706:d=2022101403:DSWRF:surface:540 min fcst: +187:183816564:d=2022101403:DLWRF:surface:540 min fcst: +188:185860257:d=2022101403:USWRF:surface:540 min fcst: +189:186285769:d=2022101403:ULWRF:surface:540 min fcst: +190:187948123:d=2022101403:VBDSF:surface:540 min fcst: +191:188504417:d=2022101403:VDDSF:surface:540 min fcst: +192:189109966:d=2022101403:USWRF:top of atmosphere:540 min fcst: +193:189727686:d=2022101403:SBT123:top of atmosphere:540 min fcst: +194:191293817:d=2022101403:SBT124:top of atmosphere:540 min fcst: +195:193075662:d=2022101403:SBT113:top of atmosphere:540 min fcst: +196:194477548:d=2022101403:SBT114:top of atmosphere:540 min fcst: diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10 b/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10 new file mode 100644 index 00000000..66e05991 Binary files /dev/null and b/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10.idx b/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10.idx new file mode 100644 index 00000000..94623f45 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2022101403:REFC:entire atmosphere:495 min fcst: +2:673634:d=2022101403:RETOP:cloud top:495 min fcst: +3:972668:d=2022101403:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:495 min fcst: +4:1595732:d=2022101403:VIL:entire atmosphere:495 min fcst: +5:2037511:d=2022101403:VIS:surface:495 min fcst: +6:3618808:d=2022101403:REFD:1000 m above ground:495 min fcst: +7:4005177:d=2022101403:REFD:4000 m above ground:495 min fcst: +8:4246364:d=2022101403:GUST:surface:495 min fcst: +9:5596949:d=2022101403:UPHL:5000-2000 m above ground:495 min fcst: +10:5614214:d=2022101403:UGRD:80 m above ground:495 min fcst: +11:6858508:d=2022101403:VGRD:80 m above ground:495 min fcst: diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.idx b/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.idx new file mode 100644 index 00000000..dc4a45c9 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.idx @@ -0,0 +1,173 @@ +1:0:d=2022101409:REFC:entire atmosphere:5 hour fcst: +2:639682:d=2022101409:RETOP:cloud top:5 hour fcst: +3:890939:d=2022101409:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:5 hour fcst: +4:1466962:d=2022101409:VIL:entire atmosphere:5 hour fcst: +5:1870785:d=2022101409:VIS:surface:5 hour fcst: +6:3461593:d=2022101409:REFD:1000 m above ground:5 hour fcst: +7:3826461:d=2022101409:REFD:4000 m above ground:5 hour fcst: +8:4020514:d=2022101409:REFD:263 K level:5 hour fcst: +9:4235488:d=2022101409:GUST:surface:5 hour fcst: +10:5541169:d=2022101409:UGRD:250 mb:5 hour fcst: +11:6311987:d=2022101409:VGRD:250 mb:5 hour fcst: +12:7045386:d=2022101409:UGRD:300 mb:5 hour fcst: +13:7820805:d=2022101409:VGRD:300 mb:5 hour fcst: +14:8550419:d=2022101409:HGT:500 mb:5 hour fcst: +15:9248105:d=2022101409:TMP:500 mb:5 hour fcst: +16:9799006:d=2022101409:DPT:500 mb:5 hour fcst: +17:10717635:d=2022101409:UGRD:500 mb:5 hour fcst: +18:11312553:d=2022101409:VGRD:500 mb:5 hour fcst: +19:11904724:d=2022101409:HGT:700 mb:5 hour fcst: +20:12573784:d=2022101409:TMP:700 mb:5 hour fcst: +21:13136778:d=2022101409:DPT:700 mb:5 hour fcst: +22:14167209:d=2022101409:DZDT:700 mb:5 hour fcst: +23:15141886:d=2022101409:UGRD:700 mb:5 hour fcst: +24:15738696:d=2022101409:VGRD:700 mb:5 hour fcst: +25:16346855:d=2022101409:HGT:850 mb:5 hour fcst: +26:17058946:d=2022101409:TMP:850 mb:5 hour fcst: +27:17665156:d=2022101409:DPT:850 mb:5 hour fcst: +28:18824925:d=2022101409:UGRD:850 mb:5 hour fcst: +29:19436207:d=2022101409:VGRD:850 mb:5 hour fcst: +30:20073907:d=2022101409:TMP:925 mb:5 hour fcst: +31:20697799:d=2022101409:DPT:925 mb:5 hour fcst: +32:21909209:d=2022101409:UGRD:925 mb:5 hour fcst: +33:22528058:d=2022101409:VGRD:925 mb:5 hour fcst: +34:23167488:d=2022101409:TMP:1000 mb:5 hour fcst: +35:23826908:d=2022101409:DPT:1000 mb:5 hour fcst: +36:25028346:d=2022101409:UGRD:1000 mb:5 hour fcst: +37:25659320:d=2022101409:VGRD:1000 mb:5 hour fcst: +38:26291374:d=2022101409:MAXUVV:100-1000 mb above ground:4-5 hour max fcst: +39:27080774:d=2022101409:MAXDVV:100-1000 mb above ground:4-5 hour max fcst: +40:27838211:d=2022101409:DZDT:0.5-0.8 sigma layer:4-5 hour ave fcst: +41:28522157:d=2022101409:MSLMA:mean sea level:5 hour fcst: +42:29133363:d=2022101409:HGT:1000 mb:5 hour fcst: +43:29827893:d=2022101409:MAXREF:1000 m above ground:4-5 hour max fcst: +44:30294789:d=2022101409:REFD:263 K level:4-5 hour max fcst: +45:30559294:d=2022101409:MXUPHL:5000-2000 m above ground:4-5 hour max fcst: +46:30632363:d=2022101409:MNUPHL:5000-2000 m above ground:4-5 hour min fcst: +47:30701648:d=2022101409:MXUPHL:2000-0 m above ground:4-5 hour max fcst: +48:30769623:d=2022101409:MNUPHL:2000-0 m above ground:4-5 hour min fcst: +49:30966719:d=2022101409:MXUPHL:3000-0 m above ground:4-5 hour max fcst: +50:31041174:d=2022101409:MNUPHL:3000-0 m above ground:4-5 hour min fcst: +51:31093848:d=2022101409:RELV:2000-0 m above ground:4-5 hour max fcst: +52:33417961:d=2022101409:RELV:1000-0 m above ground:4-5 hour max fcst: +53:36049731:d=2022101409:HAIL:entire atmosphere:4-5 hour max fcst: +54:36342785:d=2022101409:HAIL:0.1 sigma level:4-5 hour max fcst: +55:36391721:d=2022101409:HAIL:surface:4-5 hour max fcst: +56:36398487:d=2022101409:TCOLG:entire atmosphere (considered as a single layer):4-5 hour max fcst: +57:36468163:d=2022101409:LTNGSD:1 m above ground:5 hour fcst: +58:36470582:d=2022101409:LTNGSD:2 m above ground:5 hour fcst: +59:36549402:d=2022101409:LTNG:entire atmosphere:5 hour fcst: +60:36615055:d=2022101409:UGRD:80 m above ground:5 hour fcst: +61:37850125:d=2022101409:VGRD:80 m above ground:5 hour fcst: +62:39092662:d=2022101409:PRES:surface:5 hour fcst: +63:40604676:d=2022101409:HGT:surface:5 hour fcst: +64:42758371:d=2022101409:TMP:surface:5 hour fcst: +65:44095009:d=2022101409:ASNOW:surface:0-5 hour acc fcst: +66:44200881:d=2022101409:MSTAV:0 m underground:5 hour fcst: +67:45599995:d=2022101409:CNWAT:surface:5 hour fcst: +68:45691956:d=2022101409:WEASD:surface:5 hour fcst: +69:45733961:d=2022101409:SNOWC:surface:5 hour fcst: +70:45766480:d=2022101409:SNOD:surface:5 hour fcst: +71:45796688:d=2022101409:TMP:2 m above ground:5 hour fcst: +72:47071210:d=2022101409:POT:2 m above ground:5 hour fcst: +73:48327626:d=2022101409:SPFH:2 m above ground:5 hour fcst: +74:49879206:d=2022101409:DPT:2 m above ground:5 hour fcst: +75:51124294:d=2022101409:RH:2 m above ground:5 hour fcst: +76:52809171:d=2022101409:MASSDEN:8 m above ground:5 hour fcst: +77:53633912:d=2022101409:UGRD:10 m above ground:5 hour fcst: +78:56015527:d=2022101409:VGRD:10 m above ground:5 hour fcst: +79:58397142:d=2022101409:WIND:10 m above ground:4-5 hour max fcst: +80:59729242:d=2022101409:MAXUW:10 m above ground:4-5 hour max fcst: +81:61184653:d=2022101409:MAXVW:10 m above ground:4-5 hour max fcst: +82:62589969:d=2022101409:CPOFP:surface:5 hour fcst: +83:62760346:d=2022101409:PRATE:surface:5 hour fcst: +84:62853438:d=2022101409:APCP:surface:0-5 hour acc fcst: +85:63348500:d=2022101409:WEASD:surface:0-5 hour acc fcst: +86:63424423:d=2022101409:FROZR:surface:0-5 hour acc fcst: +87:63512411:d=2022101409:FRZR:surface:0-5 hour acc fcst: +88:63533930:d=2022101409:SSRUN:surface:4-5 hour acc fcst: +89:63539974:d=2022101409:BGRUN:surface:4-5 hour acc fcst: +90:63540357:d=2022101409:APCP:surface:4-5 hour acc fcst: +91:63873764:d=2022101409:WEASD:surface:4-5 hour acc fcst: +92:63947231:d=2022101409:FROZR:surface:4-5 hour acc fcst: +93:63997570:d=2022101409:CSNOW:surface:5 hour fcst: +94:64008493:d=2022101409:CICEP:surface:5 hour fcst: +95:64009238:d=2022101409:CFRZR:surface:5 hour fcst: +96:64009967:d=2022101409:CRAIN:surface:5 hour fcst: +97:64108581:d=2022101409:SFCR:surface:5 hour fcst: +98:66043079:d=2022101409:FRICV:surface:5 hour fcst: +99:67227429:d=2022101409:SHTFL:surface:5 hour fcst: +100:68574059:d=2022101409:LHTFL:surface:5 hour fcst: +101:69830643:d=2022101409:VEG:surface:5 hour fcst: +102:71276904:d=2022101409:var discipline=2 center=7 local_table=1 parmcat=0 parm=231:surface:5 hour fcst: +103:72393041:d=2022101409:var discipline=2 center=7 local_table=1 parmcat=0 parm=232:surface:5 hour fcst: +104:73269975:d=2022101409:LAI:surface:5 hour fcst: +105:74044352:d=2022101409:GFLUX:surface:5 hour fcst: +106:75106548:d=2022101409:VGTYP:surface:5 hour fcst: +107:75887727:d=2022101409:LFTX:500-1000 mb:5 hour fcst: +108:76956250:d=2022101409:CAPE:surface:5 hour fcst: +109:77396177:d=2022101409:CIN:surface:5 hour fcst: +110:77892894:d=2022101409:PWAT:entire atmosphere (considered as a single layer):5 hour fcst: +111:78853105:d=2022101409:AOTK:entire atmosphere (considered as a single layer):5 hour fcst: +112:79582989:d=2022101409:COLMD:entire atmosphere (considered as a single layer):5 hour fcst: +113:80474561:d=2022101409:TCOLW:entire atmosphere:5 hour fcst: +114:81432077:d=2022101409:TCOLI:entire atmosphere:5 hour fcst: +115:82455274:d=2022101409:TCDC:boundary layer cloud layer:5 hour fcst: +116:83165022:d=2022101409:LCDC:low cloud layer:5 hour fcst: +117:83890643:d=2022101409:MCDC:middle cloud layer:5 hour fcst: +118:84226762:d=2022101409:HCDC:high cloud layer:5 hour fcst: +119:84496069:d=2022101409:TCDC:entire atmosphere:5 hour fcst: +120:85140963:d=2022101409:HGT:cloud ceiling:5 hour fcst: +121:86556865:d=2022101409:HGT:cloud base:5 hour fcst: +122:88773590:d=2022101409:PRES:cloud base:5 hour fcst: +123:89872539:d=2022101409:PRES:cloud top:5 hour fcst: +124:90588060:d=2022101409:HGT:cloud top:5 hour fcst: +125:91788180:d=2022101409:ULWRF:top of atmosphere:5 hour fcst: +126:93719365:d=2022101409:DSWRF:surface:5 hour fcst: +127:95415717:d=2022101409:DLWRF:surface:5 hour fcst: +128:97453954:d=2022101409:USWRF:surface:5 hour fcst: +129:98853523:d=2022101409:ULWRF:surface:5 hour fcst: +130:100513947:d=2022101409:CFNSF:surface:5 hour fcst: +131:100517471:d=2022101409:VBDSF:surface:5 hour fcst: +132:102283259:d=2022101409:VDDSF:surface:5 hour fcst: +133:104001236:d=2022101409:USWRF:top of atmosphere:5 hour fcst: +134:105747287:d=2022101409:HLCY:3000-0 m above ground:5 hour fcst: +135:107026332:d=2022101409:HLCY:1000-0 m above ground:5 hour fcst: +136:109061764:d=2022101409:USTM:0-6000 m above ground:5 hour fcst: +137:110077584:d=2022101409:VSTM:0-6000 m above ground:5 hour fcst: +138:111115000:d=2022101409:VUCSH:0-1000 m above ground:5 hour fcst: +139:113496615:d=2022101409:VVCSH:0-1000 m above ground:5 hour fcst: +140:115878230:d=2022101409:VUCSH:0-6000 m above ground:5 hour fcst: +141:118497987:d=2022101409:VVCSH:0-6000 m above ground:5 hour fcst: +142:121117744:d=2022101409:HGT:0C isotherm:5 hour fcst: +143:123168733:d=2022101409:RH:0C isotherm:5 hour fcst: +144:123877017:d=2022101409:PRES:0C isotherm:5 hour fcst: +145:124637108:d=2022101409:HGT:highest tropospheric freezing level:5 hour fcst: +146:125392317:d=2022101409:RH:highest tropospheric freezing level:5 hour fcst: +147:126085491:d=2022101409:PRES:highest tropospheric freezing level:5 hour fcst: +148:126805378:d=2022101409:HGT:263 K level:5 hour fcst: +149:127490743:d=2022101409:HGT:253 K level:5 hour fcst: +150:128123477:d=2022101409:4LFTX:180-0 mb above ground:5 hour fcst: +151:129109452:d=2022101409:CAPE:180-0 mb above ground:5 hour fcst: +152:129584173:d=2022101409:CIN:180-0 mb above ground:5 hour fcst: +153:130091364:d=2022101409:HPBL:surface:5 hour fcst: +154:133058728:d=2022101409:HGT:level of adiabatic condensation from sfc:5 hour fcst: +155:136067268:d=2022101409:CAPE:90-0 mb above ground:5 hour fcst: +156:136457975:d=2022101409:CIN:90-0 mb above ground:5 hour fcst: +157:136901491:d=2022101409:CAPE:255-0 mb above ground:5 hour fcst: +158:137367385:d=2022101409:CIN:255-0 mb above ground:5 hour fcst: +159:137865423:d=2022101409:HGT:equilibrium level:5 hour fcst: +160:140174387:d=2022101409:PLPL:255-0 mb above ground:5 hour fcst: +161:141305689:d=2022101409:CAPE:0-3000 m above ground:5 hour fcst: +162:142120987:d=2022101409:HGT:level of free convection:5 hour fcst: +163:145078610:d=2022101409:var discipline=0 center=7 local_table=1 parmcat=7 parm=204:surface:5 hour fcst: +164:145951201:d=2022101409:var discipline=0 center=7 local_table=1 parmcat=7 parm=206:0-500 m above ground:5 hour fcst: +165:148216364:d=2022101409:LAYTH:261 K level - 256 K level:5 hour fcst: +166:149581363:d=2022101409:var discipline=0 center=7 local_table=1 parmcat=7 parm=205:0-3000 m above ground:5 hour fcst: +167:150344946:d=2022101409:RHPW:entire atmosphere:5 hour fcst: +168:151550820:d=2022101409:LAND:surface:5 hour fcst: +169:151601296:d=2022101409:ICEC:surface:5 hour fcst: +170:151601529:d=2022101409:SBT123:top of atmosphere:5 hour fcst: +171:153126196:d=2022101409:SBT124:top of atmosphere:5 hour fcst: +172:154897102:d=2022101409:SBT113:top of atmosphere:5 hour fcst: +173:156262803:d=2022101409:SBT114:top of atmosphere:5 hour fcst: diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10 b/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10 new file mode 100644 index 00000000..d0457c86 Binary files /dev/null and b/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10.idx b/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10.idx new file mode 100644 index 00000000..67846e53 --- /dev/null +++ b/tests/grib_idx_fixtures/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2022101409:REFC:entire atmosphere:5 hour fcst: +2:639682:d=2022101409:RETOP:cloud top:5 hour fcst: +3:890939:d=2022101409:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:5 hour fcst: +4:1466962:d=2022101409:VIL:entire atmosphere:5 hour fcst: +5:1870785:d=2022101409:VIS:surface:5 hour fcst: +6:3461593:d=2022101409:REFD:1000 m above ground:5 hour fcst: +7:3826461:d=2022101409:REFD:4000 m above ground:5 hour fcst: +8:4020514:d=2022101409:REFD:263 K level:5 hour fcst: +9:4235488:d=2022101409:GUST:surface:5 hour fcst: +10:5541169:d=2022101409:UGRD:250 mb:5 hour fcst: +11:6311987:d=2022101409:VGRD:250 mb:5 hour fcst: diff --git a/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.idx b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.idx new file mode 100644 index 00000000..c740f964 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.idx @@ -0,0 +1,696 @@ +1:0:d=2023110400:PRMSL:mean sea level:anl: +2:995976:d=2023110400:CLWMR:1 hybrid level:anl: +3:1070083:d=2023110400:ICMR:1 hybrid level:anl: +4:1354918:d=2023110400:RWMR:1 hybrid level:anl: +5:1570870:d=2023110400:SNMR:1 hybrid level:anl: +6:1674067:d=2023110400:GRLE:1 hybrid level:anl: +7:1717327:d=2023110400:REFD:1 hybrid level:anl: +8:2513145:d=2023110400:REFD:2 hybrid level:anl: +9:3309276:d=2023110400:REFC:entire atmosphere:anl: +10:4178835:d=2023110400:VIS:surface:anl: +11:4945324:d=2023110400:UGRD:planetary boundary layer:anl: +12:5542996:d=2023110400:VGRD:planetary boundary layer:anl: +13:6139659:d=2023110400:VRATE:planetary boundary layer:anl: +14:6730477:d=2023110400:GUST:surface:anl: +15:7347236:d=2023110400:HGT:0.01 mb:anl: +16:8324094:d=2023110400:TMP:0.01 mb:anl: +17:8862210:d=2023110400:RH:0.01 mb:anl: +18:8886320:d=2023110400:SPFH:0.01 mb:anl: +19:9826683:d=2023110400:VVEL:0.01 mb:anl: +20:11113123:d=2023110400:DZDT:0.01 mb:anl: +21:12325237:d=2023110400:UGRD:0.01 mb:anl: +22:12891871:d=2023110400:VGRD:0.01 mb:anl: +23:13374965:d=2023110400:ABSV:0.01 mb:anl: +24:14417820:d=2023110400:O3MR:0.01 mb:anl: +25:15366943:d=2023110400:HGT:0.02 mb:anl: +26:16322238:d=2023110400:TMP:0.02 mb:anl: +27:17095972:d=2023110400:RH:0.02 mb:anl: +28:17100423:d=2023110400:SPFH:0.02 mb:anl: +29:18101783:d=2023110400:VVEL:0.02 mb:anl: +30:19344722:d=2023110400:DZDT:0.02 mb:anl: +31:20625598:d=2023110400:UGRD:0.02 mb:anl: +32:21244651:d=2023110400:VGRD:0.02 mb:anl: +33:21783790:d=2023110400:ABSV:0.02 mb:anl: +34:22515422:d=2023110400:O3MR:0.02 mb:anl: +35:23594030:d=2023110400:HGT:0.04 mb:anl: +36:24481828:d=2023110400:TMP:0.04 mb:anl: +37:25303015:d=2023110400:RH:0.04 mb:anl: +38:25303225:d=2023110400:SPFH:0.04 mb:anl: +39:26339235:d=2023110400:VVEL:0.04 mb:anl: +40:27341175:d=2023110400:DZDT:0.04 mb:anl: +41:28390300:d=2023110400:UGRD:0.04 mb:anl: +42:28960917:d=2023110400:VGRD:0.04 mb:anl: +43:29491643:d=2023110400:ABSV:0.04 mb:anl: +44:30285028:d=2023110400:O3MR:0.04 mb:anl: +45:31222603:d=2023110400:HGT:0.07 mb:anl: +46:32106831:d=2023110400:TMP:0.07 mb:anl: +47:32916568:d=2023110400:RH:0.07 mb:anl: +48:32916778:d=2023110400:SPFH:0.07 mb:anl: +49:33881445:d=2023110400:VVEL:0.07 mb:anl: +50:34954443:d=2023110400:DZDT:0.07 mb:anl: +51:35980395:d=2023110400:UGRD:0.07 mb:anl: +52:36568478:d=2023110400:VGRD:0.07 mb:anl: +53:37098829:d=2023110400:ABSV:0.07 mb:anl: +54:37864202:d=2023110400:O3MR:0.07 mb:anl: +55:38804224:d=2023110400:HGT:0.1 mb:anl: +56:39681431:d=2023110400:TMP:0.1 mb:anl: +57:40463480:d=2023110400:RH:0.1 mb:anl: +58:40463690:d=2023110400:SPFH:0.1 mb:anl: +59:41380082:d=2023110400:VVEL:0.1 mb:anl: +60:42491139:d=2023110400:DZDT:0.1 mb:anl: +61:43499572:d=2023110400:UGRD:0.1 mb:anl: +62:44070932:d=2023110400:VGRD:0.1 mb:anl: +63:44580370:d=2023110400:ABSV:0.1 mb:anl: +64:45304108:d=2023110400:O3MR:0.1 mb:anl: +65:46419705:d=2023110400:HGT:0.2 mb:anl: +66:47253086:d=2023110400:TMP:0.2 mb:anl: +67:48019612:d=2023110400:RH:0.2 mb:anl: +68:48019822:d=2023110400:SPFH:0.2 mb:anl: +69:48902223:d=2023110400:VVEL:0.2 mb:anl: +70:50104478:d=2023110400:DZDT:0.2 mb:anl: +71:51088042:d=2023110400:UGRD:0.2 mb:anl: +72:52031596:d=2023110400:VGRD:0.2 mb:anl: +73:52842019:d=2023110400:ABSV:0.2 mb:anl: +74:53494270:d=2023110400:O3MR:0.2 mb:anl: +75:54682606:d=2023110400:HGT:0.4 mb:anl: +76:55488327:d=2023110400:TMP:0.4 mb:anl: +77:56245656:d=2023110400:RH:0.4 mb:anl: +78:56245866:d=2023110400:SPFH:0.4 mb:anl: +79:57112518:d=2023110400:VVEL:0.4 mb:anl: +80:58392220:d=2023110400:DZDT:0.4 mb:anl: +81:59338051:d=2023110400:UGRD:0.4 mb:anl: +82:60258263:d=2023110400:VGRD:0.4 mb:anl: +83:61039332:d=2023110400:ABSV:0.4 mb:anl: +84:61641408:d=2023110400:O3MR:0.4 mb:anl: +85:62594978:d=2023110400:HGT:0.7 mb:anl: +86:63380549:d=2023110400:TMP:0.7 mb:anl: +87:64132840:d=2023110400:RH:0.7 mb:anl: +88:64133050:d=2023110400:SPFH:0.7 mb:anl: +89:65024025:d=2023110400:VVEL:0.7 mb:anl: +90:66235682:d=2023110400:DZDT:0.7 mb:anl: +91:67431995:d=2023110400:UGRD:0.7 mb:anl: +92:68336683:d=2023110400:VGRD:0.7 mb:anl: +93:69105604:d=2023110400:ABSV:0.7 mb:anl: +94:69692097:d=2023110400:O3MR:0.7 mb:anl: +95:70701265:d=2023110400:HGT:1 mb:anl: +96:71469422:d=2023110400:TMP:1 mb:anl: +97:72216557:d=2023110400:RH:1 mb:anl: +98:72216767:d=2023110400:SPFH:1 mb:anl: +99:73138374:d=2023110400:VVEL:1 mb:anl: +100:74392853:d=2023110400:DZDT:1 mb:anl: +101:75688429:d=2023110400:UGRD:1 mb:anl: +102:76582205:d=2023110400:VGRD:1 mb:anl: +103:77340609:d=2023110400:ABSV:1 mb:anl: +104:77924364:d=2023110400:O3MR:1 mb:anl: +105:78978305:d=2023110400:HGT:2 mb:anl: +106:79715945:d=2023110400:TMP:2 mb:anl: +107:80504828:d=2023110400:RH:2 mb:anl: +108:80505038:d=2023110400:SPFH:2 mb:anl: +109:81535541:d=2023110400:VVEL:2 mb:anl: +110:82599791:d=2023110400:DZDT:2 mb:anl: +111:83877249:d=2023110400:UGRD:2 mb:anl: +112:84793651:d=2023110400:VGRD:2 mb:anl: +113:85580971:d=2023110400:ABSV:2 mb:anl: +114:86201966:d=2023110400:O3MR:2 mb:anl: +115:87317537:d=2023110400:HGT:3 mb:anl: +116:88045571:d=2023110400:TMP:3 mb:anl: +117:88813879:d=2023110400:RH:3 mb:anl: +118:88816917:d=2023110400:SPFH:3 mb:anl: +119:89883127:d=2023110400:VVEL:3 mb:anl: +120:91007163:d=2023110400:DZDT:3 mb:anl: +121:92256412:d=2023110400:UGRD:3 mb:anl: +122:93155832:d=2023110400:VGRD:3 mb:anl: +123:93929543:d=2023110400:ABSV:3 mb:anl: +124:94547998:d=2023110400:O3MR:3 mb:anl: +125:95626209:d=2023110400:HGT:5 mb:anl: +126:96333784:d=2023110400:TMP:5 mb:anl: +127:97117129:d=2023110400:RH:5 mb:anl: +128:97132720:d=2023110400:SPFH:5 mb:anl: +129:98214261:d=2023110400:VVEL:5 mb:anl: +130:99427947:d=2023110400:DZDT:5 mb:anl: +131:100671795:d=2023110400:UGRD:5 mb:anl: +132:101593397:d=2023110400:VGRD:5 mb:anl: +133:102399801:d=2023110400:ABSV:5 mb:anl: +134:103068770:d=2023110400:O3MR:5 mb:anl: +135:104095990:d=2023110400:HGT:7 mb:anl: +136:104801344:d=2023110400:TMP:7 mb:anl: +137:105555466:d=2023110400:RH:7 mb:anl: +138:105585312:d=2023110400:SPFH:7 mb:anl: +139:106646549:d=2023110400:VVEL:7 mb:anl: +140:107907554:d=2023110400:DZDT:7 mb:anl: +141:109122537:d=2023110400:UGRD:7 mb:anl: +142:110029439:d=2023110400:VGRD:7 mb:anl: +143:110823425:d=2023110400:ABSV:7 mb:anl: +144:111503754:d=2023110400:O3MR:7 mb:anl: +145:112295844:d=2023110400:HGT:10 mb:anl: +146:113112392:d=2023110400:TMP:10 mb:anl: +147:113857079:d=2023110400:RH:10 mb:anl: +148:113901921:d=2023110400:SPFH:10 mb:anl: +149:114929138:d=2023110400:VVEL:10 mb:anl: +150:116252918:d=2023110400:DZDT:10 mb:anl: +151:117463938:d=2023110400:UGRD:10 mb:anl: +152:118365823:d=2023110400:VGRD:10 mb:anl: +153:119162979:d=2023110400:ABSV:10 mb:anl: +154:119863528:d=2023110400:O3MR:10 mb:anl: +155:120704255:d=2023110400:HGT:15 mb:anl: +156:121508287:d=2023110400:TMP:15 mb:anl: +157:122250316:d=2023110400:RH:15 mb:anl: +158:122307243:d=2023110400:SPFH:15 mb:anl: +159:123288129:d=2023110400:VVEL:15 mb:anl: +160:124678808:d=2023110400:DZDT:15 mb:anl: +161:125876518:d=2023110400:UGRD:15 mb:anl: +162:126774447:d=2023110400:VGRD:15 mb:anl: +163:127568146:d=2023110400:ABSV:15 mb:anl: +164:128253150:d=2023110400:O3MR:15 mb:anl: +165:129137082:d=2023110400:HGT:20 mb:anl: +166:129926037:d=2023110400:TMP:20 mb:anl: +167:130665079:d=2023110400:RH:20 mb:anl: +168:130762621:d=2023110400:SPFH:20 mb:anl: +169:131714543:d=2023110400:VVEL:20 mb:anl: +170:133012964:d=2023110400:DZDT:20 mb:anl: +171:134196127:d=2023110400:UGRD:20 mb:anl: +172:135085907:d=2023110400:VGRD:20 mb:anl: +173:135872765:d=2023110400:ABSV:20 mb:anl: +174:136555334:d=2023110400:O3MR:20 mb:anl: +175:137749228:d=2023110400:HGT:30 mb:anl: +176:138516395:d=2023110400:TMP:30 mb:anl: +177:139236882:d=2023110400:RH:30 mb:anl: +178:139400460:d=2023110400:SPFH:30 mb:anl: +179:140355063:d=2023110400:VVEL:30 mb:anl: +180:141407251:d=2023110400:DZDT:30 mb:anl: +181:142559713:d=2023110400:UGRD:30 mb:anl: +182:143440337:d=2023110400:VGRD:30 mb:anl: +183:144220242:d=2023110400:ABSV:30 mb:anl: +184:144909414:d=2023110400:O3MR:30 mb:anl: +185:146103206:d=2023110400:HGT:40 mb:anl: +186:146853621:d=2023110400:TMP:40 mb:anl: +187:147608125:d=2023110400:RH:40 mb:anl: +188:147838515:d=2023110400:SPFH:40 mb:anl: +189:148860516:d=2023110400:VVEL:40 mb:anl: +190:149963159:d=2023110400:DZDT:40 mb:anl: +191:151110550:d=2023110400:UGRD:40 mb:anl: +192:152021767:d=2023110400:VGRD:40 mb:anl: +193:152852237:d=2023110400:ABSV:40 mb:anl: +194:153622904:d=2023110400:O3MR:40 mb:anl: +195:154840433:d=2023110400:HGT:50 mb:anl: +196:155581675:d=2023110400:TMP:50 mb:anl: +197:156320413:d=2023110400:RH:50 mb:anl: +198:156595258:d=2023110400:TCDC:50 mb:anl: +199:156595437:d=2023110400:SPFH:50 mb:anl: +200:157623161:d=2023110400:VVEL:50 mb:anl: +201:158744491:d=2023110400:DZDT:50 mb:anl: +202:159866929:d=2023110400:UGRD:50 mb:anl: +203:160724499:d=2023110400:VGRD:50 mb:anl: +204:161559139:d=2023110400:ABSV:50 mb:anl: +205:162347616:d=2023110400:CLWMR:50 mb:anl: +206:162347795:d=2023110400:ICMR:50 mb:anl: +207:162347974:d=2023110400:RWMR:50 mb:anl: +208:163383627:d=2023110400:SNMR:50 mb:anl: +209:164515834:d=2023110400:GRLE:50 mb:anl: +210:165650675:d=2023110400:O3MR:50 mb:anl: +211:166957886:d=2023110400:HGT:70 mb:anl: +212:167697237:d=2023110400:TMP:70 mb:anl: +213:168453356:d=2023110400:RH:70 mb:anl: +214:168864185:d=2023110400:SPFH:70 mb:anl: +215:169856629:d=2023110400:VVEL:70 mb:anl: +216:171040966:d=2023110400:DZDT:70 mb:anl: +217:172159894:d=2023110400:UGRD:70 mb:anl: +218:173039932:d=2023110400:VGRD:70 mb:anl: +219:173901589:d=2023110400:ABSV:70 mb:anl: +220:174719351:d=2023110400:O3MR:70 mb:anl: +221:175995696:d=2023110400:HGT:100 mb:anl: +222:176732287:d=2023110400:TMP:100 mb:anl: +223:177501613:d=2023110400:RH:100 mb:anl: +224:178034926:d=2023110400:TCDC:100 mb:anl: +225:178189750:d=2023110400:SPFH:100 mb:anl: +226:179344692:d=2023110400:VVEL:100 mb:anl: +227:180616943:d=2023110400:DZDT:100 mb:anl: +228:181750255:d=2023110400:UGRD:100 mb:anl: +229:182664118:d=2023110400:VGRD:100 mb:anl: +230:183565758:d=2023110400:ABSV:100 mb:anl: +231:184437290:d=2023110400:CLWMR:100 mb:anl: +232:184438046:d=2023110400:ICMR:100 mb:anl: +233:184481515:d=2023110400:RWMR:100 mb:anl: +234:185627044:d=2023110400:SNMR:100 mb:anl: +235:185631255:d=2023110400:GRLE:100 mb:anl: +236:185635647:d=2023110400:O3MR:100 mb:anl: +237:186796030:d=2023110400:HGT:150 mb:anl: +238:187530472:d=2023110400:TMP:150 mb:anl: +239:188275304:d=2023110400:RH:150 mb:anl: +240:188896910:d=2023110400:TCDC:150 mb:anl: +241:189108436:d=2023110400:SPFH:150 mb:anl: +242:190288913:d=2023110400:VVEL:150 mb:anl: +243:191250224:d=2023110400:DZDT:150 mb:anl: +244:192426449:d=2023110400:UGRD:150 mb:anl: +245:193399464:d=2023110400:VGRD:150 mb:anl: +246:194321329:d=2023110400:ABSV:150 mb:anl: +247:195207447:d=2023110400:CLWMR:150 mb:anl: +248:195228455:d=2023110400:ICMR:150 mb:anl: +249:195380894:d=2023110400:RWMR:150 mb:anl: +250:196310038:d=2023110400:SNMR:150 mb:anl: +251:196322178:d=2023110400:GRLE:150 mb:anl: +252:196324006:d=2023110400:O3MR:150 mb:anl: +253:197314656:d=2023110400:HGT:200 mb:anl: +254:198047995:d=2023110400:TMP:200 mb:anl: +255:198801141:d=2023110400:RH:200 mb:anl: +256:199563482:d=2023110400:TCDC:200 mb:anl: +257:199907357:d=2023110400:SPFH:200 mb:anl: +258:201100434:d=2023110400:VVEL:200 mb:anl: +259:202127400:d=2023110400:DZDT:200 mb:anl: +260:203192665:d=2023110400:UGRD:200 mb:anl: +261:203769685:d=2023110400:VGRD:200 mb:anl: +262:204342911:d=2023110400:ABSV:200 mb:anl: +263:205253202:d=2023110400:CLWMR:200 mb:anl: +264:205299740:d=2023110400:ICMR:200 mb:anl: +265:205539317:d=2023110400:RWMR:200 mb:anl: +266:206543066:d=2023110400:SNMR:200 mb:anl: +267:206616195:d=2023110400:GRLE:200 mb:anl: +268:206619802:d=2023110400:O3MR:200 mb:anl: +269:207819562:d=2023110400:HGT:250 mb:anl: +270:208547200:d=2023110400:TMP:250 mb:anl: +271:209286725:d=2023110400:RH:250 mb:anl: +272:210110638:d=2023110400:TCDC:250 mb:anl: +273:210599040:d=2023110400:SPFH:250 mb:anl: +274:211765972:d=2023110400:VVEL:250 mb:anl: +275:212849389:d=2023110400:DZDT:250 mb:anl: +276:213934944:d=2023110400:UGRD:250 mb:anl: +277:214524746:d=2023110400:VGRD:250 mb:anl: +278:215122939:d=2023110400:ABSV:250 mb:anl: +279:216076423:d=2023110400:CLWMR:250 mb:anl: +280:216077583:d=2023110400:ICMR:250 mb:anl: +281:216441377:d=2023110400:RWMR:250 mb:anl: +282:217342887:d=2023110400:SNMR:250 mb:anl: +283:217449292:d=2023110400:GRLE:250 mb:anl: +284:217456142:d=2023110400:O3MR:250 mb:anl: +285:218731138:d=2023110400:HGT:300 mb:anl: +286:219448046:d=2023110400:TMP:300 mb:anl: +287:220196386:d=2023110400:RH:300 mb:anl: +288:221060149:d=2023110400:TCDC:300 mb:anl: +289:221558037:d=2023110400:SPFH:300 mb:anl: +290:222740361:d=2023110400:VVEL:300 mb:anl: +291:223870258:d=2023110400:DZDT:300 mb:anl: +292:224972791:d=2023110400:UGRD:300 mb:anl: +293:225578576:d=2023110400:VGRD:300 mb:anl: +294:226198406:d=2023110400:ABSV:300 mb:anl: +295:227188873:d=2023110400:CLWMR:300 mb:anl: +296:227190793:d=2023110400:ICMR:300 mb:anl: +297:227584689:d=2023110400:RWMR:300 mb:anl: +298:228486493:d=2023110400:SNMR:300 mb:anl: +299:228624408:d=2023110400:GRLE:300 mb:anl: +300:228637760:d=2023110400:O3MR:300 mb:anl: +301:229875136:d=2023110400:HGT:350 mb:anl: +302:230583471:d=2023110400:TMP:350 mb:anl: +303:231307379:d=2023110400:RH:350 mb:anl: +304:232151706:d=2023110400:TCDC:350 mb:anl: +305:232626933:d=2023110400:SPFH:350 mb:anl: +306:233793627:d=2023110400:VVEL:350 mb:anl: +307:234936992:d=2023110400:DZDT:350 mb:anl: +308:236028030:d=2023110400:UGRD:350 mb:anl: +309:236613176:d=2023110400:VGRD:350 mb:anl: +310:237214608:d=2023110400:ABSV:350 mb:anl: +311:238184513:d=2023110400:CLWMR:350 mb:anl: +312:238187346:d=2023110400:ICMR:350 mb:anl: +313:238630167:d=2023110400:RWMR:350 mb:anl: +314:239038393:d=2023110400:SNMR:350 mb:anl: +315:239198889:d=2023110400:GRLE:350 mb:anl: +316:239219412:d=2023110400:O3MR:350 mb:anl: +317:240402913:d=2023110400:HGT:400 mb:anl: +318:241102314:d=2023110400:TMP:400 mb:anl: +319:241822849:d=2023110400:RH:400 mb:anl: +320:242649318:d=2023110400:TCDC:400 mb:anl: +321:243094081:d=2023110400:SPFH:400 mb:anl: +322:244350352:d=2023110400:VVEL:400 mb:anl: +323:245497579:d=2023110400:DZDT:400 mb:anl: +324:246580067:d=2023110400:UGRD:400 mb:anl: +325:247150911:d=2023110400:VGRD:400 mb:anl: +326:247734020:d=2023110400:ABSV:400 mb:anl: +327:248679380:d=2023110400:CLWMR:400 mb:anl: +328:248685132:d=2023110400:ICMR:400 mb:anl: +329:249116229:d=2023110400:RWMR:400 mb:anl: +330:249457287:d=2023110400:SNMR:400 mb:anl: +331:249635122:d=2023110400:GRLE:400 mb:anl: +332:249664609:d=2023110400:O3MR:400 mb:anl: +333:250811276:d=2023110400:HGT:450 mb:anl: +334:251504724:d=2023110400:TMP:450 mb:anl: +335:252225554:d=2023110400:RH:450 mb:anl: +336:253042206:d=2023110400:TCDC:450 mb:anl: +337:253472728:d=2023110400:SPFH:450 mb:anl: +338:254675430:d=2023110400:VVEL:450 mb:anl: +339:255827076:d=2023110400:DZDT:450 mb:anl: +340:256896921:d=2023110400:UGRD:450 mb:anl: +341:257828369:d=2023110400:VGRD:450 mb:anl: +342:258768415:d=2023110400:ABSV:450 mb:anl: +343:259687194:d=2023110400:CLWMR:450 mb:anl: +344:259708370:d=2023110400:ICMR:450 mb:anl: +345:260125551:d=2023110400:RWMR:450 mb:anl: +346:260332095:d=2023110400:SNMR:450 mb:anl: +347:260524558:d=2023110400:GRLE:450 mb:anl: +348:260561854:d=2023110400:O3MR:450 mb:anl: +349:261677326:d=2023110400:HGT:500 mb:anl: +350:262480301:d=2023110400:TMP:500 mb:anl: +351:263199769:d=2023110400:RH:500 mb:anl: +352:264006247:d=2023110400:TCDC:500 mb:anl: +353:264434346:d=2023110400:SPFH:500 mb:anl: +354:265695585:d=2023110400:VVEL:500 mb:anl: +355:266849459:d=2023110400:DZDT:500 mb:anl: +356:267907398:d=2023110400:UGRD:500 mb:anl: +357:268823119:d=2023110400:VGRD:500 mb:anl: +358:269737045:d=2023110400:ABSV:500 mb:anl: +359:270620942:d=2023110400:CLWMR:500 mb:anl: +360:270686347:d=2023110400:ICMR:500 mb:anl: +361:271119964:d=2023110400:RWMR:500 mb:anl: +362:271237111:d=2023110400:SNMR:500 mb:anl: +363:271443750:d=2023110400:GRLE:500 mb:anl: +364:271493406:d=2023110400:O3MR:500 mb:anl: +365:272578464:d=2023110400:HGT:550 mb:anl: +366:273380384:d=2023110400:TMP:550 mb:anl: +367:274106011:d=2023110400:RH:550 mb:anl: +368:274911829:d=2023110400:TCDC:550 mb:anl: +369:275348871:d=2023110400:SPFH:550 mb:anl: +370:276656578:d=2023110400:VVEL:550 mb:anl: +371:277820475:d=2023110400:DZDT:550 mb:anl: +372:278871106:d=2023110400:UGRD:550 mb:anl: +373:279778787:d=2023110400:VGRD:550 mb:anl: +374:280680482:d=2023110400:ABSV:550 mb:anl: +375:281544531:d=2023110400:CLWMR:550 mb:anl: +376:281651298:d=2023110400:ICMR:550 mb:anl: +377:282077026:d=2023110400:RWMR:550 mb:anl: +378:282126507:d=2023110400:SNMR:550 mb:anl: +379:282338969:d=2023110400:GRLE:550 mb:anl: +380:282404708:d=2023110400:O3MR:550 mb:anl: +381:283454682:d=2023110400:HGT:600 mb:anl: +382:284257286:d=2023110400:TMP:600 mb:anl: +383:284989702:d=2023110400:RH:600 mb:anl: +384:285790287:d=2023110400:TCDC:600 mb:anl: +385:286189307:d=2023110400:SPFH:600 mb:anl: +386:287413290:d=2023110400:VVEL:600 mb:anl: +387:288583153:d=2023110400:DZDT:600 mb:anl: +388:289624102:d=2023110400:UGRD:600 mb:anl: +389:290527737:d=2023110400:VGRD:600 mb:anl: +390:291422402:d=2023110400:ABSV:600 mb:anl: +391:292275553:d=2023110400:CLWMR:600 mb:anl: +392:292406183:d=2023110400:ICMR:600 mb:anl: +393:292758191:d=2023110400:RWMR:600 mb:anl: +394:292835752:d=2023110400:SNMR:600 mb:anl: +395:293004821:d=2023110400:GRLE:600 mb:anl: +396:293055205:d=2023110400:O3MR:600 mb:anl: +397:294070985:d=2023110400:HGT:650 mb:anl: +398:294880638:d=2023110400:TMP:650 mb:anl: +399:295622934:d=2023110400:RH:650 mb:anl: +400:296429509:d=2023110400:TCDC:650 mb:anl: +401:296806610:d=2023110400:SPFH:650 mb:anl: +402:298026890:d=2023110400:VVEL:650 mb:anl: +403:299203957:d=2023110400:DZDT:650 mb:anl: +404:300368715:d=2023110400:UGRD:650 mb:anl: +405:301273442:d=2023110400:VGRD:650 mb:anl: +406:302170039:d=2023110400:ABSV:650 mb:anl: +407:303024165:d=2023110400:CLWMR:650 mb:anl: +408:303143265:d=2023110400:ICMR:650 mb:anl: +409:303465201:d=2023110400:RWMR:650 mb:anl: +410:303554261:d=2023110400:SNMR:650 mb:anl: +411:303726726:d=2023110400:GRLE:650 mb:anl: +412:303770818:d=2023110400:O3MR:650 mb:anl: +413:305054569:d=2023110400:HGT:700 mb:anl: +414:305869942:d=2023110400:TMP:700 mb:anl: +415:306630129:d=2023110400:RH:700 mb:anl: +416:307442735:d=2023110400:TCDC:700 mb:anl: +417:307815864:d=2023110400:SPFH:700 mb:anl: +418:309067267:d=2023110400:VVEL:700 mb:anl: +419:310254678:d=2023110400:DZDT:700 mb:anl: +420:311419308:d=2023110400:UGRD:700 mb:anl: +421:312327577:d=2023110400:VGRD:700 mb:anl: +422:313227931:d=2023110400:ABSV:700 mb:anl: +423:314088541:d=2023110400:CLWMR:700 mb:anl: +424:314241093:d=2023110400:ICMR:700 mb:anl: +425:314581265:d=2023110400:RWMR:700 mb:anl: +426:314687918:d=2023110400:SNMR:700 mb:anl: +427:314856451:d=2023110400:GRLE:700 mb:anl: +428:314900837:d=2023110400:O3MR:700 mb:anl: +429:316160155:d=2023110400:HGT:750 mb:anl: +430:316987281:d=2023110400:TMP:750 mb:anl: +431:317761651:d=2023110400:RH:750 mb:anl: +432:318584712:d=2023110400:TCDC:750 mb:anl: +433:318962997:d=2023110400:SPFH:750 mb:anl: +434:320244581:d=2023110400:VVEL:750 mb:anl: +435:321444124:d=2023110400:DZDT:750 mb:anl: +436:322608058:d=2023110400:UGRD:750 mb:anl: +437:323522440:d=2023110400:VGRD:750 mb:anl: +438:324435094:d=2023110400:ABSV:750 mb:anl: +439:325309329:d=2023110400:CLWMR:750 mb:anl: +440:325484112:d=2023110400:ICMR:750 mb:anl: +441:325809382:d=2023110400:RWMR:750 mb:anl: +442:325940730:d=2023110400:SNMR:750 mb:anl: +443:326108402:d=2023110400:GRLE:750 mb:anl: +444:326161874:d=2023110400:O3MR:750 mb:anl: +445:327404836:d=2023110400:HGT:800 mb:anl: +446:328242094:d=2023110400:TMP:800 mb:anl: +447:329050365:d=2023110400:RH:800 mb:anl: +448:329892314:d=2023110400:TCDC:800 mb:anl: +449:330302621:d=2023110400:SPFH:800 mb:anl: +450:331623444:d=2023110400:VVEL:800 mb:anl: +451:332834381:d=2023110400:DZDT:800 mb:anl: +452:333996462:d=2023110400:UGRD:800 mb:anl: +453:334920460:d=2023110400:VGRD:800 mb:anl: +454:335849566:d=2023110400:ABSV:800 mb:anl: +455:336749118:d=2023110400:CLWMR:800 mb:anl: +456:337001668:d=2023110400:ICMR:800 mb:anl: +457:337328077:d=2023110400:RWMR:800 mb:anl: +458:337491891:d=2023110400:SNMR:800 mb:anl: +459:337688787:d=2023110400:GRLE:800 mb:anl: +460:337745992:d=2023110400:O3MR:800 mb:anl: +461:338982666:d=2023110400:HGT:850 mb:anl: +462:339838049:d=2023110400:TMP:850 mb:anl: +463:340678575:d=2023110400:RH:850 mb:anl: +464:341543643:d=2023110400:TCDC:850 mb:anl: +465:342039399:d=2023110400:SPFH:850 mb:anl: +466:343266554:d=2023110400:VVEL:850 mb:anl: +467:344487138:d=2023110400:DZDT:850 mb:anl: +468:345650267:d=2023110400:UGRD:850 mb:anl: +469:346591190:d=2023110400:VGRD:850 mb:anl: +470:347541684:d=2023110400:ABSV:850 mb:anl: +471:348473270:d=2023110400:CLWMR:850 mb:anl: +472:348841815:d=2023110400:ICMR:850 mb:anl: +473:349169772:d=2023110400:RWMR:850 mb:anl: +474:349397178:d=2023110400:SNMR:850 mb:anl: +475:349578504:d=2023110400:GRLE:850 mb:anl: +476:349648703:d=2023110400:O3MR:850 mb:anl: +477:351010541:d=2023110400:HGT:900 mb:anl: +478:351888417:d=2023110400:TMP:900 mb:anl: +479:352737303:d=2023110400:RH:900 mb:anl: +480:353601552:d=2023110400:TCDC:900 mb:anl: +481:354142109:d=2023110400:SPFH:900 mb:anl: +482:355377748:d=2023110400:VVEL:900 mb:anl: +483:356593526:d=2023110400:DZDT:900 mb:anl: +484:357746397:d=2023110400:UGRD:900 mb:anl: +485:358693932:d=2023110400:VGRD:900 mb:anl: +486:359652254:d=2023110400:ABSV:900 mb:anl: +487:360599560:d=2023110400:CLWMR:900 mb:anl: +488:360972530:d=2023110400:ICMR:900 mb:anl: +489:361274927:d=2023110400:RWMR:900 mb:anl: +490:361543570:d=2023110400:SNMR:900 mb:anl: +491:361689455:d=2023110400:GRLE:900 mb:anl: +492:361776059:d=2023110400:O3MR:900 mb:anl: +493:363108951:d=2023110400:HGT:925 mb:anl: +494:363998689:d=2023110400:TMP:925 mb:anl: +495:364845249:d=2023110400:RH:925 mb:anl: +496:365700751:d=2023110400:TCDC:925 mb:anl: +497:366259141:d=2023110400:SPFH:925 mb:anl: +498:367490797:d=2023110400:VVEL:925 mb:anl: +499:368691185:d=2023110400:DZDT:925 mb:anl: +500:369828047:d=2023110400:UGRD:925 mb:anl: +501:370772073:d=2023110400:VGRD:925 mb:anl: +502:371727360:d=2023110400:ABSV:925 mb:anl: +503:372671929:d=2023110400:CLWMR:925 mb:anl: +504:372977277:d=2023110400:ICMR:925 mb:anl: +505:373283072:d=2023110400:RWMR:925 mb:anl: +506:373550015:d=2023110400:SNMR:925 mb:anl: +507:373674711:d=2023110400:GRLE:925 mb:anl: +508:373750260:d=2023110400:O3MR:925 mb:anl: +509:375065742:d=2023110400:HGT:950 mb:anl: +510:375972589:d=2023110400:TMP:950 mb:anl: +511:376816499:d=2023110400:RH:950 mb:anl: +512:377655708:d=2023110400:TCDC:950 mb:anl: +513:378125935:d=2023110400:SPFH:950 mb:anl: +514:379352535:d=2023110400:VVEL:950 mb:anl: +515:380522929:d=2023110400:DZDT:950 mb:anl: +516:381622710:d=2023110400:UGRD:950 mb:anl: +517:382570011:d=2023110400:VGRD:950 mb:anl: +518:383523961:d=2023110400:ABSV:950 mb:anl: +519:384464853:d=2023110400:CLWMR:950 mb:anl: +520:384666899:d=2023110400:ICMR:950 mb:anl: +521:384929000:d=2023110400:RWMR:950 mb:anl: +522:385183504:d=2023110400:SNMR:950 mb:anl: +523:385285366:d=2023110400:GRLE:950 mb:anl: +524:385348312:d=2023110400:O3MR:950 mb:anl: +525:386647477:d=2023110400:HINDEX:surface:anl: +526:386852397:d=2023110400:HGT:975 mb:anl: +527:387777197:d=2023110400:TMP:975 mb:anl: +528:388620804:d=2023110400:RH:975 mb:anl: +529:389439277:d=2023110400:TCDC:975 mb:anl: +530:389799197:d=2023110400:SPFH:975 mb:anl: +531:391017225:d=2023110400:VVEL:975 mb:anl: +532:392117164:d=2023110400:DZDT:975 mb:anl: +533:393147334:d=2023110400:UGRD:975 mb:anl: +534:394103464:d=2023110400:VGRD:975 mb:anl: +535:395059022:d=2023110400:ABSV:975 mb:anl: +536:395991641:d=2023110400:CLWMR:975 mb:anl: +537:396114395:d=2023110400:ICMR:975 mb:anl: +538:396310280:d=2023110400:RWMR:975 mb:anl: +539:396539233:d=2023110400:SNMR:975 mb:anl: +540:396610385:d=2023110400:GRLE:975 mb:anl: +541:396663645:d=2023110400:O3MR:975 mb:anl: +542:397817864:d=2023110400:TMP:1000 mb:anl: +543:398670787:d=2023110400:RH:1000 mb:anl: +544:399472555:d=2023110400:TCDC:1000 mb:anl: +545:399689253:d=2023110400:SPFH:1000 mb:anl: +546:400908807:d=2023110400:VVEL:1000 mb:anl: +547:401889493:d=2023110400:DZDT:1000 mb:anl: +548:402796974:d=2023110400:UGRD:1000 mb:anl: +549:403761187:d=2023110400:VGRD:1000 mb:anl: +550:404715193:d=2023110400:ABSV:1000 mb:anl: +551:405647103:d=2023110400:CLWMR:1000 mb:anl: +552:405685986:d=2023110400:ICMR:1000 mb:anl: +553:405795716:d=2023110400:RWMR:1000 mb:anl: +554:405964888:d=2023110400:SNMR:1000 mb:anl: +555:406004185:d=2023110400:GRLE:1000 mb:anl: +556:406059466:d=2023110400:O3MR:1000 mb:anl: +557:407207677:d=2023110400:MSLET:mean sea level:anl: +558:408153217:d=2023110400:HGT:1000 mb:anl: +559:409102751:d=2023110400:REFD:4000 m above ground:anl: +560:409394110:d=2023110400:REFD:1000 m above ground:anl: +561:410168843:d=2023110400:PRES:surface:anl: +562:411002863:d=2023110400:HGT:surface:anl: +563:411495306:d=2023110400:TMP:surface:anl: +564:412074072:d=2023110400:TSOIL:0-0.1 m below ground:anl: +565:412692712:d=2023110400:SOILW:0-0.1 m below ground:anl: +566:413057563:d=2023110400:SOILL:0-0.1 m below ground:anl: +567:413410426:d=2023110400:TSOIL:0.1-0.4 m below ground:anl: +568:414004581:d=2023110400:SOILW:0.1-0.4 m below ground:anl: +569:414367071:d=2023110400:SOILL:0.1-0.4 m below ground:anl: +570:414726246:d=2023110400:TSOIL:0.4-1 m below ground:anl: +571:415248933:d=2023110400:SOILW:0.4-1 m below ground:anl: +572:415613340:d=2023110400:SOILL:0.4-1 m below ground:anl: +573:415976743:d=2023110400:TSOIL:1-2 m below ground:anl: +574:416501094:d=2023110400:SOILW:1-2 m below ground:anl: +575:416859922:d=2023110400:SOILL:1-2 m below ground:anl: +576:417217925:d=2023110400:CNWAT:surface:anl: +577:417542619:d=2023110400:WEASD:surface:anl: +578:418109437:d=2023110400:SNOD:surface:anl: +579:418693943:d=2023110400:ICETK:surface:anl: +580:418789296:d=2023110400:TMP:2 m above ground:anl: +581:419663948:d=2023110400:SPFH:2 m above ground:anl: +582:420863392:d=2023110400:DPT:2 m above ground:anl: +583:421778406:d=2023110400:RH:2 m above ground:anl: +584:422558614:d=2023110400:APTMP:2 m above ground:anl: +585:423120030:d=2023110400:UGRD:10 m above ground:anl: +586:424082233:d=2023110400:VGRD:10 m above ground:anl: +587:425024479:d=2023110400:ICEG:10 m above mean sea level:anl: +588:425041628:d=2023110400:CPOFP:surface:anl: +589:425611934:d=2023110400:PRATE:surface:anl: +590:426204298:d=2023110400:CSNOW:surface:anl: +591:426238908:d=2023110400:CICEP:surface:anl: +592:426239195:d=2023110400:CFRZR:surface:anl: +593:426239752:d=2023110400:CRAIN:surface:anl: +594:426346079:d=2023110400:SFCR:surface:anl: +595:426834128:d=2023110400:FRICV:surface:anl: +596:427776563:d=2023110400:VEG:surface:anl: +597:428085219:d=2023110400:SOTYP:surface:anl: +598:428383678:d=2023110400:WILT:surface:anl: +599:428745437:d=2023110400:FLDCP:surface:anl: +600:429112525:d=2023110400:SUNSD:surface:anl: +601:429457420:d=2023110400:LFTX:surface:anl: +602:430001630:d=2023110400:CAPE:surface:anl: +603:430531098:d=2023110400:CIN:surface:anl: +604:431036696:d=2023110400:PWAT:entire atmosphere (considered as a single layer):anl: +605:432220753:d=2023110400:CWAT:entire atmosphere (considered as a single layer):anl: +606:432601246:d=2023110400:RH:entire atmosphere (considered as a single layer):anl: +607:433195857:d=2023110400:TOZNE:entire atmosphere (considered as a single layer):anl: +608:433788234:d=2023110400:LCDC:low cloud layer:anl: +609:434582345:d=2023110400:MCDC:middle cloud layer:anl: +610:435158176:d=2023110400:HCDC:high cloud layer:anl: +611:435902272:d=2023110400:TCDC:entire atmosphere:anl: +612:436728250:d=2023110400:HGT:cloud ceiling:anl: +613:437923080:d=2023110400:HLCY:3000-0 m above ground:anl: +614:438601847:d=2023110400:USTM:6000-0 m above ground:anl: +615:439577292:d=2023110400:VSTM:6000-0 m above ground:anl: +616:440531748:d=2023110400:PRES:tropopause:anl: +617:441942291:d=2023110400:ICAHT:tropopause:anl: +618:443418077:d=2023110400:HGT:tropopause:anl: +619:444752444:d=2023110400:TMP:tropopause:anl: +620:445715673:d=2023110400:UGRD:tropopause:anl: +621:446413789:d=2023110400:VGRD:tropopause:anl: +622:447087018:d=2023110400:VWSH:tropopause:anl: +623:447638358:d=2023110400:PRES:max wind:anl: +624:449247030:d=2023110400:ICAHT:max wind:anl: +625:450887104:d=2023110400:HGT:max wind:anl: +626:452535410:d=2023110400:UGRD:max wind:anl: +627:453250741:d=2023110400:VGRD:max wind:anl: +628:454009422:d=2023110400:TMP:max wind:anl: +629:455258033:d=2023110400:UGRD:20 m above ground:anl: +630:456218927:d=2023110400:VGRD:20 m above ground:anl: +631:457166863:d=2023110400:UGRD:30 m above ground:anl: +632:458137609:d=2023110400:VGRD:30 m above ground:anl: +633:459095085:d=2023110400:UGRD:40 m above ground:anl: +634:460066438:d=2023110400:VGRD:40 m above ground:anl: +635:461025746:d=2023110400:UGRD:50 m above ground:anl: +636:461998852:d=2023110400:VGRD:50 m above ground:anl: +637:462961089:d=2023110400:TMP:80 m above ground:anl: +638:463809910:d=2023110400:SPFH:80 m above ground:anl: +639:465112363:d=2023110400:PRES:80 m above ground:anl: +640:465941801:d=2023110400:UGRD:80 m above ground:anl: +641:466914468:d=2023110400:VGRD:80 m above ground:anl: +642:467878955:d=2023110400:TMP:100 m above ground:anl: +643:468724662:d=2023110400:UGRD:100 m above ground:anl: +644:469700410:d=2023110400:VGRD:100 m above ground:anl: +645:470665733:d=2023110400:TMP:1829 m above mean sea level:anl: +646:471555612:d=2023110400:UGRD:1829 m above mean sea level:anl: +647:472561437:d=2023110400:VGRD:1829 m above mean sea level:anl: +648:473572183:d=2023110400:TMP:2743 m above mean sea level:anl: +649:474436381:d=2023110400:UGRD:2743 m above mean sea level:anl: +650:475446781:d=2023110400:VGRD:2743 m above mean sea level:anl: +651:476455455:d=2023110400:TMP:3658 m above mean sea level:anl: +652:477312792:d=2023110400:UGRD:3658 m above mean sea level:anl: +653:478334170:d=2023110400:VGRD:3658 m above mean sea level:anl: +654:479347826:d=2023110400:HGT:0C isotherm:anl: +655:480257245:d=2023110400:RH:0C isotherm:anl: +656:481099954:d=2023110400:HGT:highest tropospheric freezing level:anl: +657:482003319:d=2023110400:RH:highest tropospheric freezing level:anl: +658:482843934:d=2023110400:TMP:30-0 mb above ground:anl: +659:483681764:d=2023110400:RH:30-0 mb above ground:anl: +660:484467090:d=2023110400:SPFH:30-0 mb above ground:anl: +661:485764958:d=2023110400:UGRD:30-0 mb above ground:anl: +662:486729720:d=2023110400:VGRD:30-0 mb above ground:anl: +663:487686196:d=2023110400:4LFTX:surface:anl: +664:488207219:d=2023110400:CAPE:180-0 mb above ground:anl: +665:488708360:d=2023110400:CIN:180-0 mb above ground:anl: +666:489251337:d=2023110400:HPBL:surface:anl: +667:490695940:d=2023110400:RH:0.33-1 sigma layer:anl: +668:491417048:d=2023110400:RH:0.44-1 sigma layer:anl: +669:492125333:d=2023110400:RH:0.72-0.94 sigma layer:anl: +670:492890059:d=2023110400:RH:0.44-0.72 sigma layer:anl: +671:493617438:d=2023110400:TMP:0.995 sigma level:anl: +672:494482379:d=2023110400:POT:0.995 sigma level:anl: +673:495340495:d=2023110400:RH:0.995 sigma level:anl: +674:496138079:d=2023110400:UGRD:0.995 sigma level:anl: +675:497122986:d=2023110400:VGRD:0.995 sigma level:anl: +676:498094581:d=2023110400:VVEL:0.995 sigma level:anl: +677:499037431:d=2023110400:CAPE:90-0 mb above ground:anl: +678:499493631:d=2023110400:CIN:90-0 mb above ground:anl: +679:500019085:d=2023110400:CAPE:255-0 mb above ground:anl: +680:500503472:d=2023110400:CIN:255-0 mb above ground:anl: +681:500964676:d=2023110400:PLPL:255-0 mb above ground:anl: +682:501882020:d=2023110400:LAND:surface:anl: +683:501914056:d=2023110400:ICEC:surface:anl: +684:502042426:d=2023110400:ICETMP:surface:anl: +685:502243345:d=2023110400:UGRD:PV=2e-06 (Km^2/kg/s) surface:anl: +686:502873424:d=2023110400:VGRD:PV=2e-06 (Km^2/kg/s) surface:anl: +687:503490189:d=2023110400:TMP:PV=2e-06 (Km^2/kg/s) surface:anl: +688:504109749:d=2023110400:HGT:PV=2e-06 (Km^2/kg/s) surface:anl: +689:505237297:d=2023110400:PRES:PV=2e-06 (Km^2/kg/s) surface:anl: +690:506327749:d=2023110400:VWSH:PV=2e-06 (Km^2/kg/s) surface:anl: +691:506795597:d=2023110400:UGRD:PV=-2e-06 (Km^2/kg/s) surface:anl: +692:507441542:d=2023110400:VGRD:PV=-2e-06 (Km^2/kg/s) surface:anl: +693:508070854:d=2023110400:TMP:PV=-2e-06 (Km^2/kg/s) surface:anl: +694:508704718:d=2023110400:HGT:PV=-2e-06 (Km^2/kg/s) surface:anl: +695:509859131:d=2023110400:PRES:PV=-2e-06 (Km^2/kg/s) surface:anl: +696:510976466:d=2023110400:VWSH:PV=-2e-06 (Km^2/kg/s) surface:anl: diff --git a/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10 b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10 new file mode 100644 index 00000000..9f5985b5 Binary files /dev/null and b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx new file mode 100644 index 00000000..df24762b --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2023110400:PRMSL:mean sea level:anl: +2:995976:d=2023110400:CLWMR:1 hybrid level:anl: +3:1070083:d=2023110400:ICMR:1 hybrid level:anl: +4:1354918:d=2023110400:RWMR:1 hybrid level:anl: +5:1570870:d=2023110400:SNMR:1 hybrid level:anl: +6:1674067:d=2023110400:GRLE:1 hybrid level:anl: +7:1717327:d=2023110400:REFD:1 hybrid level:anl: +8:2513145:d=2023110400:REFD:2 hybrid level:anl: +9:3309276:d=2023110400:REFC:entire atmosphere:anl: +10:4178835:d=2023110400:VIS:surface:anl: +11:4945324:d=2023110400:UGRD:planetary boundary layer:anl: diff --git a/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.idx b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.idx new file mode 100644 index 00000000..40eaa277 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.idx @@ -0,0 +1,743 @@ +1:0:d=2023110400:PRMSL:mean sea level:21 hour fcst: +2:1000996:d=2023110400:CLWMR:1 hybrid level:21 hour fcst: +3:1083544:d=2023110400:ICMR:1 hybrid level:21 hour fcst: +4:1350919:d=2023110400:RWMR:1 hybrid level:21 hour fcst: +5:1573977:d=2023110400:SNMR:1 hybrid level:21 hour fcst: +6:1664167:d=2023110400:GRLE:1 hybrid level:21 hour fcst: +7:1702969:d=2023110400:REFD:1 hybrid level:21 hour fcst: +8:2493197:d=2023110400:REFD:2 hybrid level:21 hour fcst: +9:3284363:d=2023110400:REFC:entire atmosphere:21 hour fcst: +10:4149563:d=2023110400:VIS:surface:21 hour fcst: +11:4925067:d=2023110400:UGRD:planetary boundary layer:21 hour fcst: +12:5525375:d=2023110400:VGRD:planetary boundary layer:21 hour fcst: +13:6126802:d=2023110400:VRATE:planetary boundary layer:21 hour fcst: +14:6435708:d=2023110400:GUST:surface:21 hour fcst: +15:7055266:d=2023110400:HGT:0.01 mb:21 hour fcst: +16:8096343:d=2023110400:TMP:0.01 mb:21 hour fcst: +17:8693216:d=2023110400:RH:0.01 mb:21 hour fcst: +18:8727632:d=2023110400:SPFH:0.01 mb:21 hour fcst: +19:9808749:d=2023110400:VVEL:0.01 mb:21 hour fcst: +20:10859503:d=2023110400:DZDT:0.01 mb:21 hour fcst: +21:12133758:d=2023110400:UGRD:0.01 mb:21 hour fcst: +22:12739062:d=2023110400:VGRD:0.01 mb:21 hour fcst: +23:13259323:d=2023110400:ABSV:0.01 mb:21 hour fcst: +24:13936432:d=2023110400:O3MR:0.01 mb:21 hour fcst: +25:14916077:d=2023110400:HGT:0.02 mb:21 hour fcst: +26:15932922:d=2023110400:TMP:0.02 mb:21 hour fcst: +27:16774502:d=2023110400:RH:0.02 mb:21 hour fcst: +28:16782743:d=2023110400:SPFH:0.02 mb:21 hour fcst: +29:17894907:d=2023110400:VVEL:0.02 mb:21 hour fcst: +30:19208836:d=2023110400:DZDT:0.02 mb:21 hour fcst: +31:20559892:d=2023110400:UGRD:0.02 mb:21 hour fcst: +32:21221619:d=2023110400:VGRD:0.02 mb:21 hour fcst: +33:21800960:d=2023110400:ABSV:0.02 mb:21 hour fcst: +34:22622281:d=2023110400:O3MR:0.02 mb:21 hour fcst: +35:23750979:d=2023110400:HGT:0.04 mb:21 hour fcst: +36:24687555:d=2023110400:TMP:0.04 mb:21 hour fcst: +37:25558013:d=2023110400:RH:0.04 mb:21 hour fcst: +38:25558577:d=2023110400:SPFH:0.04 mb:21 hour fcst: +39:26682537:d=2023110400:VVEL:0.04 mb:21 hour fcst: +40:28039416:d=2023110400:DZDT:0.04 mb:21 hour fcst: +41:29144406:d=2023110400:UGRD:0.04 mb:21 hour fcst: +42:29773954:d=2023110400:VGRD:0.04 mb:21 hour fcst: +43:30405016:d=2023110400:ABSV:0.04 mb:21 hour fcst: +44:31412271:d=2023110400:O3MR:0.04 mb:21 hour fcst: +45:32423208:d=2023110400:HGT:0.07 mb:21 hour fcst: +46:33349312:d=2023110400:TMP:0.07 mb:21 hour fcst: +47:34221598:d=2023110400:RH:0.07 mb:21 hour fcst: +48:34221808:d=2023110400:SPFH:0.07 mb:21 hour fcst: +49:35311269:d=2023110400:VVEL:0.07 mb:21 hour fcst: +50:36439780:d=2023110400:DZDT:0.07 mb:21 hour fcst: +51:37520094:d=2023110400:UGRD:0.07 mb:21 hour fcst: +52:38168998:d=2023110400:VGRD:0.07 mb:21 hour fcst: +53:38805395:d=2023110400:ABSV:0.07 mb:21 hour fcst: +54:39808495:d=2023110400:O3MR:0.07 mb:21 hour fcst: +55:40835392:d=2023110400:HGT:0.1 mb:21 hour fcst: +56:41751549:d=2023110400:TMP:0.1 mb:21 hour fcst: +57:42585902:d=2023110400:RH:0.1 mb:21 hour fcst: +58:42586112:d=2023110400:SPFH:0.1 mb:21 hour fcst: +59:43621797:d=2023110400:VVEL:0.1 mb:21 hour fcst: +60:44788500:d=2023110400:DZDT:0.1 mb:21 hour fcst: +61:45841913:d=2023110400:UGRD:0.1 mb:21 hour fcst: +62:46464952:d=2023110400:VGRD:0.1 mb:21 hour fcst: +63:47067358:d=2023110400:ABSV:0.1 mb:21 hour fcst: +64:48019686:d=2023110400:O3MR:0.1 mb:21 hour fcst: +65:49223187:d=2023110400:HGT:0.2 mb:21 hour fcst: +66:50092367:d=2023110400:TMP:0.2 mb:21 hour fcst: +67:50892724:d=2023110400:RH:0.2 mb:21 hour fcst: +68:50892934:d=2023110400:SPFH:0.2 mb:21 hour fcst: +69:51871086:d=2023110400:VVEL:0.2 mb:21 hour fcst: +70:53115045:d=2023110400:DZDT:0.2 mb:21 hour fcst: +71:54139243:d=2023110400:UGRD:0.2 mb:21 hour fcst: +72:54711393:d=2023110400:VGRD:0.2 mb:21 hour fcst: +73:55253804:d=2023110400:ABSV:0.2 mb:21 hour fcst: +74:56115356:d=2023110400:O3MR:0.2 mb:21 hour fcst: +75:57373285:d=2023110400:HGT:0.4 mb:21 hour fcst: +76:58205299:d=2023110400:TMP:0.4 mb:21 hour fcst: +77:58990379:d=2023110400:RH:0.4 mb:21 hour fcst: +78:58990589:d=2023110400:SPFH:0.4 mb:21 hour fcst: +79:59939414:d=2023110400:VVEL:0.4 mb:21 hour fcst: +80:61258315:d=2023110400:DZDT:0.4 mb:21 hour fcst: +81:62524128:d=2023110400:UGRD:0.4 mb:21 hour fcst: +82:63477237:d=2023110400:VGRD:0.4 mb:21 hour fcst: +83:64353830:d=2023110400:ABSV:0.4 mb:21 hour fcst: +84:65146147:d=2023110400:O3MR:0.4 mb:21 hour fcst: +85:66140844:d=2023110400:HGT:0.7 mb:21 hour fcst: +86:66941726:d=2023110400:TMP:0.7 mb:21 hour fcst: +87:67719358:d=2023110400:RH:0.7 mb:21 hour fcst: +88:67719568:d=2023110400:SPFH:0.7 mb:21 hour fcst: +89:68678811:d=2023110400:VVEL:0.7 mb:21 hour fcst: +90:69919781:d=2023110400:DZDT:0.7 mb:21 hour fcst: +91:71148283:d=2023110400:UGRD:0.7 mb:21 hour fcst: +92:71671881:d=2023110400:VGRD:0.7 mb:21 hour fcst: +93:72157908:d=2023110400:ABSV:0.7 mb:21 hour fcst: +94:72919652:d=2023110400:O3MR:0.7 mb:21 hour fcst: +95:73966190:d=2023110400:HGT:1 mb:21 hour fcst: +96:74754118:d=2023110400:TMP:1 mb:21 hour fcst: +97:75523141:d=2023110400:RH:1 mb:21 hour fcst: +98:75523351:d=2023110400:SPFH:1 mb:21 hour fcst: +99:76504943:d=2023110400:VVEL:1 mb:21 hour fcst: +100:77786421:d=2023110400:DZDT:1 mb:21 hour fcst: +101:78981769:d=2023110400:UGRD:1 mb:21 hour fcst: +102:79898337:d=2023110400:VGRD:1 mb:21 hour fcst: +103:80727959:d=2023110400:ABSV:1 mb:21 hour fcst: +104:81465833:d=2023110400:O3MR:1 mb:21 hour fcst: +105:82547685:d=2023110400:HGT:2 mb:21 hour fcst: +106:83301173:d=2023110400:TMP:2 mb:21 hour fcst: +107:84104565:d=2023110400:RH:2 mb:21 hour fcst: +108:84104809:d=2023110400:SPFH:2 mb:21 hour fcst: +109:85176916:d=2023110400:VVEL:2 mb:21 hour fcst: +110:86564667:d=2023110400:DZDT:2 mb:21 hour fcst: +111:87863693:d=2023110400:UGRD:2 mb:21 hour fcst: +112:88798396:d=2023110400:VGRD:2 mb:21 hour fcst: +113:89642207:d=2023110400:ABSV:2 mb:21 hour fcst: +114:90394544:d=2023110400:O3MR:2 mb:21 hour fcst: +115:91525233:d=2023110400:HGT:3 mb:21 hour fcst: +116:92267487:d=2023110400:TMP:3 mb:21 hour fcst: +117:93047629:d=2023110400:RH:3 mb:21 hour fcst: +118:93051269:d=2023110400:SPFH:3 mb:21 hour fcst: +119:94134858:d=2023110400:VVEL:3 mb:21 hour fcst: +120:95277230:d=2023110400:DZDT:3 mb:21 hour fcst: +121:96545171:d=2023110400:UGRD:3 mb:21 hour fcst: +122:97464772:d=2023110400:VGRD:3 mb:21 hour fcst: +123:98292580:d=2023110400:ABSV:3 mb:21 hour fcst: +124:99028906:d=2023110400:O3MR:3 mb:21 hour fcst: +125:100112682:d=2023110400:HGT:5 mb:21 hour fcst: +126:100835327:d=2023110400:TMP:5 mb:21 hour fcst: +127:101628617:d=2023110400:RH:5 mb:21 hour fcst: +128:101646448:d=2023110400:SPFH:5 mb:21 hour fcst: +129:102737586:d=2023110400:VVEL:5 mb:21 hour fcst: +130:103968554:d=2023110400:DZDT:5 mb:21 hour fcst: +131:105229096:d=2023110400:UGRD:5 mb:21 hour fcst: +132:106163891:d=2023110400:VGRD:5 mb:21 hour fcst: +133:107006075:d=2023110400:ABSV:5 mb:21 hour fcst: +134:107755034:d=2023110400:O3MR:5 mb:21 hour fcst: +135:108783839:d=2023110400:HGT:7 mb:21 hour fcst: +136:109498718:d=2023110400:TMP:7 mb:21 hour fcst: +137:110259256:d=2023110400:RH:7 mb:21 hour fcst: +138:110287947:d=2023110400:SPFH:7 mb:21 hour fcst: +139:111345285:d=2023110400:VVEL:7 mb:21 hour fcst: +140:112618418:d=2023110400:DZDT:7 mb:21 hour fcst: +141:113847860:d=2023110400:UGRD:7 mb:21 hour fcst: +142:114351994:d=2023110400:VGRD:7 mb:21 hour fcst: +143:114821971:d=2023110400:ABSV:7 mb:21 hour fcst: +144:115544287:d=2023110400:O3MR:7 mb:21 hour fcst: +145:116328371:d=2023110400:HGT:10 mb:21 hour fcst: +146:117150483:d=2023110400:TMP:10 mb:21 hour fcst: +147:117898944:d=2023110400:RH:10 mb:21 hour fcst: +148:117943543:d=2023110400:SPFH:10 mb:21 hour fcst: +149:118964282:d=2023110400:VVEL:10 mb:21 hour fcst: +150:120299044:d=2023110400:DZDT:10 mb:21 hour fcst: +151:121521105:d=2023110400:UGRD:10 mb:21 hour fcst: +152:122424575:d=2023110400:VGRD:10 mb:21 hour fcst: +153:123226521:d=2023110400:ABSV:10 mb:21 hour fcst: +154:123929981:d=2023110400:O3MR:10 mb:21 hour fcst: +155:124761659:d=2023110400:HGT:15 mb:21 hour fcst: +156:125572310:d=2023110400:TMP:15 mb:21 hour fcst: +157:126316656:d=2023110400:RH:15 mb:21 hour fcst: +158:126377552:d=2023110400:SPFH:15 mb:21 hour fcst: +159:127343667:d=2023110400:VVEL:15 mb:21 hour fcst: +160:128742216:d=2023110400:DZDT:15 mb:21 hour fcst: +161:129951103:d=2023110400:UGRD:15 mb:21 hour fcst: +162:130850342:d=2023110400:VGRD:15 mb:21 hour fcst: +163:131638136:d=2023110400:ABSV:15 mb:21 hour fcst: +164:132318131:d=2023110400:O3MR:15 mb:21 hour fcst: +165:133189919:d=2023110400:HGT:20 mb:21 hour fcst: +166:133983547:d=2023110400:TMP:20 mb:21 hour fcst: +167:134723111:d=2023110400:RH:20 mb:21 hour fcst: +168:134820594:d=2023110400:SPFH:20 mb:21 hour fcst: +169:135755253:d=2023110400:VVEL:20 mb:21 hour fcst: +170:137192615:d=2023110400:DZDT:20 mb:21 hour fcst: +171:138382511:d=2023110400:UGRD:20 mb:21 hour fcst: +172:139275206:d=2023110400:VGRD:20 mb:21 hour fcst: +173:140055648:d=2023110400:ABSV:20 mb:21 hour fcst: +174:140728609:d=2023110400:O3MR:20 mb:21 hour fcst: +175:141910937:d=2023110400:HGT:30 mb:21 hour fcst: +176:142679426:d=2023110400:TMP:30 mb:21 hour fcst: +177:143400125:d=2023110400:RH:30 mb:21 hour fcst: +178:143563515:d=2023110400:SPFH:30 mb:21 hour fcst: +179:144500578:d=2023110400:VVEL:30 mb:21 hour fcst: +180:145852213:d=2023110400:DZDT:30 mb:21 hour fcst: +181:147007431:d=2023110400:UGRD:30 mb:21 hour fcst: +182:147888928:d=2023110400:VGRD:30 mb:21 hour fcst: +183:148659881:d=2023110400:ABSV:30 mb:21 hour fcst: +184:149333815:d=2023110400:O3MR:30 mb:21 hour fcst: +185:150513403:d=2023110400:HGT:40 mb:21 hour fcst: +186:151264634:d=2023110400:TMP:40 mb:21 hour fcst: +187:152013556:d=2023110400:RH:40 mb:21 hour fcst: +188:152239341:d=2023110400:SPFH:40 mb:21 hour fcst: +189:153235116:d=2023110400:VVEL:40 mb:21 hour fcst: +190:154335722:d=2023110400:DZDT:40 mb:21 hour fcst: +191:155483105:d=2023110400:UGRD:40 mb:21 hour fcst: +192:156391044:d=2023110400:VGRD:40 mb:21 hour fcst: +193:157205979:d=2023110400:ABSV:40 mb:21 hour fcst: +194:157958340:d=2023110400:O3MR:40 mb:21 hour fcst: +195:159160156:d=2023110400:HGT:50 mb:21 hour fcst: +196:159897296:d=2023110400:TMP:50 mb:21 hour fcst: +197:160630198:d=2023110400:RH:50 mb:21 hour fcst: +198:160901015:d=2023110400:TCDC:50 mb:21 hour fcst: +199:160901194:d=2023110400:SPFH:50 mb:21 hour fcst: +200:161904325:d=2023110400:VVEL:50 mb:21 hour fcst: +201:163025444:d=2023110400:DZDT:50 mb:21 hour fcst: +202:164148092:d=2023110400:UGRD:50 mb:21 hour fcst: +203:164997576:d=2023110400:VGRD:50 mb:21 hour fcst: +204:165817983:d=2023110400:ABSV:50 mb:21 hour fcst: +205:166584147:d=2023110400:CLWMR:50 mb:21 hour fcst: +206:166584326:d=2023110400:ICMR:50 mb:21 hour fcst: +207:166584505:d=2023110400:RWMR:50 mb:21 hour fcst: +208:167611962:d=2023110400:SNMR:50 mb:21 hour fcst: +209:168735817:d=2023110400:GRLE:50 mb:21 hour fcst: +210:169862381:d=2023110400:O3MR:50 mb:21 hour fcst: +211:171152244:d=2023110400:HGT:70 mb:21 hour fcst: +212:171889571:d=2023110400:TMP:70 mb:21 hour fcst: +213:172644469:d=2023110400:RH:70 mb:21 hour fcst: +214:173051651:d=2023110400:SPFH:70 mb:21 hour fcst: +215:174141895:d=2023110400:VVEL:70 mb:21 hour fcst: +216:175319180:d=2023110400:DZDT:70 mb:21 hour fcst: +217:176435223:d=2023110400:UGRD:70 mb:21 hour fcst: +218:177311374:d=2023110400:VGRD:70 mb:21 hour fcst: +219:178160690:d=2023110400:ABSV:70 mb:21 hour fcst: +220:178963720:d=2023110400:O3MR:70 mb:21 hour fcst: +221:180223129:d=2023110400:HGT:100 mb:21 hour fcst: +222:180959042:d=2023110400:TMP:100 mb:21 hour fcst: +223:181722806:d=2023110400:RH:100 mb:21 hour fcst: +224:182247779:d=2023110400:TCDC:100 mb:21 hour fcst: +225:182383700:d=2023110400:SPFH:100 mb:21 hour fcst: +226:183510867:d=2023110400:VVEL:100 mb:21 hour fcst: +227:184776635:d=2023110400:DZDT:100 mb:21 hour fcst: +228:185904345:d=2023110400:UGRD:100 mb:21 hour fcst: +229:186809954:d=2023110400:VGRD:100 mb:21 hour fcst: +230:187700785:d=2023110400:ABSV:100 mb:21 hour fcst: +231:188556508:d=2023110400:CLWMR:100 mb:21 hour fcst: +232:188557302:d=2023110400:ICMR:100 mb:21 hour fcst: +233:188593590:d=2023110400:RWMR:100 mb:21 hour fcst: +234:189730198:d=2023110400:SNMR:100 mb:21 hour fcst: +235:189755631:d=2023110400:GRLE:100 mb:21 hour fcst: +236:189756212:d=2023110400:O3MR:100 mb:21 hour fcst: +237:190898376:d=2023110400:HGT:150 mb:21 hour fcst: +238:191635651:d=2023110400:TMP:150 mb:21 hour fcst: +239:192377245:d=2023110400:RH:150 mb:21 hour fcst: +240:192995454:d=2023110400:TCDC:150 mb:21 hour fcst: +241:193204783:d=2023110400:SPFH:150 mb:21 hour fcst: +242:194372675:d=2023110400:VVEL:150 mb:21 hour fcst: +243:195331022:d=2023110400:DZDT:150 mb:21 hour fcst: +244:196373472:d=2023110400:UGRD:150 mb:21 hour fcst: +245:197300569:d=2023110400:VGRD:150 mb:21 hour fcst: +246:198213138:d=2023110400:ABSV:150 mb:21 hour fcst: +247:199097371:d=2023110400:CLWMR:150 mb:21 hour fcst: +248:199121691:d=2023110400:ICMR:150 mb:21 hour fcst: +249:199273751:d=2023110400:RWMR:150 mb:21 hour fcst: +250:200085568:d=2023110400:SNMR:150 mb:21 hour fcst: +251:200102635:d=2023110400:GRLE:150 mb:21 hour fcst: +252:200105246:d=2023110400:O3MR:150 mb:21 hour fcst: +253:201092007:d=2023110400:HGT:200 mb:21 hour fcst: +254:201825701:d=2023110400:TMP:200 mb:21 hour fcst: +255:202581954:d=2023110400:RH:200 mb:21 hour fcst: +256:203338822:d=2023110400:TCDC:200 mb:21 hour fcst: +257:203692604:d=2023110400:SPFH:200 mb:21 hour fcst: +258:204751824:d=2023110400:VVEL:200 mb:21 hour fcst: +259:205775128:d=2023110400:DZDT:200 mb:21 hour fcst: +260:206839524:d=2023110400:UGRD:200 mb:21 hour fcst: +261:207419472:d=2023110400:VGRD:200 mb:21 hour fcst: +262:207997460:d=2023110400:ABSV:200 mb:21 hour fcst: +263:208911617:d=2023110400:CLWMR:200 mb:21 hour fcst: +264:208963671:d=2023110400:ICMR:200 mb:21 hour fcst: +265:209216751:d=2023110400:RWMR:200 mb:21 hour fcst: +266:210095592:d=2023110400:SNMR:200 mb:21 hour fcst: +267:210167935:d=2023110400:GRLE:200 mb:21 hour fcst: +268:210173601:d=2023110400:O3MR:200 mb:21 hour fcst: +269:211370574:d=2023110400:HGT:250 mb:21 hour fcst: +270:212100922:d=2023110400:TMP:250 mb:21 hour fcst: +271:212840356:d=2023110400:RH:250 mb:21 hour fcst: +272:213667153:d=2023110400:TCDC:250 mb:21 hour fcst: +273:214157193:d=2023110400:SPFH:250 mb:21 hour fcst: +274:215327787:d=2023110400:VVEL:250 mb:21 hour fcst: +275:216412794:d=2023110400:DZDT:250 mb:21 hour fcst: +276:217499716:d=2023110400:UGRD:250 mb:21 hour fcst: +277:218092269:d=2023110400:VGRD:250 mb:21 hour fcst: +278:218691196:d=2023110400:ABSV:250 mb:21 hour fcst: +279:219644578:d=2023110400:CLWMR:250 mb:21 hour fcst: +280:219646468:d=2023110400:ICMR:250 mb:21 hour fcst: +281:220022154:d=2023110400:RWMR:250 mb:21 hour fcst: +282:220932267:d=2023110400:SNMR:250 mb:21 hour fcst: +283:221049738:d=2023110400:GRLE:250 mb:21 hour fcst: +284:221059187:d=2023110400:O3MR:250 mb:21 hour fcst: +285:222328757:d=2023110400:HGT:300 mb:21 hour fcst: +286:223051383:d=2023110400:TMP:300 mb:21 hour fcst: +287:223799200:d=2023110400:RH:300 mb:21 hour fcst: +288:224662062:d=2023110400:TCDC:300 mb:21 hour fcst: +289:225157532:d=2023110400:SPFH:300 mb:21 hour fcst: +290:226337063:d=2023110400:VVEL:300 mb:21 hour fcst: +291:227464926:d=2023110400:DZDT:300 mb:21 hour fcst: +292:228567901:d=2023110400:UGRD:300 mb:21 hour fcst: +293:229173564:d=2023110400:VGRD:300 mb:21 hour fcst: +294:229790270:d=2023110400:ABSV:300 mb:21 hour fcst: +295:230777761:d=2023110400:CLWMR:300 mb:21 hour fcst: +296:230780442:d=2023110400:ICMR:300 mb:21 hour fcst: +297:231181670:d=2023110400:RWMR:300 mb:21 hour fcst: +298:232086372:d=2023110400:SNMR:300 mb:21 hour fcst: +299:232230211:d=2023110400:GRLE:300 mb:21 hour fcst: +300:232245902:d=2023110400:O3MR:300 mb:21 hour fcst: +301:233479105:d=2023110400:HGT:350 mb:21 hour fcst: +302:234189410:d=2023110400:TMP:350 mb:21 hour fcst: +303:234913561:d=2023110400:RH:350 mb:21 hour fcst: +304:235754119:d=2023110400:TCDC:350 mb:21 hour fcst: +305:236231397:d=2023110400:SPFH:350 mb:21 hour fcst: +306:237399042:d=2023110400:VVEL:350 mb:21 hour fcst: +307:238540520:d=2023110400:DZDT:350 mb:21 hour fcst: +308:239636784:d=2023110400:UGRD:350 mb:21 hour fcst: +309:240221255:d=2023110400:VGRD:350 mb:21 hour fcst: +310:240819140:d=2023110400:ABSV:350 mb:21 hour fcst: +311:241785284:d=2023110400:CLWMR:350 mb:21 hour fcst: +312:241789260:d=2023110400:ICMR:350 mb:21 hour fcst: +313:242236228:d=2023110400:RWMR:350 mb:21 hour fcst: +314:242724972:d=2023110400:SNMR:350 mb:21 hour fcst: +315:242890396:d=2023110400:GRLE:350 mb:21 hour fcst: +316:242913889:d=2023110400:O3MR:350 mb:21 hour fcst: +317:244090738:d=2023110400:HGT:400 mb:21 hour fcst: +318:244792954:d=2023110400:TMP:400 mb:21 hour fcst: +319:245513524:d=2023110400:RH:400 mb:21 hour fcst: +320:246342343:d=2023110400:TCDC:400 mb:21 hour fcst: +321:246802583:d=2023110400:SPFH:400 mb:21 hour fcst: +322:247938239:d=2023110400:VVEL:400 mb:21 hour fcst: +323:249088029:d=2023110400:DZDT:400 mb:21 hour fcst: +324:250170287:d=2023110400:UGRD:400 mb:21 hour fcst: +325:250743598:d=2023110400:VGRD:400 mb:21 hour fcst: +326:251324423:d=2023110400:ABSV:400 mb:21 hour fcst: +327:252265480:d=2023110400:CLWMR:400 mb:21 hour fcst: +328:252273261:d=2023110400:ICMR:400 mb:21 hour fcst: +329:252713148:d=2023110400:RWMR:400 mb:21 hour fcst: +330:252972017:d=2023110400:SNMR:400 mb:21 hour fcst: +331:253153721:d=2023110400:GRLE:400 mb:21 hour fcst: +332:253184755:d=2023110400:O3MR:400 mb:21 hour fcst: +333:254325995:d=2023110400:HGT:450 mb:21 hour fcst: +334:255022631:d=2023110400:TMP:450 mb:21 hour fcst: +335:255741407:d=2023110400:RH:450 mb:21 hour fcst: +336:256562175:d=2023110400:TCDC:450 mb:21 hour fcst: +337:257010760:d=2023110400:SPFH:450 mb:21 hour fcst: +338:258219249:d=2023110400:VVEL:450 mb:21 hour fcst: +339:259376152:d=2023110400:DZDT:450 mb:21 hour fcst: +340:260445722:d=2023110400:UGRD:450 mb:21 hour fcst: +341:260999241:d=2023110400:VGRD:450 mb:21 hour fcst: +342:261564435:d=2023110400:ABSV:450 mb:21 hour fcst: +343:262480393:d=2023110400:CLWMR:450 mb:21 hour fcst: +344:262506136:d=2023110400:ICMR:450 mb:21 hour fcst: +345:262939118:d=2023110400:RWMR:450 mb:21 hour fcst: +346:263104503:d=2023110400:SNMR:450 mb:21 hour fcst: +347:263301847:d=2023110400:GRLE:450 mb:21 hour fcst: +348:263342383:d=2023110400:O3MR:450 mb:21 hour fcst: +349:264450458:d=2023110400:HGT:500 mb:21 hour fcst: +350:265257283:d=2023110400:TMP:500 mb:21 hour fcst: +351:265982546:d=2023110400:RH:500 mb:21 hour fcst: +352:266789959:d=2023110400:TCDC:500 mb:21 hour fcst: +353:267232153:d=2023110400:SPFH:500 mb:21 hour fcst: +354:268494549:d=2023110400:VVEL:500 mb:21 hour fcst: +355:269652453:d=2023110400:DZDT:500 mb:21 hour fcst: +356:270711967:d=2023110400:UGRD:500 mb:21 hour fcst: +357:271627652:d=2023110400:VGRD:500 mb:21 hour fcst: +358:272545027:d=2023110400:ABSV:500 mb:21 hour fcst: +359:273426683:d=2023110400:CLWMR:500 mb:21 hour fcst: +360:273501637:d=2023110400:ICMR:500 mb:21 hour fcst: +361:273949305:d=2023110400:RWMR:500 mb:21 hour fcst: +362:274000566:d=2023110400:SNMR:500 mb:21 hour fcst: +363:274214382:d=2023110400:GRLE:500 mb:21 hour fcst: +364:274270297:d=2023110400:O3MR:500 mb:21 hour fcst: +365:275348792:d=2023110400:HGT:550 mb:21 hour fcst: +366:276155225:d=2023110400:TMP:550 mb:21 hour fcst: +367:276883732:d=2023110400:RH:550 mb:21 hour fcst: +368:277687842:d=2023110400:TCDC:550 mb:21 hour fcst: +369:278129706:d=2023110400:SPFH:550 mb:21 hour fcst: +370:279314107:d=2023110400:VVEL:550 mb:21 hour fcst: +371:280483634:d=2023110400:DZDT:550 mb:21 hour fcst: +372:281534542:d=2023110400:UGRD:550 mb:21 hour fcst: +373:282443429:d=2023110400:VGRD:550 mb:21 hour fcst: +374:283348660:d=2023110400:ABSV:550 mb:21 hour fcst: +375:284212567:d=2023110400:CLWMR:550 mb:21 hour fcst: +376:284324733:d=2023110400:ICMR:550 mb:21 hour fcst: +377:284756261:d=2023110400:RWMR:550 mb:21 hour fcst: +378:284806979:d=2023110400:SNMR:550 mb:21 hour fcst: +379:285028525:d=2023110400:GRLE:550 mb:21 hour fcst: +380:285100702:d=2023110400:O3MR:550 mb:21 hour fcst: +381:286146052:d=2023110400:HGT:600 mb:21 hour fcst: +382:286952985:d=2023110400:TMP:600 mb:21 hour fcst: +383:287687675:d=2023110400:RH:600 mb:21 hour fcst: +384:288495827:d=2023110400:TCDC:600 mb:21 hour fcst: +385:288907044:d=2023110400:SPFH:600 mb:21 hour fcst: +386:290134197:d=2023110400:VVEL:600 mb:21 hour fcst: +387:291310070:d=2023110400:DZDT:600 mb:21 hour fcst: +388:292484862:d=2023110400:UGRD:600 mb:21 hour fcst: +389:293389455:d=2023110400:VGRD:600 mb:21 hour fcst: +390:294286425:d=2023110400:ABSV:600 mb:21 hour fcst: +391:295134952:d=2023110400:CLWMR:600 mb:21 hour fcst: +392:295272537:d=2023110400:ICMR:600 mb:21 hour fcst: +393:295627056:d=2023110400:RWMR:600 mb:21 hour fcst: +394:295714729:d=2023110400:SNMR:600 mb:21 hour fcst: +395:295888858:d=2023110400:GRLE:600 mb:21 hour fcst: +396:295934718:d=2023110400:O3MR:600 mb:21 hour fcst: +397:296951889:d=2023110400:HGT:650 mb:21 hour fcst: +398:297767665:d=2023110400:TMP:650 mb:21 hour fcst: +399:298519444:d=2023110400:RH:650 mb:21 hour fcst: +400:299330934:d=2023110400:TCDC:650 mb:21 hour fcst: +401:299722882:d=2023110400:SPFH:650 mb:21 hour fcst: +402:300945004:d=2023110400:VVEL:650 mb:21 hour fcst: +403:302130393:d=2023110400:DZDT:650 mb:21 hour fcst: +404:303303660:d=2023110400:UGRD:650 mb:21 hour fcst: +405:304208954:d=2023110400:VGRD:650 mb:21 hour fcst: +406:305104901:d=2023110400:ABSV:650 mb:21 hour fcst: +407:305956647:d=2023110400:CLWMR:650 mb:21 hour fcst: +408:306102540:d=2023110400:ICMR:650 mb:21 hour fcst: +409:306425754:d=2023110400:RWMR:650 mb:21 hour fcst: +410:306527125:d=2023110400:SNMR:650 mb:21 hour fcst: +411:306687013:d=2023110400:GRLE:650 mb:21 hour fcst: +412:306733682:d=2023110400:O3MR:650 mb:21 hour fcst: +413:308018963:d=2023110400:HGT:700 mb:21 hour fcst: +414:308884122:d=2023110400:TMP:700 mb:21 hour fcst: +415:309650095:d=2023110400:RH:700 mb:21 hour fcst: +416:310465957:d=2023110400:TCDC:700 mb:21 hour fcst: +417:310845884:d=2023110400:SPFH:700 mb:21 hour fcst: +418:312092347:d=2023110400:VVEL:700 mb:21 hour fcst: +419:313289716:d=2023110400:DZDT:700 mb:21 hour fcst: +420:314464120:d=2023110400:UGRD:700 mb:21 hour fcst: +421:315373748:d=2023110400:VGRD:700 mb:21 hour fcst: +422:316276522:d=2023110400:ABSV:700 mb:21 hour fcst: +423:317136245:d=2023110400:CLWMR:700 mb:21 hour fcst: +424:317300495:d=2023110400:ICMR:700 mb:21 hour fcst: +425:317643821:d=2023110400:RWMR:700 mb:21 hour fcst: +426:317762420:d=2023110400:SNMR:700 mb:21 hour fcst: +427:317942926:d=2023110400:GRLE:700 mb:21 hour fcst: +428:317997452:d=2023110400:O3MR:700 mb:21 hour fcst: +429:319255941:d=2023110400:HGT:750 mb:21 hour fcst: +430:320130523:d=2023110400:TMP:750 mb:21 hour fcst: +431:320916364:d=2023110400:RH:750 mb:21 hour fcst: +432:321740351:d=2023110400:TCDC:750 mb:21 hour fcst: +433:322124935:d=2023110400:SPFH:750 mb:21 hour fcst: +434:323403551:d=2023110400:VVEL:750 mb:21 hour fcst: +435:324614520:d=2023110400:DZDT:750 mb:21 hour fcst: +436:325792991:d=2023110400:UGRD:750 mb:21 hour fcst: +437:326710672:d=2023110400:VGRD:750 mb:21 hour fcst: +438:327620429:d=2023110400:ABSV:750 mb:21 hour fcst: +439:328497357:d=2023110400:CLWMR:750 mb:21 hour fcst: +440:328693187:d=2023110400:ICMR:750 mb:21 hour fcst: +441:328984776:d=2023110400:RWMR:750 mb:21 hour fcst: +442:329127054:d=2023110400:SNMR:750 mb:21 hour fcst: +443:329307245:d=2023110400:GRLE:750 mb:21 hour fcst: +444:329366568:d=2023110400:O3MR:750 mb:21 hour fcst: +445:330605407:d=2023110400:HGT:800 mb:21 hour fcst: +446:331495129:d=2023110400:TMP:800 mb:21 hour fcst: +447:332311230:d=2023110400:RH:800 mb:21 hour fcst: +448:333158306:d=2023110400:TCDC:800 mb:21 hour fcst: +449:333574171:d=2023110400:SPFH:800 mb:21 hour fcst: +450:334893951:d=2023110400:VVEL:800 mb:21 hour fcst: +451:336117654:d=2023110400:DZDT:800 mb:21 hour fcst: +452:337292045:d=2023110400:UGRD:800 mb:21 hour fcst: +453:338221154:d=2023110400:VGRD:800 mb:21 hour fcst: +454:339151813:d=2023110400:ABSV:800 mb:21 hour fcst: +455:340052003:d=2023110400:CLWMR:800 mb:21 hour fcst: +456:340312284:d=2023110400:ICMR:800 mb:21 hour fcst: +457:340640582:d=2023110400:RWMR:800 mb:21 hour fcst: +458:340819677:d=2023110400:SNMR:800 mb:21 hour fcst: +459:341002534:d=2023110400:GRLE:800 mb:21 hour fcst: +460:341067283:d=2023110400:O3MR:800 mb:21 hour fcst: +461:342298495:d=2023110400:HGT:850 mb:21 hour fcst: +462:343206627:d=2023110400:TMP:850 mb:21 hour fcst: +463:344049341:d=2023110400:RH:850 mb:21 hour fcst: +464:344915451:d=2023110400:TCDC:850 mb:21 hour fcst: +465:345404450:d=2023110400:SPFH:850 mb:21 hour fcst: +466:346629278:d=2023110400:VVEL:850 mb:21 hour fcst: +467:347862978:d=2023110400:DZDT:850 mb:21 hour fcst: +468:349038531:d=2023110400:UGRD:850 mb:21 hour fcst: +469:349983417:d=2023110400:VGRD:850 mb:21 hour fcst: +470:350931475:d=2023110400:ABSV:850 mb:21 hour fcst: +471:351866348:d=2023110400:CLWMR:850 mb:21 hour fcst: +472:352227793:d=2023110400:ICMR:850 mb:21 hour fcst: +473:352547686:d=2023110400:RWMR:850 mb:21 hour fcst: +474:352785261:d=2023110400:SNMR:850 mb:21 hour fcst: +475:352955216:d=2023110400:GRLE:850 mb:21 hour fcst: +476:353045677:d=2023110400:O3MR:850 mb:21 hour fcst: +477:354268062:d=2023110400:HGT:900 mb:21 hour fcst: +478:355197821:d=2023110400:TMP:900 mb:21 hour fcst: +479:356050757:d=2023110400:RH:900 mb:21 hour fcst: +480:356914488:d=2023110400:TCDC:900 mb:21 hour fcst: +481:357449106:d=2023110400:SPFH:900 mb:21 hour fcst: +482:358677416:d=2023110400:VVEL:900 mb:21 hour fcst: +483:359905046:d=2023110400:DZDT:900 mb:21 hour fcst: +484:361070005:d=2023110400:UGRD:900 mb:21 hour fcst: +485:362022442:d=2023110400:VGRD:900 mb:21 hour fcst: +486:362978661:d=2023110400:ABSV:900 mb:21 hour fcst: +487:363925119:d=2023110400:CLWMR:900 mb:21 hour fcst: +488:364299009:d=2023110400:ICMR:900 mb:21 hour fcst: +489:364592008:d=2023110400:RWMR:900 mb:21 hour fcst: +490:364870836:d=2023110400:SNMR:900 mb:21 hour fcst: +491:365024736:d=2023110400:GRLE:900 mb:21 hour fcst: +492:365126228:d=2023110400:O3MR:900 mb:21 hour fcst: +493:366319462:d=2023110400:HGT:925 mb:21 hour fcst: +494:367261297:d=2023110400:TMP:925 mb:21 hour fcst: +495:368112469:d=2023110400:RH:925 mb:21 hour fcst: +496:368966480:d=2023110400:TCDC:925 mb:21 hour fcst: +497:369518372:d=2023110400:SPFH:925 mb:21 hour fcst: +498:370750026:d=2023110400:VVEL:925 mb:21 hour fcst: +499:371968960:d=2023110400:DZDT:925 mb:21 hour fcst: +500:373117764:d=2023110400:UGRD:925 mb:21 hour fcst: +501:374072394:d=2023110400:VGRD:925 mb:21 hour fcst: +502:375028949:d=2023110400:ABSV:925 mb:21 hour fcst: +503:375971694:d=2023110400:CLWMR:925 mb:21 hour fcst: +504:376282665:d=2023110400:ICMR:925 mb:21 hour fcst: +505:376549381:d=2023110400:RWMR:925 mb:21 hour fcst: +506:376824826:d=2023110400:SNMR:925 mb:21 hour fcst: +507:376958974:d=2023110400:GRLE:925 mb:21 hour fcst: +508:377048802:d=2023110400:O3MR:925 mb:21 hour fcst: +509:378223916:d=2023110400:HGT:950 mb:21 hour fcst: +510:379179079:d=2023110400:TMP:950 mb:21 hour fcst: +511:380025475:d=2023110400:RH:950 mb:21 hour fcst: +512:380867243:d=2023110400:TCDC:950 mb:21 hour fcst: +513:381333095:d=2023110400:SPFH:950 mb:21 hour fcst: +514:382559524:d=2023110400:VVEL:950 mb:21 hour fcst: +515:383744688:d=2023110400:DZDT:950 mb:21 hour fcst: +516:384859207:d=2023110400:UGRD:950 mb:21 hour fcst: +517:385818135:d=2023110400:VGRD:950 mb:21 hour fcst: +518:386773155:d=2023110400:ABSV:950 mb:21 hour fcst: +519:387707129:d=2023110400:CLWMR:950 mb:21 hour fcst: +520:387898364:d=2023110400:ICMR:950 mb:21 hour fcst: +521:388158674:d=2023110400:RWMR:950 mb:21 hour fcst: +522:388419807:d=2023110400:SNMR:950 mb:21 hour fcst: +523:388531242:d=2023110400:GRLE:950 mb:21 hour fcst: +524:388607035:d=2023110400:O3MR:950 mb:21 hour fcst: +525:389766317:d=2023110400:HINDEX:surface:21 hour fcst: +526:389972337:d=2023110400:HGT:975 mb:21 hour fcst: +527:390945316:d=2023110400:TMP:975 mb:21 hour fcst: +528:391790651:d=2023110400:RH:975 mb:21 hour fcst: +529:392613272:d=2023110400:TCDC:975 mb:21 hour fcst: +530:392961683:d=2023110400:SPFH:975 mb:21 hour fcst: +531:394178814:d=2023110400:VVEL:975 mb:21 hour fcst: +532:395294713:d=2023110400:DZDT:975 mb:21 hour fcst: +533:396337390:d=2023110400:UGRD:975 mb:21 hour fcst: +534:397304524:d=2023110400:VGRD:975 mb:21 hour fcst: +535:398260223:d=2023110400:ABSV:975 mb:21 hour fcst: +536:399189321:d=2023110400:CLWMR:975 mb:21 hour fcst: +537:399296986:d=2023110400:ICMR:975 mb:21 hour fcst: +538:399479505:d=2023110400:RWMR:975 mb:21 hour fcst: +539:399712254:d=2023110400:SNMR:975 mb:21 hour fcst: +540:399781429:d=2023110400:GRLE:975 mb:21 hour fcst: +541:399838526:d=2023110400:O3MR:975 mb:21 hour fcst: +542:400984586:d=2023110400:TMP:1000 mb:21 hour fcst: +543:401840989:d=2023110400:RH:1000 mb:21 hour fcst: +544:402649157:d=2023110400:TCDC:1000 mb:21 hour fcst: +545:402861523:d=2023110400:SPFH:1000 mb:21 hour fcst: +546:404079814:d=2023110400:VVEL:1000 mb:21 hour fcst: +547:405076470:d=2023110400:DZDT:1000 mb:21 hour fcst: +548:405996416:d=2023110400:UGRD:1000 mb:21 hour fcst: +549:406967573:d=2023110400:VGRD:1000 mb:21 hour fcst: +550:407922560:d=2023110400:ABSV:1000 mb:21 hour fcst: +551:408848561:d=2023110400:CLWMR:1000 mb:21 hour fcst: +552:408883565:d=2023110400:ICMR:1000 mb:21 hour fcst: +553:408990473:d=2023110400:RWMR:1000 mb:21 hour fcst: +554:409160062:d=2023110400:SNMR:1000 mb:21 hour fcst: +555:409199403:d=2023110400:GRLE:1000 mb:21 hour fcst: +556:409243217:d=2023110400:O3MR:1000 mb:21 hour fcst: +557:410381546:d=2023110400:MSLET:mean sea level:21 hour fcst: +558:411376636:d=2023110400:HGT:1000 mb:21 hour fcst: +559:412372860:d=2023110400:REFD:4000 m above ground:21 hour fcst: +560:412680681:d=2023110400:REFD:1000 m above ground:21 hour fcst: +561:413455164:d=2023110400:PRES:surface:21 hour fcst: +562:414291901:d=2023110400:HGT:surface:21 hour fcst: +563:414784344:d=2023110400:TMP:surface:21 hour fcst: +564:415365578:d=2023110400:TSOIL:0-0.1 m below ground:21 hour fcst: +565:415986189:d=2023110400:SOILW:0-0.1 m below ground:21 hour fcst: +566:416350575:d=2023110400:SOILL:0-0.1 m below ground:21 hour fcst: +567:416703208:d=2023110400:TSOIL:0.1-0.4 m below ground:21 hour fcst: +568:417296886:d=2023110400:SOILW:0.1-0.4 m below ground:21 hour fcst: +569:417659861:d=2023110400:SOILL:0.1-0.4 m below ground:21 hour fcst: +570:418019134:d=2023110400:TSOIL:0.4-1 m below ground:21 hour fcst: +571:418541691:d=2023110400:SOILW:0.4-1 m below ground:21 hour fcst: +572:418906228:d=2023110400:SOILL:0.4-1 m below ground:21 hour fcst: +573:419269724:d=2023110400:TSOIL:1-2 m below ground:21 hour fcst: +574:419794246:d=2023110400:SOILW:1-2 m below ground:21 hour fcst: +575:420153116:d=2023110400:SOILL:1-2 m below ground:21 hour fcst: +576:420511103:d=2023110400:CNWAT:surface:21 hour fcst: +577:420834247:d=2023110400:WEASD:surface:21 hour fcst: +578:421408230:d=2023110400:SNOD:surface:21 hour fcst: +579:421956125:d=2023110400:PEVPR:surface:21 hour fcst: +580:422471845:d=2023110400:ICETK:surface:21 hour fcst: +581:422567101:d=2023110400:TMP:2 m above ground:21 hour fcst: +582:423452300:d=2023110400:SPFH:2 m above ground:21 hour fcst: +583:424650112:d=2023110400:DPT:2 m above ground:21 hour fcst: +584:425572115:d=2023110400:RH:2 m above ground:21 hour fcst: +585:426355395:d=2023110400:APTMP:2 m above ground:21 hour fcst: +586:426917474:d=2023110400:TMAX:2 m above ground:18-21 hour max fcst: +587:427773478:d=2023110400:TMIN:2 m above ground:18-21 hour min fcst: +588:428651621:d=2023110400:UGRD:10 m above ground:21 hour fcst: +589:429621583:d=2023110400:VGRD:10 m above ground:21 hour fcst: +590:430565444:d=2023110400:ICEG:10 m above mean sea level:21 hour fcst: +591:430583834:d=2023110400:CPOFP:surface:21 hour fcst: +592:431149477:d=2023110400:CPRAT:surface:21 hour fcst: +593:431824219:d=2023110400:PRATE:surface:21 hour fcst: +594:432409243:d=2023110400:CPRAT:surface:18-21 hour ave fcst: +595:433129337:d=2023110400:PRATE:surface:18-21 hour ave fcst: +596:433733937:d=2023110400:APCP:surface:18-21 hour acc fcst: +597:434047034:d=2023110400:APCP:surface:0-21 hour acc fcst: +598:434536355:d=2023110400:ACPCP:surface:18-21 hour acc fcst: +599:434776215:d=2023110400:ACPCP:surface:0-21 hour acc fcst: +600:435152842:d=2023110400:WATR:surface:18-21 hour acc fcst: +601:435474087:d=2023110400:CSNOW:surface:21 hour fcst: +602:435508316:d=2023110400:CICEP:surface:21 hour fcst: +603:435508599:d=2023110400:CFRZR:surface:21 hour fcst: +604:435509070:d=2023110400:CRAIN:surface:21 hour fcst: +605:435615903:d=2023110400:CSNOW:surface:18-21 hour ave fcst: +606:435644208:d=2023110400:CICEP:surface:18-21 hour ave fcst: +607:435644515:d=2023110400:CFRZR:surface:18-21 hour ave fcst: +608:435645176:d=2023110400:CRAIN:surface:18-21 hour ave fcst: +609:435739970:d=2023110400:LHTFL:surface:18-21 hour ave fcst: +610:436670062:d=2023110400:SHTFL:surface:18-21 hour ave fcst: +611:437182765:d=2023110400:GFLUX:surface:18-21 hour ave fcst: +612:437723358:d=2023110400:UFLX:surface:18-21 hour ave fcst: +613:438402649:d=2023110400:VFLX:surface:18-21 hour ave fcst: +614:439051107:d=2023110400:SFCR:surface:21 hour fcst: +615:439541337:d=2023110400:FRICV:surface:21 hour fcst: +616:440486936:d=2023110400:U-GWD:surface:18-21 hour ave fcst: +617:440756820:d=2023110400:V-GWD:surface:18-21 hour ave fcst: +618:441024412:d=2023110400:VEG:surface:21 hour fcst: +619:441332753:d=2023110400:SOTYP:surface:21 hour fcst: +620:441631212:d=2023110400:WILT:surface:21 hour fcst: +621:441992970:d=2023110400:FLDCP:surface:21 hour fcst: +622:442360062:d=2023110400:SUNSD:surface:21 hour fcst: +623:442717037:d=2023110400:LFTX:surface:21 hour fcst: +624:443262043:d=2023110400:CAPE:surface:21 hour fcst: +625:443792729:d=2023110400:CIN:surface:21 hour fcst: +626:444080376:d=2023110400:PWAT:entire atmosphere (considered as a single layer):21 hour fcst: +627:445265800:d=2023110400:CWAT:entire atmosphere (considered as a single layer):21 hour fcst: +628:446328211:d=2023110400:RH:entire atmosphere (considered as a single layer):21 hour fcst: +629:446928527:d=2023110400:TOZNE:entire atmosphere (considered as a single layer):21 hour fcst: +630:447510007:d=2023110400:LCDC:low cloud layer:21 hour fcst: +631:448303481:d=2023110400:LCDC:low cloud layer:18-21 hour ave fcst: +632:449136919:d=2023110400:MCDC:middle cloud layer:21 hour fcst: +633:449729985:d=2023110400:MCDC:middle cloud layer:18-21 hour ave fcst: +634:450380229:d=2023110400:HCDC:high cloud layer:21 hour fcst: +635:451116064:d=2023110400:HCDC:high cloud layer:18-21 hour ave fcst: +636:451959374:d=2023110400:TCDC:entire atmosphere:21 hour fcst: +637:452791241:d=2023110400:TCDC:entire atmosphere:18-21 hour ave fcst: +638:453645473:d=2023110400:HGT:cloud ceiling:21 hour fcst: +639:454838824:d=2023110400:PRES:convective cloud bottom level:21 hour fcst: +640:455385124:d=2023110400:PRES:low cloud bottom level:18-21 hour ave fcst: +641:456691699:d=2023110400:PRES:middle cloud bottom level:18-21 hour ave fcst: +642:457799384:d=2023110400:PRES:high cloud bottom level:18-21 hour ave fcst: +643:459222529:d=2023110400:PRES:convective cloud top level:21 hour fcst: +644:459821072:d=2023110400:PRES:low cloud top level:18-21 hour ave fcst: +645:461147090:d=2023110400:PRES:middle cloud top level:18-21 hour ave fcst: +646:462224063:d=2023110400:PRES:high cloud top level:18-21 hour ave fcst: +647:463660337:d=2023110400:TMP:low cloud top level:18-21 hour ave fcst: +648:464607232:d=2023110400:TMP:middle cloud top level:18-21 hour ave fcst: +649:465446415:d=2023110400:TMP:high cloud top level:18-21 hour ave fcst: +650:466597900:d=2023110400:TCDC:convective cloud layer:21 hour fcst: +651:467323539:d=2023110400:TCDC:boundary layer cloud layer:18-21 hour ave fcst: +652:468116996:d=2023110400:CWORK:entire atmosphere (considered as a single layer):18-21 hour ave fcst: +653:468503161:d=2023110400:DSWRF:surface:18-21 hour ave fcst: +654:469335106:d=2023110400:DLWRF:surface:18-21 hour ave fcst: +655:470286949:d=2023110400:USWRF:surface:18-21 hour ave fcst: +656:470997397:d=2023110400:ULWRF:surface:18-21 hour ave fcst: +657:471724951:d=2023110400:USWRF:top of atmosphere:18-21 hour ave fcst: +658:472562682:d=2023110400:ULWRF:top of atmosphere:18-21 hour ave fcst: +659:473487158:d=2023110400:HLCY:3000-0 m above ground:21 hour fcst: +660:474171792:d=2023110400:USTM:6000-0 m above ground:21 hour fcst: +661:475148088:d=2023110400:VSTM:6000-0 m above ground:21 hour fcst: +662:476104218:d=2023110400:PRES:tropopause:21 hour fcst: +663:477516561:d=2023110400:ICAHT:tropopause:21 hour fcst: +664:478994583:d=2023110400:HGT:tropopause:21 hour fcst: +665:480330992:d=2023110400:TMP:tropopause:21 hour fcst: +666:481292371:d=2023110400:UGRD:tropopause:21 hour fcst: +667:481989064:d=2023110400:VGRD:tropopause:21 hour fcst: +668:482661509:d=2023110400:VWSH:tropopause:21 hour fcst: +669:483209538:d=2023110400:PRES:max wind:21 hour fcst: +670:484833740:d=2023110400:ICAHT:max wind:21 hour fcst: +671:486493219:d=2023110400:HGT:max wind:21 hour fcst: +672:488154183:d=2023110400:UGRD:max wind:21 hour fcst: +673:488876646:d=2023110400:VGRD:max wind:21 hour fcst: +674:489640052:d=2023110400:TMP:max wind:21 hour fcst: +675:490899619:d=2023110400:UGRD:20 m above ground:21 hour fcst: +676:491868346:d=2023110400:VGRD:20 m above ground:21 hour fcst: +677:492817791:d=2023110400:UGRD:30 m above ground:21 hour fcst: +678:493795828:d=2023110400:VGRD:30 m above ground:21 hour fcst: +679:494754466:d=2023110400:UGRD:40 m above ground:21 hour fcst: +680:495733025:d=2023110400:VGRD:40 m above ground:21 hour fcst: +681:496693265:d=2023110400:UGRD:50 m above ground:21 hour fcst: +682:497673501:d=2023110400:VGRD:50 m above ground:21 hour fcst: +683:498636188:d=2023110400:TMP:80 m above ground:21 hour fcst: +684:499493457:d=2023110400:SPFH:80 m above ground:21 hour fcst: +685:500793923:d=2023110400:PRES:80 m above ground:21 hour fcst: +686:501626189:d=2023110400:UGRD:80 m above ground:21 hour fcst: +687:502609609:d=2023110400:VGRD:80 m above ground:21 hour fcst: +688:503574513:d=2023110400:TMP:100 m above ground:21 hour fcst: +689:504428201:d=2023110400:UGRD:100 m above ground:21 hour fcst: +690:505410739:d=2023110400:VGRD:100 m above ground:21 hour fcst: +691:506376174:d=2023110400:TMP:1829 m above mean sea level:21 hour fcst: +692:507270953:d=2023110400:UGRD:1829 m above mean sea level:21 hour fcst: +693:508160007:d=2023110400:VGRD:1829 m above mean sea level:21 hour fcst: +694:509055304:d=2023110400:TMP:2743 m above mean sea level:21 hour fcst: +695:509805217:d=2023110400:UGRD:2743 m above mean sea level:21 hour fcst: +696:510698443:d=2023110400:VGRD:2743 m above mean sea level:21 hour fcst: +697:511585207:d=2023110400:TMP:3658 m above mean sea level:21 hour fcst: +698:512332425:d=2023110400:UGRD:3658 m above mean sea level:21 hour fcst: +699:513236466:d=2023110400:VGRD:3658 m above mean sea level:21 hour fcst: +700:514129337:d=2023110400:HGT:0C isotherm:21 hour fcst: +701:515044465:d=2023110400:RH:0C isotherm:21 hour fcst: +702:515887922:d=2023110400:HGT:highest tropospheric freezing level:21 hour fcst: +703:516797880:d=2023110400:RH:highest tropospheric freezing level:21 hour fcst: +704:517637380:d=2023110400:TMP:30-0 mb above ground:21 hour fcst: +705:518484904:d=2023110400:RH:30-0 mb above ground:21 hour fcst: +706:519276721:d=2023110400:SPFH:30-0 mb above ground:21 hour fcst: +707:520572788:d=2023110400:UGRD:30-0 mb above ground:21 hour fcst: +708:521545064:d=2023110400:VGRD:30-0 mb above ground:21 hour fcst: +709:522502486:d=2023110400:4LFTX:surface:21 hour fcst: +710:523021693:d=2023110400:CAPE:180-0 mb above ground:21 hour fcst: +711:523515544:d=2023110400:CIN:180-0 mb above ground:21 hour fcst: +712:523832962:d=2023110400:HPBL:surface:21 hour fcst: +713:525152375:d=2023110400:RH:0.33-1 sigma layer:21 hour fcst: +714:525880666:d=2023110400:RH:0.44-1 sigma layer:21 hour fcst: +715:526597531:d=2023110400:RH:0.72-0.94 sigma layer:21 hour fcst: +716:527369312:d=2023110400:RH:0.44-0.72 sigma layer:21 hour fcst: +717:528100784:d=2023110400:TMP:0.995 sigma level:21 hour fcst: +718:528976052:d=2023110400:POT:0.995 sigma level:21 hour fcst: +719:529838155:d=2023110400:RH:0.995 sigma level:21 hour fcst: +720:530639857:d=2023110400:UGRD:0.995 sigma level:21 hour fcst: +721:531635871:d=2023110400:VGRD:0.995 sigma level:21 hour fcst: +722:532608105:d=2023110400:VVEL:0.995 sigma level:21 hour fcst: +723:533561311:d=2023110400:CAPE:90-0 mb above ground:21 hour fcst: +724:534015677:d=2023110400:CIN:90-0 mb above ground:21 hour fcst: +725:534338879:d=2023110400:CAPE:255-0 mb above ground:21 hour fcst: +726:534818514:d=2023110400:CIN:255-0 mb above ground:21 hour fcst: +727:535098330:d=2023110400:PLPL:255-0 mb above ground:21 hour fcst: +728:536009420:d=2023110400:LAND:surface:21 hour fcst: +729:536041456:d=2023110400:ICEC:surface:21 hour fcst: +730:536169826:d=2023110400:ALBDO:surface:18-21 hour ave fcst: +731:536708441:d=2023110400:ICETMP:surface:21 hour fcst: +732:536908106:d=2023110400:UGRD:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +733:537529162:d=2023110400:VGRD:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +734:538140958:d=2023110400:TMP:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +735:538753145:d=2023110400:HGT:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +736:539863838:d=2023110400:PRES:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +737:540940125:d=2023110400:VWSH:PV=2e-06 (Km^2/kg/s) surface:21 hour fcst: +738:541405558:d=2023110400:UGRD:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +739:542036819:d=2023110400:VGRD:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +740:542654060:d=2023110400:TMP:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +741:543271334:d=2023110400:HGT:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +742:544395079:d=2023110400:PRES:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: +743:545484963:d=2023110400:VWSH:PV=-2e-06 (Km^2/kg/s) surface:21 hour fcst: diff --git a/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10 b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10 new file mode 100644 index 00000000..fb021ce7 Binary files /dev/null and b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10.idx b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10.idx new file mode 100644 index 00000000..862532b7 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2023110400:PRMSL:mean sea level:21 hour fcst: +2:1000996:d=2023110400:CLWMR:1 hybrid level:21 hour fcst: +3:1083544:d=2023110400:ICMR:1 hybrid level:21 hour fcst: +4:1350919:d=2023110400:RWMR:1 hybrid level:21 hour fcst: +5:1573977:d=2023110400:SNMR:1 hybrid level:21 hour fcst: +6:1664167:d=2023110400:GRLE:1 hybrid level:21 hour fcst: +7:1702969:d=2023110400:REFD:1 hybrid level:21 hour fcst: +8:2493197:d=2023110400:REFD:2 hybrid level:21 hour fcst: +9:3284363:d=2023110400:REFC:entire atmosphere:21 hour fcst: +10:4149563:d=2023110400:VIS:surface:21 hour fcst: +11:4925067:d=2023110400:UGRD:planetary boundary layer:21 hour fcst: diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.idx b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.idx new file mode 100644 index 00000000..46f1b4a6 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.idx @@ -0,0 +1,170 @@ +1:0:d=2023110401:REFC:entire atmosphere:anl: +2:283521:d=2023110401:RETOP:cloud top:anl: +3:455125:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:anl: +4:769774:d=2023110401:VIL:entire atmosphere:anl: +5:1003128:d=2023110401:VIS:surface:anl: +6:2410548:d=2023110401:REFD:1000 m above ground:anl: +7:2562772:d=2023110401:REFD:4000 m above ground:anl: +8:2731640:d=2023110401:REFD:263 K level:anl: +9:2908822:d=2023110401:GUST:surface:anl: +10:4143716:d=2023110401:UGRD:250 mb:anl: +11:4891524:d=2023110401:VGRD:250 mb:anl: +12:5643564:d=2023110401:UGRD:300 mb:anl: +13:6374792:d=2023110401:VGRD:300 mb:anl: +14:7104657:d=2023110401:HGT:500 mb:anl: +15:7812187:d=2023110401:TMP:500 mb:anl: +16:8367979:d=2023110401:DPT:500 mb:anl: +17:9286256:d=2023110401:UGRD:500 mb:anl: +18:9866660:d=2023110401:VGRD:500 mb:anl: +19:10449798:d=2023110401:HGT:700 mb:anl: +20:11173657:d=2023110401:TMP:700 mb:anl: +21:11736021:d=2023110401:DPT:700 mb:anl: +22:12753496:d=2023110401:DZDT:700 mb:anl: +23:13062219:d=2023110401:UGRD:700 mb:anl: +24:13654044:d=2023110401:VGRD:700 mb:anl: +25:14241417:d=2023110401:HGT:850 mb:anl: +26:14977949:d=2023110401:TMP:850 mb:anl: +27:15558275:d=2023110401:DPT:850 mb:anl: +28:16698627:d=2023110401:UGRD:850 mb:anl: +29:17311280:d=2023110401:VGRD:850 mb:anl: +30:17914096:d=2023110401:TMP:925 mb:anl: +31:18503711:d=2023110401:DPT:925 mb:anl: +32:19661981:d=2023110401:UGRD:925 mb:anl: +33:20283357:d=2023110401:VGRD:925 mb:anl: +34:20892079:d=2023110401:TMP:1000 mb:anl: +35:21495793:d=2023110401:DPT:1000 mb:anl: +36:22647605:d=2023110401:UGRD:1000 mb:anl: +37:23275323:d=2023110401:VGRD:1000 mb:anl: +38:23883202:d=2023110401:MAXUVV:100-1000 mb above ground:0-0 day max fcst: +39:23977094:d=2023110401:MAXDVV:100-1000 mb above ground:0-0 day max fcst: +40:24327802:d=2023110401:DZDT:0.5-0.8 sigma layer:0-0 day ave fcst: +41:24499959:d=2023110401:MSLMA:mean sea level:anl: +42:25123456:d=2023110401:HGT:1000 mb:anl: +43:25859845:d=2023110401:MAXREF:1000 m above ground:0-0 day max fcst: +44:25958305:d=2023110401:REFD:263 K level:0-0 day max fcst: +45:26130959:d=2023110401:MXUPHL:5000-2000 m above ground:0-0 day max fcst: +46:26131171:d=2023110401:MNUPHL:5000-2000 m above ground:0-0 day min fcst: +47:26131383:d=2023110401:MXUPHL:2000-0 m above ground:0-0 day max fcst: +48:26131595:d=2023110401:MNUPHL:2000-0 m above ground:0-0 day min fcst: +49:26131807:d=2023110401:MXUPHL:3000-0 m above ground:0-0 day max fcst: +50:26132019:d=2023110401:MNUPHL:3000-0 m above ground:0-0 day min fcst: +51:26132231:d=2023110401:RELV:2000-0 m above ground:0-0 day max fcst: +52:26132443:d=2023110401:RELV:1000-0 m above ground:0-0 day max fcst: +53:26132655:d=2023110401:HAIL:entire atmosphere:0-0 day max fcst: +54:26247407:d=2023110401:HAIL:0.1 sigma level:0-0 day max fcst: +55:26253749:d=2023110401:HAIL:surface:0-0 day max fcst: +56:26253961:d=2023110401:TCOLG:entire atmosphere (considered as a single layer):0-0 day max fcst: +57:26289809:d=2023110401:LTNGSD:1 m above ground:anl: +58:26289997:d=2023110401:LTNGSD:2 m above ground:anl: +59:26309222:d=2023110401:LTNG:entire atmosphere:anl: +60:26309410:d=2023110401:UGRD:80 m above ground:anl: +61:27426846:d=2023110401:VGRD:80 m above ground:anl: +62:28552458:d=2023110401:PRES:surface:anl: +63:30061523:d=2023110401:HGT:surface:anl: +64:32215218:d=2023110401:TMP:surface:anl: +65:33520675:d=2023110401:ASNOW:surface:0-0 day acc fcst: +66:33521007:d=2023110401:MSTAV:0 m underground:anl: +67:34924036:d=2023110401:CNWAT:surface:anl: +68:34981408:d=2023110401:WEASD:surface:anl: +69:35192214:d=2023110401:SNOWC:surface:anl: +70:35329145:d=2023110401:SNOD:surface:anl: +71:35479707:d=2023110401:TMP:2 m above ground:anl: +72:36687447:d=2023110401:POT:2 m above ground:anl: +73:37869216:d=2023110401:SPFH:2 m above ground:anl: +74:39331958:d=2023110401:DPT:2 m above ground:anl: +75:40540235:d=2023110401:RH:2 m above ground:anl: +76:42091495:d=2023110401:MASSDEN:8 m above ground:anl: +77:42813640:d=2023110401:UGRD:10 m above ground:anl: +78:44957112:d=2023110401:VGRD:10 m above ground:anl: +79:47338727:d=2023110401:WIND:10 m above ground:0-0 day max fcst: +80:48589845:d=2023110401:MAXUW:10 m above ground:0-0 day max fcst: +81:49796703:d=2023110401:MAXVW:10 m above ground:0-0 day max fcst: +82:50984349:d=2023110401:CPOFP:surface:anl: +83:50984537:d=2023110401:PRATE:surface:anl: +84:50984725:d=2023110401:APCP:surface:0-0 day acc fcst: +85:50984937:d=2023110401:WEASD:surface:0-0 day acc fcst: +86:50985149:d=2023110401:FROZR:surface:0-0 day acc fcst: +87:50985361:d=2023110401:FRZR:surface:0-0 day acc fcst: +88:51016144:d=2023110401:SSRUN:surface:0-0 day acc fcst: +89:51016356:d=2023110401:BGRUN:surface:0-0 day acc fcst: +90:51016568:d=2023110401:CSNOW:surface:anl: +91:51016756:d=2023110401:CICEP:surface:anl: +92:51016944:d=2023110401:CFRZR:surface:anl: +93:51017132:d=2023110401:CRAIN:surface:anl: +94:51017320:d=2023110401:SFCR:surface:anl: +95:52931303:d=2023110401:FRICV:surface:anl: +96:53975407:d=2023110401:SHTFL:surface:anl: +97:55166563:d=2023110401:LHTFL:surface:anl: +98:56220658:d=2023110401:VEG:surface:anl: +99:57678600:d=2023110401:var discipline=2 center=7 local_table=1 parmcat=0 parm=231:surface:anl: +100:58794737:d=2023110401:var discipline=2 center=7 local_table=1 parmcat=0 parm=232:surface:anl: +101:59671671:d=2023110401:LAI:surface:anl: +102:60409016:d=2023110401:GFLUX:surface:anl: +103:61018665:d=2023110401:VGTYP:surface:anl: +104:61799844:d=2023110401:LFTX:500-1000 mb:anl: +105:62778794:d=2023110401:CAPE:surface:anl: +106:63063448:d=2023110401:CIN:surface:anl: +107:63412698:d=2023110401:PWAT:entire atmosphere (considered as a single layer):anl: +108:64309800:d=2023110401:AOTK:entire atmosphere (considered as a single layer):anl: +109:64309988:d=2023110401:COLMD:entire atmosphere (considered as a single layer):anl: +110:64981479:d=2023110401:TCOLW:entire atmosphere:anl: +111:65959583:d=2023110401:TCOLI:entire atmosphere:anl: +112:66983270:d=2023110401:TCDC:boundary layer cloud layer:anl: +113:67491756:d=2023110401:LCDC:low cloud layer:anl: +114:68115152:d=2023110401:MCDC:middle cloud layer:anl: +115:68380022:d=2023110401:HCDC:high cloud layer:anl: +116:68729239:d=2023110401:TCDC:entire atmosphere:anl: +117:69489825:d=2023110401:HGT:cloud ceiling:anl: +118:70254651:d=2023110401:HGT:cloud base:anl: +119:71880320:d=2023110401:PRES:cloud base:anl: +120:72733371:d=2023110401:PRES:cloud top:anl: +121:73288599:d=2023110401:HGT:cloud top:anl: +122:74060403:d=2023110401:ULWRF:top of atmosphere:anl: +123:75786123:d=2023110401:DSWRF:surface:anl: +124:75991365:d=2023110401:DLWRF:surface:anl: +125:77916495:d=2023110401:USWRF:surface:anl: +126:77987259:d=2023110401:ULWRF:surface:anl: +127:79625106:d=2023110401:CFNSF:surface:anl: +128:79632356:d=2023110401:VBDSF:surface:anl: +129:79773703:d=2023110401:VDDSF:surface:anl: +130:79968804:d=2023110401:USWRF:top of atmosphere:anl: +131:80166280:d=2023110401:HLCY:3000-0 m above ground:anl: +132:82109459:d=2023110401:HLCY:1000-0 m above ground:anl: +133:84008511:d=2023110401:USTM:0-6000 m above ground:anl: +134:84980334:d=2023110401:VSTM:0-6000 m above ground:anl: +135:85929094:d=2023110401:VUCSH:0-1000 m above ground:anl: +136:88310709:d=2023110401:VVCSH:0-1000 m above ground:anl: +137:90692324:d=2023110401:VUCSH:0-6000 m above ground:anl: +138:93073939:d=2023110401:VVCSH:0-6000 m above ground:anl: +139:95693696:d=2023110401:HGT:0C isotherm:anl: +140:97824784:d=2023110401:RH:0C isotherm:anl: +141:98536882:d=2023110401:PRES:0C isotherm:anl: +142:99278902:d=2023110401:HGT:highest tropospheric freezing level:anl: +143:99995593:d=2023110401:RH:highest tropospheric freezing level:anl: +144:100687918:d=2023110401:PRES:highest tropospheric freezing level:anl: +145:101404867:d=2023110401:HGT:263 K level:anl: +146:102094218:d=2023110401:HGT:253 K level:anl: +147:102728034:d=2023110401:4LFTX:180-0 mb above ground:anl: +148:103665606:d=2023110401:CAPE:180-0 mb above ground:anl: +149:103962090:d=2023110401:CIN:180-0 mb above ground:anl: +150:104321015:d=2023110401:HPBL:surface:anl: +151:107230794:d=2023110401:HGT:level of adiabatic condensation from sfc:anl: +152:110092998:d=2023110401:CAPE:90-0 mb above ground:anl: +153:110287595:d=2023110401:CIN:90-0 mb above ground:anl: +154:110551673:d=2023110401:CAPE:255-0 mb above ground:anl: +155:110874958:d=2023110401:CIN:255-0 mb above ground:anl: +156:111248280:d=2023110401:HGT:equilibrium level:anl: +157:113396634:d=2023110401:PLPL:255-0 mb above ground:anl: +158:114537376:d=2023110401:CAPE:0-3000 m above ground:anl: +159:114986665:d=2023110401:HGT:level of free convection:anl: +160:117620026:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=7 parm=204:surface:anl: +161:118106561:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=7 parm=206:0-500 m above ground:anl: +162:120146015:d=2023110401:LAYTH:261 K level - 256 K level:anl: +163:121445175:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=7 parm=205:0-3000 m above ground:anl: +164:121911596:d=2023110401:RHPW:entire atmosphere:anl: +165:123059475:d=2023110401:LAND:surface:anl: +166:123109950:d=2023110401:ICEC:surface:anl: +167:123111084:d=2023110401:SBT123:top of atmosphere:anl: +168:124595448:d=2023110401:SBT124:top of atmosphere:anl: +169:126928249:d=2023110401:SBT113:top of atmosphere:anl: +170:128319641:d=2023110401:SBT114:top of atmosphere:anl: diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10 b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10 new file mode 100644 index 00000000..069cea67 Binary files /dev/null and b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx new file mode 100644 index 00000000..06582e2f --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2023110401:REFC:entire atmosphere:anl: +2:283521:d=2023110401:RETOP:cloud top:anl: +3:455125:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:anl: +4:769774:d=2023110401:VIL:entire atmosphere:anl: +5:1003128:d=2023110401:VIS:surface:anl: +6:2410548:d=2023110401:REFD:1000 m above ground:anl: +7:2562772:d=2023110401:REFD:4000 m above ground:anl: +8:2731640:d=2023110401:REFD:263 K level:anl: +9:2908822:d=2023110401:GUST:surface:anl: +10:4143716:d=2023110401:UGRD:250 mb:anl: +11:4891524:d=2023110401:VGRD:250 mb:anl: diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.idx b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.idx new file mode 100644 index 00000000..91559939 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.idx @@ -0,0 +1,173 @@ +1:0:d=2023110401:REFC:entire atmosphere:5 hour fcst: +2:449315:d=2023110401:RETOP:cloud top:5 hour fcst: +3:650542:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:5 hour fcst: +4:1152939:d=2023110401:VIL:entire atmosphere:5 hour fcst: +5:1507003:d=2023110401:VIS:surface:5 hour fcst: +6:2971440:d=2023110401:REFD:1000 m above ground:5 hour fcst: +7:3255959:d=2023110401:REFD:4000 m above ground:5 hour fcst: +8:3448790:d=2023110401:REFD:263 K level:5 hour fcst: +9:3651102:d=2023110401:GUST:surface:5 hour fcst: +10:4998107:d=2023110401:UGRD:250 mb:5 hour fcst: +11:5748405:d=2023110401:VGRD:250 mb:5 hour fcst: +12:6488458:d=2023110401:UGRD:300 mb:5 hour fcst: +13:7249176:d=2023110401:VGRD:300 mb:5 hour fcst: +14:7993041:d=2023110401:HGT:500 mb:5 hour fcst: +15:8700083:d=2023110401:TMP:500 mb:5 hour fcst: +16:9261439:d=2023110401:DPT:500 mb:5 hour fcst: +17:10196569:d=2023110401:UGRD:500 mb:5 hour fcst: +18:10782259:d=2023110401:VGRD:500 mb:5 hour fcst: +19:11369757:d=2023110401:HGT:700 mb:5 hour fcst: +20:12066473:d=2023110401:TMP:700 mb:5 hour fcst: +21:12633207:d=2023110401:DPT:700 mb:5 hour fcst: +22:13642987:d=2023110401:DZDT:700 mb:5 hour fcst: +23:14592254:d=2023110401:UGRD:700 mb:5 hour fcst: +24:15186743:d=2023110401:VGRD:700 mb:5 hour fcst: +25:15780791:d=2023110401:HGT:850 mb:5 hour fcst: +26:16506639:d=2023110401:TMP:850 mb:5 hour fcst: +27:17086440:d=2023110401:DPT:850 mb:5 hour fcst: +28:18212670:d=2023110401:UGRD:850 mb:5 hour fcst: +29:18830529:d=2023110401:VGRD:850 mb:5 hour fcst: +30:19447993:d=2023110401:TMP:925 mb:5 hour fcst: +31:20046698:d=2023110401:DPT:925 mb:5 hour fcst: +32:21221623:d=2023110401:UGRD:925 mb:5 hour fcst: +33:21848754:d=2023110401:VGRD:925 mb:5 hour fcst: +34:22468217:d=2023110401:TMP:1000 mb:5 hour fcst: +35:23096349:d=2023110401:DPT:1000 mb:5 hour fcst: +36:24248293:d=2023110401:UGRD:1000 mb:5 hour fcst: +37:24886045:d=2023110401:VGRD:1000 mb:5 hour fcst: +38:25509297:d=2023110401:MAXUVV:100-1000 mb above ground:4-5 hour max fcst: +39:26232371:d=2023110401:MAXDVV:100-1000 mb above ground:4-5 hour max fcst: +40:26964873:d=2023110401:DZDT:0.5-0.8 sigma layer:4-5 hour ave fcst: +41:27550418:d=2023110401:MSLMA:mean sea level:5 hour fcst: +42:28172135:d=2023110401:HGT:1000 mb:5 hour fcst: +43:28913093:d=2023110401:MAXREF:1000 m above ground:4-5 hour max fcst: +44:29169671:d=2023110401:REFD:263 K level:4-5 hour max fcst: +45:29364565:d=2023110401:MXUPHL:5000-2000 m above ground:4-5 hour max fcst: +46:29429334:d=2023110401:MNUPHL:5000-2000 m above ground:4-5 hour min fcst: +47:29459564:d=2023110401:MXUPHL:2000-0 m above ground:4-5 hour max fcst: +48:29519240:d=2023110401:MNUPHL:2000-0 m above ground:4-5 hour min fcst: +49:29668852:d=2023110401:MXUPHL:3000-0 m above ground:4-5 hour max fcst: +50:29729192:d=2023110401:MNUPHL:3000-0 m above ground:4-5 hour min fcst: +51:29767920:d=2023110401:RELV:2000-0 m above ground:4-5 hour max fcst: +52:32143238:d=2023110401:RELV:1000-0 m above ground:4-5 hour max fcst: +53:34859337:d=2023110401:HAIL:entire atmosphere:4-5 hour max fcst: +54:35034374:d=2023110401:HAIL:0.1 sigma level:4-5 hour max fcst: +55:35053929:d=2023110401:HAIL:surface:4-5 hour max fcst: +56:35054446:d=2023110401:TCOLG:entire atmosphere (considered as a single layer):4-5 hour max fcst: +57:35080445:d=2023110401:LTNGSD:1 m above ground:5 hour fcst: +58:35080765:d=2023110401:LTNGSD:2 m above ground:5 hour fcst: +59:35109879:d=2023110401:LTNG:entire atmosphere:5 hour fcst: +60:35114356:d=2023110401:UGRD:80 m above ground:5 hour fcst: +61:36302670:d=2023110401:VGRD:80 m above ground:5 hour fcst: +62:37523813:d=2023110401:PRES:surface:5 hour fcst: +63:39037840:d=2023110401:HGT:surface:5 hour fcst: +64:41191535:d=2023110401:TMP:surface:5 hour fcst: +65:42547573:d=2023110401:ASNOW:surface:0-5 hour acc fcst: +66:42596355:d=2023110401:MSTAV:0 m underground:5 hour fcst: +67:44027611:d=2023110401:CNWAT:surface:5 hour fcst: +68:44089758:d=2023110401:WEASD:surface:5 hour fcst: +69:44305779:d=2023110401:SNOWC:surface:5 hour fcst: +70:44445717:d=2023110401:SNOD:surface:5 hour fcst: +71:44599509:d=2023110401:TMP:2 m above ground:5 hour fcst: +72:45860133:d=2023110401:POT:2 m above ground:5 hour fcst: +73:47131207:d=2023110401:SPFH:2 m above ground:5 hour fcst: +74:48610438:d=2023110401:DPT:2 m above ground:5 hour fcst: +75:49847709:d=2023110401:RH:2 m above ground:5 hour fcst: +76:51467623:d=2023110401:MASSDEN:8 m above ground:5 hour fcst: +77:52586717:d=2023110401:UGRD:10 m above ground:5 hour fcst: +78:54730189:d=2023110401:VGRD:10 m above ground:5 hour fcst: +79:57111804:d=2023110401:WIND:10 m above ground:4-5 hour max fcst: +80:58424773:d=2023110401:MAXUW:10 m above ground:4-5 hour max fcst: +81:59836892:d=2023110401:MAXVW:10 m above ground:4-5 hour max fcst: +82:61236940:d=2023110401:CPOFP:surface:5 hour fcst: +83:61346906:d=2023110401:PRATE:surface:5 hour fcst: +84:61408685:d=2023110401:APCP:surface:0-5 hour acc fcst: +85:61679884:d=2023110401:WEASD:surface:0-5 hour acc fcst: +86:61741301:d=2023110401:FROZR:surface:0-5 hour acc fcst: +87:61773291:d=2023110401:FRZR:surface:0-5 hour acc fcst: +88:61827901:d=2023110401:SSRUN:surface:4-5 hour acc fcst: +89:61833503:d=2023110401:BGRUN:surface:4-5 hour acc fcst: +90:61833771:d=2023110401:APCP:surface:4-5 hour acc fcst: +91:62158168:d=2023110401:WEASD:surface:4-5 hour acc fcst: +92:62195271:d=2023110401:FROZR:surface:4-5 hour acc fcst: +93:62210054:d=2023110401:CSNOW:surface:5 hour fcst: +94:62217232:d=2023110401:CICEP:surface:5 hour fcst: +95:62217877:d=2023110401:CFRZR:surface:5 hour fcst: +96:62219011:d=2023110401:CRAIN:surface:5 hour fcst: +97:62270551:d=2023110401:SFCR:surface:5 hour fcst: +98:64197128:d=2023110401:FRICV:surface:5 hour fcst: +99:65410187:d=2023110401:SHTFL:surface:5 hour fcst: +100:66705740:d=2023110401:LHTFL:surface:5 hour fcst: +101:67776433:d=2023110401:VEG:surface:5 hour fcst: +102:69234375:d=2023110401:var discipline=2 center=7 local_table=1 parmcat=0 parm=231:surface:5 hour fcst: +103:70350512:d=2023110401:var discipline=2 center=7 local_table=1 parmcat=0 parm=232:surface:5 hour fcst: +104:71227446:d=2023110401:LAI:surface:5 hour fcst: +105:71964791:d=2023110401:GFLUX:surface:5 hour fcst: +106:72540691:d=2023110401:VGTYP:surface:5 hour fcst: +107:73321870:d=2023110401:LFTX:500-1000 mb:5 hour fcst: +108:74393750:d=2023110401:CAPE:surface:5 hour fcst: +109:74682197:d=2023110401:CIN:surface:5 hour fcst: +110:75072867:d=2023110401:PWAT:entire atmosphere (considered as a single layer):5 hour fcst: +111:75970971:d=2023110401:AOTK:entire atmosphere (considered as a single layer):5 hour fcst: +112:76912708:d=2023110401:COLMD:entire atmosphere (considered as a single layer):5 hour fcst: +113:78057679:d=2023110401:TCOLW:entire atmosphere:5 hour fcst: +114:79339548:d=2023110401:TCOLI:entire atmosphere:5 hour fcst: +115:80532267:d=2023110401:TCDC:boundary layer cloud layer:5 hour fcst: +116:81131852:d=2023110401:LCDC:low cloud layer:5 hour fcst: +117:81791215:d=2023110401:MCDC:middle cloud layer:5 hour fcst: +118:82079527:d=2023110401:HCDC:high cloud layer:5 hour fcst: +119:82399346:d=2023110401:TCDC:entire atmosphere:5 hour fcst: +120:83040004:d=2023110401:HGT:cloud ceiling:5 hour fcst: +121:84309445:d=2023110401:HGT:cloud base:5 hour fcst: +122:86398444:d=2023110401:PRES:cloud base:5 hour fcst: +123:87389986:d=2023110401:PRES:cloud top:5 hour fcst: +124:88078269:d=2023110401:HGT:cloud top:5 hour fcst: +125:89258788:d=2023110401:ULWRF:top of atmosphere:5 hour fcst: +126:91112891:d=2023110401:DSWRF:surface:5 hour fcst: +127:91113079:d=2023110401:DLWRF:surface:5 hour fcst: +128:93100261:d=2023110401:USWRF:surface:5 hour fcst: +129:93100449:d=2023110401:ULWRF:surface:5 hour fcst: +130:94769174:d=2023110401:CFNSF:surface:5 hour fcst: +131:94776424:d=2023110401:VBDSF:surface:5 hour fcst: +132:94776612:d=2023110401:VDDSF:surface:5 hour fcst: +133:94776800:d=2023110401:USWRF:top of atmosphere:5 hour fcst: +134:94776988:d=2023110401:HLCY:3000-0 m above ground:5 hour fcst: +135:96049230:d=2023110401:HLCY:1000-0 m above ground:5 hour fcst: +136:98053424:d=2023110401:USTM:0-6000 m above ground:5 hour fcst: +137:99089462:d=2023110401:VSTM:0-6000 m above ground:5 hour fcst: +138:100085932:d=2023110401:VUCSH:0-1000 m above ground:5 hour fcst: +139:102467547:d=2023110401:VVCSH:0-1000 m above ground:5 hour fcst: +140:104849162:d=2023110401:VUCSH:0-6000 m above ground:5 hour fcst: +141:107230777:d=2023110401:VVCSH:0-6000 m above ground:5 hour fcst: +142:109850534:d=2023110401:HGT:0C isotherm:5 hour fcst: +143:112032985:d=2023110401:RH:0C isotherm:5 hour fcst: +144:112772366:d=2023110401:PRES:0C isotherm:5 hour fcst: +145:113572462:d=2023110401:HGT:highest tropospheric freezing level:5 hour fcst: +146:114316416:d=2023110401:RH:highest tropospheric freezing level:5 hour fcst: +147:115025662:d=2023110401:PRES:highest tropospheric freezing level:5 hour fcst: +148:115772602:d=2023110401:HGT:263 K level:5 hour fcst: +149:116481611:d=2023110401:HGT:253 K level:5 hour fcst: +150:117126330:d=2023110401:4LFTX:180-0 mb above ground:5 hour fcst: +151:118076777:d=2023110401:CAPE:180-0 mb above ground:5 hour fcst: +152:118404076:d=2023110401:CIN:180-0 mb above ground:5 hour fcst: +153:118815820:d=2023110401:HPBL:surface:5 hour fcst: +154:121757063:d=2023110401:HGT:level of adiabatic condensation from sfc:5 hour fcst: +155:124628583:d=2023110401:CAPE:90-0 mb above ground:5 hour fcst: +156:124861163:d=2023110401:CIN:90-0 mb above ground:5 hour fcst: +157:125178816:d=2023110401:CAPE:255-0 mb above ground:5 hour fcst: +158:125516596:d=2023110401:CIN:255-0 mb above ground:5 hour fcst: +159:125934394:d=2023110401:HGT:equilibrium level:5 hour fcst: +160:128137765:d=2023110401:PLPL:255-0 mb above ground:5 hour fcst: +161:129234944:d=2023110401:CAPE:0-3000 m above ground:5 hour fcst: +162:129758098:d=2023110401:HGT:level of free convection:5 hour fcst: +163:132477721:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=7 parm=204:surface:5 hour fcst: +164:133069064:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=7 parm=206:0-500 m above ground:5 hour fcst: +165:135182278:d=2023110401:LAYTH:261 K level - 256 K level:5 hour fcst: +166:136516129:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=7 parm=205:0-3000 m above ground:5 hour fcst: +167:137049585:d=2023110401:RHPW:entire atmosphere:5 hour fcst: +168:138191633:d=2023110401:LAND:surface:5 hour fcst: +169:138242109:d=2023110401:ICEC:surface:5 hour fcst: +170:138243282:d=2023110401:SBT123:top of atmosphere:5 hour fcst: +171:139769992:d=2023110401:SBT124:top of atmosphere:5 hour fcst: +172:142154869:d=2023110401:SBT113:top of atmosphere:5 hour fcst: +173:143576414:d=2023110401:SBT114:top of atmosphere:5 hour fcst: diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10 b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10 new file mode 100644 index 00000000..8e055873 Binary files /dev/null and b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10.idx b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10.idx new file mode 100644 index 00000000..ba9c45e8 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2023110401:REFC:entire atmosphere:5 hour fcst: +2:449315:d=2023110401:RETOP:cloud top:5 hour fcst: +3:650542:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:5 hour fcst: +4:1152939:d=2023110401:VIL:entire atmosphere:5 hour fcst: +5:1507003:d=2023110401:VIS:surface:5 hour fcst: +6:2971440:d=2023110401:REFD:1000 m above ground:5 hour fcst: +7:3255959:d=2023110401:REFD:4000 m above ground:5 hour fcst: +8:3448790:d=2023110401:REFD:263 K level:5 hour fcst: +9:3651102:d=2023110401:GUST:surface:5 hour fcst: +10:4998107:d=2023110401:UGRD:250 mb:5 hour fcst: +11:5748405:d=2023110401:VGRD:250 mb:5 hour fcst: diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.idx b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.idx new file mode 100644 index 00000000..20e3721c --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.idx @@ -0,0 +1,49 @@ +1:0:d=2023110401:REFC:entire atmosphere:anl: +2:283521:d=2023110401:RETOP:cloud top:anl: +3:455125:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:anl: +4:769774:d=2023110401:VIL:entire atmosphere:anl: +5:1003128:d=2023110401:VIS:surface:anl: +6:2410548:d=2023110401:REFD:1000 m above ground:anl: +7:2562772:d=2023110401:REFD:4000 m above ground:anl: +8:2731640:d=2023110401:GUST:surface:anl: +9:3966534:d=2023110401:UPHL:5000-2000 m above ground:anl: +10:4024102:d=2023110401:UGRD:80 m above ground:anl: +11:5141538:d=2023110401:VGRD:80 m above ground:anl: +12:6267150:d=2023110401:PRES:surface:anl: +13:7776215:d=2023110401:HGT:surface:anl: +14:9929910:d=2023110401:TMP:2 m above ground:anl: +15:11137650:d=2023110401:SPFH:2 m above ground:anl: +16:12600392:d=2023110401:DPT:2 m above ground:anl: +17:13808669:d=2023110401:UGRD:10 m above ground:anl: +18:15952141:d=2023110401:VGRD:10 m above ground:anl: +19:18333756:d=2023110401:WIND:10 m above ground:0-0 day ave fcst: +20:20171643:d=2023110401:UGRD:10 m above ground:0-0 day ave fcst: +21:21984205:d=2023110401:VGRD:10 m above ground:0-0 day ave fcst: +22:23765646:d=2023110401:DSWRF:surface:0-0 day ave fcst: +23:23904871:d=2023110401:VBDSF:surface:0-0 day ave fcst: +24:24003531:d=2023110401:CPOFP:surface:anl: +25:24003719:d=2023110401:PRATE:surface:anl: +26:24003907:d=2023110401:APCP:surface:0-0 day acc fcst: +27:24004119:d=2023110401:WEASD:surface:0-0 day acc fcst: +28:24004331:d=2023110401:FROZR:surface:0-0 day acc fcst: +29:24004543:d=2023110401:CSNOW:surface:anl: +30:24004731:d=2023110401:CICEP:surface:anl: +31:24004919:d=2023110401:CFRZR:surface:anl: +32:24005107:d=2023110401:CRAIN:surface:anl: +33:24005295:d=2023110401:TCOLW:entire atmosphere:anl: +34:24983399:d=2023110401:TCOLI:entire atmosphere:anl: +35:26007086:d=2023110401:HGT:cloud ceiling:anl: +36:26771912:d=2023110401:HGT:cloud base:anl: +37:28397581:d=2023110401:HGT:cloud top:anl: +38:29169385:d=2023110401:ULWRF:top of atmosphere:anl: +39:30895105:d=2023110401:DSWRF:surface:anl: +40:31100347:d=2023110401:DLWRF:surface:anl: +41:33025477:d=2023110401:USWRF:surface:anl: +42:33096241:d=2023110401:ULWRF:surface:anl: +43:34734088:d=2023110401:VBDSF:surface:anl: +44:34875435:d=2023110401:VDDSF:surface:anl: +45:35070536:d=2023110401:USWRF:top of atmosphere:anl: +46:35268012:d=2023110401:SBT123:top of atmosphere:anl: +47:36752376:d=2023110401:SBT124:top of atmosphere:anl: +48:39085177:d=2023110401:SBT113:top of atmosphere:anl: +49:40476569:d=2023110401:SBT114:top of atmosphere:anl: diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10 b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10 new file mode 100644 index 00000000..f7ab499d Binary files /dev/null and b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx new file mode 100644 index 00000000..60a7c243 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2023110401:REFC:entire atmosphere:anl: +2:283521:d=2023110401:RETOP:cloud top:anl: +3:455125:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:anl: +4:769774:d=2023110401:VIL:entire atmosphere:anl: +5:1003128:d=2023110401:VIS:surface:anl: +6:2410548:d=2023110401:REFD:1000 m above ground:anl: +7:2562772:d=2023110401:REFD:4000 m above ground:anl: +8:2731640:d=2023110401:GUST:surface:anl: +9:3966534:d=2023110401:UPHL:5000-2000 m above ground:anl: +10:4024102:d=2023110401:UGRD:80 m above ground:anl: +11:5141538:d=2023110401:VGRD:80 m above ground:anl: diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.idx b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.idx new file mode 100644 index 00000000..12ff9a30 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.idx @@ -0,0 +1,196 @@ +1:0:d=2023110401:REFC:entire atmosphere:495 min fcst: +2:517755:d=2023110401:RETOP:cloud top:495 min fcst: +3:749722:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:495 min fcst: +4:1221306:d=2023110401:VIL:entire atmosphere:495 min fcst: +5:1574384:d=2023110401:VIS:surface:495 min fcst: +6:3055471:d=2023110401:REFD:1000 m above ground:495 min fcst: +7:3375944:d=2023110401:REFD:4000 m above ground:495 min fcst: +8:3593196:d=2023110401:GUST:surface:495 min fcst: +9:4956519:d=2023110401:UPHL:5000-2000 m above ground:495 min fcst: +10:4969394:d=2023110401:UGRD:80 m above ground:495 min fcst: +11:6187287:d=2023110401:VGRD:80 m above ground:495 min fcst: +12:7428413:d=2023110401:PRES:surface:495 min fcst: +13:8945313:d=2023110401:HGT:surface:495 min fcst: +14:11099008:d=2023110401:TMP:2 m above ground:495 min fcst: +15:12372439:d=2023110401:SPFH:2 m above ground:495 min fcst: +16:13884487:d=2023110401:DPT:2 m above ground:495 min fcst: +17:15132671:d=2023110401:UGRD:10 m above ground:495 min fcst: +18:17514286:d=2023110401:VGRD:10 m above ground:495 min fcst: +19:19895901:d=2023110401:WIND:10 m above ground:490-495 min ave fcst: +20:21860497:d=2023110401:UGRD:10 m above ground:490-495 min ave fcst: +21:23817635:d=2023110401:VGRD:10 m above ground:490-495 min ave fcst: +22:25729547:d=2023110401:DSWRF:surface:480-495 min ave fcst: +23:25729759:d=2023110401:VBDSF:surface:480-495 min ave fcst: +24:25729971:d=2023110401:CPOFP:surface:495 min fcst: +25:25868436:d=2023110401:PRATE:surface:495 min fcst: +26:25941773:d=2023110401:APCP:surface:480-495 min acc fcst: +27:26229044:d=2023110401:WEASD:surface:480-495 min acc fcst: +28:26259033:d=2023110401:FROZR:surface:480-495 min acc fcst: +29:26276373:d=2023110401:CSNOW:surface:495 min fcst: +30:26283980:d=2023110401:CICEP:surface:495 min fcst: +31:26285092:d=2023110401:CFRZR:surface:495 min fcst: +32:26287505:d=2023110401:CRAIN:surface:495 min fcst: +33:26353945:d=2023110401:TCOLW:entire atmosphere:495 min fcst: +34:27622815:d=2023110401:TCOLI:entire atmosphere:495 min fcst: +35:28923351:d=2023110401:HGT:cloud ceiling:495 min fcst: +36:30313333:d=2023110401:HGT:cloud base:495 min fcst: +37:32612168:d=2023110401:HGT:cloud top:495 min fcst: +38:33884561:d=2023110401:ULWRF:top of atmosphere:495 min fcst: +39:35781740:d=2023110401:DSWRF:surface:495 min fcst: +40:35781928:d=2023110401:DLWRF:surface:495 min fcst: +41:37809792:d=2023110401:USWRF:surface:495 min fcst: +42:37809980:d=2023110401:ULWRF:surface:495 min fcst: +43:39483413:d=2023110401:VBDSF:surface:495 min fcst: +44:39483601:d=2023110401:VDDSF:surface:495 min fcst: +45:39483789:d=2023110401:USWRF:top of atmosphere:495 min fcst: +46:39483977:d=2023110401:SBT123:top of atmosphere:495 min fcst: +47:41048897:d=2023110401:SBT124:top of atmosphere:495 min fcst: +48:43495522:d=2023110401:SBT113:top of atmosphere:495 min fcst: +49:44952897:d=2023110401:SBT114:top of atmosphere:495 min fcst: +50:47291167:d=2023110401:REFC:entire atmosphere:510 min fcst: +51:47812862:d=2023110401:RETOP:cloud top:510 min fcst: +52:48047776:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:510 min fcst: +53:48528956:d=2023110401:VIL:entire atmosphere:510 min fcst: +54:48885159:d=2023110401:VIS:surface:510 min fcst: +55:50366398:d=2023110401:REFD:1000 m above ground:510 min fcst: +56:50688902:d=2023110401:REFD:4000 m above ground:510 min fcst: +57:50909039:d=2023110401:GUST:surface:510 min fcst: +58:52272899:d=2023110401:UPHL:5000-2000 m above ground:510 min fcst: +59:52285635:d=2023110401:UGRD:80 m above ground:510 min fcst: +60:53520813:d=2023110401:VGRD:80 m above ground:510 min fcst: +61:54762927:d=2023110401:PRES:surface:510 min fcst: +62:56279944:d=2023110401:HGT:surface:510 min fcst: +63:58433639:d=2023110401:TMP:2 m above ground:510 min fcst: +64:59707908:d=2023110401:SPFH:2 m above ground:510 min fcst: +65:61221480:d=2023110401:DPT:2 m above ground:510 min fcst: +66:62471086:d=2023110401:UGRD:10 m above ground:510 min fcst: +67:64852701:d=2023110401:VGRD:10 m above ground:510 min fcst: +68:67234316:d=2023110401:WIND:10 m above ground:505-510 min ave fcst: +69:69199087:d=2023110401:UGRD:10 m above ground:505-510 min ave fcst: +70:71157459:d=2023110401:VGRD:10 m above ground:505-510 min ave fcst: +71:73070524:d=2023110401:DSWRF:surface:495-510 min ave fcst: +72:73070736:d=2023110401:VBDSF:surface:495-510 min ave fcst: +73:73070948:d=2023110401:CPOFP:surface:510 min fcst: +74:73209916:d=2023110401:PRATE:surface:510 min fcst: +75:73283681:d=2023110401:APCP:surface:495-510 min acc fcst: +76:73573730:d=2023110401:WEASD:surface:495-510 min acc fcst: +77:73605060:d=2023110401:FROZR:surface:495-510 min acc fcst: +78:73623525:d=2023110401:CSNOW:surface:510 min fcst: +79:73631456:d=2023110401:CICEP:surface:510 min fcst: +80:73632590:d=2023110401:CFRZR:surface:510 min fcst: +81:73635112:d=2023110401:CRAIN:surface:510 min fcst: +82:73700928:d=2023110401:TCOLW:entire atmosphere:510 min fcst: +83:75138427:d=2023110401:TCOLI:entire atmosphere:510 min fcst: +84:76447190:d=2023110401:HGT:cloud ceiling:510 min fcst: +85:77843643:d=2023110401:HGT:cloud base:510 min fcst: +86:80157302:d=2023110401:HGT:cloud top:510 min fcst: +87:81436641:d=2023110401:ULWRF:top of atmosphere:510 min fcst: +88:83337448:d=2023110401:DSWRF:surface:510 min fcst: +89:83337636:d=2023110401:DLWRF:surface:510 min fcst: +90:85368471:d=2023110401:USWRF:surface:510 min fcst: +91:85368659:d=2023110401:ULWRF:surface:510 min fcst: +92:87041786:d=2023110401:VBDSF:surface:510 min fcst: +93:87041974:d=2023110401:VDDSF:surface:510 min fcst: +94:87042162:d=2023110401:USWRF:top of atmosphere:510 min fcst: +95:87042350:d=2023110401:SBT123:top of atmosphere:510 min fcst: +96:88627045:d=2023110401:SBT124:top of atmosphere:510 min fcst: +97:91078194:d=2023110401:SBT113:top of atmosphere:510 min fcst: +98:92538217:d=2023110401:SBT114:top of atmosphere:510 min fcst: +99:94879694:d=2023110401:REFC:entire atmosphere:525 min fcst: +100:95405593:d=2023110401:RETOP:cloud top:525 min fcst: +101:95641682:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:525 min fcst: +102:96119708:d=2023110401:VIL:entire atmosphere:525 min fcst: +103:96406339:d=2023110401:VIS:surface:525 min fcst: +104:97887429:d=2023110401:REFD:1000 m above ground:525 min fcst: +105:98211031:d=2023110401:REFD:4000 m above ground:525 min fcst: +106:98432750:d=2023110401:GUST:surface:525 min fcst: +107:99797349:d=2023110401:UPHL:5000-2000 m above ground:525 min fcst: +108:99879382:d=2023110401:UGRD:80 m above ground:525 min fcst: +109:101099881:d=2023110401:VGRD:80 m above ground:525 min fcst: +110:102343201:d=2023110401:PRES:surface:525 min fcst: +111:103860542:d=2023110401:HGT:surface:525 min fcst: +112:106014237:d=2023110401:TMP:2 m above ground:525 min fcst: +113:107290109:d=2023110401:SPFH:2 m above ground:525 min fcst: +114:108806602:d=2023110401:DPT:2 m above ground:525 min fcst: +115:110057920:d=2023110401:UGRD:10 m above ground:525 min fcst: +116:112439535:d=2023110401:VGRD:10 m above ground:525 min fcst: +117:114821150:d=2023110401:WIND:10 m above ground:520-525 min ave fcst: +118:116786445:d=2023110401:UGRD:10 m above ground:520-525 min ave fcst: +119:118745876:d=2023110401:VGRD:10 m above ground:520-525 min ave fcst: +120:120659949:d=2023110401:DSWRF:surface:510-525 min ave fcst: +121:120660161:d=2023110401:VBDSF:surface:510-525 min ave fcst: +122:120660373:d=2023110401:CPOFP:surface:525 min fcst: +123:120801147:d=2023110401:PRATE:surface:525 min fcst: +124:120875950:d=2023110401:APCP:surface:510-525 min acc fcst: +125:121169066:d=2023110401:WEASD:surface:510-525 min acc fcst: +126:121201540:d=2023110401:FROZR:surface:510-525 min acc fcst: +127:121220828:d=2023110401:CSNOW:surface:525 min fcst: +128:121229066:d=2023110401:CICEP:surface:525 min fcst: +129:121230255:d=2023110401:CFRZR:surface:525 min fcst: +130:121233012:d=2023110401:CRAIN:surface:525 min fcst: +131:121298575:d=2023110401:TCOLW:entire atmosphere:525 min fcst: +132:122741840:d=2023110401:TCOLI:entire atmosphere:525 min fcst: +133:123929272:d=2023110401:HGT:cloud ceiling:525 min fcst: +134:125336588:d=2023110401:HGT:cloud base:525 min fcst: +135:127664509:d=2023110401:HGT:cloud top:525 min fcst: +136:128951407:d=2023110401:ULWRF:top of atmosphere:525 min fcst: +137:130854884:d=2023110401:DSWRF:surface:525 min fcst: +138:130855072:d=2023110401:DLWRF:surface:525 min fcst: +139:132888532:d=2023110401:USWRF:surface:525 min fcst: +140:132888720:d=2023110401:ULWRF:surface:525 min fcst: +141:134562637:d=2023110401:VBDSF:surface:525 min fcst: +142:134562825:d=2023110401:VDDSF:surface:525 min fcst: +143:134563013:d=2023110401:USWRF:top of atmosphere:525 min fcst: +144:134563201:d=2023110401:SBT123:top of atmosphere:525 min fcst: +145:136150053:d=2023110401:SBT124:top of atmosphere:525 min fcst: +146:138603607:d=2023110401:SBT113:top of atmosphere:525 min fcst: +147:140065239:d=2023110401:SBT114:top of atmosphere:525 min fcst: +148:142408387:d=2023110401:REFC:entire atmosphere:540 min fcst: +149:142939905:d=2023110401:RETOP:cloud top:540 min fcst: +150:143177488:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:540 min fcst: +151:143666536:d=2023110401:VIL:entire atmosphere:540 min fcst: +152:144027952:d=2023110401:VIS:surface:540 min fcst: +153:145508754:d=2023110401:REFD:1000 m above ground:540 min fcst: +154:145835857:d=2023110401:REFD:4000 m above ground:540 min fcst: +155:146060460:d=2023110401:GUST:surface:540 min fcst: +156:147425265:d=2023110401:UPHL:5000-2000 m above ground:540 min fcst: +157:147437386:d=2023110401:UGRD:80 m above ground:540 min fcst: +158:148659701:d=2023110401:VGRD:80 m above ground:540 min fcst: +159:149904136:d=2023110401:PRES:surface:540 min fcst: +160:151422063:d=2023110401:HGT:surface:540 min fcst: +161:153575758:d=2023110401:TMP:2 m above ground:540 min fcst: +162:154851047:d=2023110401:SPFH:2 m above ground:540 min fcst: +163:156369213:d=2023110401:DPT:2 m above ground:540 min fcst: +164:157621913:d=2023110401:UGRD:10 m above ground:540 min fcst: +165:160003528:d=2023110401:VGRD:10 m above ground:540 min fcst: +166:162385143:d=2023110401:WIND:10 m above ground:535-540 min ave fcst: +167:164351803:d=2023110401:UGRD:10 m above ground:535-540 min ave fcst: +168:166314545:d=2023110401:VGRD:10 m above ground:535-540 min ave fcst: +169:168229391:d=2023110401:DSWRF:surface:525-540 min ave fcst: +170:168229603:d=2023110401:VBDSF:surface:525-540 min ave fcst: +171:168229815:d=2023110401:CPOFP:surface:540 min fcst: +172:168370316:d=2023110401:PRATE:surface:540 min fcst: +173:168444382:d=2023110401:APCP:surface:525-540 min acc fcst: +174:168740006:d=2023110401:WEASD:surface:525-540 min acc fcst: +175:168773475:d=2023110401:FROZR:surface:525-540 min acc fcst: +176:168791549:d=2023110401:CSNOW:surface:540 min fcst: +177:168800145:d=2023110401:CICEP:surface:540 min fcst: +178:168801314:d=2023110401:CFRZR:surface:540 min fcst: +179:168804354:d=2023110401:CRAIN:surface:540 min fcst: +180:168870283:d=2023110401:TCOLW:entire atmosphere:540 min fcst: +181:170171113:d=2023110401:TCOLI:entire atmosphere:540 min fcst: +182:171498427:d=2023110401:HGT:cloud ceiling:540 min fcst: +183:172916471:d=2023110401:HGT:cloud base:540 min fcst: +184:175254552:d=2023110401:HGT:cloud top:540 min fcst: +185:176552905:d=2023110401:ULWRF:top of atmosphere:540 min fcst: +186:178458724:d=2023110401:DSWRF:surface:540 min fcst: +187:178458912:d=2023110401:DLWRF:surface:540 min fcst: +188:180494496:d=2023110401:USWRF:surface:540 min fcst: +189:180494684:d=2023110401:ULWRF:surface:540 min fcst: +190:182168659:d=2023110401:VBDSF:surface:540 min fcst: +191:182168847:d=2023110401:VDDSF:surface:540 min fcst: +192:182169035:d=2023110401:USWRF:top of atmosphere:540 min fcst: +193:182169223:d=2023110401:SBT123:top of atmosphere:540 min fcst: +194:183758370:d=2023110401:SBT124:top of atmosphere:540 min fcst: +195:186214659:d=2023110401:SBT113:top of atmosphere:540 min fcst: +196:187678641:d=2023110401:SBT114:top of atmosphere:540 min fcst: diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10 b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10 new file mode 100644 index 00000000..cffbf69a Binary files /dev/null and b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10 differ diff --git a/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10.idx b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10.idx new file mode 100644 index 00000000..c553a308 --- /dev/null +++ b/tests/grib_idx_fixtures/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10.idx @@ -0,0 +1,11 @@ +1:0:d=2023110401:REFC:entire atmosphere:495 min fcst: +2:517755:d=2023110401:RETOP:cloud top:495 min fcst: +3:749722:d=2023110401:var discipline=0 center=7 local_table=1 parmcat=16 parm=201:entire atmosphere:495 min fcst: +4:1221306:d=2023110401:VIL:entire atmosphere:495 min fcst: +5:1574384:d=2023110401:VIS:surface:495 min fcst: +6:3055471:d=2023110401:REFD:1000 m above ground:495 min fcst: +7:3375944:d=2023110401:REFD:4000 m above ground:495 min fcst: +8:3593196:d=2023110401:GUST:surface:495 min fcst: +9:4956519:d=2023110401:UPHL:5000-2000 m above ground:495 min fcst: +10:4969394:d=2023110401:UGRD:80 m above ground:495 min fcst: +11:6187287:d=2023110401:VGRD:80 m above ground:495 min fcst: diff --git a/tests/grib_idx_fixtures/README.md b/tests/grib_idx_fixtures/README.md new file mode 100644 index 00000000..edf68eb2 --- /dev/null +++ b/tests/grib_idx_fixtures/README.md @@ -0,0 +1,78 @@ +# Fixture data + +To examine json.gz fixture files on the command line use *zcat* & *jq* +```console +zcat tests/fixtures/hrrr.wrfsubhf/zarr_tree_store_v1.json.gz | jq . +``` +To examine the parquet files you need to use jupyter notebook or a debugger + + +HRRR Sub hourly test data +``` +gs://high-resolution-rapid-refresh/hrrr.20210928/conus/hrrr.t01z.wrfsubhf00.grib2 +gs://high-resolution-rapid-refresh/hrrr.20210928/conus/hrrr.t01z.wrfsubhf01.grib2 +``` + +HRRR Surface 2d test data +``` +gs://high-resolution-rapid-refresh/hrrr.20210928/conus/hrrr.t01z.wrfsfcf00.grib2 +gs://high-resolution-rapid-refresh/hrrr.20210928/conus/hrrr.t01z.wrfsfcf01.grib2 +``` + +GFS pgrb2 0p25 test data +``` +gs://global-forecast-system/gfs.20230928/00/atmos/gfs.t00z.pgrb2.0p25.f000 +gs://global-forecast-system/gfs.20230928/00/atmos/gfs.t00z.pgrb2.0p25.f001 +gs://global-forecast-system/gfs.20230928/00/atmos/gfs.t00z.pgrb2.0p25.f002 +gs://global-forecast-system/gfs.20230928/06/atmos/gfs.t06z.pgrb2.0p25.f000 +gs://global-forecast-system/gfs.20230928/06/atmos/gfs.t06z.pgrb2.0p25.f001 +gs://global-forecast-system/gfs.20230928/06/atmos/gfs.t06z.pgrb2.0p25.f002 +``` + +## To make more fixture data + +Copy data with a command like: +```console +gsutil -m cp gs://high-resolution-rapid-refresh/hrrr.20230928/conus/hrrr.t00z.wrfsfcf* testdata/. +``` + +Call scan_grib to read the files and filter the results message groups for interesting keys e.g. starting with "dswrf" or "u". Even a single grib file will be huge for all messages. + +```python +scans = scan_grib("testdata/hrrr.t01z.wrfsubhf00.grib2") +scans += scan_grib("testdata/hrrr.t01z.wrfsubhf01.grib2") +jsets = [] +vname = "dswrf" +for gg in scans: + if "dswrf/.zattrs" in gg['refs'] or "u/.zattrs" in gg['refs']: + jsets.append(gg) + +with gzip.open("ingestion/noaa_nwp/tests/fixtures/hrrr.wrfsubhf.subset.json.gz", 'w') as f: + ss = ujson.dumps(jsets) + f.write(ss) +``` + +To make reinflate test parquet chunk indexes... load data from ingestion extract a single parquet file +```python +gfs_base_path = "gs://dev.camus-infra.camus.store/davetest/gfs" +gfs_kind = dd.read_parquet( + [f.full_name for f in fsspec.open_files(os.path.join(gfs_base_path, "data_index/**.parquet"))], + index=False +).compute() +gfs_kind.loc[ + gfs_kind.varname.isin(["u", "dswrf"]) & + (gfs_kind.valid_time <= "2023-09-28 04:00:00") +].to_parquet("/home/builder/bando/ingestion/noaa_nwp/tests/fixtures/gfs.pgrb2.0p25/test_reinflate.parquet") +``` + + +Make truncated grib files and idx files with make_test_grib_idx_files +```python +fs = fsspec.filesystem("gcs") +dynamic_zarr_store.make_test_grib_idx_files( +fs=fs, +basename="gs://camus-infra.camus.store/circleci_test_data/bando/ingestion/noaa_nwp/tests/fixtures/20221014/hrrr.t01z.wrfsubhf00.grib2" +) +``` +Copy the files from the NODD bucket first, then truncate, so we keep the original artifact too. +e.g. `gsutil cp gs://global-forecast-system/gfs.20221014/00/atmos/gfs.t00z.pgrb2.0p25.f000* gs://camus-infra.camus.store/circleci_test_data/bando/ingestion/noaa_nwp/tests/fixtures/20221014/` diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx_grib_mapping.parquet b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx_grib_mapping.parquet new file mode 100644 index 00000000..c212711f Binary files /dev/null and b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20221014/gfs.t00z.pgrb2.0p25.f000.test-limit-10.idx_grib_mapping.parquet differ diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10.idx_grib_mapping.parquet b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10.idx_grib_mapping.parquet new file mode 100644 index 00000000..5e883499 Binary files /dev/null and b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20221014/gfs.t06z.pgrb2.0p25.f021.test-limit-10.idx_grib_mapping.parquet differ diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10.kindex.parquet b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10.kindex.parquet new file mode 100644 index 00000000..54ec6671 Binary files /dev/null and b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20231104/gfs.t00z.pgrb2.0p25.f000.test-limit-10.kindex.parquet differ diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10.kindex.parquet b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10.kindex.parquet new file mode 100644 index 00000000..85ebecb5 Binary files /dev/null and b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/20231104/gfs.t00z.pgrb2.0p25.f021.test-limit-10.kindex.parquet differ diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/kerchunk_index.parquet b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/kerchunk_index.parquet new file mode 100644 index 00000000..565502ba Binary files /dev/null and b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/kerchunk_index.parquet differ diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/best_available/dswrf/avg/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/best_available/dswrf/avg/surface/dswrf_chunks.json new file mode 100644 index 00000000..87e301a5 --- /dev/null +++ b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/best_available/dswrf/avg/surface/dswrf_chunks.json @@ -0,0 +1,4 @@ +[ + "dswrf\/avg\/surface\/dswrf\/.zarray", + "dswrf\/avg\/surface\/dswrf\/.zattrs" +] diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/best_available/u/instant/isobaricInPa/u_chunks.json b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/best_available/u/instant/isobaricInPa/u_chunks.json new file mode 100644 index 00000000..970831a0 --- /dev/null +++ b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/best_available/u/instant/isobaricInPa/u_chunks.json @@ -0,0 +1,12 @@ +[ + "u\/instant\/isobaricInPa\/u\/.zarray", + "u\/instant\/isobaricInPa\/u\/.zattrs", + "u\/instant\/isobaricInPa\/u\/0.0.0.0", + "u\/instant\/isobaricInPa\/u\/0.1.0.0", + "u\/instant\/isobaricInPa\/u\/0.2.0.0", + "u\/instant\/isobaricInPa\/u\/0.3.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.0.0", + "u\/instant\/isobaricInPa\/u\/0.5.0.0", + "u\/instant\/isobaricInPa\/u\/0.6.0.0", + "u\/instant\/isobaricInPa\/u\/0.7.0.0" +] diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/horizon/dswrf/avg/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/horizon/dswrf/avg/surface/dswrf_chunks.json new file mode 100644 index 00000000..cd35dd70 --- /dev/null +++ b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/horizon/dswrf/avg/surface/dswrf_chunks.json @@ -0,0 +1,5 @@ +[ + "dswrf\/avg\/surface\/dswrf\/.zarray", + "dswrf\/avg\/surface\/dswrf\/.zattrs", + "dswrf\/avg\/surface\/dswrf\/1.1.0.0" +] diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/horizon/u/instant/isobaricInPa/u_chunks.json b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/horizon/u/instant/isobaricInPa/u_chunks.json new file mode 100644 index 00000000..84933f06 --- /dev/null +++ b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/horizon/u/instant/isobaricInPa/u_chunks.json @@ -0,0 +1,20 @@ +[ + "u\/instant\/isobaricInPa\/u\/.zarray", + "u\/instant\/isobaricInPa\/u\/.zattrs", + "u\/instant\/isobaricInPa\/u\/0.0.0.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.1.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.2.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.3.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.4.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.5.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.6.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.7.0.0", + "u\/instant\/isobaricInPa\/u\/1.1.0.0.0", + "u\/instant\/isobaricInPa\/u\/1.1.1.0.0", + "u\/instant\/isobaricInPa\/u\/1.1.2.0.0", + "u\/instant\/isobaricInPa\/u\/1.1.3.0.0", + "u\/instant\/isobaricInPa\/u\/1.1.4.0.0", + "u\/instant\/isobaricInPa\/u\/1.1.5.0.0", + "u\/instant\/isobaricInPa\/u\/1.1.6.0.0", + "u\/instant\/isobaricInPa\/u\/1.1.7.0.0" +] diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/run_time/dswrf/avg/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/run_time/dswrf/avg/surface/dswrf_chunks.json new file mode 100644 index 00000000..1e7950bf --- /dev/null +++ b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/run_time/dswrf/avg/surface/dswrf_chunks.json @@ -0,0 +1,6 @@ +[ + "dswrf\/avg\/surface\/dswrf\/.zarray", + "dswrf\/avg\/surface\/dswrf\/.zattrs", + "dswrf\/avg\/surface\/dswrf\/0.4.0.0", + "dswrf\/avg\/surface\/dswrf\/0.8.0.0" +] diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/run_time/u/instant/isobaricInPa/u_chunks.json b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/run_time/u/instant/isobaricInPa/u_chunks.json new file mode 100644 index 00000000..62d8bee6 --- /dev/null +++ b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/run_time/u/instant/isobaricInPa/u_chunks.json @@ -0,0 +1,28 @@ +[ + "u\/instant\/isobaricInPa\/u\/.zarray", + "u\/instant\/isobaricInPa\/u\/.zattrs", + "u\/instant\/isobaricInPa\/u\/0.0.0.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.1.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.2.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.3.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.4.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.5.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.6.0.0", + "u\/instant\/isobaricInPa\/u\/0.0.7.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.0.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.1.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.2.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.3.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.4.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.5.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.6.0.0", + "u\/instant\/isobaricInPa\/u\/0.4.7.0.0", + "u\/instant\/isobaricInPa\/u\/0.8.0.0.0", + "u\/instant\/isobaricInPa\/u\/0.8.1.0.0", + "u\/instant\/isobaricInPa\/u\/0.8.2.0.0", + "u\/instant\/isobaricInPa\/u\/0.8.3.0.0", + "u\/instant\/isobaricInPa\/u\/0.8.4.0.0", + "u\/instant\/isobaricInPa\/u\/0.8.5.0.0", + "u\/instant\/isobaricInPa\/u\/0.8.6.0.0", + "u\/instant\/isobaricInPa\/u\/0.8.7.0.0" +] diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/valid_time/dswrf/avg/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/valid_time/dswrf/avg/surface/dswrf_chunks.json new file mode 100644 index 00000000..ac4292d3 --- /dev/null +++ b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/valid_time/dswrf/avg/surface/dswrf_chunks.json @@ -0,0 +1,6 @@ +[ + "dswrf\/avg\/surface\/dswrf\/.zarray", + "dswrf\/avg\/surface\/dswrf\/.zattrs", + "dswrf\/avg\/surface\/dswrf\/0.2.0.0", + "dswrf\/avg\/surface\/dswrf\/1.4.0.0" +] diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/valid_time/u/instant/isobaricInPa/u_chunks.json b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/valid_time/u/instant/isobaricInPa/u_chunks.json new file mode 100644 index 00000000..5242cca9 --- /dev/null +++ b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/reinflate/valid_time/u/instant/isobaricInPa/u_chunks.json @@ -0,0 +1,20 @@ +[ + "u\/instant\/isobaricInPa\/u\/.zarray", + "u\/instant\/isobaricInPa\/u\/.zattrs", + "u\/instant\/isobaricInPa\/u\/0.2.0.0.0", + "u\/instant\/isobaricInPa\/u\/0.2.1.0.0", + "u\/instant\/isobaricInPa\/u\/0.2.2.0.0", + "u\/instant\/isobaricInPa\/u\/0.2.3.0.0", + "u\/instant\/isobaricInPa\/u\/0.2.4.0.0", + "u\/instant\/isobaricInPa\/u\/0.2.5.0.0", + "u\/instant\/isobaricInPa\/u\/0.2.6.0.0", + "u\/instant\/isobaricInPa\/u\/0.2.7.0.0", + "u\/instant\/isobaricInPa\/u\/1.4.0.0.0", + "u\/instant\/isobaricInPa\/u\/1.4.1.0.0", + "u\/instant\/isobaricInPa\/u\/1.4.2.0.0", + "u\/instant\/isobaricInPa\/u\/1.4.3.0.0", + "u\/instant\/isobaricInPa\/u\/1.4.4.0.0", + "u\/instant\/isobaricInPa\/u\/1.4.5.0.0", + "u\/instant\/isobaricInPa\/u\/1.4.6.0.0", + "u\/instant\/isobaricInPa\/u\/1.4.7.0.0" +] diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/subset.json.gz b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/subset.json.gz new file mode 100644 index 00000000..00d8b862 Binary files /dev/null and b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/subset.json.gz differ diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/test_reinflate.parquet b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/test_reinflate.parquet new file mode 100644 index 00000000..d92df94b Binary files /dev/null and b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/test_reinflate.parquet differ diff --git a/tests/grib_idx_fixtures/gfs.pgrb2.0p25/zarr_tree_store.json.gz b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/zarr_tree_store.json.gz new file mode 100644 index 00000000..96deaeb7 Binary files /dev/null and b/tests/grib_idx_fixtures/gfs.pgrb2.0p25/zarr_tree_store.json.gz differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx_grib_mapping.parquet b/tests/grib_idx_fixtures/hrrr.wrfsfcf/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx_grib_mapping.parquet new file mode 100644 index 00000000..ff301a9f Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsfcf/20221014/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.idx_grib_mapping.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10.idx_grib_mapping.parquet b/tests/grib_idx_fixtures/hrrr.wrfsfcf/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10.idx_grib_mapping.parquet new file mode 100644 index 00000000..99fffa3a Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsfcf/20221014/hrrr.t09z.wrfsfcf05.grib2.test-limit-10.idx_grib_mapping.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.kindex.parquet b/tests/grib_idx_fixtures/hrrr.wrfsfcf/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.kindex.parquet new file mode 100644 index 00000000..a7940369 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsfcf/20231104/hrrr.t01z.wrfsfcf00.grib2.test-limit-10.kindex.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10.kindex.parquet b/tests/grib_idx_fixtures/hrrr.wrfsfcf/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10.kindex.parquet new file mode 100644 index 00000000..a5757934 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsfcf/20231104/hrrr.t01z.wrfsfcf05.grib2.test-limit-10.kindex.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/kerchunk_index.parquet b/tests/grib_idx_fixtures/hrrr.wrfsfcf/kerchunk_index.parquet new file mode 100644 index 00000000..42330bae Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsfcf/kerchunk_index.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/dswrf/instant/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/dswrf/instant/surface/dswrf_chunks.json new file mode 100644 index 00000000..0612f0fc --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/dswrf/instant/surface/dswrf_chunks.json @@ -0,0 +1,11 @@ +[ + "dswrf\/instant\/surface\/dswrf\/.zarray", + "dswrf\/instant\/surface\/dswrf\/.zattrs", + "dswrf\/instant\/surface\/dswrf\/0.0.0", + "dswrf\/instant\/surface\/dswrf\/1.0.0", + "dswrf\/instant\/surface\/dswrf\/2.0.0", + "dswrf\/instant\/surface\/dswrf\/3.0.0", + "dswrf\/instant\/surface\/dswrf\/4.0.0", + "dswrf\/instant\/surface\/dswrf\/5.0.0", + "dswrf\/instant\/surface\/dswrf\/6.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/u/instant/heightAboveGround/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/u/instant/heightAboveGround/u_chunks.json new file mode 100644 index 00000000..efc7b8f5 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/u/instant/heightAboveGround/u_chunks.json @@ -0,0 +1,11 @@ +[ + "u\/instant\/heightAboveGround\/u\/.zarray", + "u\/instant\/heightAboveGround\/u\/.zattrs", + "u\/instant\/heightAboveGround\/u\/0.0.0", + "u\/instant\/heightAboveGround\/u\/1.0.0", + "u\/instant\/heightAboveGround\/u\/2.0.0", + "u\/instant\/heightAboveGround\/u\/3.0.0", + "u\/instant\/heightAboveGround\/u\/4.0.0", + "u\/instant\/heightAboveGround\/u\/5.0.0", + "u\/instant\/heightAboveGround\/u\/6.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/u/instant/isobaricInhPa/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/u/instant/isobaricInhPa/u_chunks.json new file mode 100644 index 00000000..30cfc834 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/best_available/u/instant/isobaricInhPa/u_chunks.json @@ -0,0 +1,53 @@ +[ + "u\/instant\/isobaricInhPa\/u\/.zarray", + "u\/instant\/isobaricInhPa\/u\/.zattrs", + "u\/instant\/isobaricInhPa\/u\/0.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.6.0.0", + "u\/instant\/isobaricInhPa\/u\/2.0.0.0", + "u\/instant\/isobaricInhPa\/u\/2.1.0.0", + "u\/instant\/isobaricInhPa\/u\/2.2.0.0", + "u\/instant\/isobaricInhPa\/u\/2.3.0.0", + "u\/instant\/isobaricInhPa\/u\/2.4.0.0", + "u\/instant\/isobaricInhPa\/u\/2.5.0.0", + "u\/instant\/isobaricInhPa\/u\/2.6.0.0", + "u\/instant\/isobaricInhPa\/u\/3.0.0.0", + "u\/instant\/isobaricInhPa\/u\/3.1.0.0", + "u\/instant\/isobaricInhPa\/u\/3.2.0.0", + "u\/instant\/isobaricInhPa\/u\/3.3.0.0", + "u\/instant\/isobaricInhPa\/u\/3.4.0.0", + "u\/instant\/isobaricInhPa\/u\/3.5.0.0", + "u\/instant\/isobaricInhPa\/u\/3.6.0.0", + "u\/instant\/isobaricInhPa\/u\/4.0.0.0", + "u\/instant\/isobaricInhPa\/u\/4.1.0.0", + "u\/instant\/isobaricInhPa\/u\/4.2.0.0", + "u\/instant\/isobaricInhPa\/u\/4.3.0.0", + "u\/instant\/isobaricInhPa\/u\/4.4.0.0", + "u\/instant\/isobaricInhPa\/u\/4.5.0.0", + "u\/instant\/isobaricInhPa\/u\/4.6.0.0", + "u\/instant\/isobaricInhPa\/u\/5.0.0.0", + "u\/instant\/isobaricInhPa\/u\/5.1.0.0", + "u\/instant\/isobaricInhPa\/u\/5.2.0.0", + "u\/instant\/isobaricInhPa\/u\/5.3.0.0", + "u\/instant\/isobaricInhPa\/u\/5.4.0.0", + "u\/instant\/isobaricInhPa\/u\/5.5.0.0", + "u\/instant\/isobaricInhPa\/u\/5.6.0.0", + "u\/instant\/isobaricInhPa\/u\/6.0.0.0", + "u\/instant\/isobaricInhPa\/u\/6.1.0.0", + "u\/instant\/isobaricInhPa\/u\/6.2.0.0", + "u\/instant\/isobaricInhPa\/u\/6.3.0.0", + "u\/instant\/isobaricInhPa\/u\/6.4.0.0", + "u\/instant\/isobaricInhPa\/u\/6.5.0.0", + "u\/instant\/isobaricInhPa\/u\/6.6.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/dswrf/instant/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/dswrf/instant/surface/dswrf_chunks.json new file mode 100644 index 00000000..f3db3b5d --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/dswrf/instant/surface/dswrf_chunks.json @@ -0,0 +1,10 @@ +[ + "dswrf\/instant\/surface\/dswrf\/.zarray", + "dswrf\/instant\/surface\/dswrf\/.zattrs", + "dswrf\/instant\/surface\/dswrf\/0.0.0.0", + "dswrf\/instant\/surface\/dswrf\/0.1.0.0", + "dswrf\/instant\/surface\/dswrf\/0.2.0.0", + "dswrf\/instant\/surface\/dswrf\/1.1.0.0", + "dswrf\/instant\/surface\/dswrf\/1.2.0.0", + "dswrf\/instant\/surface\/dswrf\/1.3.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/u/instant/heightAboveGround/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/u/instant/heightAboveGround/u_chunks.json new file mode 100644 index 00000000..f154ce3c --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/u/instant/heightAboveGround/u_chunks.json @@ -0,0 +1,10 @@ +[ + "u\/instant\/heightAboveGround\/u\/.zarray", + "u\/instant\/heightAboveGround\/u\/.zattrs", + "u\/instant\/heightAboveGround\/u\/0.0.0.0", + "u\/instant\/heightAboveGround\/u\/0.1.0.0", + "u\/instant\/heightAboveGround\/u\/0.2.0.0", + "u\/instant\/heightAboveGround\/u\/1.1.0.0", + "u\/instant\/heightAboveGround\/u\/1.2.0.0", + "u\/instant\/heightAboveGround\/u\/1.3.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/u/instant/isobaricInhPa/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/u/instant/isobaricInhPa/u_chunks.json new file mode 100644 index 00000000..e5a7aff3 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/horizon/u/instant/isobaricInhPa/u_chunks.json @@ -0,0 +1,46 @@ +[ + "u\/instant\/isobaricInhPa\/u\/.zarray", + "u\/instant\/isobaricInhPa\/u\/.zattrs", + "u\/instant\/isobaricInhPa\/u\/0.0.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.6.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.6.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.1.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.1.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.1.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.1.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.1.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.1.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.1.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.6.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/dswrf/instant/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/dswrf/instant/surface/dswrf_chunks.json new file mode 100644 index 00000000..e828a719 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/dswrf/instant/surface/dswrf_chunks.json @@ -0,0 +1,10 @@ +[ + "dswrf\/instant\/surface\/dswrf\/.zarray", + "dswrf\/instant\/surface\/dswrf\/.zattrs", + "dswrf\/instant\/surface\/dswrf\/0.0.0.0", + "dswrf\/instant\/surface\/dswrf\/0.4.0.0", + "dswrf\/instant\/surface\/dswrf\/0.8.0.0", + "dswrf\/instant\/surface\/dswrf\/1.0.0.0", + "dswrf\/instant\/surface\/dswrf\/1.4.0.0", + "dswrf\/instant\/surface\/dswrf\/1.8.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/u/instant/heightAboveGround/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/u/instant/heightAboveGround/u_chunks.json new file mode 100644 index 00000000..2b9c6628 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/u/instant/heightAboveGround/u_chunks.json @@ -0,0 +1,10 @@ +[ + "u\/instant\/heightAboveGround\/u\/.zarray", + "u\/instant\/heightAboveGround\/u\/.zattrs", + "u\/instant\/heightAboveGround\/u\/0.0.0.0", + "u\/instant\/heightAboveGround\/u\/0.4.0.0", + "u\/instant\/heightAboveGround\/u\/0.8.0.0", + "u\/instant\/heightAboveGround\/u\/1.0.0.0", + "u\/instant\/heightAboveGround\/u\/1.4.0.0", + "u\/instant\/heightAboveGround\/u\/1.8.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/u/instant/isobaricInhPa/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/u/instant/isobaricInhPa/u_chunks.json new file mode 100644 index 00000000..002067ce --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/run_time/u/instant/isobaricInhPa/u_chunks.json @@ -0,0 +1,46 @@ +[ + "u\/instant\/isobaricInhPa\/u\/.zarray", + "u\/instant\/isobaricInhPa\/u\/.zattrs", + "u\/instant\/isobaricInhPa\/u\/0.0.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.6.0.0", + "u\/instant\/isobaricInhPa\/u\/0.4.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.4.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.4.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.4.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.4.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.4.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.4.6.0.0", + "u\/instant\/isobaricInhPa\/u\/0.8.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.8.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.8.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.8.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.8.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.8.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.8.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.0.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.0.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.0.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.0.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.0.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.0.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.0.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.8.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.8.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.8.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.8.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.8.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.8.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.8.6.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/dswrf/instant/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/dswrf/instant/surface/dswrf_chunks.json new file mode 100644 index 00000000..f94ec7ed --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/dswrf/instant/surface/dswrf_chunks.json @@ -0,0 +1,10 @@ +[ + "dswrf\/instant\/surface\/dswrf\/.zarray", + "dswrf\/instant\/surface\/dswrf\/.zattrs", + "dswrf\/instant\/surface\/dswrf\/0.0.0.0", + "dswrf\/instant\/surface\/dswrf\/0.1.0.0", + "dswrf\/instant\/surface\/dswrf\/0.2.0.0", + "dswrf\/instant\/surface\/dswrf\/1.2.0.0", + "dswrf\/instant\/surface\/dswrf\/1.3.0.0", + "dswrf\/instant\/surface\/dswrf\/1.4.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/u/instant/heightAboveGround/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/u/instant/heightAboveGround/u_chunks.json new file mode 100644 index 00000000..5449a8d6 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/u/instant/heightAboveGround/u_chunks.json @@ -0,0 +1,10 @@ +[ + "u\/instant\/heightAboveGround\/u\/.zarray", + "u\/instant\/heightAboveGround\/u\/.zattrs", + "u\/instant\/heightAboveGround\/u\/0.0.0.0", + "u\/instant\/heightAboveGround\/u\/0.1.0.0", + "u\/instant\/heightAboveGround\/u\/0.2.0.0", + "u\/instant\/heightAboveGround\/u\/1.2.0.0", + "u\/instant\/heightAboveGround\/u\/1.3.0.0", + "u\/instant\/heightAboveGround\/u\/1.4.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/u/instant/isobaricInhPa/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/u/instant/isobaricInhPa/u_chunks.json new file mode 100644 index 00000000..66ab7ce6 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsfcf/reinflate/valid_time/u/instant/isobaricInhPa/u_chunks.json @@ -0,0 +1,46 @@ +[ + "u\/instant\/isobaricInhPa\/u\/.zarray", + "u\/instant\/isobaricInhPa\/u\/.zattrs", + "u\/instant\/isobaricInhPa\/u\/0.0.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.0.6.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.1.6.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.0.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.1.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.2.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.3.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.4.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.5.0.0", + "u\/instant\/isobaricInhPa\/u\/0.2.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.2.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.3.6.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.0.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.1.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.2.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.3.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.4.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.5.0.0", + "u\/instant\/isobaricInhPa\/u\/1.4.6.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/subset.json.gz b/tests/grib_idx_fixtures/hrrr.wrfsfcf/subset.json.gz new file mode 100644 index 00000000..0c117cc2 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsfcf/subset.json.gz differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/test_reinflate.parquet b/tests/grib_idx_fixtures/hrrr.wrfsfcf/test_reinflate.parquet new file mode 100644 index 00000000..66f0db45 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsfcf/test_reinflate.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsfcf/zarr_tree_store.json.gz b/tests/grib_idx_fixtures/hrrr.wrfsfcf/zarr_tree_store.json.gz new file mode 100644 index 00000000..4cce102a Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsfcf/zarr_tree_store.json.gz differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf.sample.grib2 b/tests/grib_idx_fixtures/hrrr.wrfsubhf.sample.grib2 new file mode 100644 index 00000000..f793abe8 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf.sample.grib2 differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx_grib_mapping.parquet b/tests/grib_idx_fixtures/hrrr.wrfsubhf/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx_grib_mapping.parquet new file mode 100644 index 00000000..e7d1532d Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf/20221014/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.idx_grib_mapping.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10.idx_grib_mapping.parquet b/tests/grib_idx_fixtures/hrrr.wrfsubhf/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10.idx_grib_mapping.parquet new file mode 100644 index 00000000..ae78b21c Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf/20221014/hrrr.t03z.wrfsubhf09.grib2.test-limit-10.idx_grib_mapping.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.kindex.parquet b/tests/grib_idx_fixtures/hrrr.wrfsubhf/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.kindex.parquet new file mode 100644 index 00000000..6b9767bd Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf/20231104/hrrr.t01z.wrfsubhf00.grib2.test-limit-10.kindex.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10.kindex.parquet b/tests/grib_idx_fixtures/hrrr.wrfsubhf/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10.kindex.parquet new file mode 100644 index 00000000..1e98b789 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf/20231104/hrrr.t01z.wrfsubhf09.grib2.test-limit-10.kindex.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/kerchunk_index.parquet b/tests/grib_idx_fixtures/hrrr.wrfsubhf/kerchunk_index.parquet new file mode 100644 index 00000000..8dc28098 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf/kerchunk_index.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/dswrf/avg/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/dswrf/avg/surface/dswrf_chunks.json new file mode 100644 index 00000000..aae0047e --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/dswrf/avg/surface/dswrf_chunks.json @@ -0,0 +1,9 @@ +[ + "dswrf\/avg\/surface\/dswrf\/.zarray", + "dswrf\/avg\/surface\/dswrf\/.zattrs", + "dswrf\/avg\/surface\/dswrf\/0.0.0", + "dswrf\/avg\/surface\/dswrf\/1.0.0", + "dswrf\/avg\/surface\/dswrf\/2.0.0", + "dswrf\/avg\/surface\/dswrf\/3.0.0", + "dswrf\/avg\/surface\/dswrf\/4.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/dswrf/instant/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/dswrf/instant/surface/dswrf_chunks.json new file mode 100644 index 00000000..b97f912d --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/dswrf/instant/surface/dswrf_chunks.json @@ -0,0 +1,9 @@ +[ + "dswrf\/instant\/surface\/dswrf\/.zarray", + "dswrf\/instant\/surface\/dswrf\/.zattrs", + "dswrf\/instant\/surface\/dswrf\/0.0.0", + "dswrf\/instant\/surface\/dswrf\/1.0.0", + "dswrf\/instant\/surface\/dswrf\/2.0.0", + "dswrf\/instant\/surface\/dswrf\/3.0.0", + "dswrf\/instant\/surface\/dswrf\/4.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/u/instant/heightAboveGround/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/u/instant/heightAboveGround/u_chunks.json new file mode 100644 index 00000000..d42aed22 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/best_available/u/instant/heightAboveGround/u_chunks.json @@ -0,0 +1,9 @@ +[ + "u\/instant\/heightAboveGround\/u\/.zarray", + "u\/instant\/heightAboveGround\/u\/.zattrs", + "u\/instant\/heightAboveGround\/u\/0.0.0", + "u\/instant\/heightAboveGround\/u\/1.0.0", + "u\/instant\/heightAboveGround\/u\/2.0.0", + "u\/instant\/heightAboveGround\/u\/3.0.0", + "u\/instant\/heightAboveGround\/u\/4.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/dswrf/avg/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/dswrf/avg/surface/dswrf_chunks.json new file mode 100644 index 00000000..3d548119 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/dswrf/avg/surface/dswrf_chunks.json @@ -0,0 +1,11 @@ +[ + "dswrf\/avg\/surface\/dswrf\/.zarray", + "dswrf\/avg\/surface\/dswrf\/.zattrs", + "dswrf\/avg\/surface\/dswrf\/0.0.0.0", + "dswrf\/avg\/surface\/dswrf\/0.1.0.0", + "dswrf\/avg\/surface\/dswrf\/0.2.0.0", + "dswrf\/avg\/surface\/dswrf\/0.3.0.0", + "dswrf\/avg\/surface\/dswrf\/1.1.0.0", + "dswrf\/avg\/surface\/dswrf\/1.2.0.0", + "dswrf\/avg\/surface\/dswrf\/1.3.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/dswrf/instant/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/dswrf/instant/surface/dswrf_chunks.json new file mode 100644 index 00000000..d86c00de --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/dswrf/instant/surface/dswrf_chunks.json @@ -0,0 +1,11 @@ +[ + "dswrf\/instant\/surface\/dswrf\/.zarray", + "dswrf\/instant\/surface\/dswrf\/.zattrs", + "dswrf\/instant\/surface\/dswrf\/0.0.0.0", + "dswrf\/instant\/surface\/dswrf\/0.1.0.0", + "dswrf\/instant\/surface\/dswrf\/0.2.0.0", + "dswrf\/instant\/surface\/dswrf\/0.3.0.0", + "dswrf\/instant\/surface\/dswrf\/1.1.0.0", + "dswrf\/instant\/surface\/dswrf\/1.2.0.0", + "dswrf\/instant\/surface\/dswrf\/1.3.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/u/instant/heightAboveGround/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/u/instant/heightAboveGround/u_chunks.json new file mode 100644 index 00000000..58acbd54 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/horizon/u/instant/heightAboveGround/u_chunks.json @@ -0,0 +1,11 @@ +[ + "u\/instant\/heightAboveGround\/u\/.zarray", + "u\/instant\/heightAboveGround\/u\/.zattrs", + "u\/instant\/heightAboveGround\/u\/0.0.0.0", + "u\/instant\/heightAboveGround\/u\/0.1.0.0", + "u\/instant\/heightAboveGround\/u\/0.2.0.0", + "u\/instant\/heightAboveGround\/u\/0.3.0.0", + "u\/instant\/heightAboveGround\/u\/1.1.0.0", + "u\/instant\/heightAboveGround\/u\/1.2.0.0", + "u\/instant\/heightAboveGround\/u\/1.3.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/dswrf/avg/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/dswrf/avg/surface/dswrf_chunks.json new file mode 100644 index 00000000..d9664362 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/dswrf/avg/surface/dswrf_chunks.json @@ -0,0 +1,22 @@ +[ + "dswrf\/avg\/surface\/dswrf\/.zarray", + "dswrf\/avg\/surface\/dswrf\/.zattrs", + "dswrf\/avg\/surface\/dswrf\/0.0.0.0", + "dswrf\/avg\/surface\/dswrf\/0.1.0.0", + "dswrf\/avg\/surface\/dswrf\/0.2.0.0", + "dswrf\/avg\/surface\/dswrf\/0.3.0.0", + "dswrf\/avg\/surface\/dswrf\/0.4.0.0", + "dswrf\/avg\/surface\/dswrf\/0.5.0.0", + "dswrf\/avg\/surface\/dswrf\/0.6.0.0", + "dswrf\/avg\/surface\/dswrf\/0.7.0.0", + "dswrf\/avg\/surface\/dswrf\/0.8.0.0", + "dswrf\/avg\/surface\/dswrf\/1.0.0.0", + "dswrf\/avg\/surface\/dswrf\/1.1.0.0", + "dswrf\/avg\/surface\/dswrf\/1.2.0.0", + "dswrf\/avg\/surface\/dswrf\/1.3.0.0", + "dswrf\/avg\/surface\/dswrf\/1.4.0.0", + "dswrf\/avg\/surface\/dswrf\/1.5.0.0", + "dswrf\/avg\/surface\/dswrf\/1.6.0.0", + "dswrf\/avg\/surface\/dswrf\/1.7.0.0", + "dswrf\/avg\/surface\/dswrf\/1.8.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/dswrf/instant/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/dswrf/instant/surface/dswrf_chunks.json new file mode 100644 index 00000000..d892ae29 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/dswrf/instant/surface/dswrf_chunks.json @@ -0,0 +1,22 @@ +[ + "dswrf\/instant\/surface\/dswrf\/.zarray", + "dswrf\/instant\/surface\/dswrf\/.zattrs", + "dswrf\/instant\/surface\/dswrf\/0.0.0.0", + "dswrf\/instant\/surface\/dswrf\/0.1.0.0", + "dswrf\/instant\/surface\/dswrf\/0.2.0.0", + "dswrf\/instant\/surface\/dswrf\/0.3.0.0", + "dswrf\/instant\/surface\/dswrf\/0.4.0.0", + "dswrf\/instant\/surface\/dswrf\/0.5.0.0", + "dswrf\/instant\/surface\/dswrf\/0.6.0.0", + "dswrf\/instant\/surface\/dswrf\/0.7.0.0", + "dswrf\/instant\/surface\/dswrf\/0.8.0.0", + "dswrf\/instant\/surface\/dswrf\/1.0.0.0", + "dswrf\/instant\/surface\/dswrf\/1.1.0.0", + "dswrf\/instant\/surface\/dswrf\/1.2.0.0", + "dswrf\/instant\/surface\/dswrf\/1.3.0.0", + "dswrf\/instant\/surface\/dswrf\/1.4.0.0", + "dswrf\/instant\/surface\/dswrf\/1.5.0.0", + "dswrf\/instant\/surface\/dswrf\/1.6.0.0", + "dswrf\/instant\/surface\/dswrf\/1.7.0.0", + "dswrf\/instant\/surface\/dswrf\/1.8.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/u/instant/heightAboveGround/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/u/instant/heightAboveGround/u_chunks.json new file mode 100644 index 00000000..c01d4c53 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/run_time/u/instant/heightAboveGround/u_chunks.json @@ -0,0 +1,22 @@ +[ + "u\/instant\/heightAboveGround\/u\/.zarray", + "u\/instant\/heightAboveGround\/u\/.zattrs", + "u\/instant\/heightAboveGround\/u\/0.0.0.0", + "u\/instant\/heightAboveGround\/u\/0.1.0.0", + "u\/instant\/heightAboveGround\/u\/0.2.0.0", + "u\/instant\/heightAboveGround\/u\/0.3.0.0", + "u\/instant\/heightAboveGround\/u\/0.4.0.0", + "u\/instant\/heightAboveGround\/u\/0.5.0.0", + "u\/instant\/heightAboveGround\/u\/0.6.0.0", + "u\/instant\/heightAboveGround\/u\/0.7.0.0", + "u\/instant\/heightAboveGround\/u\/0.8.0.0", + "u\/instant\/heightAboveGround\/u\/1.0.0.0", + "u\/instant\/heightAboveGround\/u\/1.1.0.0", + "u\/instant\/heightAboveGround\/u\/1.2.0.0", + "u\/instant\/heightAboveGround\/u\/1.3.0.0", + "u\/instant\/heightAboveGround\/u\/1.4.0.0", + "u\/instant\/heightAboveGround\/u\/1.5.0.0", + "u\/instant\/heightAboveGround\/u\/1.6.0.0", + "u\/instant\/heightAboveGround\/u\/1.7.0.0", + "u\/instant\/heightAboveGround\/u\/1.8.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/dswrf/avg/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/dswrf/avg/surface/dswrf_chunks.json new file mode 100644 index 00000000..59d16b16 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/dswrf/avg/surface/dswrf_chunks.json @@ -0,0 +1,12 @@ +[ + "dswrf\/avg\/surface\/dswrf\/.zarray", + "dswrf\/avg\/surface\/dswrf\/.zattrs", + "dswrf\/avg\/surface\/dswrf\/0.0.0.0", + "dswrf\/avg\/surface\/dswrf\/0.1.0.0", + "dswrf\/avg\/surface\/dswrf\/0.2.0.0", + "dswrf\/avg\/surface\/dswrf\/1.0.0.0", + "dswrf\/avg\/surface\/dswrf\/1.1.0.0", + "dswrf\/avg\/surface\/dswrf\/1.2.0.0", + "dswrf\/avg\/surface\/dswrf\/1.3.0.0", + "dswrf\/avg\/surface\/dswrf\/1.4.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/dswrf/instant/surface/dswrf_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/dswrf/instant/surface/dswrf_chunks.json new file mode 100644 index 00000000..dcf82307 --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/dswrf/instant/surface/dswrf_chunks.json @@ -0,0 +1,12 @@ +[ + "dswrf\/instant\/surface\/dswrf\/.zarray", + "dswrf\/instant\/surface\/dswrf\/.zattrs", + "dswrf\/instant\/surface\/dswrf\/0.0.0.0", + "dswrf\/instant\/surface\/dswrf\/0.1.0.0", + "dswrf\/instant\/surface\/dswrf\/0.2.0.0", + "dswrf\/instant\/surface\/dswrf\/1.0.0.0", + "dswrf\/instant\/surface\/dswrf\/1.1.0.0", + "dswrf\/instant\/surface\/dswrf\/1.2.0.0", + "dswrf\/instant\/surface\/dswrf\/1.3.0.0", + "dswrf\/instant\/surface\/dswrf\/1.4.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/u/instant/heightAboveGround/u_chunks.json b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/u/instant/heightAboveGround/u_chunks.json new file mode 100644 index 00000000..7e81ebba --- /dev/null +++ b/tests/grib_idx_fixtures/hrrr.wrfsubhf/reinflate/valid_time/u/instant/heightAboveGround/u_chunks.json @@ -0,0 +1,12 @@ +[ + "u\/instant\/heightAboveGround\/u\/.zarray", + "u\/instant\/heightAboveGround\/u\/.zattrs", + "u\/instant\/heightAboveGround\/u\/0.0.0.0", + "u\/instant\/heightAboveGround\/u\/0.1.0.0", + "u\/instant\/heightAboveGround\/u\/0.2.0.0", + "u\/instant\/heightAboveGround\/u\/1.0.0.0", + "u\/instant\/heightAboveGround\/u\/1.1.0.0", + "u\/instant\/heightAboveGround\/u\/1.2.0.0", + "u\/instant\/heightAboveGround\/u\/1.3.0.0", + "u\/instant\/heightAboveGround\/u\/1.4.0.0" +] diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/subset.json.gz b/tests/grib_idx_fixtures/hrrr.wrfsubhf/subset.json.gz new file mode 100644 index 00000000..11a70b81 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf/subset.json.gz differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/test_reinflate.parquet b/tests/grib_idx_fixtures/hrrr.wrfsubhf/test_reinflate.parquet new file mode 100644 index 00000000..6741c0b2 Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf/test_reinflate.parquet differ diff --git a/tests/grib_idx_fixtures/hrrr.wrfsubhf/zarr_tree_store.json.gz b/tests/grib_idx_fixtures/hrrr.wrfsubhf/zarr_tree_store.json.gz new file mode 100644 index 00000000..2c3237cc Binary files /dev/null and b/tests/grib_idx_fixtures/hrrr.wrfsubhf/zarr_tree_store.json.gz differ diff --git a/tests/test__grib_idx.py b/tests/test__grib_idx.py new file mode 100644 index 00000000..1e83d2f9 --- /dev/null +++ b/tests/test__grib_idx.py @@ -0,0 +1,660 @@ +""" +# Extract, Load and Build Kerchunk aggregations on the fly from hierarchical metadata and kerchunk indexes. + +MIT License Copyright (c) 2023 Camus Energy + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +""" + +import copy +import re +import unittest +import logging +import gzip +import os +import numpy as np +import pandas as pd +import xarray as xr +from kerchunk.grib2 import ( + scan_grib, + grib_tree, + correct_hrrr_subhf_step, + extract_datatree_chunk_index, + strip_datavar_chunks, + reinflate_grib_store, + AggregationType, + build_idx_grib_mapping, + parse_grib_idx, + map_from_index, + read_store, + write_store, +) +import fsspec +import zarr +import ujson +import tempfile +import typing +import io + +logger = logging.getLogger(__name__) + +THIS_DIR = os.path.dirname(os.path.abspath(__file__)) + + +class DataExtractorTests(unittest.TestCase): + def test_integration(self): + # Small test file... + uri = f"{THIS_DIR}/grib_idx_fixtures/hrrr.wrfsubhf.sample.grib2" + + scanned_msg_groups = scan_grib(uri) + corrected_msg_groups = [ + correct_hrrr_subhf_step(msg) for msg in scanned_msg_groups + ] + grib_tree_store = grib_tree(corrected_msg_groups) + fs = fsspec.filesystem("reference", fo=grib_tree_store) + zg = zarr.open_group(fs.get_mapper("")) + self.assertIsInstance(zg["refc/instant/atmosphere/refc"], zarr.Array) + self.assertIsInstance(zg["vbdsf/avg/surface/vbdsf"], zarr.Array) + self.assertEqual( + zg["vbdsf/avg/surface"].attrs["coordinates"], + "surface latitude longitude step time valid_time", + ) + self.assertEqual( + zg["refc/instant/atmosphere"].attrs["coordinates"], + "atmosphere latitude longitude step time valid_time", + ) + # Assert that the fill value is set correctly + self.assertIs(zg.refc.instant.atmosphere.step.fill_value, np.nan) + + np.testing.assert_array_equal( + zg.refc.instant.atmosphere.time[:], np.array([1665709200]) + ) + + # Read it with data tree and assert the same... + dt = xr.open_datatree( + fs.get_mapper(""), + engine="zarr", + consolidated=False, + ) + # Assert a few things... but if it loads we are mostly done. + np.testing.assert_array_equal( + dt.refc.instant.atmosphere.time.values[:], + np.array([np.datetime64("2022-10-14T01:00:00")]), + ) + self.assertDictEqual( + dt.refc.attrs, dict(name="Maximum/Composite radar reflectivity") + ) + + # Now try the extract and reinflate methods + self.assertEqual(len(grib_tree_store["refs"]), 55) + deflated_grib_tree = copy.deepcopy(grib_tree_store) + kind = extract_datatree_chunk_index(dt, deflated_grib_tree, grib=True) + strip_datavar_chunks(deflated_grib_tree) + self.assertEqual(len(deflated_grib_tree["refs"]), 45) + + axes = [ + pd.Index( + [ + pd.timedelta_range( + start="0 minutes", + end="60 minutes", + freq="15min", + closed="left", + name="001 hour", + ), + ], + name="step", + ), + pd.date_range( + "2022-10-14T00:00:00", + "2022-10-14T02:00:00", + freq="15min", + name="valid_time", + ), + ] + + zstore = reinflate_grib_store( + axes=axes, + aggregation_type=AggregationType.HORIZON, + chunk_index=kind, + zarr_ref_store=deflated_grib_tree, + ) + # Back to the same number of keys! + self.assertEqual(len(zstore["refs"]), 55) + + fs = fsspec.filesystem("reference", fo=zstore) + dt = xr.open_datatree( + fs.get_mapper(""), + engine="zarr", + consolidated=False, + ) + for node in dt.subtree: + if node.has_data: + with self.subTest(node_path=node.path): + np.testing.assert_array_equal( + node.time.values, node.valid_time.values - node.step.values + ) + + npath = node.path.lstrip("/") + + # Assert the values that should be nonnull based on where the chunk is in the time slice + expected_null = np.full((1, 9, 1059, 1799), True) + expected_null[0, 5, :, :] = False + for var in node.data_vars.values(): + vpath = f"{npath}/{var.name}" + with self.subTest(var_name=var.name): + key_set = sorted( + [ + key + for key in zstore["refs"].keys() + if key.startswith(vpath) + ] + ) + expected_keys = [ + f"{vpath}/.zarray", + f"{vpath}/.zattrs", + f"{vpath}/0.5.0.0", + ] + self.assertListEqual(key_set, expected_keys) + + np.testing.assert_array_equal( + np.isnan(var.values[:, :, :, :]), expected_null + ) + + def test_build_idx_grib_mapping(self): + """ + This test builds a mapping between idx and grib metadata from one runtime and applies it in another, asserting the + mapped index matches the direct index (fixture from the next test). + :return: + """ + grib_uri = os.path.join(THIS_DIR, "grib_idx_fixtures") + + # Define pairs of files with the same horizon but from different runtimes to validate idx mapping + datasets = { + "hrrr.wrfsubhf": [ + { + "20221014": "hrrr.t01z.wrfsubhf00.grib2.test-limit-10", + "20231104": "hrrr.t01z.wrfsubhf00.grib2.test-limit-10", + }, + { + "20221014": "hrrr.t03z.wrfsubhf09.grib2.test-limit-10", + "20231104": "hrrr.t01z.wrfsubhf09.grib2.test-limit-10", + }, + ], + "gfs.pgrb2.0p25": [ + { + "20221014": "gfs.t00z.pgrb2.0p25.f000.test-limit-10", + "20231104": "gfs.t00z.pgrb2.0p25.f000.test-limit-10", + }, + { + "20221014": "gfs.t06z.pgrb2.0p25.f021.test-limit-10", + "20231104": "gfs.t00z.pgrb2.0p25.f021.test-limit-10", + }, + ], + "hrrr.wrfsfcf": [ + { + "20221014": "hrrr.t01z.wrfsfcf00.grib2.test-limit-10", + "20231104": "hrrr.t01z.wrfsfcf00.grib2.test-limit-10", + }, + { + "20221014": "hrrr.t09z.wrfsfcf05.grib2.test-limit-10", + "20231104": "hrrr.t01z.wrfsfcf05.grib2.test-limit-10", + }, + ], + } + for sample_prefix, input_pairs in datasets.items(): + for fnames in input_pairs: + # First, build a mapping from the 2022 10 14 data + mapping_fname = fnames["20221014"] + basename = os.path.join(grib_uri, "20221014", mapping_fname) + with self.subTest(sample_prefix=sample_prefix): + mapping = build_idx_grib_mapping( + basename=basename, + mapper=correct_hrrr_subhf_step, + ) + + mapping = mapping.assign( + uri=lambda x: x.uri.str.replace(THIS_DIR, ""), + grib_uri=lambda x: x.uri.str.replace(THIS_DIR, ""), + idx_uri=lambda x: x.uri.str.replace(THIS_DIR, ""), + ) + + # # To update the test fixture + # write_path = os.path.join( + # THIS_DIR, + # "grib_idx_fixtures", + # sample_prefix, + # "20221014", + # f"{mapping_fname}.idx_grib_mapping.parquet", + # ) + # mapping.to_parquet(write_path) + + test_path = os.path.join( + THIS_DIR, + "grib_idx_fixtures", + sample_prefix, + "20221014", + f"{mapping_fname}.idx_grib_mapping.parquet", + ) + # Build the mapping from idx to cfgrib metadata and assert it matches the fixture + expected = pd.read_parquet(test_path, engine="fastparquet") + pd.testing.assert_frame_equal(mapping, expected) + + # parse the idx files for 20231104 and compare the mapped result to the direct indexed result + test_name = fnames["20231104"] + basename = os.path.join(grib_uri, "20231104", test_name) + + idxdf = parse_grib_idx( + basename=basename, + ) + + # Get the runtime hour from the filename as we would in prod + matcher = re.compile(r"\w*\.t(?P\d{2})z\..*") + matched = matcher.match(test_name) + if not matched: + raise ValueError(f"test name {test_name} hour not matched") + runtime_hour = matched.groupdict()["hour"] + + # hard code the runtime date for now and build the index using the + # 2022-10-14 mapping for 2023-11-04 idx file! + mapped_index = map_from_index( + pd.Timestamp(f"2023-11-04T{runtime_hour}"), mapping, idxdf + ) + + mapped_index = mapped_index.assign( + uri=lambda x: x.uri.str.replace(THIS_DIR, "") + ) + + # Read the expected fixture - created by test_kerchunk_indexing + kindex_test_path = os.path.join( + THIS_DIR, + "grib_idx_fixtures", + sample_prefix, + "20231104", + f"{test_name}.kindex.parquet", + ) + expected = pd.read_parquet(kindex_test_path, engine="fastparquet") + + expected = expected.set_index( + ["varname", "typeOfLevel", "stepType", "step", "level"] + ).sort_index() + mapped_index = mapped_index.set_index( + ["varname", "typeOfLevel", "stepType", "step", "level"] + ).sort_index() + + pd.testing.assert_index_equal(expected.index, mapped_index.index) + + pd.testing.assert_frame_equal( + expected[["time", "valid_time"]], + mapped_index[["time", "valid_time"]], + ) + + # The grib index can build inline values so only compare the offset, length, and uri where + # the inline value is not present + + expected_subset = expected.loc[ + expected.inline_value.isna(), ["offset", "length", "uri"] + ] + + mapped_index_subset = mapped_index.loc[ + expected.inline_value.isna(), ["offset", "length", "uri"] + ] + pd.testing.assert_frame_equal(expected_subset, mapped_index_subset) + + def test_kerchunk_indexing(self): + """ + This test builds the grib metadata index for a set of forecasts and asserts it has not changed from what is + recorded in the fixture files + :return: + """ + TEST_DATE = "20231104" + grib_uri = os.path.join(THIS_DIR, "grib_idx_fixtures", TEST_DATE) + + datasets = { + "hrrr.wrfsubhf": [ + "hrrr.t01z.wrfsubhf00.grib2.test-limit-10", + "hrrr.t01z.wrfsubhf09.grib2.test-limit-10", + ], + "gfs.pgrb2.0p25": [ + "gfs.t00z.pgrb2.0p25.f000.test-limit-10", + "gfs.t00z.pgrb2.0p25.f021.test-limit-10", + ], + "hrrr.wrfsfcf": [ + "hrrr.t01z.wrfsfcf00.grib2.test-limit-10", + "hrrr.t01z.wrfsfcf05.grib2.test-limit-10", + ], + } + for sample_prefix, fnames in datasets.items(): + for fname in fnames: + with self.subTest(sample_prefix=sample_prefix, fname=fname): + + basename = os.path.join(grib_uri, fname) + if "hrrr.wrfsubhf" == sample_prefix: + grib_tree_store = grib_tree( + [ + correct_hrrr_subhf_step(scan) + for scan in scan_grib(basename) + ] + ) + else: + grib_tree_store = grib_tree(scan_grib(basename)) + + dt = xr.open_datatree( + fsspec.filesystem("reference", fo=grib_tree_store).get_mapper( + "" + ), + engine="zarr", + consolidated=False, + ) + + kindex = extract_datatree_chunk_index( + dt, grib_tree_store, grib=True + ) + + # Strip the current working directory + kindex = kindex.assign( + uri=lambda x: x.uri.str.replace(THIS_DIR, "") + ) + + # # To update the test fixture + # write_path = os.path.join( + # THIS_DIR, + # "grib_idx_fixtures", + # sample_prefix, + # TEST_DATE, + # f"{fname}.kindex.parquet", + # ) + # kindex.to_parquet(write_path) + + test_path = os.path.join( + THIS_DIR, + "grib_idx_fixtures", + sample_prefix, + TEST_DATE, + f"{fname}.kindex.parquet", + ) + expected = pd.read_parquet(test_path, engine="fastparquet") + pd.testing.assert_frame_equal(kindex, expected) + + def test_index_extraction(self): + for sample_prefix in ["hrrr.wrfsubhf", "hrrr.wrfsfcf", "gfs.pgrb2.0p25"]: + with self.subTest(sample_prefix): + self._test_index_extraction(sample_prefix) + + def _read_sample_prefix(self, sample_prefix: str) -> tuple[xr.DataTree, dict]: + read_path = os.path.join( + THIS_DIR, "grib_idx_fixtures", sample_prefix, "subset.json.gz" + ) + with gzip.open(read_path, "rt") as f: + scanned_msgs = ujson.load(typing.cast(io.TextIOWrapper, f)) + + if "subhf" in sample_prefix: + scanned_msgs = [correct_hrrr_subhf_step(msg) for msg in scanned_msgs] + grib_tree_store = grib_tree(scanned_msgs) + + fs = fsspec.filesystem("reference", fo=grib_tree_store) + dt = xr.open_datatree( + fs.get_mapper(""), + engine="zarr", + consolidated=False, + ) + return dt, grib_tree_store + + def _test_index_extraction(self, sample_prefix: str): + dt, grib_tree_store = self._read_sample_prefix(sample_prefix) + + k_index = extract_datatree_chunk_index(dt, grib_tree_store, grib=True) + + # # To update the test fixture + # write_path = os.path.join( + # THIS_DIR, "grib_idx_fixtures", sample_prefix, "kerchunk_index.parquet" + # ) + # k_index.to_parquet(write_path) + + test_path = os.path.join( + THIS_DIR, "grib_idx_fixtures", sample_prefix, "kerchunk_index.parquet" + ) + expected = pd.read_parquet(test_path, engine="fastparquet") + pd.testing.assert_frame_equal(k_index, expected) + + def test_strip_datavar_chunks(self): + for sample_prefix, pre, post in [ + ("hrrr.wrfsubhf", 104, 65), + ("hrrr.wrfsfcf", 108, 63), + ("gfs.pgrb2.0p25", 917, 205), + ]: + with self.subTest(sample_prefix=sample_prefix, pre=pre, post=post): + self._test_strip_datavar_chunks(sample_prefix, pre, post) + + def _test_strip_datavar_chunks(self, sample_prefix: str, pre: int, post: int): + dt, grib_tree_store = self._read_sample_prefix(sample_prefix) + + self.assertEqual(len(grib_tree_store["refs"]), pre) + strip_datavar_chunks(grib_tree_store) + self.assertEqual(len(grib_tree_store["refs"]), post) + + # # To update the test grib_idx_fixtures + # write_path = os.path.join( + # TESTS_DIR, "grib_idx_fixtures", sample_prefix + # ) + # dynamic_zarr_store.write_store(write_path, grib_tree_store) + + test_path = os.path.join(THIS_DIR, "grib_idx_fixtures", sample_prefix) + expected = read_store(test_path) + self.assertDictEqual(grib_tree_store, expected) + + def test_read_write_store(self): + data = { + "version": 1, + "refs": { + ".zgroup": '{"zarr_format":2}', + ".zattrs": '{"GRIB_centre":"kwbc","GRIB_centreDescription":"US National Weather Service - NCEP ","GRIB_edition":2,"GRIB_subCentre":0,"coordinates":"heightAboveGround latitude longitude step time valid_time","institution":"US National Weather Service - NCEP "}', + "u/.zarray": '{"chunks":[1059,1799],"compressor":null,"dtype":"