<HTML dir=ltr><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<STYLE id=owaParaStyle type=text/css></STYLE>

<META name=GENERATOR content="MSHTML 8.00.6001.19222"></HEAD>
<BODY style="MARGIN: 4px 4px 1px; FONT: 10pt Tahoma" ocsi="0" fpstyle="1">
<DIV>Simon,</DIV>
<DIV>Thank you. Yes, that does the trick. Nice and clean. Before starting, this quote from the reclass help page</DIV>
<DIV> </DIV>
<DIV>"For simple cases, the functions <CODE><A href="http://127.0.0.1:15603/library/raster/help/subs">subs</A></CODE> and <CODE><A href="http://127.0.0.1:15603/library/raster/help/cut">cut</A></CODE> may be more efficient." </DIV>
<DIV> </DIV>
<DIV>led me down the path towards cut and subs and then I never returned.  I obviously should have. </DIV>
<DIV> </DIV>
<DIV>Thanks again,</DIV>
<DIV>Tim</DIV>
<DIV> </DIV>
<DIV><BR>>>> "O'Hanlon, Simon J" <simon.ohanlon@imperial.ac.uk> 6/14/2012 9:30 AM >>><BR></DIV>
<DIV style="FONT-FAMILY: Tahoma; DIRECTION: ltr; COLOR: #000000; FONT-SIZE: 10pt">Hi Tim, 
<DIV>Try reclass()</DIV>
<DIV><BR></DIV>
<DIV>
<P class=p1><SPAN class=s1>r </SPAN><-<SPAN class=s1> </SPAN>raster(<SPAN class=s1>ncol</SPAN>=<SPAN class=s2>100</SPAN>,<SPAN class=s1> nrow</SPAN>=<SPAN class=s2>100</SPAN>)</P>
<P class=p1><SPAN class=s1>r</SPAN>[]<SPAN class=s1> </SPAN><-<SPAN class=s1> </SPAN>round(runif(ncell(<SPAN class=s1>r</SPAN>))<SPAN class=s1> </SPAN>*<SPAN class=s1> </SPAN><SPAN class=s2>10</SPAN>)</P>
<P class=p1><SPAN class=s1>class</SPAN> <- matrix(c(<SPAN class=s2>0</SPAN>,<SPAN class=s2>3.5</SPAN>,<SPAN class=s2>0</SPAN>,<SPAN class=s2>3.5</SPAN>,<SPAN class=s2>10</SPAN>,<SPAN class=s2>1</SPAN>),<SPAN class=s1>nrow</SPAN>=<SPAN class=s2>2</SPAN>,<SPAN class=s1>byrow</SPAN>=<SPAN class=s3>T</SPAN>)</P>
<P class=p2><SPAN class=s4>rc </SPAN><SPAN class=s5><-</SPAN>reclass(<SPAN class=s1>r</SPAN>,<SPAN class=s1> class</SPAN>)</P>
<P class=p2>rc</P>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>HTH,</DIV>
<DIV><BR></DIV>
<DIV>Simon<BR>
<DIV class=BodyFragment><FONT size=2>
<DIV class=PlainText><BR>--------------------------------<BR>Simon O'Hanlon, BSc MSc<BR>Department of Infectious Disease Epidemiology<BR>Imperial College London<BR>St. Mary's Hospital<BR>London<BR>W2 1PG</DIV></FONT></DIV></DIV>
<DIV style="FONT-FAMILY: Times New Roman; COLOR: #000000; FONT-SIZE: 16px">
<HR tabIndex=-1>

<DIV style="DIRECTION: ltr" id=divRpF713713><FONT color=#000000 size=2 face=Tahoma><B>From:</B> r-sig-geo-bounces@r-project.org [r-sig-geo-bounces@r-project.org] on behalf of Tim Howard [tghoward@gw.dec.state.ny.us]<BR><B>Sent:</B> 14 June 2012 14:02<BR><B>To:</B> r-sig-geo@r-project.org<BR><B>Subject:</B> [R-sig-Geo] continuous raster to binary<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>
<DIV>All,</DIV>
<DIV>I'd like to convert a continuous raster to binary (0, 1). Here's what I've come up with</DIV>
<DIV> </DIV>
<DIV>library(raster)</DIV>
<DIV> </DIV>
<DIV>#build the sample raster<BR>r <- raster(ncol=100, nrow=100)<BR>r[] <- round(runif(ncell(r)) * 10)<BR></DIV>
<DIV>#set up a cut point, cut it</DIV>
<DIV>ctpts <- c(0,3.5,10)<BR>rc <- cut(r,breaks=ctpts)</DIV>
<DIV> </DIV>
<DIV>#since the result from cut was a raster with values c(1,2), use subs to change to c(0,1)<BR>subdf <- data.frame(from=c(1,2), to=c(0,1))<BR>rs <- subs(rc, subdf, subsWithNA=TRUE)<BR>rs</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>My questions:</DIV>
<DIV>1. Is there a more efficient way? (I'll be doing this to many large rasters)</DIV>
<DIV>2. Using 32-bit R, subs bails with a memory error, even if a file is specified (cut runs fine). I can move to 64-bit R on a different machine, but it would be nice to be able to run it on this 32-bit machine. Any suggestions? </DIV>
<DIV> </DIV>
<DIV>Thanks in advance, </DIV>
<DIV>Tim</DIV></DIV></DIV></DIV></DIV></BODY></HTML>