Mais

Executando junção espacial entre linhas que viajam uma ao longo da outra no ArcGIS Desktop?

Executando junção espacial entre linhas que viajam uma ao longo da outra no ArcGIS Desktop?


Eu tenho 2 camadas, uma representando ruas e outra representando tubos. A camada do cano tem um campo de rua que desejo que seja preenchido automaticamente (quero que o cano mostre a rua em que está) Tentei realizar uma junção espacial com base em 'mais próximo', mas encontrei o seguinte problema: muitos canos nunca se cruzam o centro das ruas em que estão (geralmente são paralelas), e, na junção espacial, esses respectivos tubos não obtêm os dados necessários da rua por onde passam, mas das que são perpendiculares (porque se cruzam os tubos, para que tenham um ponto mais próximo).


Enfrentei um problema semelhante e criei uma ferramenta programática que:

  1. Encurte a linha central da minha rua. Aqui, eu levaria de .4 a .6, por exemplo (neste caso, consideraria apenas os travessões)

    rua

    ==========

    Após encurtamento

    ====--====

  2. Eu iria protegê-lo por um pequeno ammout, digamos 10% do comprimento da rua original. Imagine que você está armazenando em buffer apenas os traços no "desenho acima" esquemático.

  3. Tente cruzá-lo com tubos.

Você pode repetir 2 e três até encontrar um certo número de tubos. A ideia para encurtar a linha central é eliminar os casos em que você outras linhas perpendiculares que você não deseja.

Verifique um esquema menos feio:

Outra abordagem é apenas amortecer, cruzar e comparar os ângulos. Você pode definir com segurança um limite do que é "paralelo". Você nunca terá linhas retas e paralelas nestes casos (algumas serão paralelas, mas isso depende da digitalização). Você pega apenas os tubos que têm ângulos semelhantes à sua linha central.


Eu escrevi uma ferramenta que faz exatamente isso. É chamado Spatial Angle Join.

Unindo recursos de linha com base em seu ângulo polar

Ângulo polar: o ângulo que a linha formaria com o equador se fosse estendida para cruzá-lo.

  1. Calcule o ângulo polar dos tubos.
  2. Calcule o ângulo polar das estradas.
  3. Una espacialmente as linhas da estrada às linhas de tubos dentro de um raio (um para muitos).
  4. Encontre a diferença entre os ângulos do tubo e os ângulos da estrada unidos.
  5. Mantenha a estrada que teve a menor diferença no ângulo polar.

Um exemplo

Unindo características viárias com rede sanitária. Uma estrada apontando para o norte terá um ângulo de 90 graus em relação ao equador e uma estrada apontando para o leste terá um ângulo de 0 graus porque é paralela ao equador. A maioria dos esgotos correm paralelos à estrada, portanto, se houver um esgoto com um ângulo de 85 graus, ele corresponderá à estrada que vai para o norte, porque 85 graus é mais próximo de 90 graus do que de 0 graus.

Unindo a cor das estradas à rede sanitária.

Antes de entrar

Depois


Você pode tentar usar a ferramenta de geoprocessamento próximo:

Determina a distância de cada recurso nos recursos de entrada até o recurso mais próximo nos recursos próximos, dentro do raio de pesquisa.


Assista o vídeo: GIS Tools: ArcMapArcGIS Tool for connecting points