Проецирование объекта SpatialLines из широты / долготы в utm
Я создал траекторию большого круга широты / долготы, используя geosphere
пакет:
flightTraj = greatCircle( c( originAptLon, originAptLat ), c( destinAptLon, destinAptLat ), n = nPts, sp = TRUE )
Его свойства:
class : SpatialLines
features : 1
extent : -180, 180, -52.74719, 52.74719 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84
Я хочу проецировать на картографию зоны 14 UTM с эллипсоидом WGS84. Я старался:
projectedTrajectories <- CRS("+proj=utm +zone=14 +datum=WGS84 +units=km +no_defs") %>%
spTransform( flightTraj, . )
Но консоль отображала:
non finite transformation detected:
V1 lat
Error in .spTransform_Line(input[[i]], to_args = to_args, from_args = from_args, :
failure in Lines 1 Line 1 points
In addition: Warning message:
In .spTransform_Line(input[[i]], to_args = to_args, from_args = from_args, :
6 projected point(s) not finite
Любая помощь, пожалуйста.
1 ответ
Решение
"Все хорошо, что хорошо кончается..."
distOrigDest = distGeo( c( originAptLon, originAptLat ), c( destinAptLon, destinAptLat ), a = earthRadius, f = earthFlattening ) / km2m
nPts = 20 * floor( distOrigDest / cellCentroidDist )
flightTraj = gcIntermediate( c( originAptLon, originAptLat ), c( destinAptLon, destinAptLat ), n = nPts, sp = TRUE )
flightTraj = spTransform( flightTraj, "+proj=utm +zone=14 +datum=WGS84 +units=km" )
plot( flightTraj, col= "blue", add = TRUE, lwd = 2 )