Encontre o raio máximo do círculo que cabe em um polígono irregular?


9

Eu tenho um problema que acho que poderia ser resolvido usando a ferramenta Geometria Zonal na caixa de ferramentas do ArcGIS Spatial Analyst. No entanto, não tenho uma licença para o Spatial Analyst, por isso estou procurando uma alternativa; possivelmente usando QGIS.

Como encontro o raio máximo de um círculo que cabe em um polígono irregular?

Observe que o polígono pode ser um casco convexo ou côncavo (como mostrado abaixo) e a solução deve abordar ambos.


Tentei a solução de Joseph, mas infelizmente o resultado não é o que eu estava procurando.

Primeiro, tenho polígonos muito irregulares como este:

meu polígono

Se eu seguir a descrição de Joseph, o resultado será o seguinte:

resultado

Este é certamente o resultado que segue essa solução, mas não é a resposta da minha pergunta.

Importante para mim é responder à pergunta de que tamanho o raio de um círculo pode ter no máximo, para que o círculo ainda esteja completamente dentro do polígono, independentemente de onde esteja o centro do círculo.

Por exemplo, há muito mais espaço no norte do polígono, para que possa ser colocado um círculo muito maior do que no sul do polígono. Mas quão grande pode ser esse círculo?


11
Bem-vindo ao GIS: SE! Você está procurando algo como Estatísticas Zonais ?
Joseph

2
Talvez eu seja um pouco cego, mas não consigo encontrar uma resposta já existente para minha pergunta. O link no topo desta página "como calcular estatísticas rasterizadas para polígonos" para minha opinião não se encaixa na minha pergunta. Então, mais algumas idéias, talvez?
Christian

Respostas:


6

Se você deseja saber o raio mínimo para um círculo dentro de um polígono, como você mencionou (e não usar rasters, o que você provavelmente pode fazer com as Estatísticas Zonais ), serão necessárias algumas etapas:

  • Pegue sua camada de polígono (mostrada em um exemplo muito simples) e use Vetor > Ferramentas de geometria > Centroides de polígono . Usaremos essa saída de "ponto central" para isso posteriormente.

Polígono simples

  • Em seguida, use a função SAGA Converter polígonos em linhas da caixa de ferramentas de processamento
  • Pegue a camada de linha de saída e use Converter linhas em pontos , novamente a partir do SAGA (diminua a distância dos pontos para gerar mais pontos, isso pode ajudar a fornecer um resultado mais preciso no final).

Polígono analisado

  • Agora podemos usar a função Distância para o hub mais próximo na Caixa de ferramentas. Selecione a camada que você converteu de linhas em pontos como uma Camada de pontos de origem ; e selecione a camada do ponto central como sua camada de hubs de destinos . Depois de executar isso, você deve receber uma camada de saída que contém as distâncias de cada ponto de perímetro ao ponto central:

Distância de e para pontos

Atributos de distância

A distância mínima deve ser o raio mínimo do seu círculo dentro desse polígono. Podemos testar isso criando um buffer ( Vetor > Ferramentas de geoprocessamento > Buffer ) na camada do ponto central e copiando / colando a distância mínima da tabela de atributos na opção Distância do buffer :

Amortecedor


2
Muito bem feito!
WhiteboxDev

2
Encontrei isso enquanto pesquisava uma pergunta recente procurando basicamente fazer a mesma coisa. Embora a princípio eu pensasse que isso poderia resolver o problema deles, ao ler suas etapas, parece haver uma falha significativa em que o processo funcionará apenas para polígonos que são cascos convexos e não cascos côncavos. Isso é demonstrado na edição aparente da pergunta. O centróide de tal forma não necessariamente cairá dentro dela, e mesmo que você tenha percebido que um círculo maior se ajustará em cada extremidade do que no meio (onde seria a distância mínima do cubo) da forma de exemplo.
Chris W

@ ChrisW - Obrigado amigo por mencionar isso e você está certo, este post não responde à pergunta completamente. Espero que exista um método para abordar cascos convexos e côncavos ou pelo menos um em construção!
Joseph

2
Se você ainda não os viu, parece que a ET Geowizards tem uma ferramenta apenas para isso e outro usuário escreveu um script que fará isso. Eles podem ser encontrados na pergunta vinculada gis.stackexchange.com/questions/147790
Chris W

@ Chrishr - impressionante, não vi esse post muito obrigado por mencioná-lo!
Joseph

3

Um pouco tarde, mas eu estava tentando encontrar a mesma coisa, então encontrei agora no QGIS 3x (não sei se as versões anteriores conseguem lidar com isso) na ferramenta de processo, existe uma ferramenta que em espanhol é nomeado "polo de inaccesibilidad" pólo de inacessibilidade.

insira a descrição da imagem aqui

Use-o para criar uma camada de pontos que são colocados à maior distância dentro do polígono. Esta distância máxima foi adicionada como um atributo insira a descrição da imagem aqui

insira a descrição da imagem aqui

Em seguida, basta usar a ferramenta de buffer para desenhar círculos usando essa distância sobre a camada de pontos e você obterá o maior círculo dentro de um polígono

insira a descrição da imagem aqui

insira a descrição da imagem aqui


2
  1. Encontre círculos de pontos centrais
  2. Conectar pontos centrais
  3. Encontre o ponto médio entre os círculos conectados
  4. Construa hipérboles, usando centros como pontos de foco e pontos médios como pontos na hipérbole
  5. Encontre pontos de interseção de hipérboles
  6. Conecte a hipérbole de interseção com o círculo do ponto central
  7. Encontre a interseção no círculo do perímetro.
  8. Construa um círculo.

insira a descrição da imagem aqui

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.