ecmwf / earthkit-data

A format-agnostic Python interface for geospatial data
Apache License 2.0
47 stars 9 forks source link

Add support for anemoi-datasets #383

Closed sandorkertesz closed 1 month ago

sandorkertesz commented 1 month ago

This PR adds support for anemoi-datasets.

Major changes

  1. New properties/methods added to Field:

    • mars_grid for a latlon grid returns [dx,dy] otherwise metadata("gridName")
    • mars_area returns [north, west, south, east]
    • resolution

      if grid_type in ("reduced_gg", "reduced_rotated_gg"):
          return self.metadata.get("gridName")
      
      if grid_type == "regular_ll":
          x = self.metadata.get("DxInDegrees")
          y = self.metadata.get("DyInDegrees")
          assert x == y, (x, y)
          return x
      
      if grid_type == "lambert":
          x = self.metadata.get("DxInMetres")
          y = self.metadata.get("DyInMetres")
          assert x == y, (x, y)
          return str(x / 1000).replace(".", "p") + "km"
    • grid_points() returns (lats, lons)
    • grid_points_unrotated()
    • rotation
      return (
          self.metadata.get("latitudeOfSouthernPoleInDegrees"),
          self.metadata.get("longitudeOfSouthernPoleInDegrees"),
          self.metadata.get("angleOfRotationInDegrees"),
      )
  2. Added new FieldList type: FieldArray. Name should be reviewed since earthkit-data already has ArrayFieldList

  3. Added the FieldCube and Cubelet classes. A version of it already exists in the feature/tensor branch.

  4. The "valid_datetime" metadata key now returns a str instead of datetime.datetime

  5. Add dependency on earthkit-geo

codecov-commenter commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 89.63%. Comparing base (08a404b) to head (c94f37d).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #383 +/- ## =========================================== - Coverage 89.75% 89.63% -0.13% =========================================== Files 119 119 Lines 7515 7513 -2 Branches 662 662 =========================================== - Hits 6745 6734 -11 - Misses 640 649 +9 Partials 130 130 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.