dathomog {climate.plot} | R Documentation |
Homogenizes daily climate data from two data sets into one data set.
dathomog(dat1, dat2, dat, by = "date", rm.id = TRUE, plot = FALSE) # where both dat1 and dat2 are data.frame objects dathomog(dat1, dat2, ...) # where either dat1 or dat2 is a data.frame, and the other an id dathomog(dat1, dat2, dat, ...) # both dat1 and dat2 are an id in dat dathomog(dat1, dat2, dat, ...)
dat1 |
data.frame or an id within dat ; 1st selection |
dat2 |
data.frame or an id within dat ; 2nd selection |
dat |
data.frame with id column (supply if any of dat1 or dat2 are IDs) |
by |
name of common column, usually ‘date’, which is of class Date |
rm.id |
logical ; strip id column out of resulting data frame |
plot |
logical ; produce cross-plots and correlation statistics of the variables between the two data sets |
... |
optional args |
Data from dat1
has priority over dat2
. Where data from dat1
is either NA
or missing (outside of range), data from dat2
will be used (if available). Parameters will be homogenized where their names are identical, found using names
.
The cross-plots of the data are shown only for interest. They show useful correlation statistics, and a best-fit line using perpendicular offsets (which are preferred in this case over traditional linear regression). At some point, the equations for this line may be used to adjust the values from dat2
, however this can always be done externally to this function by pre-processing dat2
.
Returns a data.frame
of climate data required by most functions in climate.plot. Parameter names of the structure are found by a union
of the names of dat1
and dat2
. The id
column is removed if rm.id = TRUE
.
Weather stations should be sufficiently close enough to approximate the same weather. This distance depends on the spatial distance and local climatology.
M.W. Toews
http://mathworld.wolfram.com/LeastSquaresFittingPerpendicularOffsets.html
data(mscdata) plot.year(mscdata,id=2100630) plot.year(mscdata,id=1108447) newdata <- dathomog(2100630,1108447,mscdata) plot.year(newdata) message("This is a rather poor example, since the two stations are") message("nowhere near each other")