Skip to content

st_read reads compressed GPKG (>= GDAL 3.7) - should this be advertised?Β #2433

@rsbivand

Description

@rsbivand

@Nowosad I've been looking at reading compressed vector files, such as this:
GB_election_2024_sim.gpkg.zip

In terra:

> xx <- terra::vect("GB_election_2024_sim.gpkg.zip")
> xx
 class       : SpatVector 
 geometry    : polygons 
 dimensions  : 632, 19  (geometries, attributes)
 extent      : 5512.998, 655970.4, 5342.9, 1220287  (xmin, xmax, ymin, ymax)
 source      : GB_election_2024_sim.gpkg.zip (GB_election_2024_sim)
 coord. ref. : OSGB36 / British National Grid (EPSG:27700) 
 names       :     Constituency            Name Area_Code Area_Description
 type        :            <chr>           <chr>     <chr>            <chr>
 values      : Aberafan Maesteg Aberafan Maest~       WMC  Westminster Co~
                 Aberdeen North Aberdeen North~       WMC  Westminster Co~
                 Aberdeen South Aberdeen South~       WMC  Westminster Co~
       File_Name Feature_Serial_Number Collection_Serial_Number
           <chr>                 <int>                    <int>
 ABERAFAN_MAEST~                     1                        1
 ABERDEEN_NORTH~                   472                      472
 ABERDEEN_SOUTH~                   473                      473
 Global_Polygon_ID Admin_Unit_ID Census_Code (and 9 more)
             <int>         <int>       <chr>             
            146759        187003   W07000081             
            147374        187618   S14000060             
            147375        187619   S14000061        

In sf:

> sim <- st_read("GB_election_2024_sim.gpkg.zip")
Reading layer `GB_election_2024_sim' from data source 
  `/home/rsb/topics/packages/github-r-spatial/LICD/GB_election_2024_sim.gpkg.zip' 
  using driver `GPKG'
Simple feature collection with 632 features and 19 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 5512.998 ymin: 5342.9 xmax: 655970.4 ymax: 1220287
Projected CRS: OSGB36 / British National Grid
> all.equal(st_geometry(sim), st_geometry(st_cast(st_as_sf(xx), "MULTIPOLYGON")))
[1] TRUE
> all.equal(st_drop_geometry(sim), st_drop_geometry(st_as_sf(xx)))
[1] TRUE

Could we compress the GPKG in spData see Nowosad/spData#62 ? Or are too many using GDAL < 3.7 ? This actually also works from GDAL >= 3.1 for ESRI Shapefiles too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions