Skip to content
Prev 326974 / 398502 Next

Masking oceans using polypath

Hi

There are a couple of problems:

1.
Your 'outline' is much bigger than it needs to be.  For example, the 
following produces just Australia ...

outline <- map("worldHires", regions="Australia", exact=TRUE,
                plot=FALSE) # returns a list of x/y coords

2.
The outline you get still has NA values in it (the coastline of 
Australia in this database is a series of distinct lines;  I don't know 
why that is).  Fortunately, you can stitch Australia back together again 
like this ...

subset <- !is.na(outline$x)
polypath(c(outline$x[subset], NA, c(xbox, rev(xbox))),
          c(outline$y[subset], NA, rep(ybox, each=2)),
          col="light blue", rule="evenodd")

With those two changes, I get a much better result.  You may want to 
fiddle a bit more to add Tasmania and bits of PNG and Indonesia back in 
the picture OR you could replace these problems with a different 
approach and use a more sophisticated map outline via a "shapefile" (see 
the 'sp' package and the 'maptools' package and possibly the R-sig-geo 
mailing list).

Hope that helps.

Paul
On 07/16/13 23:17, Louise Wilson wrote: