Skip to content

Conversation

@LinlinCui-NOAA
Copy link
Collaborator

This PR updated grib2writer.py to delete resetting attrs typeOfEnsembleForecast and typeOfData for AIGEFS:

            if "c00" in self.case_name:
                msg.typeOfEnsembleForecast = 1
                msg.typeOfData = 3
            else:
                msg.typeOfEnsembleForecast = 3
                msg.typeOfData = 4

These attributes are updated in the tables_aigefs.json for all members:

"typeOfData": 4,
"typeOfEnsembleForecast": 6,

And numberOfEnsembleForecasts has been changed from 30 to 31:
"numberOfEnsembleForecasts": 31,

@RussellManser-NCO Please get the updated json file at:
/lfs/h2/emc/nems/noscrub/linlin.cui/Tests/eagle_ensemble/model_weights/tables/tables_aigefs.json

And grib2io package needs to be update to v2.6.0 to incorporate these changes.

@junwang-noaa
Copy link

junwang-noaa commented Nov 10, 2025

@LinlinCui-NOAA Thanks for making the change. I saw all the fields are listed with ""perturbationNumber": 0" in the JSON file, will the "perturbationNumber" change to (1-30) for other members 1-30?

@LinlinCui-NOAA
Copy link
Collaborator Author

@LinlinCui-NOAA Thanks for making the change. I saw all the fields are listed with ""perturbationNumber": 0" in the JSON file, will the "perturbationNumber" change to (1-30) for other members 1-30?

@junwang-noaa Yes, this is updated in the grib2writer.py:

if self.case_name.startswith("aige"):
    number = int(self.case_name[-2:])
    msg.perturbationNumber = number

@RussellManser-NCO
Copy link

Thanks @LinlinCui-NOAA. I will build the venv with grib2io v2.6.0 today and test your changes with tables_aigefs.json. I will follow up with PR in NOAA-EMC/aigefs to update grib2io in sorc/requirements.txt.j2.

@RussellManser-NCO
Copy link

I tested forecast runs of aigefs mem000 and mem001 and encountered the same error for both. Please see the output file on Cactus at

/lfs/h1/ops/test/output/20251110/aigefs_forecast_mem000_12.o78457098

This appears to be related to NOAA-MDL/grib2io#214. Perhaps da.squeeze().values will fix it?

@LinlinCui-NOAA
Copy link
Collaborator Author

@RussellManser-NCO Thanks for testing. However, I cannot repeat the same issue on Ursa with grib2io v2.6.0. I'll test it on WCOSS2 once Rahul updated grib2io to 2.6.0.

@RussellManser-NCO
Copy link

Hi @LinlinCui-NOAA, I pulled your latest changes and I am running them in test space. So far the model has progressed past the previous failure point. I will provide an update after I have run a full cycle.

@RussellManser-NCO
Copy link

A full cycle for 20251112/12 completed successfully. However, the grib2 messages look like they have some issues. The pert number is now correctly assigned, but the ENS message seems to be missing.

For example, here is the output of wgrib2 on member 0 in test:

russell.manser@dlogin06:~> wgrib2 /lfs/h1/ops/test/com/aigefs/v1.0/aigefs.20251112/12/mem000/model/atmos/grib2/aigefs.t12z.sfc.f000.grib2
1:0:d=2025111212:UGRD:10 m above ground:anl:ENS=? table4.6=6 pert=0
2:872695:d=2025111212:VGRD:10 m above ground:anl:ENS=? table4.6=6 pert=0
3:1699304:d=2025111212:TMP:2 m above ground:anl:ENS=? table4.6=6 pert=0
4:2155084:d=2025111212:PRMSL:mean sea level:anl:ENS=? table4.6=6 pert=0

Compared to member 0 in para:

russell.manser@dlogin06:~> wgrib2 /lfs/h1/ops/para/com/aigefs/v1.0/aigefs.20251112/12/mem000/model/atmos/grib2/aigefs.t12z.sfc.f000.grib2
1:0:d=2025111212:UGRD:10 m above ground:anl:ENS=low-res ctl
2:872695:d=2025111212:VGRD:10 m above ground:anl:ENS=low-res ctl
3:1699304:d=2025111212:TMP:2 m above ground:anl:ENS=low-res ctl
4:2155084:d=2025111212:PRMSL:mean sea level:anl:ENS=low-res ctl

This issue is also present in the remainder of ensemble members.

I have copied over hours 0 and 6 for members 0 and 1 to Cactus at

/lfs/h1/ops/test/com/aigefs/v1.0/aigefs.20251112/12/

and corresponding forecast output files at

/lfs/h1/ops/test/output/20251112/aigefs_forecast*

@junwang-noaa
Copy link

@RussellManser-NCO We need a new version of wgrib2 (3.8.0) to decode the grib2 files. Hang has that installed on acorn. I will check it with your data and let Hang know. After that Hang will submit a request form to install the new wgrib2 on cactus.

@junwang-noaa
Copy link

@RussellManser-NCO wgrib2 3.8.0 is tested on Acorn. EMC will submit the wcoss2 installation form for it to be installed on cactus/dogwood.

@RussellManser-NCO
Copy link

Thanks @junwang-noaa, I will keep an eye out for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants