On 11/28/2011 04:06 PM, Katrina Bennett wrote:
Sorry for not being more clear.
I'll try to explain again.
I have a rather large DEM and I need to scale daily temperature values for
10 years.
I am using the sapply function to adjust temperatures (t.mean.1.c) based on
lapse rates across DEM points (cdem) which meet the condition of elevation
being greater than 300m. Below ~300m the lapse rate calculate changes
because temperatures decrease with elevation. Above ~300m the lapse rates
calculation must account for an inversion, where temperature increases with
elevation.
What I would like as a result is the values of the DEM which are lower than
300m to retain a generic lapse rate adjustment, and the DEM values great
than 300 to be treating using a different function.
...
Hi Katrina,
If cdem is a matrix (and it looks like a vector in your example), you
could try:
le300<-function(elevation,temp) return(temp+elevation*0.0065)
gt300<-function(elevation,temp) return(temp-elevation*0.0065)
cdem[cdem<=300]<-le300(cdem[cdem<=300],t.mean.1.c[cdem<=300])
cdem[cdem>300]<-gt300(cdem[cdem>300],t.mean.1.c[cdem>300])
where le300 is the correction for altitudes less than or equal to 300M
and gt300 is the one for altitudes greater than 300M. This works for me
with a toy function. However, I don't get the same numbers as you and
wonder if your function is doing the same as the ones I use above. Also,
why 300m in the text and 900m in the functions? Are we mixing up feet
and meters?
Jim
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.