# HG changeset patch # User abarth93 # Date 1436344626 0 # Node ID f4b39e33e0d000cf52259d032d946cce52c12186 # Parent 7c7960da6a7646a02ccba06634fdc8b8b8b2a67d make time units more flexible diff -r 7c7960da6a76 -r f4b39e33e0d0 extra/ncArray/inst/ncreadtime.m --- a/extra/ncArray/inst/ncreadtime.m Wed Jul 08 08:06:05 2015 +0000 +++ b/extra/ncArray/inst/ncreadtime.m Wed Jul 08 08:37:06 2015 +0000 @@ -7,7 +7,7 @@ function t = ncreadtime(filename,varname) -t = ncread(filename,varname); +t = double(ncread(filename,varname)); units = ncreadatt(filename,varname,'units'); [t0,f] = nctimeunits(units); diff -r 7c7960da6a76 -r f4b39e33e0d0 extra/ncArray/inst/nctimeunits.m --- a/extra/ncArray/inst/nctimeunits.m Wed Jul 08 08:06:05 2015 +0000 +++ b/extra/ncArray/inst/nctimeunits.m Wed Jul 08 08:37:06 2015 +0000 @@ -18,7 +18,7 @@ l = strfind(u,'since'); if length(l) ~= 1 - error(['time units sould expect one "since": "' u '"']); + error(['time units sould expect one "since": "' u '"']); end period = strtrim(lower(u(1:l-1))); @@ -27,39 +27,43 @@ if strcmp(period,'millisec') || strcmp(period,'msec') f = 1/(24*60*60*1000); elseif strcmp(period,'second') || strcmp(period,'seconds') ... - || strcmp(period,'s') || strcmp(period,'sec') + || strcmp(period,'s') || strcmp(period,'sec') f = 1/(24*60*60); elseif strcmp(period,'minute') || strcmp(period,'minutes') ... - || strcmp(period,'min') + || strcmp(period,'min') f = 1/(24*60); elseif strcmp(period,'hour') || strcmp(period,'hours') ... - || strcmp(period,'hr') + || strcmp(period,'hr') f = 1/24; elseif strcmp(period,'day') || strcmp(period,'days') f = 1; elseif strcmp(period,'week') || strcmp(period,'weeks') f = 1/(24*60*60*7); elseif strcmp(period,'year') || strcmp(period,'years') ... - strcmp(period,'yr') + strcmp(period,'yr') f = year_in_days; elseif strcmp(period,'month') || strcmp(period,'months') ... - strcmp(period,'mon') + strcmp(period,'mon') f = year_in_days/12; else error(['unknown units "' period '"']); end - + -try - t0 = datenum(reference_date,'yyyy-mm-dd HH:MM:SS'); -catch +if strcmp(reference_date,'1900-01-01 00:00:0.0') + t0 = datenum(1900,1,1); +else try - t0 = datenum(reference_date,'yyyy-mm-ddTHH:MM:SS'); - catch + t0 = datenum(reference_date,'yyyy-mm-dd HH:MM:SS'); + catch try - t0 = datenum(reference_date,'yyyy-mm-dd'); - catch - error(['date format is not recogized ' reference_date]) + t0 = datenum(reference_date,'yyyy-mm-ddTHH:MM:SS'); + catch + try + t0 = datenum(reference_date,'yyyy-mm-dd'); + catch + error(['date format is not recogized ' reference_date]) + end end end end