test_that("st_read and write handle date and time", {
Sys.setenv(TZ="") # local time
x = st_sf(a = 1:2, b=c(5.6,3), dt = Sys.Date()+1:2, tm = Sys.time()+2:3,
geometry = structure(st_sfc(st_point(c(1,1)), st_point(c(2,2)))))
shp <- paste0(tempfile(), ".shp")
gpkg <- paste0(tempfile(), ".gpkg")
st_crs(x) = st_crs("ENGCRS[\"Undefined Cartesian SRS with unknown unit\",EDATUM[\"Unknown engineering datum\"],CS[Cartesian,2],AXIS[\"X\",unspecified,ORDER[1],LENGTHUNIT[\"unknown\",0]],AXIS[\"Y\",unspecified,ORDER[2],LENGTHUNIT[\"unknown\",0]]]")
st_write(x[-4], shp[1], quiet = TRUE)
x2 = st_read(shp[1], quiet = TRUE)
expect_equal(x[-4], x2, check.attributes=FALSE)
# WKT2 CRS do not roundtrip for ESRI Shapefile
st_write(x, gpkg, quiet = TRUE)
x2 = st_read(gpkg, quiet = TRUE)
expect_equal(x[["a"]], x2[["a"]])
expect_equal(x[["b"]], x2[["b"]])
expect_equal(x[["dt"]], x2[["dt"]])
expect_equal(x[["tm"]], x2[["tm"]])
Sys.setenv(TZ="UTC") # GMT
x = st_sf(a = 1:2, b=c(5.6,3), dt = Sys.Date()+1:2, tm = Sys.time()+2:3,
geometry = structure(st_sfc(st_point(c(1,1)), st_point(c(2,2)))))
shp <- paste0(tempfile(), ".shp")
gpkg <- paste0(tempfile(), ".gpkg")
st_crs(x) = st_crs("ENGCRS[\"Undefined Cartesian SRS with unknown unit\",EDATUM[\"Unknown engineering datum\"],CS[Cartesian,2],AXIS[\"X\",unspecified,ORDER[1],LENGTHUNIT[\"unknown\",0]],AXIS[\"Y\",unspecified,ORDER[2],LENGTHUNIT[\"unknown\",0]]]")
st_write(x[-4], shp[1], quiet = TRUE)
x2 = st_read(shp[1], quiet = TRUE)
expect_equal(x[-4], x2, check.attributes=FALSE)
# WKT2 CRS do not roundtrip for ESRI Shapefile
st_write(x, gpkg, quiet = TRUE)
x2 = st_read(gpkg, quiet = TRUE)
expect_equal(x[["a"]], x2[["a"]])
expect_equal(x[["b"]], x2[["b"]])
expect_equal(x[["dt"]], x2[["dt"]])
expect_equal(x[["tm"]], x2[["tm"]])
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.