@@ -3,35 +3,35 @@ using Dates
33c= Cube ()
44
55@testset " Access single variable" begin
6- d = subsetcube (c, variable= " air_temperature_2m" ,lon= ( 10 , 11 ) ,lat= ( 51 , 50 ) ,
7- time= ( Date (" 2002-01-01" ), Date (" 2008-12-31" )))
8-
9- d. data. v. indices== (18 : 21 , 17 : 20 , 93 : 414 )
10- @test d. axes[1 ]. values == 10.125 : 0.25 : 10.875
11- @test d. axes[2 ]. values == 50.875 : - 0.25 : 50.125
12- @test d. axes[1 ] == RangeAxis ( " lon" , 10.125 : 0.25 : 10.875 )
13- @test d. axes[2 ] == RangeAxis ( " lat" , 50.875 : - 0.25 : 50.125 )
6+ d = c[ variable= DD . At ( " air_temperature_2m" ) ,lon= 10 .. 11 ,lat= 50 .. 51 ,
7+ time= Date (" 2002-01-01" ).. Date (" 2008-12-31" )]
8+
9+ d. data. v. indices== (18 : 21 , 17 : 20 , 93 : 414 )
10+ @test d. axes[1 ]. val == 10.125 : 0.25 : 10.875
11+ @test d. axes[2 ]. val == 50.875 : - 0.25 : 50.125
12+ @test d. axes[1 ] == Dim {: lon} ( 10.125 : 0.25 : 10.875 )
13+ @test d. axes[2 ] == Dim {: lat} ( 50.875 : - 0.25 : 50.125 )
1414end
1515
1616
1717
1818@testset " Access multiple variables" begin
19- d2 = subsetcube (c, variable= [" air_temperature_2m" ," gross_primary_productivity" ],lon= ( 10 , 11 ) ,lat= ( 50 , 51 ) ,
20- time= ( Date (" 2002-01-01" ), Date (" 2008-12-31" )))
21-
22- @test d2. axes[4 ]. values == [" air_temperature_2m" , " gross_primary_productivity" ]
23- @test d2. data. arrays[1 ]. v. indices == (18 : 21 , 17 : 20 , 93 : 414 )
24- @test d2. axes[1 ]. values == 10.125 : 0.25 : 10.875
25- @test d2. axes[2 ]. values == 50.875 : - 0.25 : 50.125
26- @test first (d2. axes[3 ]. values ) == Dates. Date (2002 ,1 ,5 )
27- @test last (d2. axes[3 ]. values ) == Dates. Date (2008 , 12 , 30 )
19+ d2 = c[ variable= DD . At ( [" air_temperature_2m" ," gross_primary_productivity" ]) ,lon= 10 .. 11 ,lat= 50 .. 51 ,
20+ time= Date (" 2002-01-01" ).. Date (" 2008-12-31" )]
21+
22+ @test d2. axes[4 ]. val == [" air_temperature_2m" , " gross_primary_productivity" ]
23+ @test d2. data. arrays[1 ]. v. indices == (18 : 21 , 17 : 20 , 93 : 414 )
24+ @test d2. axes[1 ]. val == 10.125 : 0.25 : 10.875
25+ @test d2. axes[2 ]. val == 50.875 : - 0.25 : 50.125
26+ @test first (d2. axes[3 ]. val ) == Dates. Date (2002 ,1 ,5 )
27+ @test last (d2. axes[3 ]. val ) == Dates. Date (2008 , 12 , 30 )
2828end
2929
3030@testset " Test values in MemCube" begin
31- d = subsetcube (c, variable= " air_temperature_2m" ,lon= ( 10 , 11 ) ,lat= ( 51 , 50 ) ,
32- time= ( Date (" 2002-01-01" ), Date (" 2008-12-31" )))
33- d2 = subsetcube (c, variable= [" air_temperature_2m" ," gross_primary_productivity" ],lon= ( 10 , 11 ) ,lat= ( 50 , 51 ) ,
34- time= ( Date (" 2002-01-01" ), Date (" 2008-12-31" )))
31+ d = c[ variable= DD . At ( " air_temperature_2m" ) ,lon= 10 .. 11 ,lat= 50 .. 51 ,
32+ time= Date (" 2002-01-01" ).. Date (" 2008-12-31" )]
33+ d2 = c[ variable= DD . At ( [" air_temperature_2m" ," gross_primary_productivity" ]) ,lon= 10 .. 11 ,lat= 50 .. 51 ,
34+ time= Date (" 2002-01-01" ).. Date (" 2008-12-31" )]
3535data1= readcubedata (d)
3636data2= readcubedata (d2)
3737
@@ -40,52 +40,42 @@ data2=readcubedata(d2)
4040
4141
4242@test isapprox (data1. data[1 ,1 ,1 : 10 ],Float32[267.9917 , 269.9631 , 276.71036 , 280.88998 ,
43- 280.90665 , 277.02243 , 274.5466 , 276.919 , 279.96243 , 279.42276 ])
43+ 280.90665 , 277.02243 , 274.5466 , 276.919 , 279.96243 , 279.42276 ])
4444
4545@test isapprox (data2. data[1 ,1 ,1 : 10 ,1 ],Float32[267.9917 , 269.9631 , 276.71036 , 280.88998 ,
46- 280.90665 , 277.02243 , 274.5466 , 276.919 , 279.96243 , 279.42276 ])
46+ 280.90665 , 277.02243 , 274.5466 , 276.919 , 279.96243 , 279.42276 ])
4747
48- @test caxes (data1)[1 : 2 ]== CubeAxis[ RangeAxis ( " lon" , 10.125 : 0.25 : 10.875 ),RangeAxis ( " lat" , 50.875 : - 0.25 : 50.125 )]
48+ @test caxes (data1)[1 : 2 ]== ( Dim {: lon} ( 10.125 : 0.25 : 10.875 ),Dim {: lat} ( 50.875 : - 0.25 : 50.125 ))
4949
5050tax = caxes (data1)[3 ]
51- @test YAXArrays . Cubes . Axes . axsym (tax)== :time
52- @test tax. values [1 ] == Date (2002 ,1 ,5 )
53- @test tax. values [end ] == Date (2008 ,12 ,30 )
54- @test length (tax. values ) == 7 * 46
51+ @test DD . name (tax)== :Time
52+ @test tax. val [1 ] == Date (2002 ,1 ,5 )
53+ @test tax. val [end ] == Date (2008 ,12 ,30 )
54+ @test length (tax. val ) == 7 * 46
5555
56- @test caxes (data2)[[1 ,2 ,4 ]]== CubeAxis[ RangeAxis ( " lon" , 10.125 : 0.25 : 10.875 ),RangeAxis ( " lat" , 50.875 : - 0.25 : 50.125 ),CategoricalAxis ( " Variable" , [" air_temperature_2m" ," gross_primary_productivity" ])]
56+ @test caxes (data2)[[1 ,2 ,4 ]]== ( Dim {: lon} ( 10.125 : 0.25 : 10.875 ),Dim {: lat} ( 50.875 : - 0.25 : 50.125 ),Dim {: Variable} ( [" air_temperature_2m" ," gross_primary_productivity" ]))
5757
5858tax = caxes (data2)[3 ]
59- @test YAXArrays . Cubes . Axes . axsym (tax)== :time
60- @test tax. values [1 ] == Date (2002 ,1 ,5 )
61- @test tax. values [end ] == Date (2008 ,12 ,30 )
62- @test length (tax. values ) == 7 * 46
59+ @test DD . name (tax)== :Time
60+ @test tax. val [1 ] == Date (2002 ,1 ,5 )
61+ @test tax. val [end ] == Date (2008 ,12 ,30 )
62+ @test length (tax. val ) == 7 * 46
6363
64- end
6564
66- @testset " Coordinate extraction" begin
67- d = subsetcube (c,variable= " air_temperature_2m" ,lon= (10 ,11 ),lat= (51 ,50 ),
68- time= (Date (" 2002-01-01" ),Date (" 2008-12-31" )))
69- data1= readcubedata (d)
70- # Test reading of coordinate list
71- ll= [10.1 50.2 ;10.5 51.1 ;10.8 51.1 ]
72- llcube = readcubedata (extractLonLats (data1,ll))
73- @test llcube. data[1 ,:]== data1. data[1 ,4 ,:]
74- @test llcube. data[2 ,:]== data1. data[3 ,1 ,:]
75- @test llcube. data[3 ,:]== data1. data[4 ,1 ,:]
7665end
7766
7867@testset " Accessing regions" begin
7968# Test access datacube by region
80- d3 = subsetcube (c,variable= " gross_primary_productivity" ,region= " Austria" ,time= Date (" 2005-01-01" ))
81- @test d3. axes== [RangeAxis (" lon" ,9.625 : 0.25 : 14.875 ),RangeAxis (" lat" ,48.875 : - 0.25 : 47.375 )]
69+ d3 = c[variable= DD. At (" gross_primary_productivity" ),region= " Austria" ,time= DD. Near (DateTime (" 2005-01-01" ))]
70+ @test d3. axes== (Dim {:lon} (9.625 : 0.25 : 14.875 ),RangeAxis (" lat" ,48.875 : - 0.25 : 47.375 ))
71+
8272end
8373
8474using DiskArrayTools: DiskArrayStack
8575
8676@testset " Saving and loading cubes" begin
87- d = subsetcube (c, variable= " air_temperature_2m" ,lon= (10 , 31 ),lat= (51 , 50 ),
88- time= (Date (" 2002-01-01" ), Date (" 2008-12-31" )))
77+ d = c[ variable= DD . At ( " air_temperature_2m" ) ,lon= (10 .. 31 ),lat= (50 .. 51 ),
78+ time= (Date (" 2002-01-01" ).. Date (" 2008-12-31" ))]
8979 data1= readcubedata (d)
9080 # Test saving cubes
9181 dire= tempname ()
@@ -97,7 +87,7 @@ using DiskArrayTools: DiskArrayStack
9787 @test data1. data== data3. data
9888
9989 # Test loadOrGenerate macro
100- d= subsetcube (c, time= Date (2001 ).. Date (2005 ),lon= (10 , 11 ),lat= (50 , 51 ),variable= [" gross_primary_productivity" ," net_ecosystem_exchange" ])
90+ d= c[ time= Date (2001 ).. Date (2005 ),lon= (10 .. 11 ),lat= (50 .. 51 ),variable= DD . At ( [" gross_primary_productivity" ," net_ecosystem_exchange" ])]
10191
10292 danom = removeMSC (d)
10393
@@ -108,7 +98,7 @@ using DiskArrayTools: DiskArrayStack
10898 danom= readcubedata (danom)
10999 danom2= readcubedata (Cube (zp))
110100
111- @test danom. axes== danom2. axes
101+ @test danom. axes[ 1 : 3 ] == danom2. axes[ 1 : 3 ]
112102 @test all (map (isequal,danom. data,danom2. data))
113103
114104 ncf = string (tempname ()," .nc" )
@@ -118,8 +108,8 @@ using DiskArrayTools: DiskArrayStack
118108 # Test exportcube
119109 @test ncread (ncf," lon" ) == 10.125 : 0.25 : 10.875
120110 @test ncread (ncf," lat" ) == 50.875 : - 0.25 : 50.125
121- @test ncgetatt (ncf," time " ," units" ) == " days since 1980-01-01"
122- @test getAxis (" time " ,danom). values .- DateTime (1980 ) == Millisecond .(Day .(ncread (ncf," time " )))
111+ @test ncgetatt (ncf," Time " ," units" ) == " days since 1980-01-01"
112+ @test getAxis (" Time " ,danom). val .- DateTime (1980 ) == Millisecond .(Day .(ncread (ncf," Time " )))
123113
124114 anc = replace (ncread (ncf," gross_primary_productivity" )[:,:,:],- 9999.0 => missing )
125115 @test all (isequal .(anc, danom. data[:,:,:,1 ]))
131121
132122@testset " ESDC v3" begin
133123 c = esdd (res= " low" )
134- d = c. gross_primary_productivity[time= Date ( 2005 )] [443 : 444 ,139 : 140 ]
124+ d = c. gross_primary_productivity[time= DD . Near ( DateTime ( 2005 ))] . data [443 : 444 ,139 : 140 ]
135125 d == Float32[3.1673577 3.7342484 ; 3.3267372 4.0305696 ]
136126
137127 c = esdd (res= " tiny" )
138- c. gross_primary_productivity[time= Date ( 2005 )] [44 ,14 ] == 2.3713999f0
128+ c. gross_primary_productivity[time= DD . Near ( DateTime ( 2005 ))] . data [44 ,14 ] == 2.3713999f0
139129end
0 commit comments