Introducción a los datos vectoriales

La información espacial se puede representar con un modelo vectorial de datos. En el caso del modelo ráster describimos las propiedades de los píxeles, en el modelo vectorial asociamos la información a objetos. Los objetos que se pueden representar incluyen: puntos, líneas y polígonos. En todos los casos, la geometría de estos objetos consiste en un conjunto de pares de coordenadas (x, y), uno para cada punto. En el caso de las líneas y polígonos el número de pares depende del detalle y extensión los segmentos que los definen.

Hay que tener en cuenta cada capa de información contiene un sólo tipo de objeto: puntos, líneas o polígonos; asociado a cada elemento de la capa (feature) se asocian los atributos atributos, una tabla compuesta por una o más variables que describen las propiedades de los objetos.

En el modelo vectorial hablamos de dos componentes:

  • geométrico: con la información espacial que describe a los objetos.

  • variables o atributos: con la tabla de datos asociada a cada uno de esos objetos.

Algunas de estas variables pueden obtenerse de la propia geometría de la componente espacial. Por ejemplo, en el caso de las líneas podemos obtener su longitud, para los polígonos, podemos calcular su superficie y perímetro. Obviamente, para los puntos no es posible asociar dichos atributos.

Clica sobre la imagen para más información

Vectorial de puntos

Los puntos son el caso de objetos espaciales más simple. La capa tiene \(n\) puntos y cada uno de ellos un par de coordenadas, y \(p\) variables asociadas.

Lo más usual es tener la información ya elaborada y en uno o varios fichero con geometría y los atributos, Más adelante veremos como realizar su importación de estos ficheros a R). Vamos a ejemplificar con la ayuda de un objeto llamado localidades que contiene 36 localidades de 4 de las comarcas de la Región de Murcia. Para representarlo, la manera más sencilla, es usando la función plot.

También podemos acceder a su contenido, como todo objeto de R, lo podemos:

  1. evaluar el objeto directamente:

  2. visualizar la información sobre la componente espacial con la función: geometry():

  3. examinar los atributos con @data:

    Para ver la información de las primeras filas de la tabla, como siempre, recurrimos a la función head:

Analizando el contenido del objeto

La información que nos muestra es la siguiente, verás algunos elementos son los mismos que en los objetos Raster Layer:

  • class: clase del objeto.
    El objeto localidades es un Spatial Points Data Frame, es decir, un objeto que incluye datos espaciales de tipo punto más las variables asociadas en una tabla de atributos como un data.frame.

  • features: número de elementos que incluye.
    Comprobamos, que efectivamente contiene los 36 puntos.

  • extent: extensión o límites del mapa, es decir coordenadas máximas y mínimas del área donde están incluidos los puntos.

  • crs: Coordinate reference system o también llamado Spatial reference system (SRS)), es el sistema de referencia, donde está incluido la información sobre coordenadas y proyección geográfica.

    En nuestro objeto vemos que es se trata de una proyección UTM, en la zona 30 y el elipsoide es el GRS80, es equivalente a decir que el sistema de referencia es el ETRS89 UTM ZONA 30N, (entraremos en detalle sobre CRS en módulos posteriores).

  • variables: el número de las variables.
    Efectivamente comprobamos que el data.frame contiene las 4 variables (columnas).

  • names: los nombres de las variables que contiene.
    En este caso tenemos 4 variables asociadas: nombre (denominación de la localidad), ID (identificador de cada punto), comarca (denominación de la comarca) y cod_comarca (código numérico de la comarca).

  • min values: valor mínimo de cada una de las variables.

  • max values: valor máximo de cada una de las variables.

Usando los elementos espaciales

Como en todo objeto de R podemos acceder a los diferentes contenidos, al igual que si fuera un data.frame, pero en vez de usar el símbolo $ para acceder a los elementos, en este caso se utiliza el símbolo @, ya que se trata de un tipo S4. Por lo que para acceder a:

Usando la tabla de datos

Si lo que queremos acceder es a la tabla de datos asociada o tabla de atributos, podemos recurrir a dos maneras, como si localidades fuera un data.frame usando $ así podemos acceder a cada una de las variables, o usando @data que accederíamos a todas. En el ejemplo siguiente solamente voy a nostras los 6 primeros registros.

Creando nuestro propio objeto en R

Podemos generar directamente en R nuestro objeto de puntos, como ejemplo utilizo los 3 primeros puntos del objeto municipios, para ello:

Los datos espaciales

Para ver que contiene este elemento, simplemente, lo evaluamos y nos muestra la siguiente información:

En este caso solamente es un Spatial points, es decir, puntos con coordenadas pero sin variables asociadas y, efectivamente, son 3 puntos, sin sistema de referencia asociado porque no se lo hemos indicado.

La tabla de atributos

Para añadir las variables generaríamos los vectores que luego uniríamos en un objeto data.frame.

Empezamos por un identificador, ID, y después otras variables.

Finalmente, unimos las coordenadas a la tabla de atributos, obteniendo el objeto tipo Spatial Points Data Frame, datos espaciales tipo punto con sus variables asociadas en una tabla. El nombre del objeto localidades3d tiene como objetivo que ahora tenemos \(x\), \(y\) y \(z\), actuando como esta última: cualquiera de la tabla.

Capas vectoriales de líneas

La geometría de las líneas es un poco más compleja. Se refiere a un conjunto de una o más polilíneas (series conectadas de segmentos de línea). Por ejemplo, en el análisis espacial, un río y todos sus afluentes podrían considerarse como una sola “línea”, pero también podrían ser varias líneas.

Las líneas se representan como conjuntos ordenados de coordenadas (nodos) conectados en orden por segmentos.

Como en el caso de los puntos, generalmente tendremos preparada de antemano la capa con la información vectorial y únicamente la cargaremos para realizar los diferentes análisis. Aunque, también, se podría generar en R, lo mas usual si no se dispone, de ella, es proceder a digitalizarla o vectorizarla. Es decir, entraríamos en la producción de mapas en formato digital, a partir de imágenes y fotografías aéreas de manera manual o, a la antigua usanza, con tabletas de digitalización. Para este proceso se utilizan otros programas específicos de SIG como QGIS o GRASS.

Como en el vectorial de puntos podemos representarlo y acceder a sus contenidos, la única diferencia con las capas de puntos es el acceso a las coordenadas que forman las líneas, en este documento solamente veremos los más generales, usando como ejemplo el objeto vias:

!Ojo¡ @lines guarda las coordenadas de los nodos de las líneas.

```r
vias@data
vias@lines
vias@bbox
vias@proj4string
```

Para representar las líneas podemos incluir como información adicional por color o tipo en ellas el valor de alguno de los atributos.

Cuestionario de autoevaluación

  • Si te animas a comprobar tus logros responde a las cuestiones del apartado Capa de líneas.

Capas vectoriales de polígonos

Un polígono se define como un conjunto de polilíneas cerradas. La geometría es muy similar a la de las líneas, pero para cerrar un polígono el último par de coordenadas coincide con el primer par. Una complicación con los polígonos es que pueden tener agujeros o regiones internas de otra naturaleza, por ejemplo una isla dentro de un lago. También es posible que varios polígonos aislados entre ellos, formen un único objeto. Por ejemplo, desde ciertos puntos de vista, las Canarias, es posible que cada isla se presente como un polígono pero son un conjunto y se trata como un único elemento en la tabla.

Además, los polígonos son válidos si no presentan intersecciones, es decir, ninguno corta o se superpone a los vecinos. Y como en el caso de las capas vectoriales de líneas necesitamos que la información esté ya digitalizada previamente, de lo contrario hay que recurrir a programas específicos.

Vemos, muy por encima, un ejemplo con una capa llamada municipios. Como en el vectorial de puntos también podemos representarlo y acceder a sus contenidos, y al igual que en una capa de líneas difiere de la de punto en el acceso a las coordenadas, la de polígonos presenta su propia manera de acceder a los polígonos. En el objeto tenemos un nuevo contenido: el orden de los polígonos. Veamos los elementos más generales.

Vemos que el objeto es de la clase Spatial Polygons Data Frame, 14 polígonos, ojo al comentario anterior sobre los grupos de ellos, 6 variables, …

Para acceder directamente a la información recurrimos, prácticamente, a los mismos procedimientos que en los casos anteriores.

!Ojo¡ @polygons guarda las coordenadas para generar los polígonos. Y tenemos una nueva información, el ordne de los polígonos que se guarda en @plotOrder

Gráficamente como en el caso de las líneas podemos recurrir a la tabla de atributos para obtener gráficos relevantes para nuestro trabajo, a modo de ejemplo:

Seguro que puedes ver el trazado del río Segura ^__^.

Cuestionario de autoevaluación

  • Si te animas a comprobar tus logros responde a las cuestiones del apartado Capa de polígonos.