5 votos

Dibujar puntos alrededor de un círculo en QGIS

Tengo una matriz cuadrada origen-destino con 23 elementos, me gustaría dibujar cada uno de estos elementos como un punto alrededor de un círculo, para conseguir un resultado como el siguiente:

enter image description here

¿Puedes sugerirme un método rápido para dibujar puntos alrededor de un círculo?

Estoy haciendo lo siguiente pero no funciona:

1) fijar el punto central

2) crear un buffer con segmentos=99 y distancia=50, desmarcar la opción "disolver el resultado enter image description here

3) convertir forma en línea, obtengo 99 líneas enter image description here

4) calcular la longitud de la línea/23 enter image description here

5) convierta la línea en puntos, ajuste "insertar puntos adicionales" en "No", utilice el resultado de la longitud de la línea/23 (1316383,260) en el campo "distancia". enter image description here

Lo que obtengo son 396 puntos en los que las líneas se tocan:

enter image description here

5voto

Mue Puntos 2469

Nunca he utilizado matrices, así que podría equivocarme. Pero yo crearía un búfer a partir de un punto central (que puedes añadir manualmente) y utilizaría el radio de un círculo (supongo que el radio es el mismo para todos, de lo contrario puede que tengas que crear más capas de búfer). Al crear el búfer, establece el segmentos para aproximar a 99 para tener un perímetro más suave:

Point and buffer

A continuación, puede utilizar Convertir polígonos en líneas en la capa intermedia.

Polygon to line

Y con la salida, utilice Convertir líneas en puntos (ambas herramientas son de SAGA a través de la Caja de herramientas de procesamiento). Así obtendrá una capa de puntos situada en la circunferencia del círculo.

Line to points

Espero que esto ayude.


EDITAR :

Cuando utilice Convertir polígono en líneas calcule la longitud de la línea mediante la Calculadora de campo creando una nueva columna (seleccione Números decimales) e insertándola en la expresión:

$length / 23

De este modo, cada "segmento" tendrá la misma longitud.

Ahora, cuando ejecute el Convertir líneas en puntos introduzca la longitud recibida en el campo Insertar Distancia campo. Esto producirá 23 puntos de la misma longitud:

23 points


Método alternativo :

Tome su capa final del Paso 5 (con los 396 puntos) y abra la Tabla de Atributos y Calculadora de campo . Cree una nueva columna entera (por ejemplo, RowNum) e inserte esta expresión:

$rownum

Esto proporciona a cada campo un valor único. A continuación, seleccione el campo Filtro avanzado (expresión) en la parte inferior de la Tabla de Atributos:

Select Advanced Filter

E introduzca este comando (sustituya "RowNum" por la columna que desee):

("RowNum") %17

Esta expresión omite cada 17 campos (396/23 = 17, queremos conservar cada 17 campos). Seleccione TODOS los campos indicados y BORRAR ellos. A continuación, seleccione el Mostrar todas las funciones en la parte inferior de la Tabla de Atributos. Ahora deberías (¡rezemos todos!) tener 23 puntos. Acuérdate también de ahorrar.

0 votos

Gracias por tu ayuda @Joseph, estoy intentando tener 23 puntos igualmente distanciados del centro y entre sí, pero si en la opción buffer escribo 23 en el apartado segmento no me salen 23 segmentos... ¿alguna sugerencia?

0 votos

Hola Matteo, ¿necesitas estos puntos como puntos de datos reales o los utilizas para visualizarlos?

0 votos

Estoy utilizando estos para visualizar la conexión entre ellos en un diseño circular, por lo que podría decir para la visualización, pero no estoy seguro acerca de lo que quiere decir con "puntos de datos". Tendré que combinar los atributos de cada punto.

3voto

John Puntos 166

Creo que esto puede crear los puntos que necesita, de una manera más sencilla (he utilizado una hoja de cálculo, porque es más fácil, pero esto podría hacerse dentro de QGIS, también:

a) Quieres "n" puntos, en tu caso, 23. Calcula el valor de 2*pi/n. Este es el ángulo entre cada uno de sus puntos [ "ángulo" ]

b) Cree una columna ["ID"] con los números del 1 al n ; n=23 en su caso

c) en las dos columnas siguientes, guarda los resultados de esta expresión:
sin( ángulo * (ID-1)); El primer ID está realmente a 0 grados
cos( ángulo * (ID-1))
Estas son las coordenadas x-y de todos tus puntos

d) Crea 2 columnas más. Estos serán los otros puntos finales de los segmentos de línea. Inserta todos los valores de las dos primeras columnas, pero desplázalos una fila hacia abajo: La fila 2 de este par de columnas contiene los valores de la fila 1 del primer par de columnas.

e) para la fila 1, de este segundo par, colocar el valor de la fila n (23) de la primera columna

Ahora tiene 5 columnas:
La primera columna es el ID del punto
Las columnas 2-3 y 4-5 representan los segmentos de línea

Así que ahora tienes: puntos, segmentos de línea o un polígono, dependiendo de lo que hagas con los datos.

He creado una hoja de cálculo para hacer esto en unos 2 minutos. Si yo estuviera usando, me gustaría exportar la hoja de cálculo Excel a CSV o algo así, e importar según sea necesario, es decir, en puntos, líneas o un polígono.

Si averiguo cómo importar una hoja de cálculo, aquí, o publicar una imagen al menos de ella, lo haré.

0 votos

Importar datos CSV como coordenadas de puntos es una tarea fácil para QGIS con "Añadir texto delimitado" utilizando el icono con el símbolo de la coma. Las líneas se pueden importar si tiene una columna formateada como WKT: gis.stackexchange.com/questions/34342/

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