[24307] | 1 | Index: ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m (nonexistent)
|
---|
| 4 | +++ ../trunk-jpl/src/m/contrib/morlighem/ismip6/date2decyear.m (revision 24068)
|
---|
| 5 | @@ -0,0 +1,30 @@
|
---|
| 6 | +function decyear = date2decyear(datein)
|
---|
| 7 | +%DATE2DECYEAR - convert date to decimal year (for ISSM)
|
---|
| 8 | +%
|
---|
| 9 | +% input argument must be a serial date (see datenum)
|
---|
| 10 | +%
|
---|
| 11 | +% Usage:
|
---|
| 12 | +% year = date2decyear(datein)
|
---|
| 13 | +%
|
---|
| 14 | +% Example:
|
---|
| 15 | +% year = date2decyear(datenum('19-May-2000'))
|
---|
| 16 | +
|
---|
| 17 | +
|
---|
| 18 | +%Make table from date coming in
|
---|
| 19 | +timevec = datevec(datein);
|
---|
| 20 | +
|
---|
| 21 | +%Set everything in the date vector to 0 except for the year
|
---|
| 22 | +%to compute the date for the beginninf of the year
|
---|
| 23 | +timevec(:,2:end) = 0;
|
---|
| 24 | +dateYearBegin = datenum(timevec);
|
---|
| 25 | +
|
---|
| 26 | +%Compute date of end of year
|
---|
| 27 | +timevec2 = timevec;
|
---|
| 28 | +timevec2(:,1) = timevec2(:,1) + 1;
|
---|
| 29 | +dateYearEnd = datenum(timevec2);
|
---|
| 30 | +
|
---|
| 31 | +%Calculate the day of the year
|
---|
| 32 | +doy = datein - dateYearBegin;
|
---|
| 33 | +
|
---|
| 34 | +%Finally, we can create the decimal year time
|
---|
| 35 | +decyear = timevec(:,1) + (doy - 1) ./ (dateYearEnd - dateYearBegin);
|
---|
| 36 | Index: ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m
|
---|
| 37 | ===================================================================
|
---|
| 38 | --- ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m (nonexistent)
|
---|
| 39 | +++ ../trunk-jpl/src/m/contrib/morlighem/ismip6/decyear2date.m (revision 24068)
|
---|
| 40 | @@ -0,0 +1,23 @@
|
---|
| 41 | +function dateout = decyear2date(decyear)
|
---|
| 42 | +%DECYEAR2DATE - converts decimal year to serial date
|
---|
| 43 | +%
|
---|
| 44 | +% Usage:
|
---|
| 45 | +% dateout = decyear2date(decyear)
|
---|
| 46 | +%
|
---|
| 47 | +% Example:
|
---|
| 48 | +% dateout = decyear2date(2011.001)
|
---|
| 49 | +
|
---|
| 50 | +
|
---|
| 51 | +%Get year
|
---|
| 52 | +year = floor(decyear);
|
---|
| 53 | +fraction = mod(decyear,1);
|
---|
| 54 | +
|
---|
| 55 | +%Get date of beginning and end of year
|
---|
| 56 | +date0 = datenum(num2str(year),'yyyy');
|
---|
| 57 | +date1 = datenum(num2str(year+1),'yyyy');
|
---|
| 58 | +
|
---|
| 59 | +%Compute number of days in year
|
---|
| 60 | +numdays = date1 - date0;
|
---|
| 61 | +
|
---|
| 62 | +%Compute date
|
---|
| 63 | +dateout= date0 + fraction * numdays;
|
---|