Mais

Nem todos os polígonos removidos durante o corte da camada vetorial no QGIS

Nem todos os polígonos removidos durante o corte da camada vetorial no QGIS


Eu criei dez polígonos representando lagos em uma camada vetorial e estou tentando cortá-los de uma camada vetorial importada e reprojetada de distritos administrativos. Quando eu uso o recurso 'Cortar com polígono de outra camada', apenas nove lagos são removidos. O último se sobrepõe a dois distritos, mas não é separado de nenhum deles. Grato por qualquer ajuda em tudo.


Atualizar. Dei uma olhada mais de perto no contorno do meu lago problemático e descobri que havia dois pontos cruzados, criando efetivamente um loop muito pequeno na minha geometria (o QGIS destacou isso com uma cruz verde quando aumentei o zoom). Reorganizei os dois pontos e tentei cortar novamente usando o mesmo processo e todos os polígonos agora cortam corretamente.


GIMP - Bordas brancas indesejadas após a aplicação de camada de transparência

Ao qual apliquei um fundo de transparência:

No entanto, o resultado não é perfeito, pois as letras ainda têm bordas brancas. Você pode ver isso no seguinte zoom:

O que eu fiz de errado? Ou eu tenho que fazer algo mais para remover essas bordas finas brancas?

EDITAR: não é só o texto que é um problema, pois o gráfico também tem bordas brancas:


4 respostas 4

Eu diria que não há solução rápida e suja para linhas instáveis, você só precisa recriá-las usando vetores. O seguinte me levou 3 minutos no Photoshop com efeito Círculos e Traço:

Não vou fazer tudo por você, mas tudo que você precisa é de mais dois semicírculos e você tem um logotipo baseado em forma, que deve ser dimensionado perfeitamente para qualquer tamanho. Então, são 6 círculos, dois semicírculos e um traço aplicado a alguns deles. No seu caso, é muito simples de recriar, mas um logotipo detalhado levaria muito mais tempo.

Existem várias maneiras de fazer isso, embora no seu caso eu apenas me esforce e gaste um pouco de tempo fazendo isso, se você é proficiente com qualquer software GD que cria formas, isso não deve levar nem meia hora e se você não é, agora é um bom momento para aprender algumas habilidades reutilizáveis.


Abstrato

Em muitas áreas costeiras, um grande número de recreacionistas pode exceder as capacidades ecológicas. O monitoramento cuidadoso dos fluxos de visitantes é o primeiro pré-requisito para a gestão da área costeira. Mostramos como os dados do navio AIS podem ser traduzidos em informações interpretáveis ​​em barcos de recreio e investigamos se o AIS pode fornecer informações de monitoramento em comparação com os alvos da política de conservação da natureza. No Mar de Wadden, Patrimônio Mundial da UNESCO, usamos quase 9 milhões de pontos de dados para criar padrões espaço-temporais para a temporada de recreação de 2018. Combinamos isso com as rotas de navegação e dados de batimetria e comparamos os padrões resultantes com os regulamentos de proteção da natureza. Nossos resultados mostram que a maior parte do tráfego está concentrada em torno dos canais das marés. Também mostramos que exceder os limites de velocidade não é um comportamento predominante, mas o efeito do excesso de velocidade em pássaros e focas pode ser mais severo do que os dados sugerem. Mapeamos atividades favoritas de charnecas planas de maré e observamos onde isso ocorre em áreas marinhas protegidas. Concluímos que a análise AIS pode fornecer monitoramento valioso de barcos de recreio, relevantes para o gerenciamento de áreas costeiras sensíveis em todo o Mar de Wadden holandês durante toda a temporada recreativa. A integração mais ampla do AIS com dados de radar e dados ecológicos pode aumentar o poder de usar o AIS.


Resultados

Para cada um dos três tipos de geometria no conjunto de dados de teste, realizamos testes de hipótese em quatro métricas:

Tempo de criação: O tempo que leva para criar um diff dadas duas versões de uma geometria.

Tempo de aplicação: o tempo que leva para criar a versão n + 1 de uma geometria, dada a versão n e um diff.

Tempo de desfazer: o tempo que leva para retornar à versão n de uma geometria, dada a versão n + 1 e um diff.

Tamanho do patch: O tamanho físico do diff criado.

Esperamos que o algoritmo GeomDiff exiba um tempo de criação, aplicação e desfazer mais rápido para geometrias de pontos, cadeias de linhas e polígonos em comparação com os outros algoritmos. Além disso, esperamos que o algoritmo GeomDiff produza patches menores.

O teste estatístico foi realizado utilizando o seguinte procedimento, implementado como um script Python [23]. Todos os testes estatísticos foram realizados com nível de significância de 0,05. Para cada métrica de cada tipo de geometria, os dados registrados para cada um dos quatro algoritmos foram carregados. Primeiro, todos os erros foram contados, registrados (ver Tabela 6) e, em seguida, removidos antes de uma análise posterior. Um erro é uma exceção lançada pelo código ou uma instância em que o patch não criou o resultado esperado.

Em segundo lugar, um teste de D’Agostino e Pearson [24] foi aplicado para verificar a distribuição normal de cada grupo. Uma vez que nenhum dos grupos foi distribuído normalmente (p & lt 0,05), um teste H de Kruskal-Wallis [25] foi então aplicado ao teste H0, que as amostras de todos os algoritmos vieram da mesma distribuição. Desde H0 foi rejeitado em todos os casos (p & lt 0,05), continuamos com um teste post hoc para realizar comparações de pares entre os quatro algoritmos. Usando o teste de Conover [26], descobrimos que nenhum dos pares era estatisticamente semelhante (p & lt 0,05). Isso significa que todas as diferenças entre os valores médios de cada algoritmo são significativas.

Geometrias de ponto

Para geometrias de ponto (Tabela 3), um total de 1.335.489 pares de geometrias foram verificados para cada algoritmo. No geral, o algoritmo BinaryDiff é mais lento do que o algoritmo mais rápido por um fator de 1000 na criação e aplicação. Os algoritmos TextDiff e JsonDiff mostram resultados comparáveis, além do tamanho do patch. O algoritmo GeomDiff produz o menor patch no menor tempo e também é o mais rápido de aplicar e desfazer.

Geometrias de linha

Para geometrias de cadeia de linha (Tabela 4), um total de 813.503 pares de geometrias foram verificados para cada algoritmo. O número médio de vértices é 24, o 99º percentil 236. Quando se trata de desempenho, o algoritmo GeomDiff é consideravelmente mais lento para criar patches, embora com um grande desvio padrão, mas ainda é o mais rápido no tempo de criação e desfazer. O algoritmo JsonDiff é o mais rápido para criar patches, mas os patches criados pelo algoritmo JsonDiff são, em média, maiores do que os patches criados pelo algoritmo BinaryDiff por um fator de 8,5.

Geometrias poligonais

Para geometrias poligonais (Tabela 5), ​​um total de 433.776 pares de polígonos com uma contagem média de vértices de 28 (99º percentil 299) foram verificados. Em termos de desempenho, o conjunto de dados do polígono exibe praticamente as mesmas tendências dos dados da cadeia de linha. Os desvios padrão são grandes, e os algoritmos BinaryDiff e GeomDiff são consideravelmente mais lentos do que TextDiff e JsonDiff quando se trata de criar tempo, mas ao mesmo tempo eles produzem os menores patches.

Contagens de erros

As contagens de erros (Tabela 6) mostram que o algoritmo GeomDiff encontrou 22 e 34 erros de criação e 33 e 45 erros de patch e desfazer em cadeias de linha e polígonos, respectivamente. O algoritmo TextDiff falhou ao desfazer 38.480 pares de cadeias de linha (5%) e 18.396 (4%) pares de polígonos corretamente.

Para geometrias de ponto, as taxas são próximas de zero (& lt 1 ‰) para todas as métricas.

Os erros de criação para o algoritmo TextDiff são todos “URI inválido: a string Uri é muito longa.”. Esse erro se origina na biblioteca Diff Match Patch, que usa codificação de URL fornecida pela biblioteca padrão C #. Isso mostra que o fator limitante para comprimentos de string e, por extensão, contagem de vértices, é o método de codificação de URL.

Para o algoritmo GeomDiff, todos os erros de criação são “Tempo limite esgotado após 60000 ms”. Este é um limite rígido embutido na biblioteca GeomDiff para evitar operações de longa duração para bloquear por um período de tempo irracional.

Efeitos de número de vértice

Para geometrias de cadeia de linha e polígono, o algoritmo GeomDiff exibe um desvio padrão incomumente grande na métrica de tempo de criação. A fim de investigar as possíveis causas para isso, identificamos o percentil 99 superior e removemos as observações com valores superiores a este. Isso é mostrado na Tabela 7. Vemos que, removendo 1% das observações, o desvio padrão é reduzido em duas ordens de magnitude.

Uma possível explicação para isso é que o tempo de criação do algoritmo GeomDiff aumenta conforme o número de vértices da geometria aumenta. Esta explicação é suportada pelas falhas de criação em 22 linhas de linha e 34 geometrias de polígono. Nesses casos, o algoritmo funcionou por 60 s antes de atingir o tempo limite. Examinando as geometrias que causaram os erros, encontramos uma contagem média de vértices de 1677 e 1576 para cadeias de linha e polígonos, respectivamente. Para o primeiro percentil (mais lento), as médias de contagem de vértices foram 300 e 364. Esses números são um aumento substancial da população total, que em média tem uma contagem de vértices de 24 para cadeias de linha e 28 para polígonos. Em outras palavras, grandes contagens de vértices parecem indicar longos tempos de execução.

Para investigar se a variável de contagem de vértices influencia a criação de tempo, calculamos o coeficiente de correlação de Pearson [27] entre o tempo de criação e a contagem de vértices, conforme mostrado na Tabela 8. Vemos que a mudança de correlação entre toda a população e o primeiro percentil é substancial para o algoritmo GeomDiff (+ 0,17 / + 0,81), enquanto é relativamente estável ou decrescente para os outros algoritmos (- 0,02 / - 0,01 para o algoritmo TextDiff). Assim, suspeitamos que a contagem de vértices em geometrias de cadeia de linha e polígono afeta significativamente o tempo de criação do algoritmo GeomDiff e, especialmente, para um grande número de vértices.

Ao agrupar os resultados do tempo de criação pela contagem de vértices e calcular o tempo médio de criação para cada grupo (Fig. 2 e Fig. 3), descobrimos que todos os algoritmos, exceto o algoritmo BinaryDiff, mostram um aumento no tempo de criação com o aumento do número de vértices. No entanto, para o algoritmo GeomDiff, há um aumento acentuado ao exceder uma contagem de vértices de 500, para cadeias de linha e polígonos.

Tempo médio de criação para patches de linha, agrupados por contagem de vértices

Tempo médio de criação para patches de polígono, agrupados por contagem de vértices


Falando em termos de desenho de engenharia, existem dois métodos para gerar projeções de um objeto. Projeções de primeiro ângulo e projeções de terceiro ângulo. Essas projeções são desenvolvidas com base no pressuposto de como o objeto é conceitualmente visto em um sistema de quadrantes.

Na projeção do primeiro ângulo, colocamos nosso objeto no primeiro quadrante (veja a figura acima). Isso significa que o Plano vertical está atrás do objeto e o Plano horizontal está abaixo do objeto.

Na projeção do terceiro ângulo, o objeto é colocado no terceiro quadrante. Isso significa que o plano vertical está na frente do objeto e o plano horizontal está acima do objeto.

Essas mudanças na posição das vistas são a única diferença entre os métodos de projeção.

Então, basicamente, visualize um objeto sendo visto desses planos diferentes. O plano frontal fornece a vista lateral. O plano horizontal oferece as vistas superior ou inferior (com base no ângulo de projeção).

E a visualização é a chave para se tornar bom em desenhos CAD, modelagem 3D, etc. É preciso um pouco de prática e imaginação, mas é fácil pegar o jeito :)


Reconhecimentos

Os autores desejam agradecer o financiamento da Generalitat de Catalunya (Grup Consolidat de Recerca: Grup d'Hidrologia Subterrània (2014-SGR-1377). Mar Alcaraz foi financiado por uma bolsa de pós-doutorado do Conselho Nacional de Pesquisa Científica e Técnica da Argentina (5043- Rotman Criollo agradece também o apoio do Plano de Doutorado Industrial Catalão da Secretaria de Universidades e Pesquisa do Ministério da Economia e do Conhecimento da Generalitat de Catalunya. Agradecemos ao MIKE by DHI pela licença FEFLOW patrocinada.


O driver vetorial netCDF suporta leitura e gravação de arquivos netCDF seguindo as convenções de metadados Climate and Forecast (CF). Conjuntos de dados vetoriais podem ser escritos usando a especificação de geometria simples da convenção CF-1.8 ou usando a convenção CF-1.6 e escrevendo itens de geometria não pontual como WKT.

Distinguir os dois formatos¶

Ao ler um arquivo netCDF, o driver tentará ler o global Convenções atributo. Se o valor for CF-1.8 ou superior (neste formato exato, conforme especificado na convenção CF), o driver tratará o arquivo netCDF como aquele que possui CF-1.8 geometrias contidas nele. Se o Convenções atributo tem um valor de CF-1.6, o arquivo será tratado conforme a convenção CF-1.6.

Limitações de gravação do CF-1.8¶

A gravação em um conjunto de dados netCDF CF-1.8 apresenta algumas limitações. Apenas escrever os tipos de recursos especificados pelo padrão CF-1.8 (consulte a seção Geometria para obter mais detalhes) são suportados, e recursos medidos são apenas parcialmente suportados. Outras geometrias, como geometrias de curvas não simples, não são suportadas de forma alguma.

Conjuntos de dados CF-1.8 também não suportam o acrescentar modo de acesso.

Existem o que são considerados nomes de variáveis ​​reservados para conjuntos de dados CF-1.8. Esses nomes de variáveis ​​são usados ​​pelo driver para armazenar seus metadados. Evite usar esses nomes como nomes de camadas para evitar conflitos de nomenclatura ao gravar conjuntos de dados com várias camadas.

Suponha que uma camada em um conjunto de dados CF-1.8 tenha o nome LAYER com um campo com o nome FIELD. Em seguida, os seguintes nomes seriam considerados reservado:

LAYER_node_coordinates: usado para armazenar informações do ponto

LAYER_node_count: usado para armazenar informações de contagem de pontos por forma (não criado se LAYER tiver um tipo de geometria de Ponto)

LAYER_part_node_count: usado para armazenar informações de contagem de pontos por peça (criado apenas se LAYER consistir em MultiLineStrings, MultiPolygons ou tiver pelo menos um polígono com anéis internos)

LAYER_interior_ring: usado para armazenar informações do anel interno (criado apenas se LAYER consistir em pelo menos um polígono com anéis internos)

LAYER_field_FIELD: usado para armazenar informações de campo para FIELD.

Esses nomes são os únicos nomes reservados que se aplicam aos conjuntos de dados CF-1.8.

Os conjuntos de dados CF-1.6 / WKT não estão limitados às restrições acima mencionadas.


Um método de divisão e conquista para predição de séries espaço-temporais

As séries de espaço-tempo podem ser divididas em espaço-tempo suave e espaço-tempo bruto, que representam diferentes características de escala. No entanto, a maioria dos métodos existentes para predição de séries de espaço-tempo abordam diretamente as séries de espaço-tempo como um todo e não consideram a interação entre espaço-tempo suave e espaço-tempo bruto no processo de predição. Isso possivelmente afetará a precisão da previsão da série espaço-tempo, porque a interação entre esses dois componentes (ou seja, espaço-tempo suave e espaço-tempo bruto) pode causar um deles como componente dominante, enfraquecendo assim o comportamento do outro. Portanto, um método de dividir e conquistar para a previsão do espaço-tempo é proposto neste artigo. Em primeiro lugar, os dados de granulação fina observacional são decompostos em dois componentes: dados de granulação grossa e os termos residuais de dados de granulação fina. Esses dois componentes são modelados, respectivamente. Finalmente, os valores previstos dos dados de granulação fina são obtidos integrando os valores previstos dos dados de granulação grossa com os termos residuais. Os resultados experimentais de dois grupos de diferentes séries de espaço-tempo demonstraram a eficácia do método de dividir e conquistar.

Esta é uma prévia do conteúdo da assinatura, acesso por meio de sua instituição.


1. Base

Os recursos necessários especificados nesta cláusula servem de base para as opções especificadas na cláusula Opções e extensões especificadas na cláusula Extensões Registradas (Normativa). Todas as tabelas e visualizações gpkg_ * e todas as tabelas de dados do usuário de blocos especificadas neste padrão DEVERÃO ter apenas as colunas e restrições de tabela especificadas. Quaisquer recursos de tabelas de dados do usuário PODEM ter colunas além das especificadas. Todos os valores especificados de tabela, visão, coluna, gatilho e nome de restrição DEVEM ser minúsculos.

1.1. Testemunho

As capacidades essenciais obrigatórias definidas nas subcláusulas e declarações de requisitos desta cláusula DEVEM ser implementadas por cada GeoPackage e Configuração GeoPackage SQLite.

1.1.1. Recipiente SQLite

A biblioteca de software SQLite fornece um contêiner RDBMS de código aberto independente, de arquivo único, de plataforma cruzada, sem servidor, transacional e transacional. O padrão GeoPackage define um esquema de banco de dados SQL projetado para uso com a biblioteca de software SQLite. Usar o SQLite como base do GeoPackage simplifica a produção, distribuição e uso dos GeoPackages e auxilia na garantia da integridade dos dados que eles contêm.

"Autocontido" significa que o software contêiner requer um suporte mínimo de bibliotecas externas ou do sistema operacional. "Arquivo único" significa que um contêiner não aberto atualmente por qualquer aplicativo de software consiste em um único arquivo em um sistema de arquivos compatível com um sistema operacional de plataforma de computação. "Plataforma cruzada" significa que um arquivo contêiner PODE ser criado e carregado com dados em uma plataforma de computação e usado e atualizado em outra, mesmo que eles usem sistemas operacionais, sistemas de arquivos e convenções de ordem de bytes (endian) diferentes. "Sem servidor" significa que o contêiner RDBMS é implementado sem qualquer processo de servidor intermediário e acessado diretamente pelo software aplicativo. "Transacional" significa que as transações RDBMS garantem que todas as alterações nos dados no contêiner sejam Atômicas, Consistentes, Isoladas e Duráveis ​​(ACID), apesar das falhas do programa, do sistema operacional e de energia.

1.1.1.1. Dados
1.1.1.1.1. Formato de arquivo

Um GeoPackage DEVE ser um arquivo de banco de dados SQLite [5] usando a versão 3 do formato de arquivo SQLite [6] [7]. Os primeiros 16 bytes de um GeoPackage DEVERÃO ser a string ASCII [B4] terminada em nulo "formato SQLite 3" [K1] [K2]

Um GeoPackage DEVE conter um valor de 0x47504B47 ("GPKG" em ASCII) no campo "application_id" do cabeçalho do banco de dados SQLite para indicar que é um GeoPackage. [K3] Um GeoPackage DEVE conter um valor apropriado no campo "user_version" do cabeçalho do banco de dados SQLite para indicar sua versão. O valor DEVE ser um número inteiro com uma versão principal, uma versão secundária de dois dígitos e uma correção de bug de dois dígitos. Para GeoPackage Versão 1.2, este valor é 0x000027D8 (o valor hexadecimal para 10200). [K4]

O tamanho máximo de um arquivo GeoPackage é de cerca de 140 TB. Na prática, um limite de tamanho inferior PODE ser imposto pelo sistema de arquivos no qual o arquivo foi gravado. Muitos dispositivos móveis exigem que os cartões de memória externos sejam formatados usando o sistema de arquivos FAT32, que impõe um limite de tamanho máximo de 4 GB.

1.1.1.1.2. Nome da extensão do arquivo

Um GeoPackage DEVE ter o nome de extensão de arquivo ".gpkg".

É RECOMENDADO que Extended GeoPackages use a extensão de arquivo ".gpkx", mas este NÃO é um requisito do GeoPackage.

1.1.1.1.3. Conteúdo do arquivo

Um GeoPackage DEVE conter apenas os elementos de dados (tabelas, colunas ou valores) e construções SQL (visualizações, restrições ou gatilhos) especificados no núcleo deste padrão de codificação (recursos, blocos e atributos). Os GeoPackages estendidos PODEM conter elementos de dados adicionais e construções SQL conforme especificado através do Mecanismo de Extensão.

O GeoPackage designação é projetada para fornecer interoperabilidade máxima entre aplicativos. Em um Extended GeoPackage, o mecanismo de extensão é usado para fornecer recursos adicionais de uma maneira que mantém a interoperabilidade tanto quanto possível. Os desenvolvedores são encorajados a considerar as implicações das extensões ao projetar seus aplicativos. As melhores práticas incluem o seguinte:

Projetar de uma forma que antecipe a presença de extensões inesperadas, por exemplo, lidar com colunas, valores ou codificações inesperadas.

Usando a extensão RTree Spatial Indexes para GeoPackages contendo uma quantidade não trivial de dados vetoriais.

Usando o WKT para extensão de sistemas de referência de coordenadas, que é fortemente recomendado devido a deficiências inerentes no padrão original para sistemas de referência de coordenadas de codificação.

As colunas das tabelas em um GeoPackage DEVEM ser declaradas apenas usando um dos tipos de dados especificados na tabela GeoPackage Data Types. Os GeoPackages estendidos PODEM conter tipos de dados adicionais conforme especificado no Mecanismo de Extensão.

Um valor booleano que representa verdadeiro ou falso. Armazenado como SQLite INTEGER com valor 0 para falso ou 1 para verdadeiro.

Número inteiro de complemento de dois & # 8217s com sinal de 8 bits. Armazenado como SQLite INTEGER com valores no intervalo [-128, 127].

16 bits com sinal de dois & # 8217s complemento inteiro. Armazenado como SQLite INTEGER com valores no intervalo [-32768, 32767].

Dois & # 8217s com sinal de 32 bits complementam o inteiro. Armazenado como SQLite INTEGER com valores no intervalo [-2147483648, 2147483647].

Número inteiro de complemento de dois & # 8217s com sinal de 64 bits. Armazenado como SQLite INTEGER com valores no intervalo [-9223372036854775808, 9223372036854775807].

Número de ponto flutuante IEEE de 32 bits. Armazenado como SQLite REAL limitado a valores que podem ser representados como um número de ponto flutuante IEEE de 4 bytes.

Número de ponto flutuante IEEE de 64 bits. Armazenado como SQLite REAL.

String de comprimento variável codificada em UTF-8 ou UTF-16, determinada pela codificação PRAGMA, consulte http://www.sqlite.org/pragma.html#pragma_encoding. O maxchar_count opcional define o número máximo de caracteres na string. Se não for especificado, o comprimento é ilimitado. A contagem é fornecida para fins informativos e os aplicativos PODEM optar por truncar cadeias de caracteres mais longas, se encontradas. Quando presente, é uma prática recomendada que os aplicativos sigam a contagem de caracteres. Armazenado como SQLite TEXT.

Dados binários de comprimento variável. O max_size opcional define o número máximo de bytes no blob. Se não for especificado, o comprimento é ilimitado. O tamanho é fornecido para fins informativos. Quando presente, é uma prática recomendada que os aplicativos sigam o tamanho máximo de blob. Armazenado como SQLite BLOB.

Geometria codificada de acordo com a cláusula Codificação de geometria. & ltgeometry type_name & gt é um dos tipos de geometria de núcleo listados em Tipos de geometria (normativo) codificados pela cláusula 2.1.3 ou um tipo de geometria codificado por uma extensão como GeoPackage Non-Linear Geometry Types. Tipos de geometria As geometrias XY, XYZ, XYM e XYZM usam o mesmo tipo de dados. Armazenado como SQLite BLOB.

String de data ISO-8601 no formato AAAA-MM-DD codificada em UTF-8 ou UTF-16. Veja TEXTO. Armazenado como SQLite TEXT.

String de data / hora ISO-8601 no formato AAAA-MM-DDTHH: MM: SS.SSSZ com caractere separador T e sufixo Z para hora universal coordenada (UTC) codificado em UTF-8 ou UTF-16. Veja TEXTO. Armazenado como SQLite TEXT.

1.1.1.1.4. Integridade de arquivo

O comando SQLite PRAGMA Integrity_check DEVERÁ retornar "ok" para um arquivo GeoPackage. [K5]

O SQLite PRAGMA foreign_key_check SQL sem valor de parâmetro DEVERÁ retornar um conjunto de resultados vazio indicando nenhum valor de chave estrangeira inválido para um arquivo GeoPackage.

1.1.1.2. API
1.1.1.2.1. Linguagem de consulta estruturada (SQL)

Uma configuração GeoPackage SQLite DEVERÁ fornecer acesso SQL aos conteúdos do GeoPackage via APIs de software SQLite versão 3 [6]. [K6]

1.1.1.2.2. Cada configuração SQLite GPKG

A biblioteca SQLite [8] tem muitas opções de tempo de compilação e tempo de execução que PODEM ser usadas para configurar o SQLite para diferentes usos. O uso das opções SQLITE_OMIT não é recomendado porque certos elementos do padrão GeoPackage dependem da disponibilidade da funcionalidade SQLite em tempo de execução.

Cada configuração SQLite do GeoPackage DEVE ter as opções de tempo de compilação da biblioteca SQLite especificadas na cláusula 1.1.1.2.2 tabela [every_gpkg_sqlite_config_table].

1.1.2. Sistemas de Referência Espacial

1.1.2.1. Dados
1.1.2.1.1. Definição de Tabela

Um GeoPackage DEVERÁ incluir uma tabela gpkg_spatial_ref_sys por cláusula 1.1.2.1.1 Definição de Tabela, Tabela Spatial Ref Sys Definição de Tabela e Tabela gpkg_spatial_ref_sys Definição de Tabela SQL.

Uma tabela chamada gpkg_spatial_ref_sys é o primeiro componente do esquema SQL padrão para recursos simples descritos na cláusula Simple Features SQL Introduction abaixo. As definições do sistema de referência de coordenadas que ele contém são referenciadas pelas tabelas GeoPackage gpkg_contents e gpkg_geometry_columns para relacionar os dados vetoriais e de bloco nas tabelas do usuário a locais na Terra.

A tabela gpkg_spatial_ref_sys inclui as colunas especificadas em SQL / MM (ISO 13249-3) [12] e mostradas em Spatial Ref Sys Table Definition abaixo contendo dados que definem sistemas de referência espacial. As visões desta tabela PODEM ser usadas para fornecer compatibilidade com o SQL / MM [12] (ver Visão SQL / MM de gpkg_spatial_ref_sys Definição de SQL (Informativo)) e OGC Simple Features SQL [9] [10] [11] (Tabela 21) padrões.

Nome legível por humanos deste SRS

Identificador único para cada Sistema de Referência Espacial em um GeoPackage

Nome da organização definidora que não diferencia maiúsculas de minúsculas, por exemplo, EPSG ou epsg

ID numérico do Sistema de Referência Espacial atribuído pela organização

Texto conhecido [32] Representação do Sistema de Referência Espacial

Descrição legível por humanos deste SRS

1.1.2.1.2. Valores de dados da tabela

Os valores WKT da coluna de definição na tabela gpkg_spatial_ref_sys definem os Sistemas de Referência Espacial usados ​​por geometrias de recursos e imagens de blocos, a menos que esses SRSs sejam desconhecidos e, portanto, indefinidos conforme especificado no Requisito 11. Os valores são construídos pela sintaxe EBNF na cláusula [32] 7. EBNF valores de nome e número podem ser obtidos de qualquer autoridade especificada, por exemplo [13] [14]. Por exemplo, consulte o valor de retorno em [spatial_ref_sys_data_values_default] Etapa do método de teste (3) usado para testar a definição de WGS-84 de acordo com o Requisito 11:

A tabela gpkg_spatial_ref_sys DEVE conter, no mínimo, os registros listados nos registros da tabela Spatial Ref Sys. O registro com um srs_id de 4326 DEVERÁ corresponder a WGS-84 [15] conforme definido por EPSG [B3] em 4326 [13] [14]. O registro com um srs_id de -1 DEVE ser usado para sistemas de referência de coordenadas cartesianas indefinidas. O registro com um srs_id de 0 DEVE ser usado para sistemas de referência de coordenadas geográficas indefinidas.