Skip to content

Conversation

@BenjaminRuston
Copy link
Collaborator

@BenjaminRuston BenjaminRuston commented Apr 24, 2025

Description

The data from COWVR as part of the NASA STPH8 mission has an ocean surface wind product

DOI: 10.5067/COWVR-STPH8-EDR100

from NASA earthdata link early 2025:
https://cmr.earthdata.nasa.gov/virtual-directory/collections/C3237678855-POCLOUD

let's move forward as ingest suite can proceed

a unit test is still required!

To test this converter with Skylab ingest suite please use these dependent branches:
https://github.com/JCSDA-internal/skylab/pull/721
https://github.com/JCSDA-internal/ewok/pull/1136

Issue(s) addressed

Resolves #1646

Dependencies

uses the python bindings to IODA

Impact

provide a converter for NASA data files to IODA

Checklist

  • I have performed a self-review of my own code
  • I have run the unit tests before creating the PR

@BenjaminRuston BenjaminRuston self-assigned this Apr 24, 2025
@BenjaminRuston BenjaminRuston added OBS OBS processing, UFO INGEST OBS ingest labels Apr 24, 2025
@fcvdb
Copy link
Collaborator

fcvdb commented Jul 18, 2025

The test passed. Shall the ObsValue/windNorthward and ObsValue/windEastward be set to missing instead of 0?

Copy link
Contributor

@haydenlj haydenlj left a comment

Choose a reason for hiding this comment

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

Thanks @BenjaminRuston !

Copy link
Contributor

@fabiolrdiniz fabiolrdiniz left a comment

Choose a reason for hiding this comment

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

Thanks, @BenjaminRuston!

# use approximate offset of 725846427s between 01Jan1970 and 01Jan1993
# missing value assumed minimum (e.g. -9999.0)
time_offset = obs_time_tai93[:].flatten()
missing_value = np.min(time_offset)
Copy link
Contributor

Choose a reason for hiding this comment

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

A unit test would be helpful, especially in understanding the use of missing_value = np.min(.). Isn't the missing value encoded in the attributes of the file?

# standard angle conventions (0 degrees at East, increasing counter-clockwise)

# use minimum as missing value
missing_value = np.min(windSpeed)
Copy link
Contributor

Choose a reason for hiding this comment

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

Same here...

windNorthwardError = np.full_like(windSpeed, missing_value, dtype=np.float64)

# Convert valid wind directions to radians (meteorological to standard)
rad = np.deg2rad(windDirection[valid_mask])
Copy link
Contributor

Choose a reason for hiding this comment

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

I hope the obs file will indicate the convention being used for the direction (0 degrees = North or East) and "wind blowing from".

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

Labels

INGEST OBS ingest OBS OBS processing, UFO

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add OSW from COWVR ingest

6 participants