1
2R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out"
3Copyright (C) 2020 The R Foundation for Statistical Computing
4Platform: x86_64-pc-linux-gnu (64-bit)
5
6R is free software and comes with ABSOLUTELY NO WARRANTY.
7You are welcome to redistribute it under certain conditions.
8Type 'license()' or 'licence()' for distribution details.
9
10R is a collaborative project with many contributors.
11Type 'contributors()' for more information and
12'citation()' on how to cite R or R packages in publications.
13
14Type 'demo()' for some demos, 'help()' for on-line help, or
15'help.start()' for an HTML browser interface to help.
16Type 'q()' to quit R.
17
18> suppressPackageStartupMessages(library(rgdal))
19> load(system.file("etc/test_dfs.RData", package="rgdal"))
20> load(system.file("etc/obj_with_comments.RData", package="rgdal"))
21> Ps1_nc <- Ps1
22> comment(Ps1_nc) <- NULL
23> comment(slot(Ps1_nc, "polygons")[[1]]) <- NULL
24> drivers <- c("GeoJSON", "ESRI Shapefile")
25> drivers <- drivers[drivers %in% ogrDrivers()$name]
26> tfbase <- tempfile()
27> for (driver in drivers) {
28+ tf <- paste0(tfbase, driver, "P", sep=".")
29+ writeOGR(SpatialPolygonsDataFrame(P, data=df9), tf, "GeoJSON",
30+  driver=driver, verbose=TRUE)
31+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
32+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
33+ cat("P with driver:", driver, "\n")
34+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
35+ cat(" comment", isTRUE(all.equal(sapply(slot(rP, "polygons"), comment), sapply(slot(P, "polygons"), comment))), "\n")
36+ cat(" coords", isTRUE(all.equal(lapply(slot(P, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
37+ cat(" holes", isTRUE(all.equal(lapply(slot(P, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
38+ tf <- paste0(tfbase, driver, "Ph", sep=".")
39+ writeOGR(SpatialPolygonsDataFrame(Ph, data=df9), tf, "GeoJSON",
40+  driver=driver, verbose=TRUE)
41+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
42+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
43+ cat("Ph with driver:", driver, "\n")
44+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
45+ cat(" comment", isTRUE(all.equal(sapply(slot(rP, "polygons"), comment), sapply(slot(Ph, "polygons"), comment))), "\n")
46+ cat(" coords", isTRUE(all.equal(lapply(slot(Ph, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
47+ cat(" holes", isTRUE(all.equal(lapply(slot(Ph, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
48+ tf <- paste0(tfbase, driver, "Phs", sep=".")
49+ writeOGR(SpatialPolygonsDataFrame(Phs, data=df9), tf, "GeoJSON",
50+  driver=driver, verbose=TRUE)
51+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
52+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
53+ cat("Phs with driver:", driver, "\n")
54+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
55+ cat(" comment", isTRUE(all.equal(sapply(slot(rP, "polygons"), comment), sapply(slot(Phs, "polygons"), comment))), "\n")
56+ cat(" coords", isTRUE(all.equal(lapply(slot(Phs, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
57+ cat(" holes", isTRUE(all.equal(lapply(slot(Phs, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
58+ tf <- paste0(tfbase, driver, "MP", sep=".")
59+ writeOGR(SpatialPolygonsDataFrame(MP, data=df3), tf, "GeoJSON",
60+  driver=driver, verbose=TRUE)
61+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
62+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
63+ cat("MP with driver:", driver, "\n")
64+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
65+ cat(" comment", isTRUE(all.equal(sapply(slot(rP, "polygons"), comment), sapply(slot(MP, "polygons"), comment))), "\n")
66+ cat(" coords", isTRUE(all.equal(lapply(slot(MP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
67+ cat(" holes", isTRUE(all.equal(lapply(slot(MP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
68+ tf <- paste0(tfbase, driver, "MPh", sep=".")
69+ writeOGR(SpatialPolygonsDataFrame(MPh, data=df3), tf, "GeoJSON",
70+  driver=driver, verbose=TRUE)
71+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
72+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
73+ cat("MPh with driver:", driver, "\n")
74+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
75+ cat(" comment", isTRUE(all.equal(sapply(slot(rP, "polygons"), comment), sapply(slot(MPh, "polygons"), comment))), "\n")
76+ cat(" coords", isTRUE(all.equal(lapply(slot(MPh, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
77+ cat(" holes", isTRUE(all.equal(lapply(slot(MPh, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
78+ load(system.file("etc/obj_without_comments.RData", package="rgdal"))
79+ if (requireNamespace("rgeos", quietly=TRUE)) {
80+ tf <- paste0(tfbase, driver, "aP", sep=".")
81+ writeOGR(SpatialPolygonsDataFrame(aP, data=df9), tf, "GeoJSON",
82+  driver=driver, verbose=TRUE)
83+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
84+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
85+ cat("aP with driver:", driver, "\n")
86+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
87+ cat(" coords", isTRUE(all.equal(lapply(slot(aP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
88+ cat(" holes", isTRUE(all.equal(lapply(slot(aP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
89+ }
90+ if (requireNamespace("rgeos", quietly=TRUE)) {
91+ tf <- paste0(tfbase, driver, "aPh", sep=".")
92+ writeOGR(SpatialPolygonsDataFrame(aPh, data=df9), tf, "GeoJSON",
93+  driver=driver, verbose=TRUE)
94+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
95+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
96+ cat("aPh with driver:", driver, "\n")
97+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
98+ cat(" coords", isTRUE(all.equal(lapply(slot(aPh, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
99+ cat(" holes", isTRUE(all.equal(lapply(slot(aPh, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
100+ }
101+ if (requireNamespace("rgeos", quietly=TRUE)) {
102+ tf <- paste0(tfbase, driver, "aMP", sep=".")
103+ writeOGR(SpatialPolygonsDataFrame(aMP, data=df3), tf, "GeoJSON",
104+  driver=driver, verbose=TRUE)
105+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
106+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
107+ cat("aMP with driver:", driver, "\n")
108+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
109+ cat(" coords", isTRUE(all.equal(lapply(slot(aMP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
110+ cat(" holes", isTRUE(all.equal(lapply(slot(aMP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
111+ }
112+ if (requireNamespace("rgeos", quietly=TRUE)) {
113+ tf <- paste0(tfbase, driver, "aMPh", sep=".")
114+ writeOGR(SpatialPolygonsDataFrame(aMPh, data=df3), tf, "GeoJSON",
115+  driver=driver, verbose=TRUE)
116+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
117+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
118+ cat("aMPh with driver:", driver, "\n")
119+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
120+ cat(" coords", isTRUE(all.equal(lapply(slot(aMPh, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
121+ cat(" holes", isTRUE(all.equal(lapply(slot(aMPh, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
122+ }
123+ if (requireNamespace("rgeos", quietly=TRUE)) {
124+ tf <- paste0(tfbase, driver, "Ps1", sep=".")
125+ writeOGR(SpatialPolygonsDataFrame(Ps1, data=df1), tf, "GeoJSON",
126+  driver=driver, verbose=TRUE)
127+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
128+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
129+ cat("Ps1 with driver:", driver, "\n")
130+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
131+ cat(" coords", isTRUE(all.equal(lapply(slot(Ps1, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
132+ cat(" holes", isTRUE(all.equal(lapply(slot(Ps1, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
133+ }
134+ if (requireNamespace("rgeos", quietly=TRUE)) {
135+ tf <- paste0(tfbase, driver, "Ps1_nc", sep=".")
136+ writeOGR(SpatialPolygonsDataFrame(Ps1_nc, data=df1), tf, "GeoJSON",
137+  driver=driver, verbose=TRUE)
138+ #rP <- as(readOGR(tf, "GeoJSON", verbose=FALSE), "SpatialPolygons")
139+ rP <- as(readOGR(tf, verbose=FALSE), "SpatialPolygons")
140+ cat("Ps1_nc with driver:", driver, "\n")
141+ unlink(paste(tf, "*", sep=""), recursive=driver == "ESRI Shapefile")
142+ cat(" coords", isTRUE(all.equal(lapply(slot(Ps1, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "coords")), check.attributes=FALSE)), "\n")
143+ cat(" holes", isTRUE(all.equal(lapply(slot(Ps1, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), lapply(slot(rP, "polygons"), function(x) lapply(slot(x, "Polygons"), slot, "hole")), check.attributes=FALSE)), "\n")
144+ }
145+ }
146Object initially classed as: wkbPolygon
147SFS comments in Polygons objects
148Writing 9 wkbPolygon objects
149P with driver: GeoJSON
150 comment TRUE
151 coords TRUE
152 holes TRUE
153Object initially classed as: wkbPolygon
154SFS comments in Polygons objects
155Writing 9 wkbPolygon objects
156Ph with driver: GeoJSON
157 comment TRUE
158 coords TRUE
159 holes TRUE
160Object initially classed as: wkbPolygon
161SFS comments in Polygons objects
162Writing 9 wkbPolygon objects
163Phs with driver: GeoJSON
164 comment TRUE
165 coords TRUE
166 holes TRUE
167Object initially classed as: wkbPolygon
168SFS comments in Polygons objects
169Object reclassed as: wkbMultiPolygon
170Writing 3 wkbMultiPolygon objects
171MP with driver: GeoJSON
172 comment TRUE
173 coords TRUE
174 holes TRUE
175Object initially classed as: wkbPolygon
176SFS comments in Polygons objects
177Object reclassed as: wkbMultiPolygon
178Writing 3 wkbMultiPolygon objects
179MPh with driver: GeoJSON
180 comment TRUE
181 coords TRUE
182 holes TRUE
183Object initially classed as: wkbPolygon
184SFS comments in Polygons objects
185Writing 9 wkbPolygon objects
186aP with driver: GeoJSON
187 coords TRUE
188 holes TRUE
189Object initially classed as: wkbPolygon
190SFS comments in Polygons objects
191Writing 9 wkbPolygon objects
192aPh with driver: GeoJSON
193 coords TRUE
194 holes TRUE
195Object initially classed as: wkbPolygon
196SFS comments in Polygons objects
197Object reclassed as: wkbMultiPolygon
198Writing 3 wkbMultiPolygon objects
199aMP with driver: GeoJSON
200 coords TRUE
201 holes TRUE
202Object initially classed as: wkbPolygon
203SFS comments in Polygons objects
204Object reclassed as: wkbMultiPolygon
205Writing 3 wkbMultiPolygon objects
206aMPh with driver: GeoJSON
207 coords TRUE
208 holes TRUE
209Object initially classed as: wkbPolygon
210SFS comments in Polygons objects
211Object reclassed as: wkbMultiPolygon
212Writing 1 wkbMultiPolygon objects
213Ps1 with driver: GeoJSON
214 coords TRUE
215 holes TRUE
216Object initially classed as: wkbPolygon
217SFS comments in Polygons objects
218Object reclassed as: wkbMultiPolygon
219Writing 1 wkbMultiPolygon objects
220Ps1_nc with driver: GeoJSON
221 coords TRUE
222 holes TRUE
223Object initially classed as: wkbPolygon
224SFS comments in Polygons objects
225Writing 9 wkbPolygon objects
226P with driver: ESRI Shapefile
227 comment TRUE
228 coords TRUE
229 holes TRUE
230Object initially classed as: wkbPolygon
231SFS comments in Polygons objects
232Writing 9 wkbPolygon objects
233Ph with driver: ESRI Shapefile
234 comment TRUE
235 coords TRUE
236 holes TRUE
237Object initially classed as: wkbPolygon
238SFS comments in Polygons objects
239Writing 9 wkbPolygon objects
240Phs with driver: ESRI Shapefile
241 comment TRUE
242 coords TRUE
243 holes TRUE
244Object initially classed as: wkbPolygon
245SFS comments in Polygons objects
246Object reclassed as: wkbMultiPolygon
247Writing 3 wkbMultiPolygon objects
248MP with driver: ESRI Shapefile
249 comment TRUE
250 coords TRUE
251 holes TRUE
252Object initially classed as: wkbPolygon
253SFS comments in Polygons objects
254Object reclassed as: wkbMultiPolygon
255Writing 3 wkbMultiPolygon objects
256MPh with driver: ESRI Shapefile
257 comment TRUE
258 coords TRUE
259 holes TRUE
260Object initially classed as: wkbPolygon
261SFS comments in Polygons objects
262Writing 9 wkbPolygon objects
263aP with driver: ESRI Shapefile
264 coords TRUE
265 holes TRUE
266Object initially classed as: wkbPolygon
267SFS comments in Polygons objects
268Writing 9 wkbPolygon objects
269aPh with driver: ESRI Shapefile
270 coords TRUE
271 holes TRUE
272Object initially classed as: wkbPolygon
273SFS comments in Polygons objects
274Object reclassed as: wkbMultiPolygon
275Writing 3 wkbMultiPolygon objects
276aMP with driver: ESRI Shapefile
277 coords TRUE
278 holes TRUE
279Object initially classed as: wkbPolygon
280SFS comments in Polygons objects
281Object reclassed as: wkbMultiPolygon
282Writing 3 wkbMultiPolygon objects
283aMPh with driver: ESRI Shapefile
284 coords TRUE
285 holes TRUE
286Object initially classed as: wkbPolygon
287SFS comments in Polygons objects
288Object reclassed as: wkbMultiPolygon
289Writing 1 wkbMultiPolygon objects
290Ps1 with driver: ESRI Shapefile
291 coords TRUE
292 holes TRUE
293Object initially classed as: wkbPolygon
294SFS comments in Polygons objects
295Object reclassed as: wkbMultiPolygon
296Writing 1 wkbMultiPolygon objects
297Ps1_nc with driver: ESRI Shapefile
298 coords TRUE
299 holes TRUE
300>
301> proc.time()
302   user  system elapsed
303  3.956   0.066   4.418
304