- Comprobar que no hay geometrías no válidas
Mi forma de hacerlo es Creación de una capa virtual con la sentencia SQL:
SELECT geometry, other_column_names
FROM layer_name
WHERE NOT ST_IsValid(geometry)
Si la capa creada tiene una geometría, identifíquela y fije la geometría correspondiente en la capa original con el botón Herramienta de vértices . A veces el problema no es fácil de solucionar, pero ese es otro problema.
- Reproyectar ambas capas a un SIR conveniente
Estoy acostumbrado a reproyectar a Mercator transversal, tangencial a un punto del área de trabajo, porque necesito que se conserven los ángulos. Pero se puede utilizar otro CRS. Yo creo un CRS personalizado para cada proyecto, en este proyecto sería:
+proj=tmerc +lat_0=37.77 +lon_0=-122.43 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
- Añade un nuevo campo numérico decimal (real) (llamado, por ejemplo, "área") al barrios y rellenarla con el área planimétrica de las geometrías:
area($geometry)
- Realice la Diferencia entre los barrios y las zonas de licuefacción:
La salida es un nuevo Diferencia capa, con los barrios que son no cubiertos por zonas de licuefacción. En este caso, utilizo la diferencia porque devuelve una sola característica para cada característica de la tabla de entrada, con sus atributos. Para calcular el porcentaje de cobertura, calculo 100 - the percent not covered
. (Si necesita los polígonos de las zonas cubiertas, puede hacer una nueva diferencia entre los barrios y esta capa).
- Añade un nuevo campo de número decimal (real) al Diferencia capa, y rellenarla con el porcentaje en licuefacción:
100 - area($geometry) * 100 / "area"
Si quieres el coeficiente en su lugar:
1 - area($geometry) / "area"
2 votos
En primer lugar, asegúrese de que ambos shapefiles se encuentran en un lugar adecuado proyectado sistema de coordenadas, calcular el área antes de la intersección gis.stackexchange.com/questions/23355/ intersecan los dos shapefiles gis.stackexchange.com/questions/251501/intersect-polygons y luego calcular el área después de la intersección, el porcentaje es área después / área antes.
0 votos
He recibido un
Please fix the geometry or change the Processing setting to the 'ignore invalid input features' option
mensaje de error al intentar la unión1 votos
Usted tiene por lo menos una geometría no válida, tener una lectura de gis.stackexchange.com/questions/112687/ y ver si eso ayuda o leer gis.stackexchange.com/questions/289056/ acerca de ignorar las geometrías no válidas (cosa que no sugiero, ya que las geometrías omitidas pueden ser un componente importante).
0 votos
Tengo un archivo de referencia que tiene valores para algunos de los barrios. Decidí ignorar las geometrías no válidas y los números coinciden casi 1:1.
1 votos
Liquifaction id = 92 no tiene una geometría válida (auto intersección). Arréglelo.
0 votos
¿Hay alguna función que pueda utilizar para solucionarlo?
0 votos
Mueve un poco el vértice conflictivo con la tecla Herramienta de nodos .