Skip to content
Closed
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions src/DatasetAPI/Datasets.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ module Datasets
import ..Cubes: Cubes, YAXArray, concatenatecubes, CleanMe, subsetcube, copy_diskarray, setchunks, caxes, readcubedata, cubesize, formatbytes
using ...YAXArrays: YAXArrays, YAXDefaults, findAxis
using DataStructures: OrderedDict, counter
using Dates: Day, Hour, Minute, Second, Month, Year, Date, DateTime, TimeType, AbstractDateTime, Period
using Dates: Day, Hour, Minute, Second, Month, Year, Date, DateTime, TimeType, AbstractDateTime, Period, Dates
using Statistics: mean
using IntervalSets: Interval, (..)
using CFTime: timedecode, timeencode, DateTimeNoLeap, DateTime360Day, DateTimeAllLeap
using CFTime: timedecode, timeencode, DateTimeNoLeap, DateTime360Day, DateTimeAllLeap, CFTime
using YAXArrayBase
using YAXArrayBase: iscontdimval, add_var
using DiskArrayTools: CFDiskArray, diskstack
Expand Down Expand Up @@ -273,6 +273,12 @@ function collectdims(g)
outd
end

function round_datetime(dt)
origin = CFTime._origin_period(dt)
ms = Dates.Millisecond(round(Int, (dt.instant + origin + CFTime.DATETIME_OFFSET).duration))
return DateTime(CFTime.UTInstant{Dates.Millisecond}(ms))
end

function toaxis(dimname, g, offs, len)
axname = Symbol(dimname)
if !haskey(g, dimname)
Expand All @@ -282,7 +288,8 @@ function toaxis(dimname, g, offs, len)
aratts = get_var_attrs(g, dimname)
if match(r"^(days)|(hours)|(seconds)|(months) since",lowercase(get(aratts,"units",""))) !== nothing
tsteps = try
timedecode(ar[:], aratts["units"], lowercase(get(aratts, "calendar", "standard")))
dec = timedecode(ar[:], aratts["units"], lowercase(get(aratts, "calendar", "standard")), prefer_datetime=false)
prefer_datetime && round_datetime.(dec)
catch
ar[:]
end
Expand Down
Loading