Thanks Tom,  I'm working with NLCD2006,  switching to factors was my next
option.
Thanks for the recipe. I'll email you, shortly

Steve

On Mon, Sep 24, 2012 at 3:06 PM, Tom Philippi <tephilippi@gmail.com> wrote:

> Steven--
>
> I'm sure that there are several ways to do this, but I convert the
> thematic raster to be a factor, then use the levels of that factor to
> subset from my full color palette and plot the factor raster.
>
> In my case I have a seamless geoTiff of NLCD 2006 Level1 data (NPS
> makes NLCD, NALC, and CCAP data available as seamless geoTiffs, see
> http://science.nature.nps.gov/im/monitor/npscape/index.cfm).  The tifs
> come with a RAT (Raster Attribute Table) in the corresponding
> *.tif.vat.dbf file, which gives class numbers, names, and Red Green
> Blue values for our universal color scheme.  I read that into a
> dataframe named NLCDclassesL1, and generate a Color value via rgb:
>
> NLCDclassesL1 <-
>
> foreign::read.dbf("E:/NPScape_2012/Seamless/GeoTIFFs/Landcover_Level1_NLCD2006.tif.vat.dbf",
> as.is=TRUE)
> ]
> NLCDclassesL1$Color <- with(NLCDclassesL1,rgb(Red,Green,Blue))
>
>
> If you don't have a RAT with colors defined, you can create your own
> dataframe with ID (numeric, matching the values in your grid) and
> Color with records for all possible classes, with ID==0 Color=NA for
> the missing value class outside your polygon.
>
> AOAc is the result of cropping the large raster to the extent of my
> AOA polygon, then masking via rasterize().  It is still numeric, so I
> create AOAf as thematic, generate the RAT via levels(), and glue on
> the appropriate thematic colors and labels using match:
>
> AOAf <- as.factor(AOAc)
> rat <- levels(AOAf)[[1]]  # also has statistics of pixel counts
> rat$landcover <-  NLCDclassL1$CLASSNAME[match(rat$ID,NLCDclassL1$Value)]
> rat$Color <- NLCDclassL1$Color[match(rat$ID,NLCDclassL1$Value)]
>
> plot(AOAf,col=rat$Color)
>
> Note that you can associate your RAT with the raster file via levels()
> <- or possibly ratify(), but the documentation is sketchy, so I don't
> know how to get the right colors from an associated RAT file.
>
> I'm still playing with trellis.par.set() to map the colors in spplot().
>
> I hope that this helps; email for full example code.
>
> Tom 2
>
>
>
>
>
>
> On Sun, Sep 23, 2012 at 10:27 PM, steven mosher <moshersteven@gmail.com>
> wrote:
> > I'm plotting a series ( a few hundred )  of  rasters that are filled with
> > landcover data,   integers
> >
> > Normally, these are  integers such as
>  c(11,12,21,22,23,31,32,41,42,43,51,
> >  etc etc)
> > where each value corresponds to a landcover type.
> >
> > I want all of these plots to have consistent colors and legends. However,
> > not every plot has
> > a complete set of land cover types.   What I tried was the following.
> >
> > I took all the landcover values in the raster and reclassified them so
> that
> > I got a  seq from
> > 1..n.   and then I made a vector of colors the same length
> >
> > However, when a land type if missing I still get   errors.  I tried using
> >  breaks() and that
> > helped a little but I would still get  errors
> >
> > Here is a toy example
> >
> > r <- raster(nrow=10,ncol=10)
> > #  slot in some values
> > r[1:12]<-0
> > r[13:34]<-1
> > r[35:76]<-2
> > r[77:95]<-3
> > r[96:100]<-4
> >
> > #  define colors
> > myColors <- c("black","green","orange","pink","blue")
> >
> > plot(r,col=myColors)
> >
> > #  swicth the 4 to 0
> > r <- subs(r,data.frame(Id= c(0,1,2,3,4), v=c(0,1,2,3,0)))
> >
> > plot(r,col=myColors)
> >
> > Another way to ask this is how do I get the function to recognize that I
> > watch categorical colors instead of
> > continuous ones. or should I change the colors dynamically according to
> the
> > actual values found in that
> > particular map.
> >
> > I tried  breaks() no joy
> >
> >
> > Steve
> >
> >         [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > R-sig-Geo@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

	[[alternative HTML version deleted]]

