Birgir
added data to app
35f2f48
raw
history blame contribute delete
864 Bytes
from typing import List, Tuple
from pyproj import Geod
from shapely.geometry import Polygon
def get_density(polygon_coordinates: List[Tuple[float, float]], population: int) -> float:
"""
Calculate the population density of a polygon with geographic coordinates.
Args:
polygon_coordinates (List[Tuple[float, float]]): List of (longitude, latitude) coordinates defining the polygon.
population (int): Population within the polygon.
Returns:
float: Population density (population per square meter).
"""
if polygon_coordinates[0] != polygon_coordinates[-1]:
polygon_coordinates.append(polygon_coordinates[0])
polygon = Polygon(polygon_coordinates)
area = polygon.area
if area == 0:
raise ValueError("The polygon area is zero. Cannot calculate density.")
return population / area