Операция между 2 столбцами (значения градусов)

В R I не могу найти способ расчета в градусах для Аспекта.

У меня есть шейп-файл с 2 столбцами для аспекта. Первый столбец ASPECT соответствуют новому аспекту точки и второго столбца Aspect это ссылочный аспект. Я хотел бы сохранить только значения, которые не больше или меньше 45° вокруг значения в ASPECT колонка. Я хочу сделать этот расчет для каждого значения.

Мои данные выглядят так:

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

Мой вопрос: как я могу сделать все мои вычисления в градусах? Можно ли иметь -30 вместо 330, если Aspect это 340 и ASPECT это 10?

1 ответ

Решение

Я думаю, что это делает то, что вы ищете. Он всегда даст ответ в диапазоне от -180 до +180.

gr_df$degree_diff <- ((gr_df$Aspect-gr_df$ASPECT+180) %% 360) - 180
Другие вопросы по тегам