diff --git a/src/methods/reproject.jl b/src/methods/reproject.jl index e18910bb6..9716048d7 100644 --- a/src/methods/reproject.jl +++ b/src/methods/reproject.jl @@ -21,6 +21,8 @@ are silently returned without modification. $CRS_KEYWORD """ reproject(x; crs::GeoFormat) = reproject(crs, x) +reproject(x, target::GeoFormat) = reproject(target, x) +reproject(::GeoFormat, ::GeoFormat) = throw(ArgumentError("You need to provide a raster object to reproject. Got two coordinate reference systems.")) reproject(target::GeoFormat, x) = rebuild(x; dims=reproject(target, dims(x))) reproject(target::GeoFormat, dims::Tuple) = map(d -> reproject(target, d), dims) reproject(target::GeoFormat, l::Lookup) = l diff --git a/test/reproject.jl b/test/reproject.jl index 3bb337b6c..2dfda2a59 100644 --- a/test/reproject.jl +++ b/test/reproject.jl @@ -24,6 +24,7 @@ using Rasters: reproject, convertlookup y = Y(Projected(-80.0:1.0:80.0; crs=EPSG(4326), dim=Y(), order=ReverseOrdered(), span=Regular(1.0), sampling=Intervals(Start()))) x1, y1 = reproject((x, y); crs=projcea) + @test reproject((x, y), projcea) == reproject(projcea, (x, y)) @test span(x1) isa Irregular @test span(y1) isa Irregular x2, y2 = reproject((x, y); crs=EPSG(4326))