In Finland, municipalities are incredibly powerful; like local authorities in the UK, municipalities are responsible for local administration, but they also levy an income tax and are responsible for providing most public services. Municipalities were founded on the assumption of equality, which forms the basis for the reform considerations currently ongoing in the Finnish government. The fact is, municipalities simply aren’t equal, they vary wildly in population size and area; numbering 342 they are of rough numerical equivalence to UK local authorities, despite Finland itself having around 1/11th of the UK’s population. The population skew is greatly emphasised by the presence of cities such as Helsinki which cross municipal boundaries, and more remote municipalities whose geographical extent was set out by horse-and-cart distance. It is therefore understandable that the Finnish government would be interested in the possibility of mergers to reduce the number of municipalities, and create a system in which muncipalities serve a similar number, or at least a threshold, population. It is believed that this would make administration more efficient, as services can be centralised to a greater degree, and small municipalities which already share services can formalise this.
Some mergers have already taken place, and there are governmental incentives for merging. However, with the specified model that municalities should be reformed such that they have a base population of 20-30,000 people, from the Association of Finnish Local and Regional Authorities (Kuntaliitto), we can apply automated zone design scenarios to test the ‘what if’ aspect of creating a new Finnish municipal system based on preserving different characteristics.
The zone design tool that I use to test a few basic scenarios is the regionalization library in pySAL, a spatial analysis module for Python. This implements the max-P algorithm for spatially contrained clustering subject to a similarity matrix, and a threshold value. I specified the research design so that I was testing for the optimal new aggregation of the pre-existing muncipalities and tested 3 different scenarios: 1) No similarity measure (all municipalities assumed equal, but for population) 2) Similarity based on municipal tax regime, and 3) Similarity based upon municipal tax regime and % non-finnish speakers, which accounts culturally for the Sami people of Lapland and ethnically Swedish Finns.
The regionalisation requires that you create a contiguity matrix for the zones, I arbitrarily chose the queen case, and added bespoke contiguity for Finnish islands based upon proximity, this is easy to do in GeoDa and it outputs a .gal file which you can read into python. Then all you really need to do is the following:
import pysal import numpy as np #required as pysal uses numpy arrays #Read in your population and similarity data in some way, #I tend to create a python list from a csv. #convert the population and similarity data into #numpy arrays, from lists called pop and sim pop = np.asarray(pop) sim = np.asarray(sim) # Read in your precomputed Weights matrix w = pysal.open("...\\QueenWeights.gal").read() # Create an (optional) array of 1s to represent equality # (replace sim in Maxp function call) nosim = np.ones((342,1)) # Run solutions for maxp algorithms with specific parameters r= pysal.Maxp(w,sim,floor = 20000,floor_variable = pop,initial=100) # Write r.regions to outfile to get regional assignments, #this can be joined to shp in ArcGIS.
The maxP algorithm works by first randomly creating a set of possible zoning configurations, then it chooses the current optimum and seeks to refine it using a computationally expensive zone-swapping method. Optimality in this case is defined by minimising dissimilarity whilst obeying the threshold population constraint. The API reference for regionalisation in pysal is very good.
Here are some of the results I produced for this basic approach:
Unlike some of the more advanced zone-design algorithms, pySAL doesn’t yet provide a way of preserving or optimising area shape characteristics, so you can get sliver-like polygons forming. Nonetheless it presents an interesting insight and a set of functions from which a more advanced/bespoke algorithm could be built.As it turns out the islands that I arbitrarily allocated to the contiguity matrix are actually quite a contentious topic and given their strategic significance to Sweden are in fact neutral territories which would be untouched by any redesign of municipal structure.
As ever, local knowledge is important, and for the economists at VATT this is a real task to undertake. They won’t be doing anything quite so crude, they do however have a curious spatial problem to deal with.