Examples
This page provides examples of how to use XESMF.jl in various scenarios.
Basic Usage
The main function in XESMF.jl is sparse_regridder_weights, which computes sparse regridding weights from a regridder object.
using XESMF
# Example with a regridder object (mock example)
# regridder = create_regridder(source_grid, target_grid)
# Get sparse weights with default type (Float64)
# weights = sparse_regridder_weights(regridder)
# Get sparse weights with specific type
# weights_float32 = sparse_regridder_weights(Float32, regridder)Working with Oceananigans.jl
XESMF.jl is designed to work seamlessly with Oceananigans.jl for ocean modeling applications.
Creating Grids and Fields
using Oceananigans
using XESMF
# Create different grid types
tripolar_grid = TripolarGrid(size=(360, 170, 1), z=(0, 1))
latlon_grid = LatitudeLongitudeGrid(
size=(360, 180, 1),
longitude=(0, 360),
latitude=(-90, 90),
z=(0, 1)
)
# Create center fields on the grids
tripolar_field = CenterField(tripolar_grid)
latlon_field = CenterField(latlon_grid)Computing Regridding Weights
# Compute regridding weights from lat-lon to tripolar grid
# weights = sparse_regridding_weights(latlon_field, tripolar_field)
# The weights matrix can then be used for efficient regridding
# regridded_data = weights * source_dataType Flexibility
XESMF.jl supports different numeric types for the regridding weights:
# Float64 (default)
# weights_f64 = sparse_regridder_weights(regridder)
# Float32
# weights_f32 = sparse_regridder_weights(Float32, regridder)
# Int64
# weights_i64 = sparse_regridder_weights(Int64, regridder)Error Handling
The package includes proper error handling for invalid inputs:
# These will throw appropriate errors:
# sparse_regridder_weights() # MethodError: no arguments
# sparse_regridder_weights(Float64) # MethodError: missing regridderPerformance Considerations
- Sparse matrices are used for memory efficiency
- The Python xESMF library handles the heavy computational work
- Type conversion is optimized for Julia's type system