Motivado por esta entrada construí usando
muns <- st_read("data/CifraPob2023.shp") peninsula <- muns[muns$ccaa != 'Canarias',] plot(peninsula["pob_23"]) peninsula <- st_transform(peninsula, 25830) peninsula_dorling <- cartogram_dorling( x = peninsula, weight = "pob_23", k = 0.2, itermax = 100) plot(peninsula_dorling["pob_23"]) sobre unos datos que ya no recuerdo de dónde bajé. La única línea no autoexplicativa del código es
peninsula <- st_transform(peninsula, 25830) que transforma las coordenadas originales de los datos en coordenadas proyectadas (o, más bien, las coordenadas proyectadas que rigen en la zona peninsular). El 25830 en cuestión me lo chivó un LLM.
Antes de usar cartogram_dorling pensé cómo podría programar algo parecido a mano. La primera idea que a uno se le ocurre es la programación lineal —que, en este caso no sería lineal sino… ¿cuadrática?—; pero, casi seguro, el tamaño del problema con todas las restricciones potenciales lo hace computacionalmente inviable. Casi seguro, hay que recurrir a heurísticas para obtener una solución razonable.
...