Consulta OSM para todas as praias voltadas para o oeste? - QGIS preferido

17

Quero identificar todas as praias deste planeta (ou um subconjunto dele) que estão voltadas para o oeste (+/- 20-30 graus).

Minha ideia é usar o OSM como fonte de dados. A extração de todos os polígonos que possuem a tag "natural = beach" fornece um conjunto de dados / shapefile de todas as áreas sinalizadas como praias. Por enquanto, tudo bem.

Sei também que posso usar dados da costa (do OSM ou da Terra Natural, por exemplo) para identificar o rosto das praias.

Armazenar em buffer as formas da praia para corrigir pequenas incompatibilidades e cruzá-las com o litoral deve fornecer dados sobre o lado da forma voltado para a água. Usar os valores max / min de todos os pontos de interseção deve me dar uma idéia do rolamento. (90 graus +/- 20-30 graus seria bom ...)

E é aí que eu estou perdido ...

Minha ferramenta preferida seria o QGIS, mas o PostGIS também seria bom.

Existe alguém por perto com uma idéia inteligente de como resolver esse quebra-cabeça?

jdoe
fonte
4
Em vez de usar buffers. Não seria mais fácil descobrir como deslocar todos os itens do seu shapefile um pouco para o leste e, em seguida, executar uma interseção entre o shapefile da costa e o shapefile da praia? Eles só se sobrepõem quando as praias estão voltadas para o oeste.
precisa saber é o seguinte
Tim - boa ideia. Não tenho certeza se isso realmente funcionará para geometrias "estranhas". Recebi outra idéia: pegue o litoral como linhas e o centróide de polígonos de praia usando v.net na grama, encaixe o centróide na linha mais próxima (ou no postgis). agora você tem uma linha que representa a direção. calcule o rumo do ponto inicial do centróide até o ponto final da linha usando trig. Embora agradável, não está totalmente "dentro" do QGIS. Mais alguma ideia inteligente?
jdoe
Se você puder encontrar uma maneira de transformar a costa em uma série de dados de pontos e também os centróides da praia, tente a Análise de Vizinho Mais Próximo, conforme descrito aqui: link Em vez de unir os atributos, como mostrado no exemplo, certifique-se de ter x, valores y para os dois conjuntos de dados correspondentes. Usando a calculadora de campo, você pode encontrar as diferenças relativas entre os valores xey do centróide e do ponto mais próximo. Com base no sinal da diferença x, você sabe se é oeste ou leste e com base na razão de diff (y) / diff (x) como ocidental.
precisa saber é o seguinte
Dado que eu fiquei sem personagens, aqui vai: se os centróides valor x> valor do ponto de costa x, a praia fica voltada para o oeste. as coordenadas xey dos dois permitem calcular o ângulo em direção ao eixo y: (y2-y1) / (x2-x1) fornece a inclinação da linha, que você pode converter em graus
Tim Couwelier
5
Você pode rasterizar seus dados, definir valores de águas abertas como zero e praias como 1 e executar a ferramenta Terrain Analysis-> Aspect. Você obteria uma varredura da direção da inclinação descendente e seria capaz de escolher células que são "oeste" o suficiente.
WxMacMan

Respostas:

1

O serviço de elevação no ArcGIS Online inclui dados mundiais prontos para uso, e também uma função raster incorporada para gerar aspecto. Também é bastante simples filtrar simultaneamente vários valores de aspecto (290-250 graus) e elevação (por exemplo, 0 a 10 metros, dependendo de como você define uma praia - ou talvez você já tenha as praias delineadas?). Não sei se você está aberto a usar a tecnologia ArcGIS - se sim, posso enviar algumas solicitações REST de amostra.

O png anexado não é filtrado corretamente para elevação, mas mostra o conceito ...insira a descrição da imagem aqui

Cody B.

Benkelman
fonte