3 votos

Análisis de líneas en un punto en QGIS

Tengo 33 capas, 1 con puntos y 32 con líneas. Quiero extraer/resaltar los puntos donde más de un la línea se cruza. Lo he intentado con topes pero no consigo nada.

2voto

Mue Puntos 2469

Una forma diferente de plantear un problema que lleve al segundo cálculo es la siguiente:

Se sacan dos cartas de la baraja. ¿Cuál es la probabilidad de que haya dos ases dado que el primero ¿la carta que sacaste era un as?

Esta formulación facilita el contraste con el primer cálculo. La probabilidad subyacente de haber escogido dos ases no cambia, pero la condición de tener la primero carta como un as es más restrictiva que la condición de ser un as. Esto significa que en el cálculo de la probabilidad condicional la combinación deseada tiene que ocurrir entre menos opciones, por lo que tiene una mayor probabilidad.

Las dos frases diferentes (as de picas frente a primera carta como as) son similares, porque rompen la simetría / intercambiabilidad entre los ases: el palo o el orden no se pueden intercambiar arbitrariamente.

0 votos

Gracias por la respuesta y perdón por la tardanza. Ha funcionado.

0 votos

@Kasper, ¡no hace falta que te disculpes amigo! Me alegro de que haya funcionado.

1voto

liamf Puntos 101

Puedes hacer la intersección en la calculadora de campo si utilizas la representación de texto conocido de las líneas. El operador 'intersecta' evalúa a enteros 1 o 0 como verdadero o falso, por lo que podría ejecutar esa operación con todas las líneas en cada punto así (este ejemplo tiene dos líneas):

intersects(    buffer( $geometry, 0.01),  geomFromWKT( 'LINESTRING(-0.7023411371237458 0.00445930880713497, -1.01226309921962088 -0.2764771460423634)'  )) + 
intersects(   buffer($geometry,0.01),  geomFromWKT( 'LINESTRING(-0.9788182831661093 -0.00668896321070234, -0.75585284280936471 -0.26978818283166106))' ))

Eso le dará un atributo entero con la cantidad de líneas de intersección para cada punto.

Sin embargo, no sé si habrá problemas de rendimiento al probar una gran cantidad de líneas como ésta.

Al extraer el WKT de las capas de líneas, puede abrir la tabla de atributos de cada capa de líneas de una en una y seleccionar toda la tabla, copiarla y pegarla en una aplicación de hoja de cálculo. Debería tener el siguiente aspecto:

wkt_geom                                                                                      some attribute
LINESTRING(-0.23615454012578607 0.16039895228401696, -0.322820561365618930.03445264803620229) text

A continuación, elimine todas las columnas excepto wkt_geom, y a una búsqueda y reemplazo donde se intercambia ")" con

"))'  )) +" 

y "L" con

"intersects(    buffer( $geometry, 0.01),  geomFromWKT( 'L"

y luego montarlo todo en la calculadora de campo.

Acabo de probar este método y ha funcionado como se esperaba en un pequeño número de puntos y líneas. De nuevo, sin embargo, no sé lo bien que el método escala.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X