Každý má rád SQLite. Je to jeden přenosný soubor, který dobře funguje a škáluje se, podporuje dostatek SQL, aby byl užitečný, a má DB-API<\/A> kompatibilní Python modul a API přístup v jiných jazycích. Je zabudován v mnoha mobilních a desktopových aplikacích a je přímo použitelný v ArcGIS Pro.<\/P><\/P>SQLite jako kontejner má svou podobu - OGC GeoPackage - která podporuje kódování vektorových a rastrových prvků pro přímé použití v ArcGIS Pro. O standardu si můžete přečíst na webu OGC<\/A>.<\/P><\/P>GIS formát nejčastěji srovnávaný s GeoPackage je Esri definovaný shapefile. Shapefile je nejvíce sdílený GIS formát na světě a jeho kódování vektorových prvků je publikováno<\/A>. Všimněte si však data publikace - 1998. V době, kdy byl shapefile navržen, měly dostupné komponenty omezení, která mohou frustrovat dnešní pokročilé pracovní postupy. Patří sem limit velikosti souboru, počet atributových polí a šířka názvů, datumy nepodporující čas, složitost při práci s kódováním znaků a absence podpory null hodnot u většiny typů polí. Shapefile byl mimořádně úspěšný pro práci s jednoduchými vektorovými prvky, ale může být omezující.<\/P><\/P>Považuji GeoPackage za nový shapefile bez starých omezení a doporučuji jej používat. Je to skvělý formát pro, no, geo-balení! Nicméně nepředpokládejte, že je to plnohodnotné GIS pracovní prostředí, nemá chování geodatabáze jako domény a atributová pravidla. Co dělá, dělá dobře.<\/P><\/P>GeoPackage je rozšiřitelný a existují schválené OGC rozšíření pro mřížkové dlaždice výškových dat a vztahy tabulek, a neschválená komunitní rozšíření jako stylování mapových prvků a ukládání vektorových dlaždic. ArcGIS Pro zatím nepodporuje žádná rozšíření GeoPackage (kromě funkcionality tabulek<\/A> přijaté ve verzi 1.2).<\/P><\/P><\/P>Co můžete dělat s GeoPackage v ArcGIS Pro 2.6? <\/P><\/P>Číst a zapisovat jednoduché prvky (polygony, polyliny, body, multipointy, kruhové oblouky, tabulky)<\/LI>Vytvářet třídy prvků pomocí nástroje Feature Class to Feature Class<\/LI>Vytvářet tabulky pomocí nástroje Table to Table<\/LI>Používat Kopírovat/Vložit v panelu Katalog<\/LI>Používat nástroj Append pro přidání dat do existující třídy prvků nebo tabulky<\/LI>Používat nástroj Add Raster To Geopackage pro ukládání snímků<\/LI>Editovat prvky nebo řádky s možností vrácení zpět a opakování úprav<\/P><\/LI>Měnit schéma<\/LI>Provádět geoprocesing s jakýmkoli nástrojem, který přijímá jednoduchou třídu prvků nebo tabulku jako vstup<\/LI>Sdílet data GeoPackage s ostatními uživateli jako statickou položku v ArcGIS Online<\/LI>Používat GeoPackage vektorová a rastrová data v mapových pracovních postupech<\/LI>Číst nebo zapisovat GeoPackage v ETL pracovních postupech Data Interoperability<\/LI>Používat SQL příkazy ve vlastním dialektu SQLite<\/LI><\/UL><\/P>Co nemůžete<\/EM> <\/<STRONG> dělat s GeoPackage v ArcGIS Pro 2.6? <\/P><\/P>Zveřejnit položku GeoPackage jako hostovanou webovou vrstvu<\/LI>Ukládat nebo upravovat metadata<\/LI>Používat jakýkoli geoprocesingový nástroj vyžadující výstup geodatabáze<\/LI><\/UL><\/P>Několik doporučení: Můžete přidávat pole a počítat hodnoty pomocí geoprocesingových nástrojů nebo ArcPy, ale může to být pomalejší než nativní operace geodatabáze. Ukládání geometrie v GeoPackage není komprimované jako v geodatabázi, takže mohou být velké. Provádějte svůj geoprocesing před<\/<EM> vytvořením vašeho GeoPackage, pak do něj zkopírujte svá data. Považujte GeoPackage za formát pro sdílení.<\/P><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/>
<\/P>
SQLite jako kontejner má svou podobu - OGC GeoPackage - která podporuje kódování vektorových a rastrových prvků pro přímé použití v ArcGIS Pro. O standardu si můžete přečíst na
GIS formát nejčastěji srovnávaný s GeoPackage je Esri definovaný shapefile. Shapefile je nejvíce sdílený GIS formát na světě a jeho kódování vektorových prvků je
Považuji GeoPackage za nový shapefile bez starých omezení a doporučuji jej používat. Je to skvělý formát pro, no, geo-balení! Nicméně nepředpokládejte, že je to plnohodnotné GIS pracovní prostředí, nemá chování geodatabáze jako domény a atributová pravidla. Co dělá, dělá dobře.<\/P>
GeoPackage je rozšiřitelný a existují schválené OGC rozšíření pro mřížkové dlaždice výškových dat a vztahy tabulek, a neschválená komunitní rozšíření jako stylování mapových prvků a ukládání vektorových dlaždic. ArcGIS Pro zatím nepodporuje žádná rozšíření GeoPackage (kromě
Co můžete dělat s GeoPackage v ArcGIS Pro 2.6? <\/P>
Editovat prvky nebo řádky s možností vrácení zpět a opakování úprav<\/P><\/LI>
Co nemůžete<\/EM> <\/<STRONG> dělat s GeoPackage v ArcGIS Pro 2.6? <\/P><\/P>Zveřejnit položku GeoPackage jako hostovanou webovou vrstvu<\/LI>Ukládat nebo upravovat metadata<\/LI>Používat jakýkoli geoprocesingový nástroj vyžadující výstup geodatabáze<\/LI><\/UL><\/P>Několik doporučení: Můžete přidávat pole a počítat hodnoty pomocí geoprocesingových nástrojů nebo ArcPy, ale může to být pomalejší než nativní operace geodatabáze. Ukládání geometrie v GeoPackage není komprimované jako v geodatabázi, takže mohou být velké. Provádějte svůj geoprocesing před<\/<EM> vytvořením vašeho GeoPackage, pak do něj zkopírujte svá data. Považujte GeoPackage za formát pro sdílení.<\/P><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/>
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.
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Nový zde? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.