Широта и долгота в координатах UTM

У меня есть информация о большой широте и долготе из UTM-зоны 33 северной широты.

Я попробовал следующие команды для преобразования этой географической информации в координаты UTM (мой объект набора данных изначально называется S3km):

library(rgdal)
UTM33N<-"+proj=utm+zone=33+north"
UTM33N<-paste(UTM33N,"+ellps=WGS84",sep="")
UTM33N<-paste(UTM33N,"+datum=WGS84",sep="")
UTM33N<-paste(UTM33N,"+units=m+no_defs",sep="")
coord.UTM33N<-project(as.matrix(S3km[,c("Longitude","Latitude")]),UTM33N)

Я получил следующее сообщение об ошибке:

Error in project(as.matrix(S3km[,c("Longitude","Latitude")]),UTM33N):
no arguments in initialization list.

Кто-нибудь знает, в чем проблема? У меня загружена новейшая R-версия (т.е. R 2.15.2), и rgdal-package также недавно загружен.


person user2120231    schedule 28.02.2013    source источник
comment
Какой язык / библиотеку вы используете? Добавьте соответствующий тег к вашему вопросу.   -  person assylias    schedule 28.02.2013


Ответы (2)


Кажется, с вашим кодом есть как минимум пара проблем:

  • Как указывает Лукас, строкам PROJ4 нужны пробелы между аргументами, поэтому используйте sep = " " (paste() по умолчанию), а не sep = "".

  • Кроме того, функции в пакетах sp и rgdal ожидают, что proj4strings будет заключен в вызовы служебной функции CRS().

Вот рабочий пример, который вы сможете адаптировать к своей ситуации:

library(rgdal)

## Create an example SpatialPoints object
pts <- SpatialPoints(cbind(-120:-121, 39:40), 
                     proj4string = CRS("+proj=longlat +datum=NAD27"))

## Construct a proper proj4string
UTM11N <- "+proj=utm +zone=11 +datum=NAD83 +units=m +no_defs"
UTM11N <- paste(UTM11N, "+ellps=GRS80 +towgs84=0,0,0")
UTM11N <-  CRS(UTM11N)

## Project your points
ptsUTM <- spTransform(pts, UTM11N)

## Check that it worked
ptsUTM
# SpatialPoints:
#      coords.x1 coords.x2
# [1,]  240111.6   4321052
# [2,]  158420.9   4435418
# Coordinate Reference System (CRS) arguments: +proj=utm +zone=11
# +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0 
person Josh O'Brien    schedule 28.02.2013
comment
ОГРОМНОЕ спасибо вам обоим !! :) С правильным интервалом и адаптированным примером Джоша мне, наконец, удалось преобразовать мои координаты. - person user2120231; 28.02.2013

Информация о проекции, которую вы используете, имеет неправильный формат. Это может привести к тому, что функция не распознает аргументы в строке проекции. Как указано в rgdal, информация о проекции должна соответствовать документации PROJ.4 (т. Е. Без пробелов между + = и аргументы, разделяющие пробелы. Например: "+ proj = lcc + lat_1 = 48 + lat_2 = 33 + lon_0 = -100 "Изменение аргумента функции вставки на sep =" "может исправить это.

person Lucas Fortini    schedule 28.02.2013