перепроецирование в R

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

перепроецирование в R

Сообщение Игорь Черниенко » 23 май 2011, 16:35

Здравствуйте.

Я пытался перепроецировать данные в пакете 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?

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: перепроецирование в R

Сообщение gamm » 24 май 2011, 08:53

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"))

Аватара пользователя
Игорь Черниенко
Активный участник
Сообщения: 137
Зарегистрирован: 28 мар 2009, 01:05
Репутация: 11
Откуда: Хабаровск, Южно-Сахалинск

Re: перепроецирование в R

Сообщение Игорь Черниенко » 25 май 2011, 03:53

Спасибо большое! Странно, но я пропустил в хелпе место про радианы.
А не подскажете, почему результаты трансформации выполненные 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 использует?

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей