>>>>> "RB" == Roger Bivand <roger.biv...@nhh.no> >>>>> on Fri, 20 Feb 2009 09:55:52 +0100 (CET) writes:
RB> On Wed, 18 Feb 2009, Greg Snow wrote: >> There is a shapefile (works well with maptools and sp packages) with a >> world map and time zone information at: >> http://openmap.bbn.com/data/shape/timezone/ >> >> It has the info needed to color the countries or parts of countries >> based on time zone, but does not have polygons for time zone stripes >> over the oceans. RB> In fact, this shapefile provoked an update in sp, because it is really RB> buggy. I'm happy to have provoked progress ;-) :-) RB> There are straight-line polygons and many others have multiple RB> repeated coordinates (the sp update fixes these to retain finite label RB> points), but it doesn't fix the absence of most of the data (several DBF RB> columns are empty - checked in oocalc): >> library(rgdal) >> tz <- readOGR(".", "WrldTZA") RB> OGR data source with driver: ESRI Shapefile RB> Source: ".", layer: "WrldTZA" RB> with 1890 rows and 11 columns RB> Feature type: wkbPolygon with 2 dimensions RB> Warning messages: RB> 1: In Polygon(cbind(jG[[1]], jG[[2]])) : RB> Non-finite label point detected and replaced RB> 2: In Polygon(cbind(jG[[1]], jG[[2]])) : RB> Non-finite label point detected and replaced RB> 3: In Polygon(cbind(jG[[1]], jG[[2]])) : RB> Non-finite label point detected and replaced >> names(tz) RB> [1] "FIPS" "NAME" "COMMENTS" "REGION" "LAT" "LON" RB> [7] "TZ" "GMTOFF" "LOCALSUM" "OFFSET" "CLASSES" >> summary(tz$GMTOFF) RB> NA's RB> 1890 >> summary(tz$TZ) RB> NA's RB> 1890 >> summary(tz$OFFSET) RB> 0 \xff0 -1 \xff-1 \xff+1 -10 +10 RB> 25 57 13 7 181 24 38 RB> \xff+10 +10.5 +11 +11.5 +12 \xff+12 +2 RB> 24 1 19 3 12 13 1 RB> \xff-2 \xff+2 +3 \xff-3 \xff+3 -3.5 \xff+3.5 RB> 4 90 59 146 25 7 3 RB> -4 +4 \xff-4 \xff+4 \xff+4.5 -5 +5 RB> 56 4 165 8 1 130 13 RB> \xff-5 \xff+5 \xff+5.5 \xff+5.75 -6 +6 \xff-6 RB> 12 3 16 1 77 10 16 RB> \xff+6 \xff+6.5 -7 +7 \xff+7 -8 +8 RB> 12 15 63 98 14 61 68 RB> \xff-8 \xff+8 -9 +9 \xff+9 +9.5 NA's RB> 3 56 82 97 13 11 33 RB> where my locale is UTF-8. RB> I wrote to Martin offline that a more recent link is: RB> http://efele.net/maps/tz/world/ RB> and I've put tz_world.rda on http://spatial.nhh.no/R/etc, but it is not RB> line generalised, so it is very large and takes a long time to display - RB> they've kept a lot of boundary detail. indeed. But thanks a lot to make it available!! RB> Because TZ follow administrative boundaries, they are actually hard to do RB> right. Maybe a raster version might help more if vector precision isn't RB> needed? as long as we can add a couple of cities (using geographical coordinates) to it, afterwards, that's fine. When I load your (above URL) tz file and plot it, I get the impression that much time is spent on thousands of very small polygons; consequently, if I'd want a ``subset'' of tz that only contains the polygons that correspond to areas larger than, say, 100 km^2, how could I do that ? Looking at the sp-object: ------------------------------------------------------------------------ load("tz_world.rda") ## Look a bit at the 'tz' object: str(tz, max=2) ## Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots ## ..@ data :'data.frame': 27704 obs. of 1 variable: ## .. ..- attr(*, "data_types")= chr "C" ## ..@ polygons :List of 27704 ## ..@ plotOrder : int [1:27704] 24471 111 14349 24641 1598 10291 22351 ... ## ..@ bbox : num [1:2, 1:2] -180 -90 180 83.6 ## .. ..- attr(*, "dimnames")=List of 2 ## ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots ltz <- sapply(slotNames(tz), slot, object=tz) sapply(ltz, object.size) ## data polygons plotOrder bbox proj4string ## 1690424 110706296 110856 704 704 str(t...@data[,1]) ## Factor w/ 382 levels "Africa/Abidjan",..: 307 307 307 307 307 307 ... str(head(t...@polygons[1:3]), max=1) ## List of 3 ## $ :Formal class 'Polygons' [package "sp"] with 5 slots ## $ :Formal class 'Polygons' [package "sp"] with 5 slots ## $ :Formal class 'Polygons' [package "sp"] with 5 slots ------------------------------------------------------------------------ and then ask for showMethods(class = "Polygons") the result is not so revealing to me; but of course, I'm really an sp greenhorn. How could I compute areas? Regards, Martin RB> Roger >> >> Hope this helps, >> >> RB> -- RB> Roger Bivand RB> Economic Geography Section, Department of Economics, Norwegian School of RB> Economics and Business Administration, Helleveien 30, N-5045 Bergen, RB> Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43 RB> e-mail: roger.biv...@nhh.no _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo