Почему SpatialPointsDataFrame округляет мои координаты Y? (округляет UTM 5252636 до 5262640) - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь оценить размер домашнего диапазона, используя данные телеметрии, используя adehabitatHR. Каждый раз, когда я создаю SpatialPointsDataFrame, он округляет координату Y для моих местоположений UTM. Я попытался сохранить UTM как целые числа, как числа, удалить NA перед импортом .csv, удалить NA после импорта .csv, импортировать как файл .txt (в случае ошибки в Excel) и т. Д. c.

Вот вывод консоли:

> data<-read.csv("C:/Workspace/URAM/Data/HomeRange/NEW_TelemetryLocs_AllBears_asof_9Sept19_noNAs.csv", header=T)
> 
> summary(data)
     Alias           Order      Sex          AnimalID           X                Y          
 Brandy : 2839   Min.   :   1   F:15546   102-16 : 2839   Min.   :397286   Min.   :5236180  
 Bernie : 2674   1st Qu.: 306   M:11650   06-16  : 2674   1st Qu.:406966   1st Qu.:5251887  
 Eve    : 2646   Median : 635             01-18  : 2646   Median :413166   Median :5258742  
 Deedee : 2606   Mean   :1239             17-17  : 2606   Mean   :412579   Mean   :5257164  
 Buddha : 2346   3rd Qu.:2018             04-17  : 2346   3rd Qu.:418419   3rd Qu.:5262669  
 Bailey : 1192   Max.   :5583             12-17  : 1192   Max.   :432690   Max.   :5291985  
 (Other):12893                            (Other):12893                                     
> head(data)
     Alias Order Sex AnimalID        X       Y
1 Calliope   128   F    19-22 432690.3 5262636
2 Calliope   191   F    19-22 432522.3 5262409
3 Calliope   127   F    19-22 432491.0 5263274
4 Calliope   189   F    19-22 432466.3 5262413
5 Calliope   190   F    19-22 432376.1 5262121
6 Calliope   202   F    19-22 432262.3 5264390
> dim(data)
[1] 27196     6
> str(data)
'data.frame':   27196 obs. of  6 variables:
 $ Alias   : Factor w/ 26 levels "Artemis","Bailey",..: 9 9 9 9 9 9 9 9 9 9 ...
 $ Order   : int  128 191 127 189 190 202 201 188 129 422 ...
 $ Sex     : Factor w/ 2 levels "F","M": 1 1 1 1 1 1 1 1 1 1 ...
 $ AnimalID: Factor w/ 26 levels "01-18","01-19",..: 26 26 26 26 26 26 26 26 26 26 ...
 $ X       : num  432690 432522 432491 432466 432376 ...
 $ Y       : num  5262636 5262409 5263274 5262413 5262121 ...
> test.sp<-SpatialPointsDataFrame(data[,5:6],data = data, coords.nrs = 5:6,
+                                  match.ID = TRUE,
+                                  proj4string=CRS("+proj=utm +zone=10+datum=NAD83+ellps=GRS80"))
> head(test.sp)
        coordinates    Alias Order Sex AnimalID        X       Y
1 (432690, 5262640) Calliope   128   F    19-22 432690.3 5262636
2 (432522, 5262410) Calliope   191   F    19-22 432522.3 5262409
3 (432491, 5263270) Calliope   127   F    19-22 432491.0 5263274
4 (432466, 5262410) Calliope   189   F    19-22 432466.3 5262413
5 (432376, 5262120) Calliope   190   F    19-22 432376.1 5262121
6 (432262, 5264390) Calliope   202   F    19-22 432262.3 5264390
Coordinate Reference System (CRS) arguments: +proj=utm +zone=10+datum=NAD83+ellps=GRS80 
> 

Если я введу 6 строк данных вручную в R, это будет работать:

> Alias<-c("Brandy","Brandy","Brandy","Brandy","Brandy","Brandy")
> Sex<-c("F","F","F","F","F","F")
> Order<-c(5,6,7,8,9,10)
> X<-c(409483,409481,409442,409438,409443,409576)
> Y<-c(5263356,5263356,5263335,5263340,5263342,5263685)
> test2<-data.frame(Alias,Sex,Order,X,Y)
> head(test2)
   Alias Sex Order      X       Y
1 Brandy   F     5 409483 5263356
2 Brandy   F     6 409481 5263356
3 Brandy   F     7 409442 5263335
4 Brandy   F     8 409438 5263340
5 Brandy   F     9 409443 5263342
6 Brandy   F    10 409576 5263685
> test2.sp<-SpatialPointsDataFrame(test2[,4:5],data = test2, coords.nrs = 4:5,
+                                  match.ID = TRUE,
+                                  proj4string=CRS("+proj=utm +zone=10+datum=NAD83+ellps=GRS80"))
> 
> test2.sp
        coordinates  Alias Sex Order      X       Y
1 (409483, 5263356) Brandy   F     5 409483 5263356
2 (409481, 5263356) Brandy   F     6 409481 5263356
3 (409442, 5263335) Brandy   F     7 409442 5263335
4 (409438, 5263340) Brandy   F     8 409438 5263340
5 (409443, 5263342) Brandy   F     9 409443 5263342
6 (409576, 5263685) Brandy   F    10 409576 5263685

Однако, если я используйте команду координировать (), чтобы создать SpatialPointsDataFrame, используя введенные вручную данные, результатом будет округленная координата Y:

> coordinates(test2)<-c("X","Y")
> head(test2)
        coordinates  Alias Sex Order
1 (409483, 5263360) Brandy   F     5
2 (409481, 5263360) Brandy   F     6
3 (409442, 5263340) Brandy   F     7
4 (409438, 5263340) Brandy   F     8
5 (409443, 5263340) Brandy   F     9
6 (409576, 5263680) Brandy   F    10
Coordinate Reference System (CRS) arguments: NA 

Любая помощь или предложения будут с благодарностью.

1 Ответ

1 голос
/ 30 января 2020

Округление происходит при печати объекта, а не во внутреннем представлении или последующих вычислениях.

...