Eu tenho um conjunto de recursos de linha dentro de um determinado limite poligonal. Para cada linha, eu gostaria de gerar um polígono dentro do qual todos os pontos possíveis estejam mais próximos da linha especificada do que qualquer outra linha na camada. Eu fiz isso no passado para recursos de entrada de ponto usando a triangulação de Delaunay, mas se houver um processo semelhante para fazê-lo com recursos de linha, não consegui encontrá-lo.
ETA: A solução da Geogeek me ocorreu, mas em seções mais retas, onde as linhas de entrada têm menos vértices, os polígonos resultantes ficam muito próximos (até sobrepostos) de uma linha que não deveriam. Aqui, as linhas vermelhas são minhas entradas, você pode ver os vértices e os polígonos de Thiessen gerados a partir deles.
Talvez uma solução rápida e (muito) suja possa ser converter cada linha em um conjunto abundante de pontos com espaçamento uniforme (em vez dos vértices da linha), gerar polígonos de Thiessen a partir deles e dissolvê-los com base no ID da linha de origem.
Respostas:
Para ilustrar uma solução de processamento de imagem / raster, comecei com a imagem postada. É de qualidade muito inferior aos dados originais, devido à sobreposição de pontos azuis, linhas cinzas, regiões coloridas e texto; e o espessamento das linhas vermelhas originais. Como tal, apresenta um desafio: no entanto, ainda podemos obter células Voronoi com alta precisão.
Extraí as partes visíveis dos recursos lineares vermelhos subtraindo o verde do canal vermelho e depois dilatando e corroendo as partes mais brilhantes em três pixels. Isso foi usado como base para o cálculo da distância euclidiana:
(Todo o código mostrado aqui é Mathematica 8.)
Identificar os "sulcos" evidentes - que devem incluir todos os pontos que separam duas células Voronoi adjacentes - e combiná-los novamente com a camada de linha fornece a maior parte do que precisamos para prosseguir:
A faixa vermelha representa o que eu poderia salvar da linha e a faixa ciana mostra os sulcos na transformação de distância. (Ainda há muito lixo devido às quebras na própria linha original.) Esses sulcos precisam ser limpos e fechados através de uma dilatação adicional - dois pixels serão suficientes - e então podemos identificar as regiões conectadas determinadas por as linhas originais e os sulcos entre eles (alguns dos quais precisam ser recombinados explicitamente):
O que isso conseguiu, com efeito, é identificar cinco características lineares orientadas . Podemos ver três características lineares separadas que emanam de um ponto de confluência. Cada um tem dois lados. Eu considerei o lado direito dos dois recursos mais à direita como sendo os mesmos, mas diferenciei todo o resto, fornecendo os cinco recursos. As áreas coloridas mostram o diagrama Voronoi desses cinco recursos.
Um comando de alocação euclidiana baseado em uma camada que distingue os três recursos lineares (que eu não tinha disponível para esta ilustração) não distinguiria os diferentes lados de cada recurso linear e, portanto, combinaria as regiões verde e laranja que flanqueiam a linha mais à esquerda ; dividiria o recurso de cerceta mais à direita em dois; e combinaria essas peças divididas com as características bege e magenta correspondentes em seus outros lados.
Evidentemente, essa abordagem raster tem o poder de construir mosaicos Voronoi de recursos arbitrários - pontos, peças lineares e até polígonos, independentemente de suas formas - e pode distinguir os lados dos recursos lineares.
fonte
Eu acho que você pode:
Espero ter realmente entendido sua pergunta, caso contrário, você pode fornecer um desenho para explicar mais suas necessidades.
fonte