Calcula el área y perímetro en QGIS

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.
CO 
eo 
eo 
Navegador 
Calcular el área 
shp 
Poligono_Area.shp 
Capas 
QGIS 
Escala 1:874 
abc 
e:lv 
abc 
abc 
F' 43) 
Coordenada 313293.3,8613102.1 
ab 
eo 
Buscar... 
Caja de herramientas de Procesos 
cu 
Poliqono Area 
Q Escriba para localizar (#K) 
Usado recientemente 
Poligonizar 
Reproyectar capa 
Análisis de redes 
Análisis de vector 
Análisis del terreno ráster 
Análisis ráster 
Base de datos 
Cartografía 
Creación de vectores 
Geometría vectorial 
Gráficos 
Herramientas de archivo 
Herramientas de capa 
Herramientas ráster 
Interpolación 
Selección vectorial 
Superposición vectorial 
Tabla vectorial 
Vector general 
GDAL 
GRASS 
Modelos 
SAGA 
Scripts 
Eliminada una entrada 
Amplificador 
100% 
Rotación 
0,00 
Representar 
EPSG:32718
  • 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.

e oe 
ñ 
Información 
Fuente 
Simbología 
Etiquetas 
Diagramas 
Vista 3D 
Campos 
Formulario de 
atributos 
Uniones 
Amacenamiento 
auxiliar 
Acciones 
Visualizar 
Representación 
Variables 
Metadatos 
Dependencias 
Propiedades de la capa - Poligono_Area I Fuente 
v Configuración 
Nombre de la capa Poligono_Area 
mostrada como 
Codificación de la fuente de datos 
UTF-8 
v Sistema de referencia de coordenadas 
Establecer sistema de referencia de coordenadas del origen 
EPSG:32718 - WGS 84 / UTM zone 18S 
Crear índice espacial 
O 
Actualizar extensión 
v Filtro de objeto del proveedor 
Poligono_Area 
Constructor de consultas 
Help 
Estilo 
Apply 
Cancel 
OK
  • 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.

O 
QGIS 
50 sa 
ab 
abc 
e:lv 
a bc 
a bc 
Navegador 
Calcular el área 
shp 
Poligono_Area.shp 
Capas 
Caja de herramientas de Procesos 
cu 
Poliqono Area 
Q Escriba para localizar (#K) 
Buscar... 
Usado recientemente 
Poligonizar 
Reproyectar capa 
Análisis de redes 
Análisis de vector 
Análisis del terreno ráster 
Análisis ráster 
Base de datos 
Cartografía 
e oe 
FID 
1 
Area_ha 
Q 
Area_ha_2 
Poligono_Area :: Objetos totales: 1, Filtrados: 1, Seleccionados: O 
Per_l 
Escala 1:1,748 
Per_2 
Mostrar todos los objetos espaciales 
O objetos espaciales s Coordenada 313202.5,8613033.1 
Amplificador 
100% 
Rotación 
0,00 
Representar 
EPSG:32718
  • 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.
O 
QGIS 
50 sa 
eo 
eo 
Navegador 
Calcular el área 
shp 
Poligono_Area.shp 
Capas 
cu 
CO 
e oe 
FID 
1 
ab 
abc 
e:lv 
abc 
a bc 
eo 
Buscar... 
Caja de herramientas de Procesos 
Usado recientemente 
Poligonizar 
Reproyectar capa 
Análisis de redes 
Análisis de vector 
Análisis del terreno ráster 
Análisis ráster 
Base de datos 
Cartografía 
Poliqono Area 
Q Escriba para localizar (#K) 
Area_ha 
Q 
Area_ha_2 
Poligono_Area :: Objetos totales: 1, Filtrados: 1, Seleccionados: O 
Per_l 
Per_2 
Abrir calculadora de campos (Ctrl+M) 
Mostrar todos los objetos espaciales 
O objetos espacialess Coordenada 313507.8,8613033.7 
Escala 
1:1,748 
Amplificador 
100% 
Rotación 
0,00 
EPSG:32718 
Representar
  • 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.
e oe 
Actualizar sólo O objetos espaciales seleccionados 
Q Calculadora de Campo 
Actualizar cam o existente 
Crear un campo nuevo 
Crear campo virtual 
Nombre del campo de salida 
Tipo del campo de salida 
2 
Número entero (entero) 
Longitud del campo de salida 10 
Expresión 
Editor de funciones 
Precisión 
'\n' 
area 
4 
Area_ha 
Buscar 
concoraanaa aprox... 
Condicionales 
Conversiones 
Fecha y Hora 
General 
Geometría 
$area 
area 
azimuth 
boundary 
bounds 
bounds_height 
bounds_width 
buffer 
función $area 
Devuelve el área del 
objeto actual. El área 
calculada por esta 
función respeta tanto la 
configuración del 
elipsoide del proyecto 
actual como la de las 
unidades de área. Por 
ejemplo, si se ha 
establecido un elipsoide 
para el proyecto, 
entonces el área 
calculada será elipsoidal y 
si no se ha establecido 
ningún elipsoide, 
entonces el área 
Vista preliminar de la salida: 10121.78125169808 
Está editando información de esta capa, pero la capa no está actualmente en modo edición. Si pulsa Aceptar se activará 
automáticamente el modo de edición. 
Help 
Cancel 
OK
e oe 
Actualizar sólo O objetos espaciales seleccionados 
Crear un campo nuevo 
Crear campo virtual 
Nombre del campo de salida 
Tipo del campo de salida 
Número entero (entero) 
Longitud del campo de salida 10 
Precisión 
Expresión 
10004 
$area / 
Editor de funciones 
'\n' 
1.0121781251698079 
Q Calculadora de Campo 
Actualizar campo existente 
Area_ha 
Buscar 
row number 
Aggregates 
Arrays 
Cadena 
Campos y valores 
Capas de mapa 
Color 
Concordancia aproxi... 
Condicionales 
Conversiones 
Fecha y Hora 
General 
Geometría 
Maps 
Matemáticas 
Operadores 
Reciente (fieldcalc) 
Record and Attributes 
O 
función $area 
Devuelve el área del 
objeto actual. El área 
calculada por esta 
función respeta tanto la 
configuración del 
elipsoide del proyecto 
actual como la de las 
unidades de área. Por 
ejemplo, si se ha 
establecido un elipsoide 
para el proyecto, 
entonces el área 
calculada será elipsoidal y 
si no se ha establecido 
ningún elipsoide, 
entonces el área 
calculada será 
planimétrica. 
Sintaxis 
Vista preliminar de la salida: 
Help 
Cancel 
OK
  • 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.
e oe 
Actualizar sólo O objetos espaciales seleccionados 
Crear un campo nuevo 
Crear campo virtual 
Nombre del campo de salida 
Tipo del campo de salida 
Número entero (entero) 
Longitud del campo de salida 10 
Precisión 
Expresión 
perimeter 
Editor de funciones 
'\n' 
399.98747890144125 
Q Calculadora de Campo 
Actualizar campo existente 
Per_l 
Buscar 
num_geometries 
num_interior_rings 
num_points 
num_rings 
offset_curve 
order_parts 
oriented_bbox 
$perimeter 
perme er 
point_n 
point_on_surface 
pole_of_inaccessib... 
project 
relate 
reverse 
segments_to_lines 
shortest_line 
función $perimeter 
Devuelve la longitud del 
perímetro del objeto 
actual. El perímetro 
calculado por esta 
función respeta tanto la 
configuración del 
elipsoide del proyecto 
actual como la de las 
unidades de distancia. 
Por ejemplo, si se ha 
establecido un elipsoide 
para el proyecto, 
entonces el perímetro 
calculado será elipsoidal 
y si no se ha establecido 
ningún elipsoide, 
entonces el perímetro 
Vista preliminar de la salida: 
Help 
calculado será 
planimétrico. 
Cancel 
OK

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
e oe 
Actualizar sólo O objetos espaciales seleccionados 
Crear un campo nuevo 
Crear campo virtual 
Nombre del campo de salida 
Tipo del campo de salida 
Número entero (entero) 
Longitud del campo de salida 10 
Precisión 
Expresión 
Editor de funciones 
'\n' 
0.9999999999988358 
Q Calculadora de Campo 
a 
Actualizar campo existente 
Area_ha_2 
Buscar 
row number 
Aggregates 
Arrays 
Cadena 
Campos y valores 
Capas de mapa 
Color 
10004 
area($geometry)/ 
Vista preliminar de la salida: 
Help 
grupo Aggregates 
Contiene funciones que 
agregan valores sobre capas 
y campos. 
Concordancia aproximada 
O 
Condicionales 
Conversiones 
Fecha y Hora 
General 
Geometría 
Maps 
Matemáticas 
Operadores 
Reciente (fieldcalc) 
Record and Attributes 
Cancel 
OK

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. 

Q 
Area_ha 
Poligono_Area :: Objetos totales: 1, Filtrados: 1, Seleccionados: O 
Area_ha 2 
Actualizar todo 
Actualizar lo seleccionado 
FID 
1 
1.0000 
Per_l 
399.99 
Per_2 
10000.00 
1.0122 
Mostrar todos los objetos espaciales
  • 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)
FID 
Poligono_Area :: Objetos totales: 1, Filtrados: 1, Seleccionados: O 
Area_ha 2 
Q 
Actualizar todo 
Actualizar lo seleccionado 
1 
Area_ha 
1.0122 
1.0000 
Per_l 
399.99 
Per_2 
400.00 
Mostrar todos los objetos espaciales

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!

Autor: jmacalupur

Bach. en Ingeniería agrícola. Amante de las nuevas tecnologías. Estudiando actualmente en Platzi.

12 opiniones en “Calcula el área y perímetro en QGIS”

  1. 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?.

    1. 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!

  2. 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.

  3. 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.

  4. 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!

    1. 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.

  5. 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.

    1. 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.

  6. 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?

    1. 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!

  7. 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?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.