Todo mundo gosta do SQLite. É um único arquivo portátil, tem bom desempenho e escalabilidade, suporta SQL suficiente para ser útil e possui um módulo Python compatível com DB-API<\/A> e acesso à API em outras linguagens. Está incorporado em muitos aplicativos móveis e de desktop, e é diretamente utilizável no ArcGIS Pro.<\/P><\/P>O SQLite como contêiner tem uma versão - OGC GeoPackage - que suporta a codificação de feições vetoriais e raster para uso direto no ArcGIS Pro. Você pode ler sobre o padrão no site da OGC<\/A>.<\/P><\/P>O formato GIS mais frequentemente comparado com GeoPackage é o shapefile definido pela Esri. Shapefile é o formato GIS mais compartilhado no planeta e sua codificação de feições vetoriais é publicada<\/A>. Note, porém, a data da publicação - 1998. Na época em que o shapefile foi projetado, os componentes disponíveis tinham limitações que podem frustrar os fluxos de trabalho avançados atuais. Estas incluem limite de tamanho de arquivo, contagem de campos de atributo e largura do nome, datas que não suportam tempo, complexidade no manuseio de codificações de caracteres e falta de suporte a valores nulos para a maioria dos tipos de campo. Shapefile foi espetacularmente bem-sucedido para lidar com feições vetoriais simples, mas pode ser limitante.<\/P><\/P>Eu penso no GeoPackage como o novo shapefile sem as limitações antigas e incentivo você a usá-lo. É um ótimo formato para, bem, geo-empacotamento! No entanto, não vá tão longe a ponto de pensar que é um espaço de trabalho GIS completo, ele não possui comportamentos de geodatabase como domínios e regras de atributo. O que faz, faz bem.<\/P><\/P>GeoPackage é extensível, e existem extensões aprovadas pela OGC para mosaicos em grade de dados de elevação e relacionamentos de tabelas, além de extensões comunitárias não aprovadas como estilização de mapas para feições e armazenamento de tiles vetoriais. O ArcGIS Pro ainda não implementa suporte para nenhuma extensão GeoPackage (exceto funcionalidade de tabela<\/A> adotada na versão v1.2).<\/P><\/P><\/P>O que você pode fazer com um GeoPackage no ArcGIS Pro 2.6?<\/P><\/P>Ler e gravar feições simples (polígonos, polilinhas, pontos, multipontos, arcos circulares, tabelas)<\/LI>Criar classes de feição com a ferramenta Feature Class to Feature Class<\/LI>Criar tabelas com a ferramenta Table to Table<\/LI>Usar Copiar\/Colar no painel Catálogo<\/LI>Usar a ferramenta Append para adicionar dados a uma classe de feição ou tabela existente<\/LI>Usar a ferramenta Add Raster To Geopackage para armazenar imagens<\/LI>Editar feições ou linhas com capacidade para desfazer e refazer edições<\/P><\/LI>Modificar o esquema<\/LI>Realizar geoprocessamento com qualquer ferramenta que aceite uma classe de feição simples ou tabela como entrada<\/LI>Compartilhar dados GeoPackage com outros usuários como um item estático no ArcGIS Online<\/LI>Usar dados vetoriais e raster do Geopackage em fluxos de trabalho cartográficos<\/LI>Ler ou gravar GeoPackage em fluxos ETL do Data Interoperability<\/LI>Usar instruções SQL no dialeto nativo do SQLite<\/LI><\/UL><\/P>O que você não<\/EM> <\/>pode fazer com um GeoPackage no ArcGIS Pro 2.6?<\/P><\/P>Publicar um item GeoPackage como uma camada web hospedada<\/LI>Armazenar ou editar metadados<\/LI>Usar qualquer ferramenta de geoprocessamento que exija saída geodatabase<\/LI><\/UL><\/P>Algumas recomendações: Você pode adicionar campos e calcular valores com ferramentas de geoprocessamento ou ArcPy, mas pode achar mais lento do que operações nativas em geodatabase. O armazenamento da geometria em um GeoPackage não é compactado como em uma geodatabase, então eles podem ficar grandes. Faça seu geoprocessamento antes<\/EM> de criar seu GeoPackage, depois copie seus dados para ele. Pense no GeoPackage como um formato para compartilhamento.<\/P><\/P>Mova seus dados para o GeoPackage assim:<\/P><\/P>Crie um GeoPackage com a ferramenta Create SQLite Database <\/><\/> (usando o tipo espacial GeoPackage)<\/LI>Use a ferramenta Copy<\/> (Data Management, conjunto geral de ferramentas) para adicionar dados vetoriais, ou Copiar\/Colar<\/> no painel Catálogo<\/LI>Use a ferramenta Add Raster to GeoPackage<\/> (Conversão, conjunto To GeoPackage) para adicionar mosaicos rasterizados<\/LI><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/> < P > Seu GeoPackage agora está pronto para uso.< \/ P > < P > < \/ P > < P > < STRONG > Nota sobre compartilhamento : < \/ STRONG > & nbsp ; Você pode enviar um arquivo .gpkg para o ArcGIS Online , o tipo do arquivo será reconhecido . & nbsp ; Você pode enviar um link após compartilhar o item e outros poderão baixá-lo da galeria de conteúdo . < \/ P > < P > < \/ P > < P > < STRONG > Tópico avançado : < \/ STRONG > & nbsp ; Como é baseado em SQLite , o GeoPackage vem com um mecanismo de banco de dados e bom suporte à linguagem < A href = "https : \/ \/ www.sqlite.org \/ lang.html " rel = "nofollow noopener noreferrer" > SQL < \/ A > . & nbsp ; Existem ferramentas terceirizadas para trabalhar com SQLite que você pode achar úteis , mas para incluir um componente espacial em seu trabalho , os produtos ArcGIS Data Interoperability ou Safe Software FME suportam scripts SELECT , CREATE , DROP , DUPLICATE , TRUNCATE e CROSS JOIN dentro dos transformadores Spatial ETL como SQLCreator e SQLExecutor . & nbsp ; Essa abordagem permite uso muito poderoso e eficiente do GeoPackage . < \/ P > < \/ BODY > < \/ HTML >
<\/P>
O SQLite como contêiner tem uma versão - OGC GeoPackage - que suporta a codificação de feições vetoriais e raster para uso direto no ArcGIS Pro. Você pode ler sobre o padrão no
O formato GIS mais frequentemente comparado com GeoPackage é o shapefile definido pela Esri. Shapefile é o formato GIS mais compartilhado no planeta e sua codificação de feições vetoriais é
Eu penso no GeoPackage como o novo shapefile sem as limitações antigas e incentivo você a usá-lo. É um ótimo formato para, bem, geo-empacotamento! No entanto, não vá tão longe a ponto de pensar que é um espaço de trabalho GIS completo, ele não possui comportamentos de geodatabase como domínios e regras de atributo. O que faz, faz bem.<\/P>
GeoPackage é extensível, e existem extensões aprovadas pela OGC para mosaicos em grade de dados de elevação e relacionamentos de tabelas, além de extensões comunitárias não aprovadas como estilização de mapas para feições e armazenamento de tiles vetoriais. O ArcGIS Pro ainda não implementa suporte para nenhuma extensão GeoPackage (exceto
O que você pode fazer com um GeoPackage no ArcGIS Pro 2.6?<\/P>
Editar feições ou linhas com capacidade para desfazer e refazer edições<\/P><\/LI>
O que você não<\/EM> <\/>pode fazer com um GeoPackage no ArcGIS Pro 2.6?<\/P><\/P>Publicar um item GeoPackage como uma camada web hospedada<\/LI>Armazenar ou editar metadados<\/LI>Usar qualquer ferramenta de geoprocessamento que exija saída geodatabase<\/LI><\/UL><\/P>Algumas recomendações: Você pode adicionar campos e calcular valores com ferramentas de geoprocessamento ou ArcPy, mas pode achar mais lento do que operações nativas em geodatabase. O armazenamento da geometria em um GeoPackage não é compactado como em uma geodatabase, então eles podem ficar grandes. Faça seu geoprocessamento antes<\/EM> de criar seu GeoPackage, depois copie seus dados para ele. Pense no GeoPackage como um formato para compartilhamento.<\/P><\/P>Mova seus dados para o GeoPackage assim:<\/P><\/P>Crie um GeoPackage com a ferramenta Create SQLite Database <\/><\/> (usando o tipo espacial GeoPackage)<\/LI>Use a ferramenta Copy<\/> (Data Management, conjunto geral de ferramentas) para adicionar dados vetoriais, ou Copiar\/Colar<\/> no painel Catálogo<\/LI>Use a ferramenta Add Raster to GeoPackage<\/> (Conversão, conjunto To GeoPackage) para adicionar mosaicos rasterizados<\/LI><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/><\/> < P > Seu GeoPackage agora está pronto para uso.< \/ P > < P > < \/ P > < P > < STRONG > Nota sobre compartilhamento : < \/ STRONG > & nbsp ; Você pode enviar um arquivo .gpkg para o ArcGIS Online , o tipo do arquivo será reconhecido . & nbsp ; Você pode enviar um link após compartilhar o item e outros poderão baixá-lo da galeria de conteúdo . < \/ P > < P > < \/ P > < P > < STRONG > Tópico avançado : < \/ STRONG > & nbsp ; Como é baseado em SQLite , o GeoPackage vem com um mecanismo de banco de dados e bom suporte à linguagem < A href = "https : \/ \/ www.sqlite.org \/ lang.html " rel = "nofollow noopener noreferrer" > SQL < \/ A > . & nbsp ; Existem ferramentas terceirizadas para trabalhar com SQLite que você pode achar úteis , mas para incluir um componente espacial em seu trabalho , os produtos ArcGIS Data Interoperability ou Safe Software FME suportam scripts SELECT , CREATE , DROP , DUPLICATE , TRUNCATE e CROSS JOIN dentro dos transformadores Spatial ETL como SQLCreator e SQLExecutor . & nbsp ; Essa abordagem permite uso muito poderoso e eficiente do GeoPackage . < \/ P > < \/ BODY > < \/ HTML >
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.
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.