Skip to content

Commit 392612c

Browse files
committed
Move things to separate files
1 parent bd80e65 commit 392612c

File tree

13 files changed

+161
-161
lines changed

13 files changed

+161
-161
lines changed

.gitlab-ci.yml

Lines changed: 0 additions & 22 deletions
This file was deleted.

.travis.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,8 @@ os:
55
- linux
66
- osx
77
julia:
8-
- 1.0
9-
- 1.1
10-
- 1.2
8+
- 1
119
- 1.3
12-
- 1.4
13-
- 1.5
1410
- nightly
1511
notifications:
1612
email: false

Project.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ ArchGDAL = "c9ce4bd3-c3d5-55b8-8973-c0e20141b8c3"
1919
AxisIndices = "f52c9ee2-1b1c-4fd8-8546-6350938c7f11"
2020
NetCDF = "30363a11-5582-574a-97bb-aa9a979735b9"
2121
Zarr = "0a941bbe-ad1d-11e8-39d9-ab76183a1d99"
22+
NamedDims = "356022a1-0364-5f58-8944-0da4b18d706f"
2223

2324

2425
[targets]
25-
test = ["Test", "DimensionalData", "AxisArrays", "ArchGDAL", "AxisIndices", "NetCDF", "Zarr"]
26+
test = ["Test", "DimensionalData", "AxisArrays", "ArchGDAL", "AxisIndices", "NetCDF", "Zarr","NamedDims"]

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
environment:
22
matrix:
33
- julia_version: 1
4-
- julia_version: 1.4
4+
- julia_version: 1.3
55
- julia_version: nightly
66

77
platform:

src/YAXArrayBase.jl

Lines changed: 9 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -22,115 +22,15 @@ function __init__()
2222

2323
backendregex = Pair[]
2424

25-
@require DimensionalData="0703355e-b756-11e9-17c0-8b28908087d0" begin
26-
using .DimensionalData: DimensionalArray, DimensionalData, data, Dim, metadata
27-
28-
_dname(::DimensionalData.Dim{N}) where N = N
29-
dimname(x::DimensionalArray, i) = _dname(DimensionalData.dims(x)[i])
30-
31-
32-
dimvals(x::DimensionalArray,i) = DimensionalData.dims(x)[i].val
33-
34-
getdata(x::DimensionalArray) = data(x)
35-
36-
getattributes(x::DimensionalArray) = metadata(x)
37-
38-
function yaxcreate(::Type{<:DimensionalArray},data,dnames,dvals,atts)
39-
d = ntuple(ndims(data)) do i
40-
Dim{Symbol(dnames[i])}(dvals[i])
41-
end
42-
DimensionalArray(data,d,metadata = atts)
43-
end
44-
end
45-
46-
@require AxisArrays="39de3d68-74b9-583c-8d2d-e117c070f3a9" begin
47-
using .AxisArrays: AxisArrays, AxisArray
48-
49-
dimname(a::AxisArray, i) = AxisArrays.axisnames(a)[i]
50-
dimnames(a::AxisArray) = AxisArrays.axisnames(a)
51-
dimvals(a::AxisArray, i) = AxisArrays.axisvalues(a)[i]
52-
iscontdim(a::AxisArray, i) = AxisArrays.axistrait(AxisArrays.axes(a,i)) <: AxisArrays.Dimensional
53-
getdata(a::AxisArray) = parent(a)
54-
function yaxcreate(::Type{<:AxisArray}, data, dnames, dvals, atts)
55-
d = ntuple(ndims(data)) do i
56-
dnames[i] => dvals[i]
57-
end
58-
AxisArray(data; d...)
59-
end
60-
end
61-
62-
@require AxisIndices="f52c9ee2-1b1c-4fd8-8546-6350938c7f11" begin
63-
using .AxisIndices: AbstractAxis,AxisIndices
64-
65-
valfromaxis(ax::AbstractAxis) = keys(ax)
66-
67-
getdata(a::AxisIndices.AxisArray) = parent(a)
68-
69-
yaxcreate(::Type{<:AxisIndices.AxisArray}, data, dnames, dvals, atts) =
70-
AxisIndices.AxisArray(data, map(i->dvals[i], 1:ndims(data))...)
71-
end
72-
73-
@require ArchGDAL="c9ce4bd3-c3d5-55b8-8973-c0e20141b8c3" begin
74-
import .ArchGDAL: RasterDataset, AbstractRasterBand,
75-
getgeotransform, width, height, getname, getcolorinterp,
76-
getband, nraster, getdataset
77-
function dimname(a::RasterDataset, i)
78-
if i == 1
79-
return :Y
80-
elseif i == 2
81-
return :X
82-
elseif i == 3
83-
return :Band
84-
else
85-
error("RasterDataset only has 3 dimensions")
86-
end
87-
end
88-
function dimvals(a::RasterDataset, i)
89-
if i == 1
90-
geo=getgeotransform(a)
91-
latr = range(geo[1],length=width(a), step=geo[2])
92-
elseif i == 2
93-
geo=getgeotransform(a)
94-
range(geo[4],length=height(a), step=geo[6])
95-
elseif i == 3
96-
colnames = map(ib -> getname(getcolorinterp(getband(a,ib))),1:nraster(a))
97-
if !allunique(colnames)
98-
colnames = string.("Band_",1:nraster(a))
99-
end
100-
colnames
101-
else
102-
error("RasterDataset only has 3 dimensions")
103-
end
104-
end
105-
iscontdim(a::RasterDataset, i) = i < 3 ? true : nraster(a)<8
106-
getattributes(a::RasterDataset) =
107-
Dict{String,Any}("projection"=>ArchGDAL.toPROJ4(ArchGDAL.newspatialref(ArchGDAL.getproj(a))))
108-
109-
110-
function dimname(::AbstractRasterBand, i)
111-
if i == 1
112-
return :Y
113-
elseif i == 2
114-
return :X
115-
else
116-
error("RasterDataset only has 3 dimiensions")
117-
end
118-
end
119-
function dimvals(b::AbstractRasterBand, i)
120-
geo = getgeotransform(getdataset(b))
121-
if i == 1
122-
range(geo[1],length=width(b), step=geo[2])
123-
elseif i == 2
124-
range(geo[4],length=height(b), step=geo[6])
125-
else
126-
error("RasterDataset only has 3 dimiensions")
127-
end
128-
end
129-
iscontdim(a::AbstractRasterBand, i) = true
130-
getattributes(a::AbstractRasterBand) =
131-
getattributes(ArchGDAL.RasterDataset(ArchGDAL.getdataset(a)))
132-
133-
end
25+
@require NamedDims="356022a1-0364-5f58-8944-0da4b18d706f" include("axisarrays/nameddims.jl")
26+
27+
@require DimensionalData="0703355e-b756-11e9-17c0-8b28908087d0" include("axisarrays/dimensionaldata.jl")
28+
29+
@require AxisArrays="39de3d68-74b9-583c-8d2d-e117c070f3a9" include("axisarrays/axisarrays.jl")
30+
31+
@require AxisIndices="f52c9ee2-1b1c-4fd8-8546-6350938c7f11" include("axisarrays/axisindices.jl")
32+
33+
@require ArchGDAL="c9ce4bd3-c3d5-55b8-8973-c0e20141b8c3" include("axisarrays/archgdal.jl")
13434

13535
@require Zarr="0a941bbe-ad1d-11e8-39d9-ab76183a1d99" include("datasets/zarr.jl")
13636

src/axisarrays/archgdal.jl

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import .ArchGDAL: RasterDataset, AbstractRasterBand,
2+
getgeotransform, width, height, getname, getcolorinterp,
3+
getband, nraster, getdataset
4+
function dimname(a::RasterDataset, i)
5+
if i == 1
6+
return :Y
7+
elseif i == 2
8+
return :X
9+
elseif i == 3
10+
return :Band
11+
else
12+
error("RasterDataset only has 3 dimensions")
13+
end
14+
end
15+
function dimvals(a::RasterDataset, i)
16+
if i == 1
17+
geo=getgeotransform(a)
18+
latr = range(geo[1],length=width(a), step=geo[2])
19+
elseif i == 2
20+
geo=getgeotransform(a)
21+
range(geo[4],length=height(a), step=geo[6])
22+
elseif i == 3
23+
colnames = map(ib -> getname(getcolorinterp(getband(a,ib))),1:nraster(a))
24+
if !allunique(colnames)
25+
colnames = string.("Band_",1:nraster(a))
26+
end
27+
colnames
28+
else
29+
error("RasterDataset only has 3 dimensions")
30+
end
31+
end
32+
iscontdim(a::RasterDataset, i) = i < 3 ? true : nraster(a)<8
33+
getattributes(a::RasterDataset) =
34+
Dict{String,Any}("projection"=>ArchGDAL.toPROJ4(ArchGDAL.newspatialref(ArchGDAL.getproj(a))))
35+
36+
37+
function dimname(::AbstractRasterBand, i)
38+
if i == 1
39+
return :Y
40+
elseif i == 2
41+
return :X
42+
else
43+
error("RasterDataset only has 3 dimiensions")
44+
end
45+
end
46+
function dimvals(b::AbstractRasterBand, i)
47+
geo = getgeotransform(getdataset(b))
48+
if i == 1
49+
range(geo[1],length=width(b), step=geo[2])
50+
elseif i == 2
51+
range(geo[4],length=height(b), step=geo[6])
52+
else
53+
error("RasterDataset only has 3 dimiensions")
54+
end
55+
end
56+
iscontdim(a::AbstractRasterBand, i) = true
57+
getattributes(a::AbstractRasterBand) =
58+
getattributes(ArchGDAL.RasterDataset(ArchGDAL.getdataset(a)))

src/axisarrays/axisarrayimpl.jl

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,27 @@ function yaxcreate(::Type{<:AxisArray}, data, dnames, dvals, atts)
3535
end
3636
end
3737

38-
# @require AxisIndices="f52c9ee2-1b1c-4fd8-8546-6350938c7f11" begin
39-
# using .AxisIndices: AbstractAxis, AxisIndicesArray
40-
#
41-
# valfromaxis(ax::AbstractAxis) = keys(ax)
42-
#
43-
# getdata(a::AxisIndicesArray) = parent(a)
44-
#
45-
# yaxcreate(::Type{<:AxisIndicesArray}, data, dnames, dvals, atts) =
46-
# AxisIndicesArray(data, map(i->dvals[i], 1:ndims(data))...)
47-
# end
38+
@require AxisIndices="f52c9ee2-1b1c-4fd8-8546-6350938c7f11" begin
39+
using .AxisIndices: AbstractAxis
40+
41+
valfromaxis(ax::AbstractAxis) = keys(ax)
42+
43+
getdata(a::AxisIndices.AxisArray) = parent(a)
44+
45+
yaxcreate(::Type{<:AxisIndices.AxisArray}, data, dnames, dvals, atts) =
46+
AxisIndices.AxisArray(data, map(i->dvals[i], 1:ndims(data))...)
47+
end
48+
49+
@require NamedDims="356022a1-0364-5f58-8944-0da4b18d706f" begin
50+
using .NamedDims: NamedDimsArray
51+
dimname(a::NamedDimsArray{N},i) where N = N[i]
52+
dimnames(a::NamedDimsArray{N}) where N = N
53+
getdata(a::NamedDimsArray) = parent(a)
54+
function yaxcreate(::Type{<:NamedDimsArray},data, dnames, dvals, atts)
55+
n = ntuple(i->dnames[i],ndims(data))
56+
NamedDimsArray(data,n)
57+
end
58+
end
4859

4960
@require ArchGDAL="c9ce4bd3-c3d5-55b8-8973-c0e20141b8c3" begin
5061
import .ArchGDAL: RasterDataset, AbstractRasterBand,

src/axisarrays/axisarrays.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using .AxisArrays: AxisArrays, AxisArray
2+
3+
dimname(a::AxisArray, i) = AxisArrays.axisnames(a)[i]
4+
dimnames(a::AxisArray) = AxisArrays.axisnames(a)
5+
dimvals(a::AxisArray, i) = AxisArrays.axisvalues(a)[i]
6+
iscontdim(a::AxisArray, i) = AxisArrays.axistrait(AxisArrays.axes(a,i)) <: AxisArrays.Dimensional
7+
getdata(a::AxisArray) = parent(a)
8+
function yaxcreate(::Type{<:AxisArray}, data, dnames, dvals, atts)
9+
d = ntuple(ndims(data)) do i
10+
dnames[i] => dvals[i]
11+
end
12+
AxisArray(data; d...)
13+
end

src/axisarrays/axisindices.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
using .AxisIndices: AbstractAxis,AxisIndices
2+
3+
valfromaxis(ax::AbstractAxis) = keys(ax)
4+
5+
getdata(a::AxisIndices.AxisArray) = parent(a)
6+
7+
yaxcreate(::Type{<:AxisIndices.AxisArray}, data, dnames, dvals, atts) =
8+
AxisIndices.AxisArray(data, map(i->dvals[i], 1:ndims(data))...)

src/axisarrays/axisinterface.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ valfromaxis(x) = x
7676
7777
Converts an AbstractArray x that implements the interface to type T.
7878
"""
79-
yaxconvert(T::Type{<:Any},x) =
79+
function yaxconvert(T::Type{<:Any},x)
8080
yaxcreate(T, getdata(x), dimnames(x),dimvals.(Ref(x),1:ndims(x)),getattributes(x))
81+
end
8182

8283
"""
8384
yaxcreate(T::Type,data,dnames,dvals,attributes)

0 commit comments

Comments
 (0)