Como rastrear uma camada de linha (rede rodoviária) através de pontos?


8

Eu tenho uma rede de estradas (roxa), arquivos de ponto (verde) e um ponto de início (amarelo).

Quero rastrear os arquivos de pontos com base na rede rodoviária. Pense nos pontos como postes telefônicos, mas o que eu quero é um mapa mostrando as linhas telefônicas (arquivo de forma de linha). Existe um esquema de numeração para os "postes telefônicos", mas não é ótimo e, neste caso, eu diria que eles não são numerados.

Alguém tem uma solução? Um que parece muito bom é apenas amortecer os pontos e depois cortar a rede de estradas dos amortecedores. Mas eu quero algo mais completo. Ele precisa ser automatizado, pois existem 12.000 dos "postes telefônicos"

insira a descrição da imagem aqui


1
Como a solução que você procura difere, digamos, simplesmente de selecionar as características da estrada suficientemente próximas de qualquer ponto? O que exatamente você quer dizer com "mais completo"?
whuber

Bem, o segmento da estrada pode se estender além do ponto 1000 pés. Eu usei complete porque quando recortei de buffers a rede estava instável. O que eu deveria ter dito era mais preciso.
Thad

1
Você está certo, não quer recortar dos buffers! Parece que você deseja, de alguma forma, retrair os trechos da estrada nos quais os postes podem estar, para que esses segmentos não se estendam muito além das faixas dos postes. Mas como você distinguiria uma lacuna a longo prazo de duas execuções distintas? Você pode fornecer um critério para isso?
whuber

Bem, a diferença é que eu acho que não será um problema. As linhas pretas representam áreas de mini-serviço que são internas à área. Bem, o motivo, além de apenas tê-lo para visualização, é o planejamento e, eventualmente, a adição de mais informações nos arquivos de linha do que poderia ser (utilizável) armazenado nos arquivos de ponto (por exemplo, diâmetro).
Thad

Respostas:


9

Existem muitas maneiras de lidar com isso, mas algumas se destacam como gerais e eficazes. Para entender isso, vamos enumerar alguns dos problemas que talvez precisem ser resolvidos:

  • Pode haver lacunas entre os polos que são tão grandes que o algoritmo pode ver as lacunas como sendo interrupções reais no sistema de transmissão.

  • Pode haver alguns segmentos curtos da estrada, cruciais para conectar as estradas a uma rede, que, no entanto, não possuem postes próximos. Esses segmentos não seriam selecionados pela proximidade dos pólos, mas são uma parte necessária da solução.

  • Pode haver postes não acessíveis por estrada a partir do ponto central. Esses polos podem ser partes de outras redes de transmissão originárias de outros pontos centrais.

Também estou adotando a posição de que, já que você já possui uma rede de polilinhas (as estradas), seria vantajoso explorá-la em vez de conectar os pontos do poste com uma polilinha completamente nova, que provavelmente não será muito parecida com as estradas.

Essas considerações sugerem que os ingredientes de uma boa solução incluem algumas etapas principais:

  1. Calcule as distâncias da estrada desde o ponto central até todos os polos.

  2. Identifique os postes que possuem distâncias máximas localmente ao longo de seu segmento de estrada específico : ou seja, nenhum de seus vizinhos no mesmo segmento tem distâncias maiores.

  3. Faça os caminhos mais curtos desde esses máximos locais até o ponto central.

A união desses caminhos mais curtos rastrearia a rede de transmissão. (De fato, a etapa 2 não é realmente necessária, mas reduziria bastante o cálculo envolvido na etapa 3.)

As etapas 1 e 3 podem ser executadas usando uma representação de rede (no Network Analyst) ou uma representação de varredura (no Spatial Analyst, usando um cálculo de CostDistance ou FlowAccumulation). A etapa 2 é um resumo direto do banco de dados: após a etapa 1, cada polo terá seu segmento de estrada e distância como atributos. Encontre a distância máxima por segmento de estrada e selecione os pólos que atingem essas distâncias máximas.

Existem algumas situações problemáticas em potencial:

  1. Alguns postes podem não estar próximos das estradas. Não há nada na declaração do problema que nos diga o que deve ser feito sobre isso. Eles podem ser manipulados automaticamente com cálculos de varredura (uma grade de custos apropriada atribuirá altas impedâncias às células não rodoviárias, mas não infinitas, permitindo que pólos isolados se conectem às estradas mais próximas, mas infelizmente não). No mínimo, depois de obter a solução na etapa 3, você pode selecionar todos os pólos que não estão nessa rede e considerar como eles devem ser tratados (talvez criando manualmente conexões para eles ou talvez com uma solução de árvore de abrangência mínima euclidiana).

  2. Se alguns segmentos de estrada formarem loops, você deve pular a etapa 2, pois, caso contrário, partes desses loops poderão ser perdidas.

  3. As polilinhas da estrada podem não formar uma rede conectada. Pode haver pequenas lacunas entre os segmentos da estrada (às vezes apenas milímetros de tamanho) que dividem uma rede que parece conectada visualmente. Esse é um problema de qualidade de dados que afetaria qualquer solução, exceto algumas baseadas em varredura.


Em um ponto, mencionei FlowAccumulation de passagem. Isso pode surpreender as pessoas: o que esse problema tem a ver com riachos e bacias hidrográficas? Olhe a imagem por um tempo. Imagine o ponto de origem como o ponto baixo de uma paisagem e as estradas com postes telefônicos como traços de fluxos que fluem em direção a esse ponto baixo. Se podemos criar uma superfície para a qual as estradas realmente sãoos córregos, então podemos deixar um pouco de "chuva" cair no local de cada pólo e fluir ladeira abaixo. Os pontos que se molham são a solução que buscamos: eles conectam os postes de forma eficiente a uma rede que segue as estradas. Um cálculo apropriado de CostDistance - com baixa impedância diferente de zero ao longo das estradas e impedância extremamente alta, mas não infinita, fora das estradas - criará exatamente esse tipo de superfície. Outra maneira de criar essa superfície é a partir da grade de distância euclidiana das estradas. Isso é perfeito, exceto que as estradas são niveladas. Eles precisam se inclinar; para isso, adicione um múltiplo extremamente pequeno das distâncias ao longo das estradas à grade de distância euclidiana. (A distância da estrada ainda exige um cálculo de CostDistance, que é caro, mas desta vez só precisa ser realizado para as células da estrada, em vez de todas as células da grade, o que acelerará em ordens de magnitude. Isso nos permite usar uma grade de resolução extremamente alta, se quisermos, evitando possíveis erros de discretização feitos com grades grossas.)


7

Basicamente, seguindo a abordagem do whuber's, eu tentaria o seguinte:

  1. Divida a estrada no ponto de partida (amarelo).
  2. Adicione três campos às estradas: FROMDIST, TODIST e PARENTROAD_ID. FROMDIST armazenará a distância do ponto inicial para o nó from da polilinha, da mesma forma para TODIST. PARENTROAD_ID armazenará o ROAD_ID da estrada que está mais próxima do ponto de partida.
  3. Crie uma Árvore de Abrangência Mínima composta por seções de estrada e calcule os valores FROMDIST, TODIST e PARENTROAD_ID de acordo.
  4. Adicione três campos à classe de pontuação dos pontos: ROAD_ID, DISTANCE e PARENTPOINT_ID.
  5. Para cada ponto, encontre o recurso de estrada mais próximo e interpole um valor DISTANCE com base no FROMDIST e TODIST da polilinha, juntamente com a distância ao longo da polilinha calculada via ICurve.QueryPointandDistance .
  6. Para cada ponto, calcule o PARENTPOINT_ID, representando o ID do próximo ponto mais próximo do ponto inicial.
  7. Para cada ponto, crie um segmento de linha entre ele e o ponto referenciado por PARENTPOINT_ID. Escreva essa polilinha em uma classe de característica de saída.

3

Parece-me que você realmente está procurando uma Rede Geométrica em um geodatabase.

E se você criou uma rede geométrica em que suas estradas serviriam como suas "linhas de troncos" e simplesmente adicionar "linhas de alimentação" que correm perpendicularmente de suas estradas aos seus pontos. Então, você poderá " definir e exibir a direção do fluxo, alterar as configurações da análise, adicionar sinalizadores e barreiras às análises e executar várias tarefas de rastreamento " (consulte a seção "Barra de ferramentas do Utility Network Analyst"). Consulte também " Sobre o rastreamento em redes geométricas " para obter mais detalhes sobre outros tipos de análise que você pode fazer com uma rede geométrica.

Isso exigiria um pouco de configuração, mas, ao criar um processo de automação para conectar os pontos à rede, deve ser bastante rápido e fácil de atualizar à medida que novos pontos são adicionados à rede.

NOTA : " Embora as redes geométricas possam ser criadas e editadas no ArcInfo e no ArcEditor, elas são somente leitura no ArcView ". ( Em "Construindo uma rede geométrica a partir de classes de recursos simples existentes" )


1

Como iniciante (não a solução completa).
Provavelmente precisamos saber o formato dos dados, a versão e o nível de licença do seu arcgis.

O que vejo é utilizar a rede rodoviária como um sistema de referência linear e, em seguida, "renumerar" os polos na seqüência correta .
Então você poderá usar uma das várias ferramentas (tenho certeza que a resposta de outra pessoa definirá isso mais claramente) para criar polilinhas a partir dos polos.
Aqui está o tutorial do arcgis 10 para referência linear


Formato de dados - shapefiles? have arcinfo 10. Também possui analista de rede, mas apenas no arc9.3 (versão de teste). Interessante vou ler sobre referência linear.
Thad
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.