[R-sig-Geo] R: suggestion to write a more elegant code

Alessandro alessandro.montaghi at unifi.it
Fri Oct 17 02:56:05 CEST 2008


Hi Thanx Alex and Mike

SORRY I am a brand-new

I tried this formula


for (pow in seq(1.5, 4.0, by = 0.1))
     rsaga.grid.calculus(in.grids = c("DCM_1.sgrd"),
          out.grid = "DCM_1_power15.sgrd",
          formula = paste("a^", pow, sep=""))

but the code create only one raster (DCM_1_power15.sgrd)

with this formula I have this error

power<- seq(1.5, 4.0, by=0.1)
for (i in 1:length(power)){
rsaga.grid.calculus(in.grids = c("DCM_1.sgrd"),out.grid
=paste("DCM_1_power"power[i]*10,".sgrd",sep=""), formula = ~^power[i])
}

ERROR message


power<- seq(1.5, 4.0, by=0.1)
> for (i in 1:length(power)){
+ rsaga.grid.calculus(in.grids = c("DCM_1.sgrd"),out.grid
=paste("DCM_1_power"power[i]*10,".sgrd",sep=""), formula = ~^power[i])
Errore: unexpected symbol in:
"for (i in 1:length(power)){
rsaga.grid.calculus(in.grids = c("DCM_1.sgrd"),out.grid
=paste("DCM_1_power"power"
> }
Errore: unexpected '}' in "}"
> 
>



-----Messaggio originale-----
Da: Alexander Brenning [mailto:brenning at uwaterloo.ca] 
Inviato: giovedì 16 ottobre 2008 17.01
A: Alessandro
Cc: r-sig-geo at stat.math.ethz.ch
Oggetto: Re: [R-sig-Geo] suggestion to write a more elegant code

Hi,

first, your formulas should read ~a^1.4 etc.; 'a' represents the first 
(and in your case only) grid in in.grids.

Instead of using a formula, you can use a character string:
   formula = "a^1.5" etc.,
so you just have to 'paste' things together; this should work:

for (pow in seq(1.5, 4.0, by = 0.1))
     rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),
          out.grid = "DCM_1_power15.sgrd",
          formula = paste("a^", pow, sep=""))

Cheers
  Alex



Alessandro wrote:
> Hi all,
> 
>  
> 
> I need a suggestion to write this code in R more elegant . I have a  DSM
> grid and I need to create a different grid raisin to different power.
> 
>  
> 
>  
> 
> Thanx Ale
> 
>  
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^1.5)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power16.sgrd", formula = ~^1.6)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power17.sgrd", formula = ~^1.7)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power18.sgrd", formula = ~^1.8)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power19.sgrd", formula = ~^1.9)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^2.0)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power20.sgrd", formula = ~^2.1)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^2.2)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^2.3)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^2.4)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^2.5)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^1.6)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^2.7)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^2.8)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^2.9)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.0)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.1)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.2)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.3)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.4)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.5)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.6)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.7)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.8)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^3.9)
> 
> rsaga.grid.calculus(in.grids = c("DSM_1.sgrd"),out.grid =
> "DCM_1_power15.sgrd", formula = ~^4.0)
> 
> 
> 	[[alternative HTML version deleted]]
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
> 
> 

-- 
Alexander Brenning
brenning at uwaterloo.ca - T +1-519-888-4567 ext 35783
Department of Geography and Environmental Management
University of Waterloo
200 University Ave. W - Waterloo, ON - Canada N2L 3G1
http://www.fes.uwaterloo.ca/geography/faculty/brenning/




More information about the R-sig-Geo mailing list