O software gvSIG OA Digital Edition 2010 possui topologia de ferramentas para encontrar pseudo nós na geometria linear. Defino a tolerância do cluster 0,00002 e o número máximo de erros -10000 para a geometria linear da contagem de 20000 links. Mas resultado sem sucesso.
Existem soluções que encontram pseudo-nós no software GIS gratuito?
Eu preciso colocar os pseudo nós em camadas (uma solução para esse problema - usar a topologia de ferramentas do ArcInfo, mas a prioridade para mim é usar o software livre). A geometria linear criou vários usuários no QGIS 1.8.0 no banco de dados PostGIS (v. 2.0.1).
Adicione uma nova imagem: 12 recursos lineares com três pseudo nós em A (linha 4/5), B (linha 6/7), C (linha 9/10). Os pseudo nós devem ser pontos - duas características lineares com interseção em um ponto (nó) devem ser uma característica linear (linha 4/5 - linha 4, ...).
É possível fazer uma solicitação no PostGIS, o que resultará em uma camada de pseudo nós?
Adicione nova imagem de exemplos pseudo-nós: se eu receber para pseudo-nós da camada linear da camada pontual (rects em azul), corrigi os seguintes erros na camada linear: A - adicione geometria ausente, B - linha quebrada na interseção, C - remova o pseudo nó.
Respostas:
Aqui está uma solução genérica, que você pode implementar com o PostGIS ou qualquer outro software compatível com OGC.
Seu problema é "encontrar pseudo-nós" ... Mas acho que é um pouco mais ", encontrar não-pseudo-nós e juntar linhas de pseudo-nós". Minha solução pode ser usada para ambos.
Os padrões OGC oferecem:
ST_Boundary (geom) : para detectar os nós das linhas
ST_Dump (geom) : para colocar cada nó único em um registro da tabela SQL.
ST_DWithin, ST_Equals, ST_SnapToGrid, ST_Snap podem ser usados para tolerância a alterações. Estou usando ST_DWithin.
Podemos supor que seu problema principal possa ser especificado com esses objetos e propriedades,
há apenas segmentos de linha (de uma tabela LineSegment ), representado por uma geometria LINESTRING ... Eu não testado com MULTILNE, se você tem GeometryType = multiponto, você pode dividir e multilines elenco com ST_Dump e ST_LineMerge;
cada segmento de linha possui um gid (ID da geometria) e um idline (ID da cor) .
Portanto, o primeiro passo é obter os nós resultantes da junção de linhas,
NOTA: usando caches porque eles são mais rápidos que visualizações. Use "EXPLAIN SELECT ..." para verificar o tempo da CPU, isso pode levar um longo tempo.
Aqui, os ciclos e as linhas contínuas (da mesma cor) são detectados como
ncolors=1
pontos, e os pseudo nós porncolors=2
pontos; portanto, você tem uma camada com esses pontos.Sua tabela de "bons nós" está com os "pontos limite" originais e sem "pseudo-nós".
fonte
array_distinct
função não citada é de uma biblioteca postgres.cz . Quaisquer outros erros, por favor relate, posso adicionar mais explicações aqui.geom
parathe_geom
. (ST_Dump (x)) permanece como geom, não é um atributo do banco de dados.A Refractions Research criou uma ferramenta Line Cleaner que parece fazer o que você deseja.
O código fonte pode ser encontrado no GitHub.
fonte
Solução não livre: transformador FME + MRF + SmartCleaner
Solução gratuita GRASS v.clean (o QGIS 1.8.0 mais recente com ferramentas GRASS é a maneira mais fácil de usá-lo) e outras ferramentas de limpeza de topologia
fonte
Aqui estão as etapas para encontrar seus pseudo nós usando o OpenJump, um GIS gratuito.
O QGIS e o gvSIG possuem o Sextante Plugin; portanto, essas mesmas etapas também devem funcionar,
a junção espacial pode ser um pouco diferente.
Eu usei a versão 1.2 para testar.
- save the Line endpoints
Sextante caixa de ferramentas, Topologia, endpoints Extrato de linhas -> endpt_0
- unsplit suas linhas
Sextante caixa de ferramentas, ferramentas para camadas de linha, participar de linhas adjacentes
- salvar a endpoints linha unsplit
Sextante caixa de ferramentas, topologia, extrato finais pontos de line -> endpt_1
- os pontos finais removidos por "Unir linhas adjacentes" são pseudo nós
Ferramentas, Consultas, Consulta espacial,
Camada de origem "endpt_0"
Relação "Interseção"
A camada de máscara "endpt_1"
ativa ou clica em Resultado do complemento
fonte
DIST > 0
como expressão. Além disso, todos os geoprocessos podem ser encadeados em um modelo SEXTANTE para criar uma nova ferramenta, por exemplo, "Localizar pseudonodos" .Solução para encontrar pseudo-nós (e outras regras de topologia) disponíveis no QGIS 1.9.0 master (2.0) - plugin "Verificador de Topologia". Links: Plugin Verificador de Topologia no YouTube , Plugin Verificador de Topologia no GitHub
fonte
Com o PostGIS, você pode usar uma versão modificada da consulta para encontrar dangles discutidos neste tópico , pois pseudonodes são nós que interceptam 2 cadeias de linhas e dangles são nós que interceptam 1 cadeia de linhas.
fonte