2016-09-14 4 views
1

Я попытался использовать this instruction для преобразования набора координат x-y в плоскости координат государства NAD83 с регулярными координатами Lan/Lat в градусах. Я мог бы воспроизвести пример, приведенный в этом сообщении, но он не дает правильного ответа на мой набор! Вот что я пробовал и что получил [неправильный ответ].Преобразование координат плоскости состояния NAD83 в стандарт WS84 lon/lat в градусах

library(rgdal) 
nad83_coords <- data.frame(x=c(577430), y=c(2323270)) # My coordinates in NAD83 
coordinates(nad83_coords) <- c('x', 'y') 
proj4string(nad83_coords)=CRS("+init=esri:102272") # West Illinois 
coordinates_deg <- spTransform(nad83_coords,CRS("+init=epsg:3436")) # West Illinois 

> x    y 
1 1894451.52045 7622263.00755 

Правильное решение должно быть:

lat= 38.2525  deg 
lon=-90.07364722 deg 

У меня есть код, чтобы сделать эту работу в MATLAB, но я действительно интересно знать, если «rgdal» или любой другой библиотеки в R можно сделать это. Таким образом, мой мир был бы красивее! Спасибо за чтение.

+0

% ВХОД: % Northing Northing из плоского состояния опорной точки [USft] % Easting Easting из плоского состояния опорной точки [USft] % зоны является плоскостной система координат штатов 1983 зон% Выходы: % лат (широта) положительный север % lon (долгота) положительный WEST % lat & lon находятся в градусах (внутренняя claculatiion в радианах) – Rotail

+0

[EPSG 3436] (http://spatialreference.org/ref/epsg/3436/) также проекция NAD 83. Когда я использую [EPSG 4326] (http://spatialreference.org/ref/epsg/4326/) (WGS84), я получаю -96.57821 x 42.86485. Те не в порядке, но мне любопытно, откуда берутся эти ценности. – Badger

+0

Когда я пробовал EPSG: 3426 только в spTransform, я получаю: 577430, 2323270. И когда я пытаюсь использовать EPSG: 3426 как в spTransform, так и в proj4string, я получаю: 577430, 2323270 для x и y соответственно. Они даже не выглядят правильно! – Rotail

ответ

1

Для достижения координат широты и долготы вам необходимо перейти от вашей проекционной системы координат (NAD 83) к географической системе координат (WGS 84). В случае ваших данных вы используете проекцию в футах, поэтому прогноз на Западном Иллинойсе правильный. Тем не менее, ваша ошибка в orignal post и подсвечены ниже: spTransform от NAD83 до NAD83 дает вам ошибочные данные. Более подробную информацию о разнице между проекционными и географическими системами координат можно найти here. Вместо этого вам нужно использовать проекцию WGS84 в вашей трансформации следующим образом: ** как отметил Джим, теперь включено преобразование с футов в метры.

library(rgdal) 
    nad83_coords <- data.frame(x=c(577430), y=c(2323270)) # My coordinates in NAD83 
nad83_coords <- nad83_coords *.3048 ## Feet to meters 
    coordinates(nad83_coords) <- c('x', 'y') 
    proj4string(nad83_coords)=CRS("+init=esri:102272") # West Illinois 
    ## Erroneous code, NAD83 to NAD83 
    ## coordinates_deg <- spTransform(nad83_coords,CRS("+init=epsg:3436")) 
    ## Corrected with WGS84 to yield Lat/Long 
    coordinates_deg <- spTransform(nad83_coords,CRS("+init=epsg:4326")) 
    coordinates_deg 
    SpatialPoints: 
       x  y 
    [1,] -96.57822 42.86484 
    Coordinate Reference System (CRS) arguments: +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 

В случае, если вы не хотите конвертировать мы можем использовать следующую проекцию EPSG: 3531

library(rgdal) 
    nad83_coords <- data.frame(x=c(577430), y=c(2323270)) # My coordinates in NAD83 
    coordinates(nad83_coords) <- c('x', 'y') 
    proj4string(nad83_coords)=CRS("+init=EPSG:3531") # West Illinois 
    ## Erroneous code, NAD83 to NAD83 
    ## coordinates_deg <- spTransform(nad83_coords,CRS("+init=epsg:3436")) 
    ## Corrected with WGS84 to yield Lat/Long 
    coordinates_deg <- spTransform(nad83_coords,CRS("+init=epsg:4326")) 
    coordinates_deg 
    SpatialPoints: 
       x  y 
    [1,] -96.57821 42.86485 
    Coordinate Reference System (CRS) arguments: +init=epsg:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 

Я вижу, что вы говорите о том, где координаты должны быть, глядя на пространственной опорной станции , ваши координаты находятся в окне этой проекции, но они не выходят, как ожидалось. Все еще рытье.

+0

Хорошо. Я могу воспроизвести это, спасибо за обмен. Проблема в том, что -92.2141 X 57.54922 находится где-то на севере Канады! Я ожидаю, что где-нибудь в Западном Иллинойсе, США. – Rotail

+0

Да Саскачеван, я думаю, что ваши координаты фанки? Или ваша проекция? Я посмотрю на это завтра, когда у меня будет запасной момент или два. Хороший улов, извините, я пропустил это. – Badger

+2

Координаты в OP хороши, за исключением того, что они находятся в футах, тогда как единицы для esri: 102272 находятся в метрах.OP необходимо соответствующим образом преобразовать свои координаты, которые должны были бы дать их где-то в районе long = -96.57725 lat = 42.86908 –