行政区的轮廓匹配

在中国省、地、县三级行政区中,哪个与中国整体的雄鸡形状最相似呢?我用Python分析了下三级3000多个行政区划的轮廓数据,找到了些还算有点相似的。思路其实很简单,就是比较轮廓的Hu不变矩,用OpenCV的轮廓匹配matchShapes来判断两个行政区的相似程度。Hu不变矩有旋转、缩放、镜像不变的性质,所以用来比较形状很合适。行政区的轮廓数据则都是来自高德地图的API

在省级行政区中,三个最相似的省份分别是吉林、重庆与湖北。下面的图有些我作了旋转或者镜像,以方便比较。名称后面的数值就表示该行政区与中国整体形状的相似程度,越小越相似,0就是完全相同。

吉林(0.179)
吉林
重庆(0.207)
重庆
湖北(0.271)
湖北

然后是几个比较相似的二级行政区,其中来宾市也是所有3000多个行政区划中最为相似(数值最小)的一个。

广西来宾市(0.026)
来宾市
新疆铁门关市(0.149)
铁门关市
云南昭通市(0.155)
昭通市

最后是一些县级行政区:

陕西西安市新城区(0.039)
新城区
西藏日喀则市萨迦县(0.095)
萨迦县
山东潍坊市坊子区(0.096)
坊子区
山西吕梁市孝义市(0.096)
孝义市
山西太原市清徐县(0.109)
清徐县
贵州铜仁市碧江区(0.110)
碧江区
新疆阿克苏地区柯坪县(0.121)
柯坪县

代码我传到了Github上,感兴趣的可以参考:https://github.com/stevenliuyi/china-district-shapes .