NCAR / NCAR/DART

bug: GOES converter does not handle multiple input files

Open
#579 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

obs_converters pmp
Dominant language
Fortran
Stars
263
Forks
182
Avg merge
11d 12h
Merged PRs (30d)
7

Description

Describe the bug

I don't have any GOES test files, but based on a user question i looked at the code. this section in observations/obs_converters/GOES/convert_goes_API_L1b.f90 concerned me:

! for each input file
do ifile=1, filecount
! read from netCDF file into a derived type that holds all the information
call goes_load_ABI_map(l1_files(ifile), map)

! convert derived type information to DART sequence
call make_obs_sequence(seq, map, lon1, lon2, lat1, lat2, &
x_thin, y_thin, goes_num, reject_dqf_1, obs_err, &
vloc_pres_hPa)

! write the sequence to a disk file
call write_obs_seq(seq, outputfile)

if (verbose) call print_obs_seq_summary(seq,l1_files(ifile))

! release the sequence memory
call destroy_obs_sequence(seq)
enddo

make_obs_sequence() initializes a new sequence each time through the loop and the sequence is destroyed after the write. there is only a single outputfile string, but the input can be a list. this appears that it will overwrite the same output filename if you specify more than one input file, and at the end you'll have a sequence with only the obs from the last GOES file in the list.

Version of DART

current version

Have you modified the DART code?

no

What I expect

almost all obs converters that take multiple input filenames concatenate them into a single output file that contains obs from all the input files. this one should make a new sequence for the first file in the list; for subsequent files it should concatenate them onto that same sequence; then destroy the sequence outside of the filecount loop.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in observations/obs_converters/GOES/convert_goes_API_L1b.f90 and trace the filecount loop, sequence initialization, output writing, and cleanup. Verify the converter's behavior with multiple input files if test data is available. Done means one output sequence contains observations from every listed GOES file instead of being overwritten on each iteration.

Written by the indexing model from the issue text.

Assessment

Tech stack
fortran
Domain
data
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.