@@ -8,8 +8,8 @@ using IntervalSets: Interval, (..)
88using CFTime: timedecode, timeencode, DateTimeNoLeap, DateTime360Day, DateTimeAllLeap
99using YAXArrayBase
1010using YAXArrayBase: iscontdimval, add_var
11- using DiskArrayTools: CFDiskArray, ConcatDiskArray
12- using DiskArrays: DiskArrays, GridChunks
11+ using DiskArrayTools: CFDiskArray, diskstack
12+ using DiskArrays: DiskArrays, GridChunks, ConcatDiskArray
1313using Glob: glob
1414using DimensionalData: DimensionalData as DD
1515
@@ -331,7 +331,17 @@ testrange(x::AbstractArray{<:TimeType}) = x
331331
332332testrange(x:: AbstractArray{<:AbstractString} ) = x
333333
334- _glob(x) = startswith(x, " /" ) ? glob(x[2 : end ], " /" ) : glob(x)
334+
335+ # This is a bit unfortunate since it will disallow globbing hierarchies of directories,
336+ # but necessary to have it work on both windows and Unix systems
337+ function _glob(x)
338+ if isabspath(x)
339+ p, rest = splitdir(x)
340+ glob(rest,p)
341+ else
342+ glob(x)
343+ end
344+ end
335345
336346open_mfdataset(g:: AbstractString ; kwargs... ) = open_mfdataset(_glob(g); kwargs... )
337347open_mfdataset(g:: Vector{<:AbstractString} ; kwargs... ) =
@@ -341,7 +351,7 @@ function merge_new_axis(alldatasets, firstcube,var,mergedim)
341351 newdim = DD. rebuild(mergedim,1 : length(alldatasets))
342352 alldiskarrays = map(ds-> ds. cubes[var]. data,alldatasets). data
343353 newda = diskstack(alldiskarrays)
344- newdims = (DD. dim (firstcube). .. ,newdim)
354+ newdims = (DD. dims (firstcube). .. ,newdim)
345355 YAXArray(newdims,newda,deepcopy(firstcube. properties))
346356end
347357function merge_existing_axis(alldatasets,firstcube,var,mergedim)
0 commit comments