在R中,我无法找到以度为单位计算Aspect的方法。
我有一个shapefile,其中包含2列方面。第一列ASPECT
对应于该点的新方面,第二列Aspect
是参考方面。我想只保留ASPECT
列中值不超过或小于45°的值。我想为每个值做这个计算。
我的数据如下:
ID ASPECT Aspect
0 17.15395 223.9521
1 323.72394 225.1147
2 294.01069 225.7785
3 302.72811 226.4539
4 321.79413 227.1748
5 326.36743 227.9040
我考虑过在ASPECT
和Aspect
之间进行区分,以便过滤掉所有不合适的值。问题是因为它在度数上有时会有差异达到359,实际上只有几度。
gr73999<-readOGR(dsn=wd, layer="73366_CORRPOINTS")
gr<-as.data.frame(gr73999)
gr_df<- gr[,c("ID","ASPECT","Aspect")]
gr_df$degree_diff<- gr_df$Aspect-gr_df$ASPECT
ID ASPECT Aspect Difference_aspect
0 17.15395 223.9521 -206.79816
1 323.72394 225.1147 98.60924
2 294.01069 225.7785 68.23220
3 302.72811 226.4539 76.27422
4 321.79413 227.1748 94.61931
5 326.36743 227.9040 98.46343
min(gr_df$degree_diff)
-359.0588
max(gr_df$degree_diff)
358.2314
我的问题是:如何才能完成所有学位计算?如果Aspect
为340且ASPECT
为10,是否可以使用-30而不是330?
答案 0 :(得分:0)
我认为这可以满足您的需求。它总会在-180和+180之间给出答案。
gr_df$degree_diff <- ((gr_df$Aspect-gr_df$ASPECT+180) %% 360) - 180