On Thu, Sep 30, 2010 at 9:57 PM, Mathieu Basille <basi...@ase-research.org> wrote: > Dear Robert, > > I just understood the interest of 'crosstab' with 'mask', this is pretty > neat! Thanks for the suggestion. > > However, I can see some potential drawbacks with this approach: as my > objective is to describe each step (each segment), I should first cut > each 'SpatialLines' into a list of 'Lines', each 'Lines' being a segment > (and not the whole trajectory). I apology if I'm totally wrong, I'm not > that familiar with SpatialLines... > > But then, what about crossing/overlaping segments, i.e. several segments > that all fall in the same pixel (which usually happens a lot)? With > linesToRaster, only the last segment would be kept. So that I should run > independently the approach for each 'Line' (each segment) just to avoid > these crossings, and that would result in as many new rasters as the > number of segments (and I'm talking about hundreds of thousands here, > over large rasters). >
You are right, of course. I have added a function "lineValues" (akin to "polygonValues" that existed) to the raster package. This function should not have this problem. It is in the development version available from R-Forge, please try it if you can. Robert > > Basically, to rephrase my problem, here is what I want to achieve. Given > a set of points (say a SpatialPointsDataFrame, or SpatialLinesDataFrame, > or ltraj), I'd like to be able to compute new variables that give for > each point summaries or characteristics (e.g. proportion of each type of > the raster if it is categorical, or mean if is continuous) of the > segment from that point to the next (or previous, it doesn't matter). > > It seems to be a simple problem in terms of low-level functions > (segments over raster), but a complex one in terms of data structure (an > single object with a set of individual trajectories which are themselves > sets of segments). And I have to admit that I have some troubles going > from the former to the latter. > > Thanks again for your time, > Mathieu. > > > Le 2010-09-30 11:28, Robert J. Hijmans a écrit : >> Perhaps you can do something like >> >> r is a Raster* object >> line is a SpatialLines* object >> >> library(raster) >> rr <- linesToRaster(line, r) >> rm <- mask(r, rr) >> crosstab(rm, rr) >> >> Robert >> >> On Thu, Sep 30, 2010 at 5:46 AM, Mathieu Basille >> <basi...@ase-research.org> wrote: >>> Dear list members, >>> >>> I'm trying to compute characteristics along steps (i.e. segments between two >>> points), based on underlying raster maps. The steps originally come from >>> radiotracking data, converted to ltraj objects (adehabitat). The idea is to >>> compute (for example) the habitat composition corresponding to each step >>> instead of each points, as we are interesting in the movement path. >>> >>> I tried different solutions, as I would like to do it with R. I did not find >>> any solution using adehabitat (or the development versions adehabitatMA/LS); >>> 'join' only works for point characteristics, not steps. I also tried using >>> sp and SpatialLinesDataFrame, but overlay does not seem to work with >>> SpatialLines(DataFrame) and SpatialPixelsDataFrame: >>> >>> Error in function (classes, fdef, mtable) : >>> unable to find an inherited method for function "overlay", for signature >>> "SpatialPixelsDataFrame", "SpatialLinesDataFrame" >>> >>> I also investigated packages raster, trip, and rgeos, without success. Maybe >>> the low level functions of rgeos could be used, but it seems a bit out of my >>> skills (and time available) at the moment. >>> >>> Another solution might be to use spgrass6 in conjunction with GRASS, but I'm >>> not familiar enough with GRASS to judge if it is a viable alternative... >>> >>> I'd welcome any hints/thoughts on this question. >>> Sincerely, >>> Mathieu Basille. >>> >>> >>> -- >>> >>> ~$ whoami >>> Mathieu Basille, Post-Doc >>> >>> ~$ locate >>> Laboratoire d'Écologie Comportementale et de Conservation de la Faune >>> + Centre d'Étude de la Forêt >>> Département de Biologie >>> Université Laval, Québec >>> >>> ~$ info >>> http://ase-research.org/basille >>> >>> ~$ fortune >>> ``If you can't win by reason, go for volume.'' >>> Calvin, by Bill Watterson. >>> >>> _______________________________________________ >>> R-sig-Geo mailing list >>> R-sig-Geo@stat.math.ethz.ch >>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >>> > > -- > > ~$ whoami > Mathieu Basille, Post-Doc > > ~$ locate > Laboratoire d'Écologie Comportementale et de Conservation de la Faune > + Centre d'Étude de la Forêt > Département de Biologie > Université Laval, Québec > > ~$ info > http://ase-research.org/basille > > ~$ fortune > ``If you can't win by reason, go for volume.'' > Calvin, by Bill Watterson. > _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo