【问题标题】:GIS: partition area based on equal populationGIS:基于人口平等划分区域
【发布时间】:2015-03-09 15:35:27
【问题描述】:

我想将美国的一个州划分为大约相等人口的 20 个部分。例如,我可以使用区域、邮政编码或其他较小的地理位置来做到这一点。我正在寻找一种算法来进行分区。它可以是任何语言或软件(ArcGIS、QGIS、python、PostGIS、R、node)。

对于我看过的分组或聚类算法,例如 k-means、ArcGIS 分组分析等。这些似乎不能满足需要,因为它们是基于变量的 相似性 进行分组的不要根据变量划分为相等的大小。我对ESRI's districting tool 的快速浏览表明这可能是一种可能性。

还有其他建议吗?

【问题讨论】:

  • 如果您问“这是否已经在一个整齐的捆绑包中为我实现了?”那么这与编程无关。也许它属于gis.stackexchange.com
  • 如果“整齐打包的包”是指我可以在 PostGIS 中使用的 Python 模块或 R 函数或 SQL 代码,那么是的,这就是我所要求的。所有这些都涉及到编程。

标签: gis postgis arcgis qgis


【解决方案1】:

您可以尝试质心加权 voronoi 图。即 Loyds 算法。选择voronoi图和每个voronoi单元的重心并冲洗并重复:http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/

【讨论】:

  • 我问过 jwd630 的类似问题,这是否已在某处实现?
  • @ZRoss:如果我的回答有帮助请考虑采纳!谢谢!
【解决方案2】:

您应该考虑Shortest splitline algorithm,推荐用于创建optimally compact 投票区。这是 a description 解决 gerrymandering 的结果。

【讨论】:

  • 这看起来不错,但你知道它是否已经在任何地方实现了吗?
  • @jwd630:所有可能的行是如何定义的?看起来很复杂。在 kd-tree 中它是一个矩形?
  • @ZRoss:我认为加权 voronoi 图更好。
  • 这取决于@ZRoss 未说明的目的。如果这是为了达到 voronoi 图属性擅长的分区,那么这也许是最好的选择。如果他想要一些不那么精确但更简单的东西来向他的听众解释,也许还有别的东西。既然他说他想要“大约相等的 20 部分”人口并提到他正在研究区划工具,我推测某些东西是为定义政治区边界而设计的 - 需要解释将线划给非 GIS 专家的理由可能是一个关键的决策因素 - 可能是最好的。
猜你喜欢
  • 2023-03-15
  • 2020-05-15
  • 2014-01-27
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2020-04-24
  • 2018-05-08
  • 2012-09-22
相关资源
最近更新 更多