Em qual (décima) casa decimal dos valores das coordenadas o QGIS define que qualquer conjunto de pontos é duplicado?
Eu estava pensando que o QGIS lida com ~ 15 casas decimais; mas era a limitação apenas porque eu estava trabalhando principalmente nos Shapefiles.
No entanto, o limite não se aplica quando escolho outra fonte de dados, como uma camada temporariamente temporária.
Usando dados fictícios, como abaixo, fiz um teste rápido com duas ferramentas, para encontrar o menor valor possível para identificar diferenças de coordenadas:
- Geoprocessamento QGIS:
Delete duplicate geometries
- MMQGIS plugin:
Delete Duplicate Geometries
A saída de QGIS Delete duplicate geometries
é igual aos dados de entrada acima (todos os 20 registros foram preservados); portanto, o QGIS pensa que todos são distintos. Esse limite ultrapassa 1e-29 (ou 1e-30) visto neste pequeno teste?
Apenas como comparação, MMQGIS Delete Duplicate Geometries
produzida abaixo. Parece que o MMQGIS define as casas decimais 16 ou 17 como o limite.
[Editar]
Receio não ter ficado claro qual era a parte central da minha pergunta. Meu objetivo é entender a relação entre os valores das coordenadas e as duplicatas / sobreposições, conforme indicado no primeiro parágrafo da minha pergunta. Esperamos que esse tipo de conhecimento possa nos ajudar a controlar facilmente os recursos sobrepostos, ajustando as expressões da calculadora de campo.
No entanto, o problema subjacente que eu estava tentando focar era que as casas decimais que o QGIS reconhece pontos (nós) como a sobreposição parece variar, dependendo da fonte de dados.
Se usarmos Shapefiles para nossa camada, o QGIS manipulará ~ 15 casas decimais e uma diferença menor (16 ou 17) não será reconhecida ... O MMQGIS também é afetado por essa limitação (aos meus olhos). Se criarmos uma camada temporariamente temporária ou camadas de banco de dados, essa limitação vai muito além do 30º ish? Essa mudança de comportamento me faz pensar.
Respostas:
A ferramenta QGIS Delete Duplicate Geometries (no Geoalgorithms, Vector General Tools do QGIS 2.18) é um script Python que opera nos objetos de geometria exportados / expostos pela camada Python do QGIS. E abaixo dessa camada está a camada GEOS.
O operador de igualdade de geometria da camada GEO aceita um parâmetro de tolerância (na unidade de distância do mapa) ao comparar duas geometrias. Infelizmente, esse parâmetro de tolerância não é exposto pela camada Python do QGIS - portanto, para Excluir geometrias duplicadas , duas geometrias são consideradas iguais se e somente se todos os seus valores XY forem totalmente iguais. Por exemplo, POINT (1.000000 1.000000) não é igual a POINT (1.00000001 1.00000001).
fonte
Uma leitura interessante sobre esse assunto é essa pergunta frequente: Medindo a precisão da latitude e longitude?
Não conheço as ferramentas projetadas para identificar duplicatas, mas, do ponto de vista computacional, é apenas uma questão de como os números são manipulados pela arquitetura de armazenamento das entidades e pelo software que as manipula. Dois números diferentes serão exibidos
FLASE
desde que o idioma represente os números de uma maneira que faça alguma diferença se o teste for se eles não forem iguais. Em muitos casos, o interesse da duplicata é encontrar valores iguais, descobrir um tipo de erro de digitação durante a digitalização, e não a proximidade.Em outros contextos, o interesse das duplicatas é identificar objetos suficientemente próximos e, em termos práticos, eles correspondem.
Supondo que o QGIS use o Python como linguagem principal, sua pergunta pode ser direcionada aos documentos do Python e você terá uma leitura interessante sobre como a aritmética da base 2 difere dos nossos livros elementares de matemática: Python: aritmética de ponto flutuante: problemas e limitações
fonte
Eu sou um agrimensor registrado em vários estados. O que você vê nas diferentes projeções são linhas / distâncias retas provenientes das grades Lambert ou Mercator. É como colocar um cone na Terra, então a medida que você está fazendo é colocada nas linhas de raio acima da curvatura da Terra. Mercator transversal é uma projeção cilíndrica para estados mais longos do leste oeste, como o Tennessee. Utilizando sistemas GPS de nível de pesquisa, frequentemente comparamos as informações com as projeções mundiais e até as projeções de estado, enquanto elas estavam nas antenas. todas as medições são baseadas nos parâmetros incorporados nos cálculos em cada ponto medido. O uso de equipamento GIS Grade que possui um parâmetro de submetro corresponde muito bem em trechos de uma ou duas milhas. Após cerca de 6 casas decimais nas medições angulares é o máximo que você pode esperar que a precisão seja. Não importa quantas vezes você gere um ponto no GPS com precisão de um metro, você nunca obterá um "Média" ou um "Modo" que corresponda às medições de alta precisão. Resumindo, quando estou trabalhando com informações de antenas ou satélite, não deixo um medidor ou mais me incomodar. Oh, existem cálculos esféricos para medições da soneca da terra usando ângulos teta que calculam o ângulo de prumo no campo em comparação com o ângulo calculado nesse ponto para o centro da terra. Não existe uma medida verdadeira. Para provar esse ponto, quando comecei a pesquisar em 1975, nosso chefe colocou dois pregos em uma estrada montanhosa a um quarto de milha de distância e tivemos que prendê-lo e disparar a distância todos os dias durante um mês. Com as correções atmosféricas na corrente e no medidor de distância HP, correspondemos apenas à distância original 3 vezes com o medidor de distância e 1 vez com a corrente. Um exemplo muito humilhante e fica comigo por todo esse ano. Fui vaiado em uma convenção GIS uma vez quando me anunciaram como agrimensor (ele) e eu não tinha dito uma palavra, mas sei quando colocar meu chapéu de ursador e quando usar meu chapéu de GIS.
fonte