将纬度和经度映射到 SAS 中的状态

Map latitude and longitude to state in SAS

我有大约 100,000 个纬度和经度对(精确到 4 位小数),我想将每一对分配给美国的一个州。有谁知道如何在SAS中做到这一点?是否可以为此任务将 shapefile 导入 SAS?

注意:以下答案假定您拥有 SAS Graph 的许可证并且地图库已在您的安装中正确设置。这不适用于 SAS 大学版。如果您需要下载 MAPS 文件,请在此处下载:http://support.sas.com/rnd/datavisualization/mapsonline/index.html

您不需要为美国导入 SHP 文件,SAS 已经内置了这些文件。您可以使用 PROC GINSIDE 来确定这些点位于哪个州 and/or 县。

示例位于此处: https://support.sas.com/documentation/cdl/en/grmapref/69722/HTML/default/viewer.htm#p0qjcc8hugcjb2n1x3bmuaar16f0.htm

并复制到此处,用于 SO 规则。

goptions reset=global border;
data gpscounties;
  input longitude latitude site $;
  x=longitude*arcos(-1)/180;
  x=x*(-1);
  y=latitude*arcos(-1)/180;
datalines;
-77.0348 40.0454 a
-78.4437 39.1623 b
-78.4115 39.3751 c
-78.7646 40.6354 d
;
run;
proc ginside data=gpscounties map=mapssas.counties out=gpscounties;
  id state county;
run;
proc sort data=gpscounties;
  by site;
run;

proc print data=gpscounties;
  var site state county x y;
run;
quit;