3

我有一个州列表,每个州的主要城市,他们的人口,以及每个州的纬度/经度坐标。使用它,我需要计算与州中心相对应的纬度和经度,按人口居住地加权。

例如,如果一个州有两个城市,A(人口 100)和 B(人口 200),我想要位于 A 和 B 之间 2/3 处的点的坐标。

我正在使用安装的 SAS 数据集,名为maps.uscity. 它还有一些变量,称为“弧度的投影对数/纬度”,我认为这可能允许我对数字进行简单的平均,但我不确定如何将它们恢复到未投影的坐标中。

更一般地说,如果有人可以建议一种直接的方法来计算它,那将不胜感激。

4

4 回答 4

4

人口普查局实际上已经完成了这些计算,并将结果发布在这里:http ://www.census.gov/geo/www/cenpop/statecenters.txt

有关计算的详细信息在此 pdf 中:http ://www.census.gov/geo/www/cenpop/calculate2k.pdf

于 2011-02-07T22:00:43.520 回答
0

Itzy的答案是正确的。美国人口普查的 lat/lng 质心基于人口。相反,USGS GNIS 数据的 lat/lng 平均值基于行政边界。

Itzy 引用的文件是 2000 年美国人口普查数据。人口普查局正在处理我们 2010 年的数据。以下链接是所有这些数据的 segway。

http://www.census.gov/geo/www/tiger/

我可以回答很多地理空间问题。我是 OpenGeoCode.Org 的公共领域地理空间团队的一员

于 2011-02-18T00:38:14.123 回答
0

要回答所提出的问题,听起来您可能正在寻找加权平均值。只需使用 PROC MEANS 并取每个坐标的加权平均值:

/* data from http://www.world-gazetteer.com/ */
data AL;
input city $10 pop lat lon;
datalines;
Birmingham 242452 33.53 86.80
Huntsville 159912 34.71 86.63
Mobile     199186 30.68 88.09
Montgomery 201726 32.35 86.28
;
proc means data=AL;
weight pop;
var lat lon;
run;
于 2011-02-21T14:57:44.497 回答
0

我相信您可以使用与计算飞机重心相同的方法来做到这一点:

  1. 在该州任何地区的西南建立一个参考点。实际上,参考点在哪里并不重要,但是将它放在 SW 将使所有数字在我们倾向于想到的通常 xy 发送中保持正数。
  2. 从这一点逻辑扩展 NS 和 EW 线。
  3. 还将这些线路从城市延伸出来。
  4. 对于每个城市,获取其线到参考线的距离。这些是力臂。
  5. 将每个距离值乘以城市人口。实际上,您正在为每个城市获得时间。
  6. 添加所有的时刻。
  7. 添加所有人口。
  8. 将矩的总和除以人口的总数,你就有了相对于所涉及人口的参考点的重心。
于 2011-11-03T21:54:09.323 回答