Repository navigation
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #606 +/- ##
========================================
Coverage 87.70% 87.70%
========================================
Files 860 860
Lines 64257 64257
Branches 11450 11450
========================================
Hits 56358 56358
Misses 7899 7899 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
pmaciel
force-pushed
the
feature/eckit-geo
branch
2 times, most recently
from
October 15, 2026 15:28
fa921a0 to
bfbd6fa
Compare
pmaciel
force-pushed
the
feature/eckit-geo
branch
from
October 23, 2026 15:28
bfbd6fa to
0520f55
Compare
pmaciel
marked this pull request as draft
October 27, 2026 09:51
pmaciel
force-pushed
the
feature/eckit-geo
branch
from
October 27, 2026 09:56
0520f55 to
ee86b68
Compare
…n plane, projString of the projection
…iveRowScanning), number of points checked, no leaks on errors
pmaciel
force-pushed
the
feature/eckit-geo
branch
from
October 30, 2026 02:20
ee86b68 to
e52e62d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
eckit::geo for all supported grids, extended
gridSpec,projStringand the iterator support for all varieties of scanning modes. eckit::geo is not patched to reproduce legacy issues, some newly discovered; where eccodes differs, the tests say so. Changes:Gaussian grids, as encoded (
GribToSpec)angular_precision, including fractions). There are no hardcoded tolerances.longitudeOfFirstGridPointInDegrees=65.039062(truncated) gets its first column again.ni, from the encoded increment, unless 4N (this last one is not fully well handled in eccodes or mir).plis validated (every entry positive). A regionalplis placed on the global latitudes by Gaussian latitude, in either latitude direction.reduced_rotated_gg,reduced_stretched_ggandreduced_stretched_rotated_gg.Projected and space_view grids,
projStringalbers,lambert,lambert_lam,lambert_azimuthal_equal_area,mercator,polar_stereographicandspace_viewgrids are described on the projection plane:x/yranges, in grid lengths;aea,lcc,laea,merc,stereandgeos;earthIsOblate).alternativeRowScanningandjPointsAreConsecutive, are the specorder.ECCODES_ECKIT_GEO=1orECCODES_ECKIT_GEO=2,projStringcomes from eckit::geo. It builds the projection only, so the grid geometry doesn't need to be valid. A buffer too small reports the length needed.Iterator
ECCODES_ECKIT_GEO=1, eckit::geo iterates these grid types:regular_ll,rotated_llandreduced_ll;regular_gg,rotated_gg,reduced_ggandreduced_rotated_gg;healpixandunstructured_grid;alternativeRowScanningare no longer excluded.numberOfDataPointsdifferent from the grid size is an error ("Wrong number of points"), both in the iterator and ingridSpec. Reduced Gaussian sub-areas encoded as PRODGEN/LIBEMOS did (rows rounded differently) are an example.With env
ECCODES_ECKIT_GEO=0(the default), the iterator andprojStringare unchanged. OnlygridSpec(always by eckit::geo) changes: its values for the grids above, and the error for a message whose number of points isn't its grid's.Tests
grib_geo_iterator:rotated_gg(the eccodes iterator does not unrotate it).grib_eckit_geo_proj_string:projString(classical) compared to the PROJ string of the eckit::geo projection, and the projection round trip from its spec.grib_eckit_geo_projections: for each projected and space_view grid (examples of operational grids, and the test data), checks:gridSpecand the projection spec;projStringwith envECCODES_ECKIT_GEO=0,1and2;ECCODES_ECKIT_GEOvalue where eckit::geo behaves differently:grib_grid_polar_stereographic: an oblate Earth is supported;grib_grid_mercator: error message;grib_grid_lamb_az_eq_area: longitudes modulo 360;grib_change_scanning: alternating rows are iterated;grib_iterator: the legacy reduced Gaussian sub-area is an error.Related changes
regular_xygrids, Albers on ellipsoids, scanning orders including alternating rows, Gaussian grids of anyni, and single-value ranges.Please test with the matching eckit version.
Contributor Declaration
By opening this pull request, I affirm the following:
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com