Здравствуйте.
Я пытался перепроецировать данные в пакете proj4, примерно так:
lon<-c(138,142)
lat<-c(47,52)
p.str<-'+proj=tmerc +lat_0=0 +lon_0=141 +k=1 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs'
p.str2<-'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'
ccc<-ptransform(data=cbind(lon,lat), src.proj=p.str2, dst.proj=p.str)
в итоговой таблице получил значения координат Inf.
Нет ли, кстати, возможности трансформировать объекты из одной проекции в другую средствами пакета sp?
перепроецирование в R
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: перепроецирование в R
1) если верит хелпу, то углы должны быть в радианах
ptransform(data=cbind(lon,lat)/180*pi, src.proj=p.str2, dst.proj=p.str)
[,1] [,2] [,3]
[1,] 271835.4 5211709 0
[2,] 568678.3 5763917 0
2) transform точно (и возможно ptransform) игнорируют "посадку" эллипсоида, для них любой есть WGS84
3) в rgdal есть метод spTransform, который работает с sp-данными (и с эллипсоидом тоже)
coordinates(states) <- c("x", "y")
proj4string(states) <- CRS("+proj=longlat +ellps=clrk66")
state.ll83 <- spTransform(states, CRS("+proj=longlat +ellps=GRS80"))
ptransform(data=cbind(lon,lat)/180*pi, src.proj=p.str2, dst.proj=p.str)
[,1] [,2] [,3]
[1,] 271835.4 5211709 0
[2,] 568678.3 5763917 0
2) transform точно (и возможно ptransform) игнорируют "посадку" эллипсоида, для них любой есть WGS84
3) в rgdal есть метод spTransform, который работает с sp-данными (и с эллипсоидом тоже)
coordinates(states) <- c("x", "y")
proj4string(states) <- CRS("+proj=longlat +ellps=clrk66")
state.ll83 <- spTransform(states, CRS("+proj=longlat +ellps=GRS80"))
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
Re: перепроецирование в R
Спасибо большое! Странно, но я пропустил в хелпе место про радианы.
А не подскажете, почему результаты трансформации выполненные proj4 и rgdal немного отличаются от результатов трансформации в postgis?
proj4
col1 col2 col3
[1,] 271835.4 5211709 0
[2,] 568678.3 5763917 0
rgdal
col1 col2 col3
[1,] 271835.4 5211709 0
[2,] 568678.3 5763917 0
postgis
x y
271750.172761797 5211688.49844548
568587.578859949 5763885.00535791
сотни метров не будет, но все же. Вроде бы постгис тоже proj4 использует?
А не подскажете, почему результаты трансформации выполненные proj4 и rgdal немного отличаются от результатов трансформации в postgis?
proj4
col1 col2 col3
[1,] 271835.4 5211709 0
[2,] 568678.3 5763917 0
rgdal
col1 col2 col3
[1,] 271835.4 5211709 0
[2,] 568678.3 5763917 0
postgis
x y
271750.172761797 5211688.49844548
568587.578859949 5763885.00535791
сотни метров не будет, но все же. Вроде бы постгис тоже proj4 использует?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей