diff --git a/src/extensions.jl b/src/extensions.jl index 61d90a8e8..fa316ff69 100644 --- a/src/extensions.jl +++ b/src/extensions.jl @@ -207,9 +207,11 @@ cs = cellarea(myraster) ``` $EXPERIMENTAL """ -cellarea(x; kw...) = cellarea(Spherical(), x; kw...) +cellarea(x; kw...) = cellarea(best_manifold(GI.crs(x)), x; kw...) cellarea(method::GeometryOpsCore.Manifold, x; kw...) = cellarea(method, dims(x, (XDim, YDim)); kw...) +best_manifold(x) = Spherical() # TODO: ?? + function cellarea(method::GeometryOpsCore.Planar, dims::Tuple{<:XDim, <:YDim}; kw...) isintervals(dims) || throw(ArgumentError("Cannot calculate cell size for a `Raster` with `Points` sampling.")) areas = _planar_cellarea(dims; kw...) @@ -307,4 +309,4 @@ struct AffineProjected{T,F,A<:AbstractVector{T},M,C,MC,P,D} <: LA.Unaligned{T,1} mappedcrs::MC paired_lookup::P dim::D -end \ No newline at end of file +end