[R-sig-Geo] Map2points() substitute for class "map"

Roger Bivand Roger.Bivand at nhh.no
Mon Feb 12 21:27:23 CET 2007


On Mon, 12 Feb 2007, Roger Bivand wrote:

> On Mon, 12 Feb 2007, Fernando Mayer wrote:
> 
> > Roger, thanks for your explanations. Thanks also to Edzer Pebesma who 
> > provided soma additional improvements. However, now I think I have 2 
> > problems, as follows:
> > 
> > Roger Bivand escreveu:
> > 
> > > If you comment out the lines:
> > > 
> > > #  if(missing(map)) stop("map object is missing.")
> > > #  if(!inherits(map, "Map")) stop("Map.obj must be of class Map")
> > > #  if(missing(variable)) stop("variable to be plot is missing")
> > > 
> > > in ProportionalSymbolMap(), and rename the map argument as verts, you can 
> > > pass the coordinates in:
> > > 
> > > library(maps)
> > > map <- map("county", "illinois", fill=TRUE, col="transparent", plot=FALSE)
> > > library(maptools)
> > > str(map)
> > > ID <- substring(map$names, 10)
> > > ill <- map2SpatialPolygons(map, ID, proj4string=CRS("+proj=longlat"))
> > > plot(ill, axes=TRUE)
> > > x <- runif(102)
> > > ProportionalSymbolMap_rev(coordinates(ill), x, max.size=0.3)
> > 
> > # Problem 1
> > 
> > Doing exactly this, I have an error in
> > 
> >  > plot(ill, axes=TRUE)
> > Error in as.vector(x, "double") : cannot coerce to vector
> > 
> > and I was not able to find out what is going wrong. However if I do
> > 
> >  > map("county", "illinois", fill=TRUE, col="transparent", plot=T)
> > 
> > before all that code code and ignore the error, I can see the map with 
> > the proportional symbols. So I don't know exactly how long this error 
> > influence on what was to be the point here. But, I understood 
> > something new here and know comes the
> 
> At a distance it's difficult to say - but from #2 below, it doesn't 
> matter, because the map is only a background, it does nothing itself.
> 
> > 
> > # Problem 2
> > 
> > As far as I could understand, the polygon IDs are used to identify 
> > where the symbols are to be plotted (after the processment with 
> > map2SpatialPolygons()). Maybe it was my mistake haven't said this 
> > before, but what I'm trying to do is to plot the symbols not in the 
> > land, but in the ocean. So I think there's no polygon IDs in this case 
> > isn't?
> 
> Well, using map() to access boundary data is usually to attach data to the
> polygons, but your case is different, you only need a background. My first
> idea would be to see whether the PBSmapping package already has what you
> need - they are Northern Pacific, but that doesn't have to hurt for your
> South Atlantic location. 
> 
> I think that I would try to get the coastlines you need from map() or
> Rgshhs() in maptools (possibly with a higher resolution GSHHS database),
> and convert them to a PBSmapping object. The reason for suggesting
> PBSmapping is that the functions provided there are for fisheries
> research, and so may be closer to you than more general functions.
> 
> library(maptools)
> gshhs.c.b <- system.file("share/gshhs_c.b", package="maptools")
> SA <- Rgshhs(gshhs.c.b, xlim=c(295,340), ylim=c(-10,-55))$SP

Of course:

SA <- Rgshhs(gshhs.c.b, xlim=c(295,340), ylim=c(-55, -10))$SP

Sorry!

> plot(SA, axes=TRUE, col="grey")
> SA_PBS <- SpatialPolygons2PolySet(SA)
> plotMap(SA_PBS)
> 
> I found the map on page 19 of their User Guide quite like what you are 
> after, but they choose to colour-fill the quadrats.
>  
> The same things can be done with generic sp class objects too.
> 
> Roger
> 
> > 
> > What I'm trying to do exactly is maps to plot fishery data, with the 
> > symbols proportional to catch, effort, etc. I was trying something 
> > like this [1], which is a function using map(), degAxis(), quantile(), 
> > points(), legend(), etc. However I would like to improve this, mainly 
> > the legend and the way the symbols are plotted. That's why I was 
> > trying the ProportionalSymbolMap(). But now, because of the polygon 
> > IDs I'm not sure anymore how this could be done.
> > 
> > [1] http://img468.imageshack.us/img468/9397/rplot005us9.png
> > 
> > Thanks again for the explanations,
> > 
> 
> 

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no




More information about the R-sig-Geo mailing list