Сохраняйте десятичные разряды при преобразовании sp в data.frame - r - PullRequest
1 голос
/ 21 февраля 2020

Я импортирую пространственные данные с онлайн-платформы в десятичных числах. Конечная цель - перейти на UTM, чего я достиг. Однако где-то в процессе я теряю десятичные разряды, что исключает высокое разрешение пространственных данных, которые мне нужны. Кто-нибудь знает, как настроить код, чтобы я сохранил 5 знаков после запятой, которые у меня есть в исходных данных?

Спасибо!

dput(head(merged_data))

structure(list(Date = c("2018-12-25 06:00", "2018-12-25 12:00", "2018-12-25 18:00", "2018-12-26 00:00", "2018-12-26 00:00", "2018-12-26 06:00"), 
    Lat = c(42.52938, 42.529, 42.53161, 42.53161, 42.59738, 42.53161
    ), Lon = c(-108.2620, -108.2650, -108.26611, -108.26611, 
    -108.86112, -108.26615)), row.names = c(NA, 6L), class = "data.frame")



#Lat and Lon currently character class. Convert to numeric
merged_data$Lon <- as.numeric(merged_data$Lon)
merged_data$Lat <- as.numeric(merged_data$Lat)
#convert data to spatialpointsdataframe
coords <- merged_data[ , c("Lon", "Lat")]   # coordinates
data   <- merged_data[ , 1:2]          # data
crs    <- CRS("+proj=longlat +datum=WGS84") # proj4string of coords
# make the spatial points data frame object
spdf <- SpatialPointsDataFrame(coords = coords,
                               data = data, 
                               proj4string = crs)
#convert to UTM
cord.UTM <- spTransform(spdf, CRS("+init=epsg:26913"))
plot(cord.UTM)

#Convert selected points class spatialpointsdataframe back to dataframe.
cord.UTM<-as.data.frame(cord.UTM)

Data:  
Date             Lat           Lon    
2018-12-25       42.52933      -108.26250

Output:
Date             Lat           Lon
2018-12-25       4599992       311244.7

...