ArcGIS Pro

How to Use OGC GeoPackages in ArcGIS Pro

This blog has been updated to reflect new functionalities in ArcGIS Pro 2.6.

Everyone likes SQLite. It is a single portable file, performs and scales well, supports enough SQL to be useful and has a DB-API compliant Python module and API access in other languages. It is embedded in many mobile and desktop apps, and is directly usable in ArcGIS Pro.

SQLite as a container has an incarnation — OGC GeoPackage — that supports the encoding of vector and raster features for direct use in ArcGIS Pro. You can read about the standard on the OGC website.

The GIS format most often compared with GeoPackage is the Esri-defined shapefile. Shapefile is the most shared GIS format on the planet and its encoding of vector features is published. Note however the publication date — 1998. At the time the shapefile was designed, the components available had limitations that can frustrate today’s advanced workflows. These include file size limit, attribute field count and name width limits, dates not supporting time, complexity in handling character encodings and lack of null value support for most field types. Shapefile has been spectacularly successful for handling simple vector features, but it can be limiting.

I think of GeoPackage as the new shapefile without the old limitations and I encourage you to use it. It is a great format for, well, geo-packaging! However, don’t go as far as thinking it is a full-blown GIS workspace, it doesn’t have geodatabase behaviors like domains and attribute rules. What it does, it does well.

GeoPackage is extensible, and there are approved OGC extensions for gridded tiles of elevation data and table relationships, and non-approved community extensions such as map styling of features and storing vector tiles. ArcGIS Pro does not yet implement support for any GeoPackage extensions (excepting table functionality adopted in the v1.2 release).

What can you do with a GeoPackage in ArcGIS Pro 2.6?

What can you not do with a GeoPackage in ArcGIS Pro 2.6?

Some recommendations: You can add fields and calculate values with geoprocessing tools or ArcPy, but you may find it slower than native geodatabase operations. Geometry storage in a GeoPackage is not compressed like a geodatabase, so they can get big. Do your geoprocessing before creating your GeoPackage, then copy your data into it. Think of GeoPackage as a sharing format.

Move your data into the GeoPackage like this:

Your GeoPackage is now ready for use.

Note on sharing: You can upload a .gpkg file to your portal or ArcGIS Online, the file type will be recognized. You can send a link after sharing the item and others can then download it from the content gallery.

Advanced topic: Because it is based on SQLite, GeoPackage comes with a database engine and good SQL language support. There are 3rd party tools for working with SQLite which you may find useful, but to include a spatial component in your work the ArcGIS Data Interoperability or Safe Software FME products support scripting SELECT, CREATE, DROP, DUPLICATE, TRUNCATE and CROSS JOIN statements within Spatial ETL tool transformers like SQLCreator and SQLExecutor. This approach enables very powerful and performant use of a GeoPackage.

About the authors

Product marketer. Map lover. Hello Kitty uber-fan.

Connect:

Article Discussion:

Leave a Reply

Please Login to comment
Andrew Thompson
Andrew Thompson

That’s odd. QGIS enables full editing of geopackages. It’s not an inherent flaw of geopackages, just a feature ESRI hasn’t yet enabled.

Sindile Bidla
Sindile Bidla

The statement about geopackage not supporting editing is not true, rather it is ArcGIS Pro that does not support this feature. Here is a quote from the document Geopackage Encoding Standard referred to in the article – “Since a GeoPackage is a database container, it supports direct use. This means that data in a GeoPackage can be accessed and updated in a “native” storage format without intermediate format translations. “

Next Article

How we did it: Detecting Shipwrecks using Deep Learning at UC 2020

Read this article