Tout le monde aime SQLite. C'est un fichier portable unique, performant et évolutif, qui supporte suffisamment de SQL pour être utile et dispose d'un module Python conforme à la DB-API<\/A> ainsi que d'un accès API dans d'autres langages. Il est intégré dans de nombreuses applications mobiles et de bureau, et est directement utilisable dans ArcGIS Pro.<\/P><\/P>SQLite en tant que conteneur a une incarnation - OGC GeoPackage - qui supporte l'encodage des entités vectorielles et raster pour une utilisation directe dans ArcGIS Pro. Vous pouvez lire la norme sur le site web de l'OGC<\/A>.<\/P><\/P>Le format SIG le plus souvent comparé à GeoPackage est le shapefile défini par Esri. Le shapefile est le format SIG le plus partagé sur la planète et son encodage des entités vectorielles est publié<\/A>. Notez cependant la date de publication - 1998. À l'époque où le shapefile a été conçu, les composants disponibles avaient des limitations qui peuvent frustrer les flux de travail avancés d'aujourd'hui. Celles-ci incluent la limite de taille de fichier, le nombre de champs attributaires et la largeur des noms, les dates ne supportant pas l'heure, la complexité dans la gestion des encodages de caractères et l'absence de support des valeurs nulles pour la plupart des types de champs. Le shapefile a été spectaculairement réussi pour gérer des entités vectorielles simples, mais il peut être limitant.<\/P><\/P>Je considère GeoPackage comme le nouveau shapefile sans les anciennes limitations et je vous encourage à l'utiliser. C'est un excellent format pour, eh bien, geo-packaging ! Cependant, ne pensez pas qu'il s'agit d'un espace de travail SIG complet, il n'a pas les comportements de géodatabase comme les domaines et les règles attributaires. Ce qu'il fait, il le fait bien.<\/P><\/P>GeoPackage est extensible, et il existe des extensions OGC approuvées pour les tuiles en grille des données d'élévation et les relations de tables, ainsi que des extensions communautaires non approuvées telles que le style cartographique des entités et le stockage des tuiles vectorielles. ArcGIS Pro ne prend pas encore en charge les extensions GeoPackage (à l'exception de la fonctionnalité table<\/A> adoptée dans la version v1.2).<\/P><\/P><\/P>Que pouvez-vous faire avec un GeoPackage dans ArcGIS Pro 2.6 ?<\/P><\/P>Lire et écrire des entités simples (polygones, polylignes, points, multipoints, arcs circulaires, tables)<\/LI>Créer des classes d'entités avec l'outil Feature Class to Feature Class<\/LI>Créer des tables avec l'outil Table to Table<\/LI>Utiliser Copier\/Coller dans le volet Catalogue<\/LI>Utiliser l'outil Append pour ajouter des données à une classe d'entités ou une table existante<\/LI>Utiliser l'outil Add Raster To Geopackage pour stocker des images<\/LI>Modifier les entités ou les lignes avec la possibilité d'annuler et refaire les modifications<\/P><\/LI>Modifier le schéma<\/LI>Géotraitement avec tout outil acceptant une classe d'entités simple ou une table en entrée<\/LI>Partager les données GeoPackage avec d'autres utilisateurs en tant qu'élément statique dans ArcGIS Online<\/LI>Utiliser les données vectorielles et raster Geopackage dans les flux cartographiques<\/LI>Lire ou écrire GeoPackage dans les flux ETL Data Interoperability<\/LI>Utiliser des instructions SQL dans le dialecte natif de SQLite<\/LI><\/UL><\/P>Que ne pouvez-vous pas<\/EM> <\/?STRONG>faire avec un GeoPackage dans ArcGIS Pro 2.6 ?<\/P><\/P>Publier un élément GeoPackage en tant que couche web hébergée<\/LI>Stocker ou modifier les métadonnées<\/LI>Utiliser un outil de géotraitement nécessitant une sortie géodatabase<\/LI><\/UL><\/P>Certaines recommandations : Vous pouvez ajouter des champs et calculer des valeurs avec des outils de géotraitement ou ArcPy, mais vous constaterez peut-être que c'est plus lent que les opérations natives de géodatabase. Le stockage géométrique dans un GeoPackage n'est pas compressé comme une géodatabase, donc ils peuvent devenir volumineux. Faites votre géotraitement avant<\/EM> de créer votre GeoPackage, puis copiez vos données dedans. Considérez GeoPackage comme un format de partage.<\/P><\/P>Déplacez vos données dans le GeoPackage ainsi :<\/P><\/P>Créez un GeoPackage avec l'outil Create SQLite Database <\/?STRONG>(en utilisant le type spatial GeoPackage)<\/LI>Utilisez l'outil Copy<\/?STRONG> (Gestion des données, ensemble d'outils Général) pour ajouter des données vectorielles, ou Copier\/Coller<\/?STRONG> dans le volet Catalogue<\/LI>Utilisez l'outil Add Raster to GeoPackage<\/?STRONG> (Conversion, ensemble d'outils To GeoPackage) pour ajouter des mosaïques raster<\/LI><\/UL><\/?P>Votre GeoPackage est maintenant prêt à être utilisé.<\/?P><\/?P>Note sur le partage :<\/?STRONG> Vous pouvez télécharger un fichier .gpkg sur ArcGIS Online, ce type de fichier sera reconnu. Vous pouvez envoyer un lien après avoir partagé l'élément et d'autres pourront alors le télécharger depuis la galerie de contenu.<\/?P><\/?P>Sujet avancé :<\/?STRONG> Parce qu'il est basé sur SQLite, GeoPackage est livré avec un moteur de base de données et un bon support du langage SQL<\/?A>. Il existe des outils tiers pour travailler avec SQLite que vous pourriez trouver utiles, mais pour inclure un composant spatial dans votre travail, les produits ArcGIS Data Interoperability ou Safe Software FME supportent le scripting des instructions SELECT, CREATE, DROP, DUPLICATE, TRUNCATE et CROSS JOIN au sein des transformateurs Spatial ETL tels que SQLCreator et SQLExecutor. Cette approche permet une utilisation très puissante et performante d'un GeoPackage.<\/?P><\/?BODY>
<\/P>
SQLite en tant que conteneur a une incarnation - OGC GeoPackage - qui supporte l'encodage des entités vectorielles et raster pour une utilisation directe dans ArcGIS Pro. Vous pouvez lire la norme sur
Le format SIG le plus souvent comparé à GeoPackage est le shapefile défini par Esri. Le shapefile est le format SIG le plus partagé sur la planète et son encodage des entités vectorielles est
Je considère GeoPackage comme le nouveau shapefile sans les anciennes limitations et je vous encourage à l'utiliser. C'est un excellent format pour, eh bien, geo-packaging ! Cependant, ne pensez pas qu'il s'agit d'un espace de travail SIG complet, il n'a pas les comportements de géodatabase comme les domaines et les règles attributaires. Ce qu'il fait, il le fait bien.<\/P>
GeoPackage est extensible, et il existe des extensions OGC approuvées pour les tuiles en grille des données d'élévation et les relations de tables, ainsi que des extensions communautaires non approuvées telles que le style cartographique des entités et le stockage des tuiles vectorielles. ArcGIS Pro ne prend pas encore en charge les extensions GeoPackage (à l'exception de la
Que pouvez-vous faire avec un GeoPackage dans ArcGIS Pro 2.6 ?<\/P>
Modifier les entités ou les lignes avec la possibilité d'annuler et refaire les modifications<\/P><\/LI>
Que ne pouvez-vous pas<\/EM> <\/?STRONG>faire avec un GeoPackage dans ArcGIS Pro 2.6 ?<\/P><\/P>Publier un élément GeoPackage en tant que couche web hébergée<\/LI>Stocker ou modifier les métadonnées<\/LI>Utiliser un outil de géotraitement nécessitant une sortie géodatabase<\/LI><\/UL><\/P>Certaines recommandations : Vous pouvez ajouter des champs et calculer des valeurs avec des outils de géotraitement ou ArcPy, mais vous constaterez peut-être que c'est plus lent que les opérations natives de géodatabase. Le stockage géométrique dans un GeoPackage n'est pas compressé comme une géodatabase, donc ils peuvent devenir volumineux. Faites votre géotraitement avant<\/EM> de créer votre GeoPackage, puis copiez vos données dedans. Considérez GeoPackage comme un format de partage.<\/P><\/P>Déplacez vos données dans le GeoPackage ainsi :<\/P><\/P>Créez un GeoPackage avec l'outil Create SQLite Database <\/?STRONG>(en utilisant le type spatial GeoPackage)<\/LI>Utilisez l'outil Copy<\/?STRONG> (Gestion des données, ensemble d'outils Général) pour ajouter des données vectorielles, ou Copier\/Coller<\/?STRONG> dans le volet Catalogue<\/LI>Utilisez l'outil Add Raster to GeoPackage<\/?STRONG> (Conversion, ensemble d'outils To GeoPackage) pour ajouter des mosaïques raster<\/LI><\/UL><\/?P>Votre GeoPackage est maintenant prêt à être utilisé.<\/?P><\/?P>Note sur le partage :<\/?STRONG> Vous pouvez télécharger un fichier .gpkg sur ArcGIS Online, ce type de fichier sera reconnu. Vous pouvez envoyer un lien après avoir partagé l'élément et d'autres pourront alors le télécharger depuis la galerie de contenu.<\/?P><\/?P>Sujet avancé :<\/?STRONG> Parce qu'il est basé sur SQLite, GeoPackage est livré avec un moteur de base de données et un bon support du
I have a solution where the field is redefined in the geopackage before uploading. A second version allows for non UTC datetime.
import pandas as pd def normalise_date_fields(gdf, use_utc: bool = True, local_tz=None, verbose: bool = True): """ Convert epoch-based date fields to timezone-aware datetimes. Targets columns with 'date' or 'time' in the name. Parameters ---------- gdf : GeoDataFrame Input GeoDataFrame. use_utc : bool, default True If True, output datetimes are in UTC (tz-aware, +00:00). If False, output datetimes are converted to local timezone (tz-aware with offset). local_tz : str | tzinfo | None Timezone to use when use_utc=False. - None => use the machine's local timezone. - str => e.g. "Pacific/Auckland" verbose : bool Print conversion messages. Returns ------- GeoDataFrame GeoDataFrame with converted datetime columns where applicable. """ # Resolve local timezone (only used when use_utc=False) if not use_utc: if local_tz is None: # Use the runtime environment's local timezone local_tz = pd.Timestamp.now().tz_localize("UTC").tz_convert(None).tzinfo # Note: tz_convert(None) returns naive; tzinfo can still be recovered in many envs, # but if your environment behaves oddly, pass local_tz="Pacific/Auckland". elif isinstance(local_tz, str): # Pandas can use IANA tz database strings local_tz = local_tz # else assume tzinfo-like object is passed through for col in gdf.columns: col_lc = col.lower() if "date" in col_lc or "time" in col_lc: series = gdf[col] # Only attempt conversion on numeric columns if pd.api.types.is_numeric_dtype(series): max_val = series.dropna().max() # Heuristic: epoch milliseconds are usually > 1e12 if pd.notna(max_val) and max_val > 1e12: try: # Step 1: interpret epoch(ms) as UTC dt_utc = pd.to_datetime(series, unit="ms", utc=True, errors="coerce") # Step 2: optionally convert to local timezone (keeping offset) if use_utc: gdf[col] = dt_utc if verbose: print(f" ✓ Converted epoch(ms) → datetime (UTC): {col}") else: gdf[col] = dt_utc.dt.tz_convert(local_tz) if verbose: print(f" ✓ Converted epoch(ms) → datetime (local offset): {col} ({local_tz})") except Exception as e: if verbose: print(f" ⚠ Failed to convert {col}: {e}") return gdf # -------- main ----------- # other processing... gdf = gpd.GeoDataFrame.from_features(features) gdf = gdf.set_crs("EPSG:4326") gdf = normalise_date_fields(gdf) gdf.to_file(GPKG_PATH, layer=layer, driver="GPKG") print(f" Saved: {layer} ({len(gdf)} features)")
@ChrisLeSueur Question for you above.
I am having trouble with date fields in a geopackage. The best format is an ISO string because it can include the timezone. But it can be an epoch number. Sqlite handles all dates as functions, not a data type. This means that AGOL cannot read a date in a geopackage. How does Survey123 handle dates in a geopackage?
The GIS format most often compared with GeoPackage is the Esri-defined shapefile.
I have not seen GeoPackage compared to a shapefile. GeoPackage is more of an up-and-coming competitor to the File Geodatabase. While GeoPackage is still somewhat immature as a standard (in terms of implementation... QGIS being further along in its implementation), some of the limitations are ArcGIS Pro limitations (editing) while others are inherent to the leaner core spec (domains and subtypes).
However, don't go as far as thinking it is a full-blown GIS workspace
Not to be pedantic! but..
<SPAN class="keyword token">import</SPAN> arcpy gpkg <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"C:\Data\db.gpkg"</SPAN> desc <SPAN class="operator token">=</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>Describe<SPAN class="punctuation token">(</SPAN>gpkg<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">if</SPAN> hasattr<SPAN class="punctuation token">(</SPAN>desc<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'dataType'</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">print</SPAN><SPAN class="punctuation token">(</SPAN>desc<SPAN class="punctuation token">.</SPAN>dataType<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">>></SPAN>Workspace<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
Think of GeoPackage as a sharing format
Eh, not really unless a geospatial professional never, ever, ever leaves the Esri reservation for anything, ever (which is not good for anyone). It should be pointed out that GeoPackage offers some very important efficiencies over the File Geodatabase. For example GeoPackage supports views, which means that you can quickly return results through SQL statements without having to create new data. i.e. you can do this
buffer<SPAN class="punctuation token">(</SPAN>geom<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1000</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> geom<SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
instead of having to run a Buffer tool and place an output somewhere. Used properly, this can eclipse the expand issue brought up in the article and offer a considerable performance advantage over the legacy FGDB container.
That said, I use both formats for processing and it all depends on the use case. Generally if I need to process a big table of data and I know I can achieve the result through SQL, I will do it in GPKG. If I need to daisy chain together a set of ArcGIS tools to get a result, I'll go with File Geodatabase and do as much intermediate processing as possible in memory.
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.