Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Have the driver script process both python scripts and YAMLs + bufr2ioda.x #730

Merged

Conversation

CoryMartin-NOAA
Copy link
Contributor

This PR allows for all obtypes to be processed in two loops.

We still need to figure out a way to process these in parallel (somewhat).

@CoryMartin-NOAA
Copy link
Contributor Author

Coding norms are failing, I will fix this after my meeting(s)

Copy link
Contributor

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test proposed changes in JEDI gdas-validation. 2021080100 gdasprepatmiodaobs aborted with the following traceback

2023-11-15 18:38:52,983 - INFO     - run_bufr2ioda.py: Executing /work2/noaa/da/rtreadon/gdas-validation/global-workflow/sorc/gdas.cd/build/bin/bufr2ioda.x /work2/noaa/da/rtreadon/gdas-validation/comrot/gdas_eval_satwind_JEDI/gdas.20210801/00/obs/atms_2021080100.yaml
PRE-MAIN-INFO BufrParser: Parsing file /work/noaa/rstprod/dump/gdas.20210801/00/atmos/gdas.t00z.atms.tm00.bufr_d
PRE-MAIN-INFO Executing Queries
PRE-MAIN-INFO Building Bufr Data
PRE-MAIN-INFO Exporting Data
 ATMS_Spatial_Average: chechking bt_inout (original) ...
 minval/maxval bt_inout (original) =    133.0100       310.3900
 Unable to open atms_beamwidth.txt
PRE-MAIN-ERROR Exception: Bad parameter: Missing required parameters: sensor. Check your configuration.
terminate called after throwing an instance of 'eckit::BadParameter'
  what():  Bad parameter: Missing required parameters: sensor. Check your configuration.
Traceback (most recent call last):
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/run_bufr2ioda.py", line 94, in <module>
    bufr2ioda(args.current_cycle, args.RUN, args.DMPDIR, args.config_template_dir, args.COM_OBS)
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/python/wxflow/logger.py", line 266, in wrapper
    retval = func(*args, **kwargs)
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/run_bufr2ioda.py", line 79, in bufr2ioda
    cmd()
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/python/wxflow/executable.py", line 230, in __call__
    raise ProcessError(f"Command exited with status {proc.returncode}:", long_msg)
wxflow.executable.ProcessError: Command exited with status -6:
'/work2/noaa/da/rtreadon/gdas-validation/global-workflow/sorc/gdas.cd/build/bin/bufr2ioda.x' '/work2/noaa/da/rtreadon/gdas-validation/comrot/gdas_eval_satwind_JEDI/gdas.20210801/00/obs/atms_2021080100.yaml'

Not sure if this is due to my set up or an issue with the proposed changes. Investigating.

@CoryMartin-NOAA
Copy link
Contributor Author

@RussTreadon-NOAA I get the same error now in testing, let me investigate

@RussTreadon-NOAA
Copy link
Contributor

atms_beamwidth.txt1 is referenced in

iodaconv/src/bufr/BufrParser/Exports/Variables/Transforms/atms/atms_spatial_average_mod.f90:    open(lninfile,file='atms_beamwidth.txt',form='formatted',status='old', &
iodaconv/src/bufr/BufrParser/Exports/Variables/Transforms/atms/atms_spatial_average_mod.f90:       write(*,*) 'Unable to open atms_beamwidth.txt'
iodaconv/src/bufr/BufrParser/Exports/Variables/Transforms/atms/atms_spatial_average_mod.f90:       write(*,*) 'ATMS_Spatial_Averaging: sat id not matched in atms_beamwidth.dat'

We have atms_beamwidth.txt in GSI fix. Would copying it to the prepatmiodaobs run directory be sufficient?

@CoryMartin-NOAA
Copy link
Contributor Author

@RussTreadon-NOAA yeah I think so, now I just need to figure out how best to copy it to the runtime directory.

@RussTreadon-NOAA
Copy link
Contributor

Add the following to jobs/JGLOBAL_ATM_PREP_IODA_OBS

##TEST
cp ${HOMEgfs}/fix/gsi/atms_beamwidth.txt $DATA/
##TEST

before executing run_bufr2ioda.py. Rewind and reboot gdasprepatmiodaobs.

@RussTreadon-NOAA
Copy link
Contributor

Copying atm_beamwidth.txt to $DATA helped, but prepatmiodaobs still bombed.

2023-11-15 19:05:43,229 - INFO     - run_bufr2ioda.py: Executing /work2/noaa/da/rtreadon/gdas-validation/global-workflow/sorc/gdas.cd/build/bin/bufr2ioda.x /work2/noaa/da/rtreadon/gdas-validation/comrot/gdas_eval_satwind_JEDI/gdas.20210801/00/obs/atms_2021080100.yaml
PRE-MAIN-INFO BufrParser: Parsing file /work/noaa/rstprod/dump/gdas.20210801/00/atmos/gdas.t00z.atms.tm00.bufr_d
PRE-MAIN-INFO Executing Queries
PRE-MAIN-INFO Building Bufr Data
PRE-MAIN-INFO Exporting Data
 ATMS_Spatial_Average: chechking bt_inout (original) ...
 minval/maxval bt_inout (original) =    133.0100       310.3900
 ATMS_Spatial_Average: minval/maxval scanline =            1        8100
 ATMS_Spatial_Average: chechking bt_inout (remapped) ...
 minval/maxval bt_inout (remapped) =    127.9957      9.9999998E+10
PRE-MAIN-ERROR Exception: Bad parameter: Missing required parameters: sensor. Check your configuration.
terminate called after throwing an instance of 'eckit::BadParameter'
  what():  Bad parameter: Missing required parameters: sensor. Check your configuration.
Traceback (most recent call last):
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/run_bufr2ioda.py", line 94, in <module>
    bufr2ioda(args.current_cycle, args.RUN, args.DMPDIR, args.config_template_dir, args.COM_OBS)
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/python/wxflow/logger.py", line 266, in wrapper
    retval = func(*args, **kwargs)
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/run_bufr2ioda.py", line 79, in bufr2ioda
    cmd()
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/python/wxflow/executable.py", line 230, in __call__
    raise ProcessError(f"Command exited with status {proc.returncode}:", long_msg)
wxflow.executable.ProcessError: Command exited with status -6:
'/work2/noaa/da/rtreadon/gdas-validation/global-workflow/sorc/gdas.cd/build/bin/bufr2ioda.x' '/work2/noaa/da/rtreadon/gdas-validation/comrot/gdas_eval_satwind_JEDI/gdas.20210801/00/obs/atms_2021080100.yaml'

Required parameter sensor missing.

Who developed the atms converter? How did they test it?

FYI, we need to increase the wall time for prepatmiodaobs. 10 minutes is no longer sufficient. Later we can refactor prepatmiodaobs to concurrently run multiple converters via CFP

@CoryMartin-NOAA
Copy link
Contributor Author

@emilyhcliu is going to look into it

@CoryMartin-NOAA
Copy link
Contributor Author

I think I know the issue, I'm testing now, (it's a one liner)

@emilyhcliu
Copy link
Collaborator

Copying atm_beamwidth.txt to $DATA helped, but prepatmiodaobs still bombed.

2023-11-15 19:05:43,229 - INFO     - run_bufr2ioda.py: Executing /work2/noaa/da/rtreadon/gdas-validation/global-workflow/sorc/gdas.cd/build/bin/bufr2ioda.x /work2/noaa/da/rtreadon/gdas-validation/comrot/gdas_eval_satwind_JEDI/gdas.20210801/00/obs/atms_2021080100.yaml
PRE-MAIN-INFO BufrParser: Parsing file /work/noaa/rstprod/dump/gdas.20210801/00/atmos/gdas.t00z.atms.tm00.bufr_d
PRE-MAIN-INFO Executing Queries
PRE-MAIN-INFO Building Bufr Data
PRE-MAIN-INFO Exporting Data
 ATMS_Spatial_Average: chechking bt_inout (original) ...
 minval/maxval bt_inout (original) =    133.0100       310.3900
 ATMS_Spatial_Average: minval/maxval scanline =            1        8100
 ATMS_Spatial_Average: chechking bt_inout (remapped) ...
 minval/maxval bt_inout (remapped) =    127.9957      9.9999998E+10
PRE-MAIN-ERROR Exception: Bad parameter: Missing required parameters: sensor. Check your configuration.
terminate called after throwing an instance of 'eckit::BadParameter'
  what():  Bad parameter: Missing required parameters: sensor. Check your configuration.
Traceback (most recent call last):
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/run_bufr2ioda.py", line 94, in <module>
    bufr2ioda(args.current_cycle, args.RUN, args.DMPDIR, args.config_template_dir, args.COM_OBS)
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/python/wxflow/logger.py", line 266, in wrapper
    retval = func(*args, **kwargs)
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/run_bufr2ioda.py", line 79, in bufr2ioda
    cmd()
  File "/work2/noaa/da/rtreadon/gdas-validation/global-workflow/ush/python/wxflow/executable.py", line 230, in __call__
    raise ProcessError(f"Command exited with status {proc.returncode}:", long_msg)
wxflow.executable.ProcessError: Command exited with status -6:
'/work2/noaa/da/rtreadon/gdas-validation/global-workflow/sorc/gdas.cd/build/bin/bufr2ioda.x' '/work2/noaa/da/rtreadon/gdas-validation/comrot/gdas_eval_satwind_JEDI/gdas.20210801/00/obs/atms_2021080100.yaml'

Required parameter sensor missing.

Who developed the atms converter? How did they test it?

FYI, we need to increase the wall time for prepatmiodaobs. 10 minutes is no longer sufficient. Later we can refactor prepatmiodaobs to concurrently run multiple converters via CFP

Yes, @RussTreadon-NOAA I will take over and test ATMS with the changes in this PR.
We can merge this PR first, and I will following up with another one after the test to add the fix.

@emilyhcliu
Copy link
Collaborator

I think the atms yaml for bufr2ioda is missing the sensor in the following section:

          sensorScanAngle:
            sensorScanAngle:
              fieldOfViewNumber: "*/FOVN"
              scanStart: -52.725
              scanStep: 1.110
              sensor: atms

@CoryMartin-NOAA
Copy link
Contributor Author

@emilyhcliu agreed, now I'm getting a splits issue, which is related to my script, so I will still need to do a bit more debugging. Standby.

@CoryMartin-NOAA
Copy link
Contributor Author

The latest commit works:

/work2/noaa/da/cmartin/gdas-validation/comrot/gdas_eval_satwind_JEDI/gdas.20210801/00/obs/gdas.t00z.atms.n20.tm00.nc
/work2/noaa/da/cmartin/gdas-validation/comrot/gdas_eval_satwind_JEDI/gdas.20210801/00/obs/gdas.t00z.atms.npp.tm00.nc

But @RussTreadon-NOAA is right, 10 mins is no longer sufficient. We need to parallelize this. I will look into that next.

@emilyhcliu
Copy link
Collaborator

emilyhcliu commented Nov 15, 2023

@emilyhcliu agreed, now I'm getting a splits issue, which is related to my script, so I will still need to do a bit more debugging. Standby.

Here is the updated ATMS YAML for bufr2ioda:
/work/noaa/da/eliu/JEDI-iodaconv/run_atms/bufr_ncep_atms_remap.yaml

I tested it using a stand-alone IODA-bundle. It worked.

You can grab this one and add it to the GDASApp. Please feel free to rename the yaml.

Copy link
Contributor

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fold feature/gdas-validation-driver at 5a8a535 into working copy of gdas-validation. Run 2021080100 gdasprepatmiodaobs. Job ran to completion with rc=0.

Approve.

@CoryMartin-NOAA CoryMartin-NOAA merged commit 5c305aa into feature/gdas-validation Nov 15, 2023
5 checks passed
@CoryMartin-NOAA CoryMartin-NOAA deleted the feature/gdas-validation-driver branch November 15, 2023 20:08
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