Sas 使用经纬度获取国家

Sas 使用经纬度获取国家,sas,geo,Sas,Geo,首先,我需要指出的是,我没有太多在地理数据中使用SAS的经验。我有一个经度和纬度的数据集,我需要查看各国的分布情况。我试着用谷歌搜索,我找到的唯一解决方案是: 对于美国的数据来说,这是非常有效的,但是世界其他地区的比率非常低(低于10%)。 我使用以下代码: proc ginside data=gps map=maps.world out=gpscounties; id id cont; run; 其中GPS是我的经纬度数据。 这10%的比例是正常的还是我错过了什么?或者有没有其他更好

首先,我需要指出的是,我没有太多在地理数据中使用SAS的经验。我有一个经度和纬度的数据集,我需要查看各国的分布情况。我试着用谷歌搜索,我找到的唯一解决方案是: 对于美国的数据来说,这是非常有效的,但是世界其他地区的比率非常低(低于10%)。 我使用以下代码:

proc ginside data=gps map=maps.world out=gpscounties;
    id id cont;
run;
其中GPS是我的经纬度数据。 这10%的比例是正常的还是我错过了什么?或者有没有其他更好的方法来解决我的问题

我在SAS 9.4 TS1M2上

以下是一个例子:

data gps;
  input x y;
datalines;
143.21  -33.494
119.306 26.0614
119.306 26.0614
143.21  -33.494
113.25  23.1167
139.751 35.685
113.25  23.1167
133.935 34.6617
133.935 34.6617
133.051 35.4722
;
run;

你的问题至少有一部分是你有拉长,但你需要极弧度

data gps;
  input x y;
   x=x*arcos(-1)/180;
  x=x*(-1);
  y=y*arcos(-1)/180;
  datalines;
143.21  -33.494
119.306 26.0614
119.306 26.0614
143.21  -33.494
113.25  23.1167
139.751 35.685
113.25  23.1167
133.935 34.6617
133.935 34.6617
133.051 35.4722
;
run;
然而,这并不是你的全部问题,因为它对我仍然不起作用。我想您需要使用GPROJECT将笛卡尔坐标转换为x/y坐标

不过,因为您使用的是9.4,所以您有了GFK地图,这应该会更容易,因为它们保存了投影信息

见下文:

data gps;
  input x y;
  rownum = _n_;
  datalines;
143.21  -33.494
119.306 26.0614
119.306 26.0614
143.21  -33.494
113.25  23.1167
139.751 35.685
113.25  23.1167
133.935 34.6617
133.935 34.6617
133.051 35.4722
;
run;

proc gproject data=gps out=projected
  parmin=mapsgfk.projparm parmentry=world;
  id rownum;
run;


proc ginside data=projected map=mapsgfk.world out=countries;
  id idname id;
run;

这似乎对我有用。

你能提供一个小的不起作用(或偶尔起作用)的示例数据集吗?你可以随意把它们弄脏,这样它们就不会那么精确地保护PII/隐私/等等,甚至可以通过在谷歌地图上搜索一段时间来获得通用的,但是一个关于你到底在做什么的可运行的例子会有所帮助。请使用问题中的数据行输入它们,而不是链接到文档或图片。此外,请包括您的SAS版本(9.2、9.3、9.4和TS1M3或任何版本-应在您的初始化中显示)。这很有魅力,谢谢!现在我有98.4%的匹配率:)