Libreria de funciones para el análisis espacial multicriterio

En esta página encontrarás la documentación de las funciones que he creado en python y qgis 3.10 o superior

Requerimientos generales

Para asegurar la ejecución correcta del código es importante verificar la instalación y funcionamiento de los siguientes elementos:

  • Qgis 3.10 o superior con Grass y librerías de Osgeo4W
  • Librerías python:
  • Numpy
  • Pandas
  • GDAL
  • reduce
  • os
  • copy
  • pprint
  • string

Descarga la libreria

apcsig.py.

Documentación

Autor: Víctor Hernández D.

Correo: victor.hernandez@iecologia.unam.mx

user_github: @vichdzgeo

Colaboladores: LANCIS - UNAM

apcsig.agregar_categorias(path_v, campo, nuevo_int_cats='categorias', cont=1)[fuente]

Esta función reclasifica una capa en enteros consecutivos en función de las categorias únicas de un campo en especifico, como subproducto genera un archivo csv con las categorias.

Parámetros:
  • path_v (str) – ruta de capa vectorial
  • campo (str) – nombre del campo que contiene las categorias
  • nuevo_int_cats (str) – nombre del campo a crear, el cúal contendrá las categorias en enteros
  • cont (int) – contador para empezar la numeración en el número indicado, por defecto es 1
apcsig.alinear_raster(path_raster, region, resolucion, path_salida, crs_destino='', tipo='int')[fuente]

Esta función alinea un raster dada una región y el tamaño de pixel :param path_raster: ruta de la capa a alinear :type path_raster: str

Parámetros:
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
  • resolucion (int) – tamaño de pixel
  • path_salida (str) – ruta de la capa de salida con extension tif
  • crs_destino (str) – nombre del código EPSG,
  • tipo (str) – tipo de dato, use “int” para entero o “float” para flotante, por default es entero
apcsig.aplica_mascara(path_mascara, path_capa, path_salida, region)[fuente]

Esta función aplica la máscara de la zona de estudio a una capa raster, es importante que la capa a la cual se aplicará la máscara este previamente alineada

Parámetros:
  • path_mascara (str) – ruta de la mascara en formato tiff
  • path_capa (str) – ruta de la capa a la cual se requiere aplicar la máscara
  • path_salida (str) – ruta de la capa resultado de aplicar la máscara
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
apcsig.areas_por_categorias_colsulta(path_raster)[fuente]

Ésta función imprime el número de pixeles por categoria de un archivo ráster

Parámetros:path_raster (str) – ruta del archivo ráster
apcsig.asignar_nulls(map, output, valor_huecos=0)[fuente]

Esta función asigna un valor a los no_data de la capa

Parámetros:
  • map (str) – ruta de la capa raster
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax

:param output:ruta de la capa resultante :type output: str

Parámetros:valor_huecos (int) – número que tendrán los pixeles nulos
apcsig.calculadora_grass(path_capa, ecuacion, path_salida)[fuente]

Esta función aplica la máscara de la zona de estudio

Parámetros:
  • path_mascara (str) – ruta de la mascara en formato tiff
  • path_capa (str) – ruta de la capa a la cual se requiere aplicar la máscara
  • path_salida (str) – ruta de la capa resultado de aplicar la máscara
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
apcsig.calculadora_grass_2capas(path_capa_a, path_capa_b, ecuacion, path_salida, region)[fuente]

Esta función aplica la máscara de la zona de estudio

Parámetros:
  • path_mascara (str) – ruta de la mascara en formato tiff
  • path_capa (str) – ruta de la capa a la cual se requiere aplicar la máscara
  • path_salida (str) – ruta de la capa resultado de aplicar la máscara
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
apcsig.calculadora_grass_3capas(path_capa_a, path_capa_b, path_capa_c, ecuacion, path_salida, region)[fuente]

Esta función aplica la máscara de la zona de estudio

Parámetros:
  • path_mascara (str) – ruta de la mascara en formato tiff
  • path_capa (str) – ruta de la capa a la cual se requiere aplicar la máscara
  • path_salida (str) – ruta de la capa resultado de aplicar la máscara
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
apcsig.calculadora_grass_4capas(lista_capas, ecuacion, path_salida)[fuente]

Esta función aplica la máscara de la zona de estudio

Parámetros:
  • path_mascara (str) – ruta de la mascara en formato tiff
  • path_capa (str) – ruta de la capa a la cual se requiere aplicar la máscara
  • path_salida (str) – ruta de la capa resultado de aplicar la máscara
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
apcsig.campos_mayusculas(path_shape)[fuente]

Esta función renombra los campos en mayusculas

Parámetros:path_shape (str) – Ruta de la capa vectorial
apcsig.campos_minusculas(path_shape)[fuente]

Esta función renombra los campos en minúsculas

Parámetros:path_shape (str) – Ruta de la capa vectorial
apcsig.capa_binaria(path_v, campo_cat='presencia', valor=1)[fuente]

Esta función crea un campo llamado presencia y asigna a cada elemento el valor de 1

Parámetros:
  • path_v (str) – ruta de la capa vectorial
  • campo_cat (str) – nombre del campo a crear, por default es presencia
apcsig.categorias_campo_csv(path_shape, campo)[fuente]

Esta función extrae las categorias únicas de un campo dado de una capa vectorial, el archivo csv se guarda en la misma ruta de la capa vectorial y es nombrado como : categorias_campo_nombre_capa.csv

Nota

En dado caso que el nombre de la categoria contenga el símbolo de “,” está función la remplaza por “;” para evitar errores en la escritura del archivo csv

Parámetros:
  • path_shape (str) – ruta de la capa vectorial
  • campo (str) – nombre del campo que contiene las categorias
apcsig.corrige_geometria(path_v)[fuente]

Esta función corrige la geometría de una capa vectorial por medio de la función nativa de qgis «fixgeometries», gerarando como resultado en la misma ruta, una capa con el mismo nombre pero con terminación «_fix.shp»

Este procedimiento se implementa ya que se ha detectado que varios geoprocesos vectoriales no funcionan de una manera óptima si las geometrías están corruptas.

Parámetros:path_v (str) – ruta del archivo shape
Devuelve:Ruta del archivo shape con la geometría corregida
Tipo del valor devuelto:
 str
apcsig.crea_capa_raster(ecuacion, rasters_input, salida, decimales=3)[fuente]

Esta función crea una capa mediante la calculadora raster de GDAL, esta función esta limitada hasta 14 variables en la ecuación.

Parámetros:
  • ecuacion (str) – ecuación expresada en formato gdal,
  • rasters_input (list) – lista de los paths de los archivos rasters
  • salida (str) – ruta con extensión tiff de la salida
Devuelve:

Capa raster de tipo flotante, los valores de la capa son redondeados a 3 decimales

apcsig.crear_campo(path_vector, nombre_campo, tipo)[fuente]

Esta funcion crea un campo segun el tipo especificado. Parametros: :param path_vector: La ruta del archivo shapefile al cual se le quiere agregar el campo :type path_vector: String

Parámetros:
  • nombre_campo (Sting) – Nombre del campo nuevo
  • tipo – es el tipo de campo que se quiere crear

Int: para crear un campo tipo entero Double: para crear un campo tipo doble o flotante String: para crear un campo tipo texto Date: para crear un campo tipo fecha :type tipo: String

apcsig.criterios_ruta_pesos(dicc)[fuente]

funcion para extraer a partir de un diccionario, listas de criterios, rutas y pesos para la clp

apcsig.cuantiles_s(path_v, quantil, field)[fuente]

Esta función regresa la lista de cortes según el cuantil deseado de los valores de un campo de la capa vectorial de entrada

Parámetros:
  • path_v (str) – ruta de la capa vectorial
  • quantil (int) – cuantil
  • field (str) – nombre del campo
apcsig.distancia_caminos_lugar(layer_raster_lugar, path_caminos, campo_caminos, path_mascara, path_salida, region_ext, ancho_ext=2292, alto_ext=2284, remover=1)[fuente]

Esta función genera una capa de distancia a caminos y agrega distancia cero a aquellos pixeles que se sobreponen con el área del lugar

apcsig.ecuacion_class(cortes)[fuente]

Función que escribe la ecuación de reclasificación a partir de un intervalo de cortes

apcsig.ecuacion_clp(pesos)[fuente]

Esta función recibe una lista de pesos para regresar la ecuación de la combinación líneal ponderada en la estructura requerida para la calculadora raster de gdal.

La ecuación líneal ponderada (clp), donde i es el número de capas; x es la capa ráster y w es el peso asociado en el modelo multicriterio para esa capa ráster.

\[clp = \sum_{i=i}^{i=n}x_{i}*w_{i}\]

ejemplo:

El modelo multicriterio se compone cuatro criterios: A, B, C y D ;

donde A tiene un peso de w=0.40 ; B tiene un peso de w=0.25, C tiene un peso de w=0.15 u D tiene un peso de w=0.20

\[clp = A*0.40 + B*0.25 + C*0.15 +D*0.20\]

Nota

El orden de los valores en la lista de los pesos tiene que ser igual al orden de la lista de la variable rasters_input de la función crea_capa_raster

Parámetros:pesos (lista) – lista de los pesos de las capas, salida de la función
Devuelve:ecuación en formato gdal para ser ingresada a la funcion crea_capa_raster
apcsig.equidistantes(categories=5, min=0, max=1)[fuente]

Esta función regresa la lista de cortes equidistantes según el número de categorias y el valor minimo y maximo ingresados.

Parámetros:
  • categories (int) – número de categorias
  • min (float) – valor mínimo de la capa
  • max (float) – valor máximo de la capa
apcsig.extrae_categorias(path_v, salida, campo, categorias)[fuente]

Función que extrae elementos de un shapefile dada una lista de categorias.

Parámetros:
  • path_v (str) – ruta de la capa vectorial
  • salida (str) – ruta de la capa vectorial con elementos de las categorias de interés.
  • campo (str) – nombre del campo que contiene las categorias
  • categorias (list) – lista de categorias
apcsig.get_region(path_layer)[fuente]

Esta función extrae la región o extensión de una capa raster así como el número de columnas y renglones

Parámetros:path_layer (str) – ruta de la capa raster
Devuelve:en forma de lista [1,2,3] [1] las coordenadas de la extensión de una capa raster xmin,xmax,ymin,ymax ; [2]. ancho de una capa raster (número de columnas) y [3]. alto de una capa raster (número de renglones)
apcsig.integra_localidades_caminos(path_lugar_n, w_lugar, path_d_camino_n, w_d_camino, d_max_lugar, salida)[fuente]

Esta función aplica la máscara de la zona de estudio

Parámetros:
  • path_mascara (str) – ruta de la mascara en formato tiff
  • path_capa (str) – ruta de la capa a la cual se requiere aplicar la máscara
  • path_salida (str) – ruta de la capa resultado de aplicar la máscara
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
apcsig.lista_archivos(path, n_ext='.tif')[fuente]

Ésta función busca dentro de un directorio todos los archivos con el tipo de extensión declarada.

Parámetros:path (str) – ruta del direcctorio que contiene los archivos
Devuelve:lista con la ruta de cada archivo localizado en el directorio y subdirectorios
Tipo del valor devuelto:
 list
apcsig.llenar_campos_nulos(path_vector, valor=-9999)[fuente]
Parámetros:
  • path_vector (str) – Ruta de la capa vectorial
  • valor – valor numérico para rellenar los campos vacios por default se establece -9999
apcsig.max_min_vector(layer, campo)[fuente]

Esta función regresa el maximo y minimo del campo elegido de la capa vectorial de entrada

Parámetros:
  • layer (QgsLayer) – capa vectorial
  • campo (str) – nombre del campo
apcsig.normailiza_raster(path_raster, path_raster_n, modo='ideales', decimales=3)[fuente]

Esta función normaliza una capa raster, se puede elegir entre dos tipos de normalización.

  1. ideales: La capa ráster se divide entre el valor máximo como resultado se tiene una capa con un máximo de 1 pero el valor mínimo no necesariamente será 0
\[ideales=\frac{A}{max(A)}\]

2) lineal: la capa ráster resultante tendra como valor máximo 1 y como valor mínimo 0 el 1 representará el maximo de la capa de entrada y el 0 representa el valor mínimo de la capa de entrada

\[lineal=\frac{A -min(A)}{max(A) - min(A)}\]
apcsig.nulls(map, output, valor_huecos=0)[fuente]

Esta función asigna un valor a los no_data de la capa

Parámetros:
  • map (str) – ruta de la capa raster
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax

:param output:ruta de la capa resultante :type output: str

Parámetros:valor_huecos (int) – número que tendrán los pixeles nulos
apcsig.progressive(fp=2, min=0, max=1, categories=5)[fuente]

Función que reclasifica un rango de valores de 0 a 1 en n categorias por el clasificador Progresiva.

Parámetros:
  • fp (int) – Factor de progresión.
  • min (float) – Valor mínimo del rango a clasificar.
  • max (float) – Valor máximo del rango a clasificar.
  • categories (int) – número de categorias
Devuelve:

lista con los intervalos de corte

Tipo del valor devuelto:
 

list

apcsig.raster_a_vector(path_raster, nombre_campo, path_vector)[fuente]

Función que transforma una capa ráster a vector.

Parámetros:
  • de la capa raster (path_raster:Ruta) –
  • nombre_campo (int) – Nombre del campo de la capa vectorial que contendrá los valores o categorias del ráster
  • path_vector (str) – Ruta donde se almacenará la capa shapefile
apcsig.raster_min_max(path_raster)[fuente]

Esta funcion regresa los valores maximos y minimos de una capa raster

Parámetros:path_raster (str) – ruta de la capa raster
apcsig.rasterizar_vector(path_vector, n_campo, region, path_salida, tipo='int', ancho=0, alto=0)[fuente]

Esta función rasteriza una capa vectorial a partir de un campo de tipo numérico y dada una región y el numero de columnas (ancho) y el numero de renglones (alto)

Parámetros:
  • path_vector (str) – ruta de la capa vectorial
  • n_campo (srt) – nombre del campo que contiene los id de las categorias
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
  • path_salida (str) – ruta de la capa de salida con extension tif
  • tipo (str) – tipo de dato, use “int” para entero o “float” para flotante, por default es entero
apcsig.rasterizar_vector_directo(vector, n_campo, region, path_salida, tipo='int', ancho=0, alto=0)[fuente]

Esta función rasteriza una capa vectorial a partir de un campo de tipo numérico y dada una región y el numero de columnas (ancho) y el numero de renglones (alto)

Parámetros:
  • path_vector (str) – ruta de la capa vectorial
  • n_campo (srt) – nombre del campo que contiene los id de las categorias
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
  • path_salida (str) – ruta de la capa de salida con extension tif
  • tipo (str) – tipo de dato, use “int” para entero o “float” para flotante, por default es entero
apcsig.reclasifica_capa(capa, region, reglas, salida)[fuente]

Esta función permite reclasificar una capa raster y genera un archivo xml el cúal contiene el nombre de las categorias.

Parámetros:
  • capa (str) – ruta de capa de entrada
  • region (str) – coordenadas de la región del estudio xmin,xmax,ymin,ymax
  • reglas (str) – ruta del archivo txt que contiene las reglas de clasificación
  • salida (str) – ruta de la capa de salida reclasificada
Retuns:

Capa raster clasificada y archivo xml

apcsig.redondea_raster(path_raster, salida, no_decimales=3)[fuente]

Esta función redondea una capa raster de tipo flotante en el número de decimales indicado

Parámetros:
  • path_raster (str) – ruta de la capa raster
  • no_decimales – número de decimales a los que se va a redondear la capa, por default es 3
  • salida (str) – ruta de la capa de salida
apcsig.remove_raster(path_r)[fuente]

Esta función elimina una capa del sistema

Parámetros:path_r (str) – ruta de la capa
apcsig.reproyectar_a_utm(path_v, path_v_reproyectado, zona_norte)[fuente]

Función que reproyecta una capa shapefile a UTM/WGS84 para las zonas válidas de México.

Path_v:Ruta de la capa shapefile original.
Typy path_v:str
Path_v_reproyectado:
 Ruta y nombre de la capa shapefile que se exporatá con proyección UTM/WGS84.

:type path_v_reproyectado:str

Zona_norte:Número de zona UTM a la que se desea exportar la capa Shapefile (11 hasta la 16).
apcsig.single_poligonos(path_v, salida)[fuente]

Función que transforma una capa multipolígono a polígonos individuales.

Parámetros:
  • path_v (str) – ruta de la capa vectorial multipoligono
  • salida (str) – ruta de la capa vectorial de polígonos individuales

Nota

Utilizar previamente la función corrige_geometria para la capa de entrada a ésta función.

apcsig.vcopia(path_vector, path_salida)[fuente]

Crea una copia de la capa a partir de la ruta de la capa, la capa es creada con el mismo sistema de referencia que el origen y codificada en UTF-8.

Parámetros:
  • path_vector (String) – ruta de la capa original
  • path_salida (String) – ruta de donde sera almacenada la capa
apcsig.wf(fp=2, min=0, max=1, categories=5)[fuente]

Función que reclasifica un rango de valores de 0 a 1 en n categorias por Weber-Fechner.

Parámetros:
  • fp (int) – Factor de progresión.
  • min (float) – Valor mínimo del rango a clasificar.
  • max (float) – Valor máximo del rango a clasificar.
  • categories (int) – número de categorias
Devuelve:

lista con los intervalos de corte

Tipo del valor devuelto:
 

list