¿Consulta OSM para todas las playas orientadas al oeste? - QGIS preferido

17

Quiero identificar todas las playas de este planeta (o un subconjunto dado) que estén orientadas hacia el oeste (+/- 20-30 grados).

Mi idea es usar OSM como fuente de datos. Extraer todos los polígonos que tienen la etiqueta "natural = playa" me da un conjunto de datos / archivo de formas de todas las áreas marcadas como playas. Hasta aquí todo bien.

También sé que puedo usar datos de la costa (ya sea de OSM o Natural Earth, por ejemplo) para identificar el frente de las playas.

Proteger las formas de la playa para corregir pequeños desajustes e intersecarlos con la línea costera debería proporcionarme datos sobre qué lado de la forma está orientado hacia el agua. Usar los valores máximo / mínimo de todos los puntos de intersección debería darme una idea del rumbo. (90 grados +/- 20-30 grados estaría bien ...)

Y ahí es donde estoy perdido ...

Mi herramienta preferida sería QGIS, pero PostGIS también estaría bien.

¿Hay alguien alrededor con una idea inteligente de cómo resolver este rompecabezas?

jdoe
fuente
44
En lugar de usar buffers ... ¿No sería más fácil descubrir cómo desplazar un poco todos los elementos en su shapefile hacia el este, luego ejecutar un Intersect entre el shapefile de la costa y el shapefile de las playas? Solo se superpondrán donde las playas miran hacia el oeste.
Tim Couwelier
Tim, buena idea. No estoy seguro de que realmente funcione para geometrías "extrañas". Recibí otra idea: tomar el litoral como líneas y el centroide de los polígonos de playa usando v.net en el césped, ajuste el centroide a la línea más cercana (o en postgis). ahora tienes una línea que representa la dirección. calcule la demora desde el punto inicial del centroide hasta el punto final de la línea usando trig. Aunque agradable, no está completamente "dentro" de QGIS. ¿Alguna idea más inteligente?
jdoe
Si puede encontrar una manera de convertir la costa en una serie de datos de puntos y los centroides de la playa también, puede intentar el Análisis del vecino más cercano como se describe aquí: enlace En lugar de unir los atributos como se muestra en el ejemplo, asegúrese de tener x, valores y para los dos conjuntos de datos coincidentes. usando la calculadora de campo puede encontrar las diferencias relativas entre los valores x e y para el centroide y el punto más cercano. Según el signo de la diferencia de x, sabes si es oeste u este, y según la relación de diff (y) / diff (x) de qué tan occidental.
Tim Couwelier
Dado que se me acabaron los caracteres, aquí va: si los centroides valor x> valor del punto costero x, la playa está orientada al oeste. las coordenadas x e y de los dos le permitirían calcular el ángulo hacia el eje y: (y2-y1) / (x2-x1) le da la inclinación de la línea, que puede convertir de nuevo a grados
Tim Couwelier
55
Puede rasterizar sus datos, establecer valores de aguas abiertas en cero y playas en 1, luego ejecutar la herramienta Análisis de terreno-> Aspecto. Obtendrá un ráster de la dirección de la pendiente descendente y podrá elegir celdas que sean lo suficientemente "occidentales".
WxMacMan

Respuestas:

1

El servicio de elevación en ArcGIS Online incluye datos mundiales listos para usar, y también una función ráster incorporada para generar aspectos. También es bastante sencillo filtrar simultáneamente para un rango de valores de aspecto (290-250 grados) así como para la elevación (por ejemplo, de 0 a 10 metros, dependiendo de cómo defina una playa, ¿o tal vez ya tiene las playas delineadas?). No sé si está abierto a usar la tecnología ArcGIS; en caso afirmativo, puedo enviarle algunas solicitudes REST de muestra.

El png adjunto no se filtra correctamente para la elevación, pero muestra el concepto ...ingrese la descripción de la imagen aquí

Cody B.

Benkelman
fuente