Skip to content

Commit 21907f4

Browse files
authored
Implement GeoInterface crstrait. (#180)
1 parent c9ee187 commit 21907f4

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

Project.toml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
name = "GeoArrays"
22
uuid = "2fb1d81b-e6a0-5fc5-82e6-8e06903437ab"
33
authors = ["Maarten Pronk <git@evetion.nl>"]
4-
version = "0.9.3"
5-
4+
version = "0.9.4"
65

76
[deps]
87
ArchGDAL = "c9ce4bd3-c3d5-55b8-8973-c0e20141b8c3"
@@ -17,9 +16,9 @@ RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
1716
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
1817

1918
[weakdeps]
20-
Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
2119
GeoStatsModels = "ad987403-13c5-47b5-afee-0a48f6ac4f12"
2220
GeoStatsTransforms = "725d9659-360f-4996-9c94-5f19c7e4a8a6"
21+
Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
2322

2423
[extensions]
2524
GeoArraysMakieExt = "Makie"
@@ -35,7 +34,7 @@ GeoInterface = "1"
3534
GeoStatsModels = "0.6"
3635
GeoStatsTransforms = "0.9"
3736
IterTools = "1"
38-
Makie = "0.21"
37+
Makie = "0.21, 0.22"
3938
PrecompileTools = "1"
4039
RecipesBase = "0.7, 0.8, 1.0"
4140
StaticArrays = "0.12, 1.0"

src/geointerface.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,14 @@
11
GI.extent(ga::GeoArray) = bbox(ga)
22
GI.crs(ga::GeoArray) = isempty(GFT.val(crs(ga))) ? nothing : crs(ga)
3+
GI.israster(::Type{GeoArray}) = true
4+
GI.crstrait(ga::GeoArray) = _crstrait(GI.crs(ga))
5+
6+
_crstrait(::Nothing) = GI.UnknownTrait()
7+
function _crstrait(crs)
8+
acrs = ArchGDAL.importCRS(crs)
9+
Bool(ArchGDAL.GDAL.osrisgeographic(acrs.ptr)) && return GI.GeographicTrait()
10+
Bool(ArchGDAL.GDAL.osrisprojected(acrs.ptr)) && return GI.ProjectedTrait()
11+
@error "Unknown CRS type, please report this issue for the given crs/file"
12+
return GI.UnknownTrait()
13+
end
14+

test/test_geoutils.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ const tbbox = GeoArrays._convert(Extent, (min_x=440720.0, min_y=3.74532e6, max_x
114114
@test !isempty(GFT.val(GI.crs(ga)))
115115
@test GI.extent(ga) isa Extents.Extent
116116
@test GI.extent(ga) == Extents.Extent(X=(440720.0, 446720.0), Y=(3.74532e6, 3.75132e6))
117+
@test GI.crstrait(ga) isa GI.ProjectedTrait
117118
end
118119

119120
@testset "Compose" begin

0 commit comments

Comments
 (0)