Рассчитать расстояние между одним человеком до каждого хищника в тот же день - PullRequest
1 голос
/ 09 февраля 2020

Я вычисляю расстояние между лосями и волками, используя координаты UTM33 за период 2 года (большой набор данных) в R. Я хочу иметь финальную таблицу, которая дает мне что-то вроде mooseID mooseDate mooseX mooseY wolfID wolfDate wolfX wolfY Distance ( м). До сих пор я думаю, что смог вычислить расстояние, но, похоже, не могу сопоставить даты (например, для каждой позиции лося, я хочу найти расстояние всех волков в этот момент). Кроме того, у меня есть больше данных для лося (40 особей), чем для волков (10 особей), и местоположения лося записываются каждые 2 часа, тогда как местоположения волков записываются каждые 4 часа. Все, что мне интересно сейчас, - это видеть в течение одного дня расстояние от каждого лося до каждого волка, а затем фильтровать встречи, которые <1000 м (я хотел бы видеть всех волков, которые были рядом с лосем в тот день и не только ближайший). </p>

Как я могу изменить свой код, чтобы даты совпадали? Вот код, который у меня есть.

#Change to data.table and sort date format
mloc = data.table(moosesubset)
wloc = data.table(wolfsubset)
mloc$DateTime=as.POSIXct(mloc$DateTime, format = "%d.%m.%Y %H:%M:%S")
wloc$DateTime=as.POSIXct(wloc$DateTime, format = "%d.%m.%Y %H:%M:%S")

#Sort by date
Sortmoose = mloc[order(as.Date(mloc$DateTime,format="%d.%m.%Y %H:%M:%S")),]
Sortwolf = wloc[order(as.Date(wloc$DateTime,format="%d.%m.%Y %H:%M:%S")),]

# Try distances only
moosewolf=cbind(Sortmoose,Sortwolf)
moosewolf$distance= sqrt(((moosewolf[,12]-moosewolf[,5])^2)+(moosewolf[,13]-moosewolf[,6])^2)

names(moosewolf)=c("Id","MooseID","Moose DateTime","Moose X", "Moose Y","Moose Altitude",
                   "Id", "Wolf ID", "Wolf DateTime", "Wolf X", "Wolf Y", "Wolf Altitude",
                   "Distance(m)")                      
moosewolf$`Distance(m)`= round(moosewolf$`Distance(m)`)
encounters=moosewolf[which(moosewolf$`Distance(m)`<1000)]

Пример отсортированных данных о лосе: [Данные] [1]

Идентификатор MooseID Moose DateTime Moose X Moose Y Moose Altitude Id Wolf ID Wolf DateTime Wolf X Wolf Y Wolf Высота над уровнем моря (м)

1 49584637 E1801 22-02-18 0:00 363062 6757655 251 49589936 M18-12 22-02-18 12:00 355361 6754244 305 8423

2 49585438 E1802 22-02-18 0:00 361651 6738182 410 49589999 M18-12 22-02-18 13:00 355568 6754157 298 17094

3 49579657 E1803 22- 02-18 0:00 362825 6755879 258 49589933 M18-12 22-02-18 14:00 355792 6754679 314 7135

4 49586561 E1804 22-02-18 0:00 366561 6749456 437 49589995 M18-12 22 -02-18 15:00 355792 6754691 303 11974

5 49590435 E1806 22-02-18 0:00 368068 6756278 304 49589929 M18-12 22-02-18 16:00 354580 6755783 331 13497

6 49584613 E1807 22-02-18 0:00 364385 6759082 244 49589992 M18-12 22-02-18 17:00 354659 6756301 351 10116

7 49582430 E1808 22-02-18 0:00 375119 676 4880 551 49589990 M18-12 22-02-18 18:00 354659 6756306 350 22184

8 49582803 E1809 22-02-18 0:00 380085 6757936 427 49589988 M18-12 22-02-18 19:00 354655 6756301 351 25483

9 49584608 E1801 22-02-18 1:00 363058 6757655 248 49589987 M18-12 22-02-18 20:00 354655 6756296 340 8512

10 49584624 E1801 22 -02-18 2:00 363055 6757639 278 49589918 M18-12 22-02-18 21:00 354655 6756302 353 8506

11 49584623 E1801 22-02-18 3:00 363119 6757570 315 49589980 M18-12 22-02-18 22:00 354621 6756376 354 8581

12 49584621 E1801 22-02-18 4:00 363164 6757746 303 49589890 M18-12 22-02-18 23:00 354638 6756203 358 8664

13 49584615 E1801 22-02-18 5:00 363152 6757686 247 49589883 M18-12 23-02-18 0:00 354881 6755596 328 8531

14 49584590 E1801 22-02-18 6: 00 363152 6757698 252 49586495 M18-13 22-02-18 12:00 355335 6754240 308 8548

15 49584562 E1801 22-02-18 7:00 363133 6757697 219 49586492 M18-13 22-02-18 13 : 00 355457 6754213 30 4 8430

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...