Jeder mag SQLite. Es ist eine einzelne portable Datei, arbeitet performant und skaliert gut, unterstützt genug SQL, um nützlich zu sein, und verfügt über ein DB-API<\/A>-konformes Python-Modul sowie API-Zugriff in anderen Sprachen. Es ist in vielen mobilen und Desktop-Apps eingebettet und direkt in ArcGIS Pro nutzbar.<\/P><\/P>SQLite als Container hat eine Inkarnation – OGC GeoPackage – die die Kodierung von Vektor- und Rasterdaten für die direkte Verwendung in ArcGIS Pro unterstützt. Sie können über den Standard auf der OGC-Website<\/A> lesen.<\/P><\/P>Das GIS-Format, das am häufigsten mit GeoPackage verglichen wird, ist das von Esri definierte Shapefile. Shapefile ist das am meisten geteilte GIS-Format weltweit und seine Kodierung von Vektorfeatures ist veröffentlicht<\/A>. Beachten Sie jedoch das Veröffentlichungsdatum – 1998. Zu der Zeit, als das Shapefile entworfen wurde, hatten die verfügbaren Komponenten Einschränkungen, die heutige fortgeschrittene Workflows frustrieren können. Dazu gehören Dateigrößenbeschränkungen, Begrenzungen der Attributfeldanzahl und Namenslänge, Datumsfelder ohne Zeitunterstützung, Komplexität bei der Handhabung von Zeichencodierungen und fehlende Unterstützung für Nullwerte bei den meisten Feldtypen. Shapefile war äußerst erfolgreich im Umgang mit einfachen Vektorfeatures, kann aber einschränkend sein.<\/P><\/P>Ich sehe GeoPackage als das neue Shapefile ohne die alten Einschränkungen und empfehle Ihnen, es zu verwenden. Es ist ein großartiges Format zum Geo-Packaging! Allerdings sollten Sie nicht denken, dass es ein vollwertiger GIS-Arbeitsbereich ist; es hat keine Geodatabase-Verhalten wie Domains und Attributregeln. Was es tut, macht es gut.<\/P><\/P>GeoPackage ist erweiterbar, und es gibt genehmigte OGC-Erweiterungen für gerasterte Kacheln von Höhendaten und Tabellenbeziehungen sowie nicht genehmigte Community-Erweiterungen wie Kartenstilierung von Features und Speicherung von Vektorkacheln. ArcGIS Pro implementiert noch keine Unterstützung für GeoPackage-Erweiterungen (außer Tabellenfunktionalität<\/A>, die in der Version 1.2 übernommen wurde).<\/P><\/P><\/P>Was können Sie mit einem GeoPackage in ArcGIS Pro 2.6 tun?<\/P><\/P>Einfache Features lesen und schreiben (Polygone, Polylinien, Punkte, Multipunkte, Kreisabschnitte, Tabellen)<\/LI>Feature-Classes mit dem Werkzeug Feature Class to Feature Class erstellen<\/LI>Tabellen mit dem Werkzeug Table to Table erstellen<\/LI>Kopieren/Einfügen im Katalogfenster verwenden<\/LI>Das Werkzeug Append verwenden, um Daten zu einer bestehenden Feature-Class oder Tabelle hinzuzufügen<\/LI>Das Werkzeug Add Raster To Geopackage verwenden, um Bilder zu speichern<\/LI>Features oder Zeilen bearbeiten mit der Möglichkeit zum Rückgängig- und Wiederherstellen von Änderungen<\/P><\/LI>Das Schema ändern<\/LI>Geoverarbeitung mit jedem Werkzeug durchführen, das eine einfache Feature-Class oder Tabelle als Eingabe akzeptiert<\/LI>GeoPackage-Daten mit anderen Benutzern als statisches Element in ArcGIS Online teilen<\/LI>GeoPackage Vektor- und Rasterdaten in Kartenworkflows verwenden<\/LI>GeoPackage in Data Interoperability ETL-Workflows lesen oder schreiben<\/LI>SQL-Anweisungen im nativen Dialekt von SQLite verwenden<\/LI><\/UL><\/P>Was können Sie nicht<\/EM> <\/_STRONG>mit einem GeoPackage in ArcGIS Pro 2.6 tun?<\/P><\/P>Ein GeoPackage-Element als gehostete Web-Layer veröffentlichen<\/LI>Metadaten speichern oder bearbeiten<\/LI>Ein Geoverarbeitungswerkzeug verwenden, das Geodatabase-Ausgabe erfordert<\/LI><\/_UL><\/_P>Einige Empfehlungen: Sie können Felder hinzufügen und Werte mit Geoverarbeitungswerkzeugen oder ArcPy berechnen, aber es kann langsamer sein als native Geodatabase-Operationen. Die Geometriespeicherung in einem GeoPackage ist nicht komprimiert wie in einer Geodatabase, daher können sie groß werden. Führen Sie Ihre Geoverarbeitung vorher<\/_EM> durch, bevor Sie Ihr GeoPackage erstellen, und kopieren Sie dann Ihre Daten hinein. Betrachten Sie GeoPackage als ein Austauschformat.<\/_P><\/_P>Verschieben Sie Ihre Daten so in das GeoPackage:<\/_P><\/_P>Erstellen Sie ein GeoPackage mit dem Werkzeug Create SQLite Database <\/_STRONG>(unter Verwendung des räumlichen Typs GeoPackage)<\/_LI>Verwenden Sie das Werkzeug Kopieren<\/_STRONG> (Datenverwaltung, Allgemeines Werkzeugset), um Vektordaten hinzuzufügen oder Kopieren/Einfügen im Katalogfenster zu nutzen<\/_LI>Verwenden Sie das Werkzeug Add Raster to GeoPackage<\/_STRONG> (Konvertierung, To GeoPackage-Werkzeugset), um Raster-Mosaike hinzuzufügen<\/_LI><\/_UL><\/_P>Ihr GeoPackage ist jetzt einsatzbereit.<\/_P><\/_P>Hinweis zum Teilen:<\/_STRONG> Sie können eine .gpkg-Datei zu ArcGIS Online hochladen; der Dateityp wird erkannt. Nach dem Teilen des Elements können Sie einen Link senden und andere können es dann aus der Inhaltsgalerie herunterladen.<\/_P><\/_P>Fortgeschrittenes Thema:<\/_STRONG> Da es auf SQLite basiert, kommt GeoPackage mit einer Datenbank-Engine und guter SQL-Sprachunterstützung<\/_A>. Es gibt Drittanbieter-Werkzeuge zur Arbeit mit SQLite, die nützlich sein können. Um jedoch eine räumliche Komponente einzubeziehen, unterstützen die Produkte ArcGIS Data Interoperability oder Safe Software FME das Skripten von SELECT-, CREATE-, DROP-, DUPLICATE-, TRUNCATE- und CROSS JOIN-Anweisungen innerhalb von Spatial ETL-Werkzeugtransformatoren wie SQLCreator und SQLExecutor. Dieser Ansatz ermöglicht eine sehr leistungsfähige und performante Nutzung eines GeoPackages.<\/_P><\/_BODY>
<\/P>
SQLite als Container hat eine Inkarnation – OGC GeoPackage – die die Kodierung von Vektor- und Rasterdaten für die direkte Verwendung in ArcGIS Pro unterstützt. Sie können über den Standard auf
Das GIS-Format, das am häufigsten mit GeoPackage verglichen wird, ist das von Esri definierte Shapefile. Shapefile ist das am meisten geteilte GIS-Format weltweit und seine Kodierung von Vektorfeatures ist
Ich sehe GeoPackage als das neue Shapefile ohne die alten Einschränkungen und empfehle Ihnen, es zu verwenden. Es ist ein großartiges Format zum Geo-Packaging! Allerdings sollten Sie nicht denken, dass es ein vollwertiger GIS-Arbeitsbereich ist; es hat keine Geodatabase-Verhalten wie Domains und Attributregeln. Was es tut, macht es gut.<\/P>
GeoPackage ist erweiterbar, und es gibt genehmigte OGC-Erweiterungen für gerasterte Kacheln von Höhendaten und Tabellenbeziehungen sowie nicht genehmigte Community-Erweiterungen wie Kartenstilierung von Features und Speicherung von Vektorkacheln. ArcGIS Pro implementiert noch keine Unterstützung für GeoPackage-Erweiterungen (außer
Was können Sie mit einem GeoPackage in ArcGIS Pro 2.6 tun?<\/P>
Features oder Zeilen bearbeiten mit der Möglichkeit zum Rückgängig- und Wiederherstellen von Änderungen<\/P><\/LI>
Was können Sie nicht<\/EM> <\/_STRONG>mit einem GeoPackage in ArcGIS Pro 2.6 tun?<\/P><\/P>Ein GeoPackage-Element als gehostete Web-Layer veröffentlichen<\/LI>Metadaten speichern oder bearbeiten<\/LI>Ein Geoverarbeitungswerkzeug verwenden, das Geodatabase-Ausgabe erfordert<\/LI><\/_UL><\/_P>Einige Empfehlungen: Sie können Felder hinzufügen und Werte mit Geoverarbeitungswerkzeugen oder ArcPy berechnen, aber es kann langsamer sein als native Geodatabase-Operationen. Die Geometriespeicherung in einem GeoPackage ist nicht komprimiert wie in einer Geodatabase, daher können sie groß werden. Führen Sie Ihre Geoverarbeitung vorher<\/_EM> durch, bevor Sie Ihr GeoPackage erstellen, und kopieren Sie dann Ihre Daten hinein. Betrachten Sie GeoPackage als ein Austauschformat.<\/_P><\/_P>Verschieben Sie Ihre Daten so in das GeoPackage:<\/_P><\/_P>Erstellen Sie ein GeoPackage mit dem Werkzeug Create SQLite Database <\/_STRONG>(unter Verwendung des räumlichen Typs GeoPackage)<\/_LI>Verwenden Sie das Werkzeug Kopieren<\/_STRONG> (Datenverwaltung, Allgemeines Werkzeugset), um Vektordaten hinzuzufügen oder Kopieren/Einfügen im Katalogfenster zu nutzen<\/_LI>Verwenden Sie das Werkzeug Add Raster to GeoPackage<\/_STRONG> (Konvertierung, To GeoPackage-Werkzeugset), um Raster-Mosaike hinzuzufügen<\/_LI><\/_UL><\/_P>Ihr GeoPackage ist jetzt einsatzbereit.<\/_P><\/_P>Hinweis zum Teilen:<\/_STRONG> Sie können eine .gpkg-Datei zu ArcGIS Online hochladen; der Dateityp wird erkannt. Nach dem Teilen des Elements können Sie einen Link senden und andere können es dann aus der Inhaltsgalerie herunterladen.<\/_P><\/_P>Fortgeschrittenes Thema:<\/_STRONG> Da es auf SQLite basiert, kommt GeoPackage mit einer Datenbank-Engine und guter
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.
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registrieren Sie ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.