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

Develop a class that supports reading both FCST and OBS from a IODA file to use with the new Pair-Stat tool #3007

Closed
22 tasks
DanielAdriaansen opened this issue Nov 4, 2024 · 1 comment · Fixed by #3057
Assignees
Labels
MET: Library Code priority: high High Priority reporting: NRL METplus Naval Research Laboratory METplus Project requestor: Navy/NRL Naval Research Laboratory type: new feature Make it do something new
Milestone

Comments

@DanielAdriaansen
Copy link
Contributor

Describe the New Feature

In #3006 a new tool (Pair-Stat) is proposed to allow statistical verification of "already paired data". One example of this kind of data that should be supported by Pair-Stat is the IODA file format. IODA files contain an observation and a forecast value pair at various locations. This issue is to create a new class that reads IODA forecast and observation pairs and subsets them into existing pair data point classes so that a vector of pair data point objects can be derived to facilitate statistical scoring.

IODA files have many groups of objects, and it will be important to define the mapping of how a user can configure Pair-Stat to match the groups of objects to the pairs they want.

Acceptance Testing

List input data types and sources.
Describe tests required for new functionality.

Time Estimate

Estimate the amount of work required here.
Issues should represent approximately 1 to 3 days of work.

Sub-Issues

Consider breaking the new feature down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

This work must be completed by 12/30/2024

Funding Source

NRL METplus 7730022

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as a MET-X.Y.Z version, Consider for Next Release, or Backlog of Development Ideas
  • For a MET-X.Y.Z version, select the MET-X.Y.Z Development project

Define Related Issue(s)

Consider the impact to the other METplus components.

New Feature Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the next official version
    Select: MET-X.Y.Z Development project for development toward the next official release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@DanielAdriaansen DanielAdriaansen added type: new feature Make it do something new requestor: Navy/NRL Naval Research Laboratory alert: NEED MORE DEFINITION Not yet actionable, additional definition required reporting: NRL METplus Naval Research Laboratory METplus Project labels Nov 4, 2024
@DanielAdriaansen DanielAdriaansen added this to the MET-12.1.0 milestone Nov 4, 2024
@JohnHalleyGotway JohnHalleyGotway removed their assignment Nov 14, 2024
@JohnHalleyGotway JohnHalleyGotway added priority: high High Priority MET: Library Code and removed alert: NEED MORE DEFINITION Not yet actionable, additional definition required labels Dec 12, 2024
hsoh-u pushed a commit that referenced this issue Dec 17, 2024
hsoh-u pushed a commit that referenced this issue Dec 17, 2024
hsoh-u pushed a commit that referenced this issue Dec 17, 2024
hsoh-u pushed a commit that referenced this issue Dec 17, 2024
hsoh-u pushed a commit that referenced this issue Dec 21, 2024
hsoh-u pushed a commit that referenced this issue Dec 21, 2024
hsoh-u pushed a commit that referenced this issue Dec 21, 2024
hsoh-u pushed a commit that referenced this issue Dec 21, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 23, 2024
hsoh-u pushed a commit that referenced this issue Dec 26, 2024
hsoh-u pushed a commit that referenced this issue Jan 8, 2025
hsoh-u pushed a commit that referenced this issue Jan 14, 2025
@hsoh-u hsoh-u linked a pull request Jan 14, 2025 that will close this issue
17 tasks
JohnHalleyGotway added a commit that referenced this issue Jan 15, 2025
…tat-Analysis does. Committing the current state of this branch prior to merging in changes from the #3007 feature branch and completing development for the beta1 cycle.
JohnHalleyGotway added a commit that referenced this issue Jan 23, 2025
* Per #3006, add new pair_stat tool as a full copy of the point_stat tool with all instances of point_stat renamed as pair_stat.

* Per #3006, add pair_stat to the list of things for which no 'make test' command is run.

* Per #3006, saving work in progress prior to seneca reboot

* Per #3006, revert back to using FileType instead of GrdFileType. That change was not meaningful or warranted.

* Per #3006, revert back to using FileType instead of GrdFileType. That change was not meaningful or warranted.

* Per #3006, committing changes since the code is compiling. Added IODADataConfig_default file to store default settings for reading IODA data.

* Per #3006, starting to tweak config options. Saving progress while it's successfully compiling

* Per #3006, add fcst.pairs and obs.pairs config entries.

* #3007 Added vx_ioda

* #3007 Added vx_ioda

* #3007 Added vx_ioda

* #3007 Derived from IODADataConfInfo

* #3007 Reduced the code smells (SonarQube findings)

* #3007 Added station_value_base_t and point_pair_t

* Initial release

* #3007 Changed ack the location of nc_point_obs.set_nc_out_data

* Changed station_value_base_t::clear() to station_value_base_t::clear_base()

* Changed bAPI names

* #3007 Reduced code smells

* #3007 CLeanup

* #3007 Cahnged API for IODADataConfInfo

* #3007 Renamed ioda_file to ioda_reader

* #3007 Corrected comment

* #3007 Added -lvx_statistics again

* #3007 Added get_nc_data(NcVar *, unixtime)

* #3007 Cleanup

* #3007 Added add_to_unixtime((unixtime)

* #3007 Reduced the complexiity of read_time. Added read_time_as_number

* #3007 Added read_time_as_number

* #3007 Added add_to_unixtime(unixtime)

* #3007 Cleanup

* #3007 Set bad_data_int to qc_buf

* #3007 Cleanup

* Per #3006, define new GrdFileType::FileType_Pairs enumerated value to be used in the pair_stat tool.

* Per #3006, update pair_stat to use the newly added GrdFileType::FileType_Pairs enumerated value.

* #3007 Temporarily removed pair_stat

* Per #3006, rerun bootstrap on seneca to incorporate the compilation of the vx_ioda library.

* Per #3006, make docs build without warning

* Per #3006, saving compiling state

* Per #3006, use ConcatString instead of std::string for consistency.

* Per #3006, work in progress

* Unrelated to #3006, but fix typo in log message.

* Per #3006, default_column_union was defined in 2 spots. Renaming one of them to avoid compilation conflict.

* Per #3006, move StatHdrInfo out of aggr_stat_line.h/.cc and into vx_stat_out/stat_hdr_info.h/.cc. This make it available to both Stat-Analysis and the Pair-Stat tool to track the unique STAT headers elements read.

* Per #3006, remove the unused land/topo/msg_type type config options from the pair_stat tool's configuration file and code that parses it. If needed, we can add it back in the future.

* Per #3006, update VarInfoPairs::set_dict() to also call VarInfo::set_magic().

* Per #3006, since python_line.h lives in src/basic/vx_util, the vx_util library now also depends on the

* Per #3006, saving off version that compiles before trying changes that may not.

* #3007 Deleted commented out cpde

* Changed data typo (float to double)

* #3007 Resio;lved SonarQube finding

* Per #3006, added logic to track ck unique header input columns like Stat-Analysis does. Committing the current state of this branch prior to merging in changes from the #3007 feature branch and completing development for the beta1 cycle.

* Per #3006, fix indexing for vx_opt

* Per #3006, error out for -format ioda and -format python

* Per #3006, make -format ioda or -format python error out, but add unit tests demonstrating those errors. Also note this in the user's guide.

* Per #3006, replace -outdir with -out and remove output_prefix config option.

* Per #3006, remove output_prefix from Pair-Stat config files.

* Per #3006, update unit_pair_stat.xml to use the -out option.

* Per #3006, working version. However, the filtering by grid is not working all that well right now because it's based on G004.

* Per #3006, expand the Pair-Stat example.

* Per #3006, switch from using global 0.5 degree reference grid to 0.1 degree. This still isn't good enough though. Instead, we need to get rid of the reference grid altogether and keep track of the grid information separately for each mask.

* Per #3006, fix for loop typo in 3 spots

* Per #3006, remove one line from bad merge

* Per #3006, SonarQube updates.

* Per #3006, more SonarQube fixes

* Per #3006, remove desctrutor as recommended by SonarQube

---------

Co-authored-by: Howard Soh <[email protected]>
Co-authored-by: MET Tools Test Account <[email protected]>
@JohnHalleyGotway JohnHalleyGotway linked a pull request Jan 23, 2025 that will close this issue
17 tasks
@github-project-automation github-project-automation bot moved this to 🩺 Needs Triage in METplus-6.1.0 Development Jan 28, 2025
@JohnHalleyGotway JohnHalleyGotway moved this from 🩺 Needs Triage to 🏁 Done in METplus-6.1.0 Development Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
MET: Library Code priority: high High Priority reporting: NRL METplus Naval Research Laboratory METplus Project requestor: Navy/NRL Naval Research Laboratory type: new feature Make it do something new
Projects
Status: 🏁 Done
Development

Successfully merging a pull request may close this issue.

4 participants