Determinación de áreas de polígonos irregulares usando las coordenadas de sus vértices en un script de Python

La determinación de áreas de polígonos irregulares, usando las coordenadas de sus vértices, emplea el algoritmo conocido como “producto en cruz”. Sin entrar en consideraciones acerca de la derivación de la fórmula, se va a codificar el algoritmo mediante un script de Python y a ejecutar con el primer ejemplo que se detalla en la siguiente referencia:

Determinación de Áreas

de donde se tomó la siguiente imagen que incluye la forma del polígono y los valores numéricos de las coordenadas de sus vértices:

Las coordenadas que aparecen en la imagen anterior se colocaron en el archivo coor.dat siguiente:

0 591.66
125.66 847.62
716.30 694.06
523.58 0
517.54 202.97

para que puedan ser leídos por el script y modificados a voluntad fuera de éste. El código propuesto (py_area.py) es el siguiente:

#!/usr/bin/env python
# -*- coding: utf-8

from os import system

system("clear")

file = open("coor.dat", "r")

coordenadas = file.read()

coordenadas = coordenadas.split("\n")

n = len(coordenadas) - 1

x = range(n)
y = range(n)

print "coordenadas x,y (archivo coor.dat)"

for i in range(n):
	x[i] = float((coordenadas[i].split())[0])
	y[i] = float((coordenadas[i].split())[1])
	print x[i], y[i]

#Algoritmo para la determinación del área
sum = x[0]*y[n-1] - x[n-1]*y[0]

for i in range(n-1):

	sum += x[i+1]*y[i] - x[i]*y[i+1]

area = sum/2

#Imprime el área determinada
print "\narea = %.2f" % area

La ejecución en cónsola de bash produce el resultado siguiente:

coordenadas x,y (archivo coor.dat)
0.0 591.66
125.66 847.62
716.3 694.06
523.58 0.0
517.54 202.97

area = 272599.90

cuya área concuerda, dentro del margen de cifras significativas usados, con el de la imagen al inicio del artículo.

About these ads
Esta entrada fue publicada en Código Python, SIG, Software Libre. Guarda el enlace permanente.

Una respuesta a Determinación de áreas de polígonos irregulares usando las coordenadas de sus vértices en un script de Python

  1. Pingback: Dividir un polígono irregular por la mitad usando las coordenadas de sus vértices en un script de Python |

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s