Identificando FRONT LAND usando o ArcGIS ModelBuilder


8

Eu trabalho em uma prefeitura. Eu preciso identificar a frente da terra. Aqui no meu país chamamos de "TESTADA" ou "FRENTE DE LOTE". Não encontrei o termo exato em inglês.

A FRENTE DE UMA TERRA é uma linha próxima à entrada do chão. Ou seja, é a entrada de uma casa. É onde fica o portão de entrada, com o número da porta. Para exemplificar a imagem a seguir abaixo.

Mapa antes: antes

Mapa posteriormente com as linhas de frente do terreno - Como deve ser: depois de

MUITO tem apenas uma FRENTE DE TERRA. Nas esquinas é a rua principal. Existem prédios antigos que permanecerão como estão porque são históricos. Atualmente, fazemos essas linhas de FRONT LAND manualmente. Gostaríamos de automatizar parte dele. Isso pode estar usando o ModelBuilder.

Em resumo:

  • Em: CAMADA DE TERRA, RUA DE CAMADA, CAMADA DE EDIFÍCIO.
  • Saída: CAMADA COM FRENTES DE LINHAS DE TERRA.

Outro exemplo de lote da frente: o termo FRONT OF LAND refere-se à frente da propriedade. A entrada da casa é a sua frente. insira a descrição da imagem aqui


Eu suspeito que você deseje começar com a ferramenta 'polígono para linha' para dividir seus polígonos em segmentos selecionáveis.
19713 Craig

Respostas:


2

Isso exigiria algum código, por isso vou apontar algumas diretrizes para que você possa começar com algo e depois fazer mais perguntas. A FRONT OF LAND, como mostrado, pode ser identificada por dois métodos, ambos usam relações espaciais:

Método 1) É o único lado de um polígono que não toca em nenhum outro polígono. Encontre os polígonos tocantes, quebre o polígono LAND, verifique se os lados contra os polígonos tocantes estão em busca de um que não toque em nada.

ou

Método 2) É o lado do polígono mais próximo de uma estrada. Encontre a estrada mais próxima do polígono LAND, quebre o polígono, encontre o lado mais próximo da estrada.

Isso pode ser feito com Postgis ou Shapely se optar por seguir o caminho do código aberto. De qualquer forma, eu recomendaria olhar o manual Shapely para ter uma idéia das relações espaciais que poderiam ser testadas; elas são basicamente as mesmas em qualquer software.


2
o que você sugere para os lotes de esquina?
19713 Craig

Para detectar os cantos, sugiro usar o método 1, ele selecionaria o canto inteiro (a frente e o lado) com o qual você poderia selecionar o segmento mais longo. (como mostrado nas figuras, os terrenos dos cantos têm a frente no segmento mais longo - edite: há duas exceções no centro superior).
19413 Pablo

2
a julgar pela foto, esse nem sempre é o caso. Eu sugeriria um terceiro método em que o segmento frontal está ao lado do pacote em que o endereço é derivado. Obviamente, isso só é útil se o lote tiver um endereço e muitos lotes vazios não.
19713 Craig

+1 Essa é uma boa ideia! Talvez uma mistura do método 2 + endereço ... eu sugiro que você escreva isso em uma resposta.
19413 Pablo

1

Refinando a boa resposta de @ Pablo, com definições (abaixo) e adicionando uma lista de verificação para cada método, restringindo seu uso. Definições:

A camada de bloco é uma tabela SQL com polígonos que representam os limites dos blocos da cidade , que ou sem calçadas , mas preservando becos particulares (consulte a frente 1 ) ou não endereçáveis ​​(consulte a frente 2 ) no bloco.

A camada de lote é uma tabela SQL com polígonos que representam os limites dos terrenos .

Camada de rua é uma tabela SQL com linhas que representam ruas ... Ou, em uma "região do rio" também os rios (e uma ferrovia pode ser uma "frente"?).

Frente 1 : os métodos do @ Pablo são sobre um conceito geral de frente , onde alguns lotes têm mais do que "uma frente e uma rua", porque estão na esquina (têm dois ou mais segmentos da frente em todas as ruas circundantes).

Frente 2 : "frente" refere-se à rua indicada no endereço oficial (ou endereço de correspondência) do lote. Para eles, todos (mesmo na esquina) têm apenas um segmento de frente de rua. PS: se o seu sistema de endereços e camada de bloco aceitarem muitos " condomínios horizontais " e seus endereços de condomínios, as "ruas particulares" deverão ser mostradas como de costume .

A ilustração da pergunta de @ ChristianAbreu mostra o conceito Front-2 (!) , Não o geral.

Nota técnica: você pode conectar o Python ao PostGIS ou a qualquer outra ferramenta compatível com OGC (para SQL espacial) para expressar formalmente as listas de verificação.


Lista de verificação para o método # 1 - lado de um polígono que não toca em nenhum outro polígono

Este método tem uma abordagem topológica, é válido apenas para blocos em que todas as áreas do lote formam a área do bloco. Portanto, para usar esse método, você precisa de uma camada de bloco .

Expressando formalmente: verifique se blkarea~=sum_lotareapara cada bloco,

SELECT ST_Area(geom) INTO blkarea FROM  block WHERE gid=each1; 
SELECT SUM(ST_Area(geom)) INTO sum_lotarea FROM lot WHERE gid_block=each1;

Ou, se as goemetrias não forem exatas, ou se os blocos estiverem com calçadas, use o mínimo w para ST_Buffer(block.geom,-w)garantir ST_Within(lot.geom lot,ST_Buffer(block.geom,-w))todos os lotes.

NOTA: verifique também

  • se todos os lotes estiverem dentro de um bloco, ST_Within(lot.geom,block.geom)para todos os lotes e blocos associados.

  • se, para todos os lotes não disjuntos, não houver áreas sobrepostas. not(ST_Overlaps(a,b))ou essa área de interseção não tem significado (ou seja 2*ST_Area(ST_Intersection(a,b))/(ST_Area(a)+ST_Area(b))<0.01).

Lista de verificação para o método # 2 - o lado do polígono mais próximo de uma estrada

Este método possui uma abordagem geométrica, baseada na distância euclidiana mínima .

Verifique se a camada de rua possui apenas "ruas públicas" , pois é necessário separar "ruas públicas" (que podem expressar o endereço oficial de um terreno) de "becos" (pode ser interno do lote ou um "condomínio" ").

Em seguida, verifique visualmente se todos os "blocos visuais" estão cercados por ruas. Se sua camada de rua estiver incompleta, o método não é válido para esses blocos.

Conclusões: regras para escolher métodos

Para a definição do Front-1 :

A) Quando você tiver bons dados de ruas, use o método nº 2 ;

B) Quando você tem uma camada de bloco e uma camada de lote consistente, use o método nº 1

C) Quando você não tiver bons dados, tente dividir seus dados espaciais em partes em que você pode usar um ou outro método. PS: mesmo sem a camada de blocos , é possível construir a junção de lotes vizinhos ou com uma boa resposta a esta pergunta .

Para a definição do Front-2 : você precisa de bons dados de ruas, porque a definição do Front-2 precisa do nome da rua (do endereço do lote). Use o método nº 2 e solte segmentos frontais que não tenham o mesmo nome da rua que o endereço do lote.

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.