He observado que algunos tutoriales nos brindan una forma de calcular el área y perímetro de un polígono usando QGIS. Sin embargo, nos damos con la sorpresa que no calculamos el área «correctamente». ¿Por qué pasa esto?.
En este pequeño tutorial aprenderemos a calcular el área en QGIS, porqué nos da un resultado diferente y cómo lo solucionamos.
Calculando áreas
Para este tutorial, usaremos este archivo Shapefile (descárgalo aquí) que corresponde a un polígono de 100x100m, es decir 1 hectárea.
- Abrimos QGIS e importamos la capa.
- Antes que nada, tenemos en cuenta que siempre trabajamos capas georreferenciadas. En este caso, la capa tiene una proyección en WGS84 Zona 18 Sur (EPSG:32718 – WGS 84 / UTM zone 18 S). Para revisar que sistema de coordenadas tiene tu capa, hacemos clic derecho en la capa y vamos a propiedades, luego hacemos clic en Fuente y vemos en la sección de Sistema de referencia de coordenadas.
Nota: Recuerden que el Sistema de Referencia del proyecto se actualiza con la capa, si este no cuenta con un sistema de referencia.
- Cerramos la ventana de propiedades y vamos a hacer clic derecho en la capa y seleccionamos Abrir tabla de atributos.
- Observamos la tabla de atributos del polígono. Por el momento tiene cuatro campos vacíos. Area_ha, Area_ha_2, Per_1 y Per_2.
Nota: A fin de que sea más dinámico el tema, calcularemos el área en hectáreas y a cuatro decimales.
- Para este caso, calcularemos el área y perímetro como nos indican varios tutoriales de QGIS en los campos Area_ha y Per_1 respectivamente. Primero calcularemos el área.
- Abrimos la Calculadora de Campos y seguimos los siguientes pasos.
- Primero, seleccionamos la opción de Actualizar Campo Existente.
- Segundo, vamos a seleccionar el campo Area_ha.
- Tercero, en el buscador de funciones y dentro de la sección de Geometría, seleccionamos la función $area.
- Cuarto, veremos que aparece en el campo de Expresión la función seleccionada. Como el resultado que obtenemos es en metros cuadrados, la dividimos entre 10 000 para que sea en hectáreas.
- Quinto, presionamos el botón Ok para calcular el área.
- Verán que ya aparece en el campo Area_ha el resultado. Aún no analicemos el resultado, hagamos lo mismo con el perímetro. Lo calcularemos en el campo Per_1 y la función que se utiliza es $perimeter.
Analizando los Datos
Ahora analicemos los datos. El área que nos aparece es de 1.0121 ha, pero sabemos que el polígono es de 100x100m, es decir 1 hectárea (1.0000 ha) y el perímetro que calculamos es 399.99m, pero debería ser 400.00m. ¿A qué se debe esto?
La respuesta en nuestros ojos
Si leemos la descripción de cada una de las funciones, observaremos que indica que el cálculo, tanto del área como del perímetro, respeta la configuración del elipsoide del proyecto actual.
En resumen…
Esto quiere decir que si el elipsoide del proyecto (ojo, no de la capa), tiene un sistema de referencia asignado, nos calculará en base al elipsoide del sistema de referencia establecido. Caso contrario, el área y el perímetro calculados serán planimétricos.
En pocas palabras, si quitamos el sistema de referencia del proyecto, podremos calcular el área que regularmente hemos calculado en otras herramientas, como es el caso de ArcGIS, AutoCAD, etc.
Calculando el área y perímetro planimétrico sin modificar el proyecto
Existe otro método, sin afectar el sistema de referencia del proyecto y caer en cualquier error u omisión y luego no te autocastigues por no saber que le hiciste al proyecto ya que mañana era el día de entrega.
- Para este tutorial lo calcularemos directamente sin tocar nada de la configuración del proyecto. Para ello, abrimos nuevamente la tabla de atributos y abrimos la calculadora de Campos.
- Dentro de la sección expresión, agregamos lo siguiente:
area($geometry)/10000
Lo que hace esta expresión es calcular el área planimétrica, es decir, sin considerar el elipsoide del sistema de referencia.
Nota: Observamos que en Vista Preliminar muestra 0.9999, pero como indica es preliminar, no se alarmen. Hacemos clic en Ok y veremos el siguiente resultado.
- Ahora sí, el área que obtenemos es de 1 hectárea (1.0000 ha). Luego, calculamos el perímetro, entrando nuevamente a la Calculadora de Campos y escribimos lo siguiente para el campo Per_2:
perimeter($geometry)
Ahora sí, el cálculo del perímetro también coincide con el valor estimado (400.00m).
Podemos ver las diferencias entre ambos cálculos de área y de perímetro que nos ofrece QGIS.
¡Listo!, ahora ya sabemos las diferencias entre las formas de calcular el área y perímetro en QGIS, recordemos siempre tener cuidado al momento de calcular dichos parámetros.
¡No te olvides! Si tienen preguntas o algún aporte, déjalo en los comentarios.
¡Recuerda compartir el conocimiento!
Osea que sI aplicamos estas dos posibilidades el cálculo del perímetro elipsoidal no siempre será menor que el cálculo planimétrico del perímetro?.
Hola Manuel, exactamente, dependerá mucho de dónde sea, el sistema de coordenadas, la zona UTM, etc. Pero La diferencia no es tan significativa. ¿Tienes un ejemplo de algún caso que hayas visto? ¡Puedes compartirlo!
Hola Manuel, gracias por la útil explicación.
Una pregunta, sabes si es posible configurar el QGIS para que realice el calculo del área directamente en Ha o en Km2, sin necesidad de realizar el ajuste en la operación de la calculadora de campos?..
Nuevamente gracias.
Muchísimas gracias. Hay que tener mucho cuidado en el cálculo de la superficie para la elaboración de los GML de las parcelas para catastro. Con esta explicación no habrá problema.
Buenas tardes,
Estoy realizando una investigación para establecer el gasto energético de los edificios en las ciudades y necesitaría calcular el perímetro de las líneas que representan las fachadas, es decir, sin tener en cuenta las medianeras entre edificios.
Teniendo en cuenta que he obtenido los polígonos que representan los edificios del catastro, hay alguna manera de seleccionar las líneas que corresponden a las fachadas? No sé si me he explicado bien…
Muchas gracias de antemano por la respuesta,
Un saludo!
Hola, teniendo en cuenta que cuando generas tu shape de polígono a polilíneas, obtendrás elementos «medianeras o colindancias» entre polígonos que se estarían duplicando. Para ello, puedes utilizar las reglas topológicas con tu shape a fin de poder determinar cuáles son los elementos que se duplican y eliminarlos. En QGIS puedes tomar en cuenta el siguiente Link como una guía.
Hola
Tengo una capa con curvas de nivel cada 100 metros. Quiero saber el área de cada tramos de cien metros. No lo consigo (creo que es porque un pilígono de, como ejemplo, entre 300 y 400 metros puede contener en su interior los polígonos correspondientes a 400-500, 500-600…).
alternativamente tengo esa misma capa categorizada, pero tampoco lo consigo.
Le agradecería me indicara como hacerlo (a mi correo, si puede ser).
Saludos y gracias.
Hola
Si estás utilizando QGIS y tienes las curvas de nivel (shp) y el contorno del estudio (línea también en shp), puedes usar poligonizar para que te pueda dar un polígono con las intersecciones.
Si estás utilizando ArcGIS (ArcMap) y tienes las curvas de nivel en polilinea (shp) y el contorno del estudio (línea también en shp), puedes usar Feature to polygon. Si quieres exactitud, puedes colcocar en Tolerance XY el valor de 0, saldrá una advertencia luego del procesamiento pero sólo es por colocar ese valor en la tolerancia.
Me avisas si pudiste solucionarlo.
Buenas, como calcularia el area total de un shape, quedando en cada registro el dato repetido pero siendo el total del area de la suma de todos los poligonos?
Hola!, según lo que veo es que necesitas saber el área total (sumatoria de las áreas del shape). Puedes usar diferentes opciones, dependiendo del criterio. Por ejemplo, si tienes superposiciones entre los polígonos, puedes usar un dissolve, y obtener el área total para luego, con Field Calculator, agregar el dato en algún campo de la tabla de atributos. Otro caso, puede ser, si en este caso no cuentas con superposiciones o necesitas si o si sumar todas las áreas, con Summarize (Resumir) dentro de la tabla de atributos, con ello obtienes una tabla, dependiendo del criterio elegido, pudiendo obtener la sumatoria de las áreas. Luego ese valor lo asignas a un campo de la tabla de atributos elegido.
Espero haberte ayudado!
Hola, tengo un kml cuyo polígono me arroja una superficie en google earth (propiedades medidas) y al pasar a qgis y aplicar ambas formulas difiere en la superficie del polígono en 3 hectáreas, no así entre ambas formulas cuya diferencia es poco significativa. ¿ a que se debe?
¡Hola!, ¿Has probado ver si al momento de trabajar el polígono es 2D o 3D?