2 votos

Colorear valores multilíneazm M en QGIS

Tengo la salida de una técnica geofísica que produce X, Y, Z y el valor escalar de millones de puntos, que se han cosido juntos adecuadamente (por networkx si importa) en multilinestringzm formato, a continuación, inserta en un PostGIS DB por mi propia (homebrewed) código geofísico.

Hay una multilínea por valor Z (aproximadamente el 10-20% de los ~12 millones de puntos comparten los mismos valores Z), y cada uno de los aproximadamente 10 valores Z y sus correspondientes geometrías multilíneazm están en una fila separada de la tabla.

Lo que me gustaría poder hacer es colorear cada punto de una multilínea de acuerdo con su valor M, pero he estado luchando durante bastante tiempo en la forma de lograr esto. (Incluso mejor sería tener un gradiente de color en el segmento de línea entre dos puntos).

Realmente necesito que esto funcione en QGIS (¿o ARCscene?) porque hay un montón de otra información SIG 2D normal que integrar. Mis primeros ensayos de salida de mis datos en formato VTK y el uso de VisIt de LLNL para leer tanto el VTK y archivos GIS, aunque con éxito, es demasiado pesado para compartir con mis colegas en proyectos conjuntos.

¿Alguna pista sobre cómo colorear por m-valor?

3voto

noob source Puntos 305

QGIS no colorea vértices individuales de una geometría, sino la característica completa (en este caso, una de las aproximadamente 10 filas de su tabla). Tampoco puedes colorear los segmentos de línea individuales que conectan los vértices. Esto es un problema de cómo se modelan los datos.

Para colorear los puntos, tendrías que trabajar con una capa de puntos. Como generaste tus multilíneas a partir de puntos que ya tenían una coordenada M, puedes trabajar con ellas. Alternativamente, puede extraer todos los vértices con ST_DumpPoints y alimentarlos a una nueva tabla. Para colorear los segmentos de línea, necesitarías que cada uno fuera una característica separada. Puede lograrlo creando la capa de puntos extraída de vértices antes mencionada y utilizando ST_Split en su multilínea.

El segundo problema es la propia coloración. QGIS tiene un acceso limitado a los parámetros de la geometría cuando el estilo, y no hay acceso a la M-index. Usted tendrá que pasar las coordenadas M a una nueva columna en la tabla (como un flotador o cadena, aunque flotador sería mejor, para el estilo con los graduados).

Si se trabaja con el enfoque de puntos, esto se hace fácilmente con ST_M, que extrae el valor M y se puede insertar en la nueva columna para cada característica de punto. Si trabaja con segmentos de línea, tendrá dos medidas diferentes para cada línea, una desde el primer vértice, que puede obtener con ST_StartPoint y otra desde el último, que sería ST_EndPoint. Puede elegir pasar la medida de cada uno de ellos, o una media de los valores, o incluso crear dos columnas (una de medida inicial y otra de medida final) y estilizar a partir de ellas.

Podría haber una manera de estilizar directamente desde las coordenadas M usando PyQGIS, aunque esto es sólo una conjetura.

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