Add GEBCO, IBCSO, and IBCAO bathymetry dataset modules#180
Add GEBCO, IBCSO, and IBCAO bathymetry dataset modules#180aklocker42 wants to merge 19 commits intoNumericalEarth:mainfrom
Conversation
Adds three new bathymetry dataset modules to DataWrangling: - GEBCO: GEBCO 2024 global bathymetry (ZipFile-based, no system unzip needed) - IBCSO: International Bathymetric Chart of the Southern Ocean v2 - IBCAO: International Bathymetric Chart of the Arctic Ocean Each module follows the existing dataset pattern with metadata_filename, download_dataset, and Bathymetry loading support.
| using Oceananigans.DistributedComputations: @root | ||
| using Scratch | ||
| using NCDatasets | ||
| using ArchGDAL |
There was a problem hiding this comment.
I don't think we have ArchGDAL as a dependency. Is this a large / mature / well maintained package? Is it worth to bring it in as a dependency?
|
very nice and clear. My only (small) concern is bringing in another package (ArchGDAL) as a hard dependency. I would add a couple of tests in the testset. Would be nice to make them quite lean since the testset is already quite long. Maybe regridding on a simple LatitudeLongitudeGrid and verifying that the outputs are sensible? |
| latitude_interfaces, | ||
| z_interfaces, | ||
| reversed_vertical_axis, | ||
| validate_dataset_coverage |
There was a problem hiding this comment.
| validate_dataset_coverage | |
| validate_dataset_coverage |
this function does not exist in NumericalEarth.DataWrangling.
It is a nice idea to have it though. We can define a fallback in NumericalEarth.DataWrangling
validate_dataset_coverage(grid, metadata) = nothing
then wire it in the regrid_bathymetry function
There was a problem hiding this comment.
Not sure how heavy ArchGDAL is, but currently trying of there is an easier way without it. I'll try and generate a test.
There was a problem hiding this comment.
Added test/test_polar_bathymetry.jl — tests metadata interfaces (longitude/latitude extents, grid sizes, variable names) and validate_dataset_coverage for IBCSO, GEBCO, and IBCAO. Includes a regridding test for IBCSO over the Drake Passage that checks for finite values and physically sensible ocean depths.
…lidation Tests verify correct longitude/latitude extents, grid sizes, variable names, and that validate_dataset_coverage throws for out-of-range grids. All 22 tests pass on Olivia (job 559437). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…t variable name, doc table reorganization - Add validate_dataset_coverage(grid, metadata) = nothing fallback in metadata.jl and export it from DataWrangling; wire it into regrid_bathymetry so coverage checks run automatically for IBCSO and IBCAO - Fix hardcoded dataset["z"] in regrid_bathymetry to use dataset_variable_name(metadata), accommodating GEBCO's "elevation" variable name - Add test that regrid_bathymetry throws for out-of-range grids (IBCSO and IBCAO) - Reorganize dataset table in docs into Bathymetry / Ocean reanalysis / Atmospheric forcing sections; fix link text for new bathymetry entries to use "overview"
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
- Move _reproject_ibcao_to_netcdf into NumericalEarthArchGDALExt so ArchGDAL is only required when loading IBCAO data, not at package load time - ArchGDAL moved from [deps] to [weakdeps] in Project.toml - ArchGDAL added as regular dep in test/Project.toml
|
Ok, so the decision is to make an ArchGDAL extension. ArchGDAL brings in much of the So it is good to keep it separate to not overwhelm the precompilation for a limited use case (the use of the IBCAO bathymetry) |
… cap in IBCSO regridding test
|
Thinking about it a bit, bathymetries share a lot of methods (no time for example) so it might be worth it to introduce an |

Adds three new bathymetry dataset modules to DataWrangling:
Each module follows the existing dataset pattern with metadata_filename, download_dataset, and Bathymetry loading support.