Read layers from a file geodatabase (.gdb)

read_gdb(path, layer = NULL, quiet = TRUE, ...)

Arguments

path

Path to a .gdb directory (the folder whose name ends in .gdb).

layer

If NULL (default), every layer reported by sf::st_layers() is read. If a character string, only that layer is read; it must exist in the geodatabase.

quiet

Passed to sf::read_sf().

...

Additional arguments passed to sf::read_sf().

Value

A tibble with columns fpath (path or GDAL dsn used for the layer), file_type (tools::file_ext()), layer_name, geometry_type, nrows_aka_features, ncols_aka_fields, crs_name (from st_layers()$crs when available), and data (list-column of sf::sf objects). Layers are not row-bound; differing CRS are preserved per row.

Examples

# \donttest{
gdb <- system.file("extdata", "misc_example.gdb", package = "misc")
if (nzchar(gdb) && dir.exists(gdb)) {
  read_gdb(gdb)
  read_gdb(gdb, layer = "OGRGeoJSON")
}
#> # A tibble: 1 × 8
#>   fpath   file_type layer_name geometry_type nrows_aka_features ncols_aka_fields
#>   <chr>   <chr>     <chr>      <chr>                      <int>            <int>
#> 1 /home/… gdb       OGRGeoJSON Multi Polygon                  1                1
#> # ℹ 2 more variables: crs_name <chr>, data <list>
# }