首先,我需要提一下,我在地理数据中使用SAS的经验不多。我有一个经度和纬度的数据集,我需要看看各国的分布情况。我尝试谷歌,我找到的唯一解决方案是: https://communities.sas.com/t5/Base-SAS-Programming/Is-there-a-way-to-get-County-using-latitude-and-longitude/td-p/145233 它对美国数据非常有效,但世界其他地区的比例非常差(低于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;
答案 0 :(得分:3)
至少部分问题是你有拉/长,但你需要极弧度。
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;
这似乎对我有用。