根据 Lat/Lon 计算密度
Calculate Density based on Lat/Lon
很抱歉,我没有这个问题的示例代码。原因是,我一直在寻找一种方法来做到这一点,但我没有任何想法。我不是在寻找具体的代码帮助,更像是一些关于从哪里开始的一般指导。
我有 lat/lon 居住在加利福尼亚州附近的人。基于这些数据的地理分组(县、市、邮编等),我应该计算出一个密度分数。基本上,每平方英里有多少点,或者沿着这些线的东西。我一直在寻找方法来做到这一点,不幸的是我还没有找到任何看起来正确的方法。我的数据中有 lat/lon/地理边界列,因此我可以按各种地理类型进行分组,但我想依靠 lat/lon 进行密度评分。
再次抱歉,我没有任何具体的代码可以分享。任何有关此问题的包或工具的建议将不胜感激!
我对 R 和 Python 都很满意,但我的同事更喜欢 python 驱动的解决方案。
下面是一些使用邮政编码和 lon/lat(按此顺序)的示例数据。
Zip Longitude Latitude
95223 -120.045063 38.467308
95223 -120.040889 38.465436
95223 -120.072499 38.454202
95223 -120.049251 38.462058
95223 -120.041697 38.462194
95223 -120.045757 38.470637
96120 -119.959615 38.703965
96120 -119.937276 38.741337
96120 -119.9382 38.739344
96120 -119.901794 38.776584
96120 -119.936094 38.741865
96120 -119.957587 38.707533
96120 -119.93456 38.74194
95646 -120.072087 38.687061
95646 -120.066752 38.684097
95646 -120.069591 38.684193
95646 -120.071754 38.699738
95646 -120.066111 38.685164
95646 -120.067082 38.683881
95646 -120.070923 38.696049
95646 -120.068004 38.683615
95646 -120.07161 38.699309
95646 -120.07385 38.690719
95646 -120.066131 38.685019
95646 -120.071263 38.686228
来自人口普查映射的 Pyviz 示例页面:
映射人口密度的示例代码:
https://examples.pyviz.org/census/census.html
创建你的界限:
这个问题的答案很好地涵盖了这一点,给出了边界检测算法的列表:
https://gis.stackexchange.com/questions/5426/finding-boundary-co-ordinates-from-given-set-of-point-co-ordinates
查找多边形的面积(AreaOfZipcode):
How to calculate the area of a polygon on the earth's surface using python?
使用累加器算法计算邮政编码人口。
然后:
人口密度 = PopOfZipcode/AreaOfZipcode
定义您的高 density/mid-density/low-density 边界,然后将您的邮政编码分配给每个桶。
很抱歉,我没有这个问题的示例代码。原因是,我一直在寻找一种方法来做到这一点,但我没有任何想法。我不是在寻找具体的代码帮助,更像是一些关于从哪里开始的一般指导。
我有 lat/lon 居住在加利福尼亚州附近的人。基于这些数据的地理分组(县、市、邮编等),我应该计算出一个密度分数。基本上,每平方英里有多少点,或者沿着这些线的东西。我一直在寻找方法来做到这一点,不幸的是我还没有找到任何看起来正确的方法。我的数据中有 lat/lon/地理边界列,因此我可以按各种地理类型进行分组,但我想依靠 lat/lon 进行密度评分。
再次抱歉,我没有任何具体的代码可以分享。任何有关此问题的包或工具的建议将不胜感激!
我对 R 和 Python 都很满意,但我的同事更喜欢 python 驱动的解决方案。
下面是一些使用邮政编码和 lon/lat(按此顺序)的示例数据。
Zip Longitude Latitude
95223 -120.045063 38.467308
95223 -120.040889 38.465436
95223 -120.072499 38.454202
95223 -120.049251 38.462058
95223 -120.041697 38.462194
95223 -120.045757 38.470637
96120 -119.959615 38.703965
96120 -119.937276 38.741337
96120 -119.9382 38.739344
96120 -119.901794 38.776584
96120 -119.936094 38.741865
96120 -119.957587 38.707533
96120 -119.93456 38.74194
95646 -120.072087 38.687061
95646 -120.066752 38.684097
95646 -120.069591 38.684193
95646 -120.071754 38.699738
95646 -120.066111 38.685164
95646 -120.067082 38.683881
95646 -120.070923 38.696049
95646 -120.068004 38.683615
95646 -120.07161 38.699309
95646 -120.07385 38.690719
95646 -120.066131 38.685019
95646 -120.071263 38.686228
来自人口普查映射的 Pyviz 示例页面: 映射人口密度的示例代码: https://examples.pyviz.org/census/census.html
创建你的界限: 这个问题的答案很好地涵盖了这一点,给出了边界检测算法的列表: https://gis.stackexchange.com/questions/5426/finding-boundary-co-ordinates-from-given-set-of-point-co-ordinates
查找多边形的面积(AreaOfZipcode): How to calculate the area of a polygon on the earth's surface using python?
使用累加器算法计算邮政编码人口。
然后: 人口密度 = PopOfZipcode/AreaOfZipcode
定义您的高 density/mid-density/low-density 边界,然后将您的邮政编码分配给每个桶。