如何使用rgdal包将NAD 83坐标转换为纬度和经度?

时间:2021-12-28 16:01:44

I have coordinates, all of which should be located in DC, but I cannot figure out how to convert them from NAD 83 to latitude and longitude in R. I'm using the spTransform() function in the rgdal package and get an error about non-conformant data.

我有坐标,所有坐标都应该位于DC,但是我无法弄清楚如何将它们从NAD 83转换为R中的纬度和经度。我在rgdal包中使用spTransform()函数并得到一个错误不符合要求的数据。

library(rgdal)
nad83_coords <- data.frame(x=c(396842.6, 397886.9, 398315.5, 398154.3, 398010.3), y=c(140887.1, 139847.0, 138743.9, 139534.5, 138697.3))
coordinates(nad83_coords) <- c('x', 'y')
proj4string(nad83_coords) <- CRS("+init=epsg:4269")
Error in `proj4string<-`(`*tmp*`, value = <S4 object of class "CRS">) : 
  Geographical CRS given to non-conformant data: 398315.5 140887.1

Other combinations of proj4strings yield the same error. I believe the error is because the coordinates are too large, but I'm not sure why that would be. The documentation for the coordinates is below:

proj4strings的其他组合产生相同的错误。我相信错误是因为坐标太大,但我不确定为什么会这样。坐标文档如下:

Values are in the Maryland State Plane meters NAD 83 map projection.

值在马里兰州立方米米NAD 83地图投影中。

I'm very new to mapping and projections, and any help is appreciated.

我对绘图和投影很新,任何帮助都表示赞赏。

1 个解决方案

#1


6  

Look up espg:4269:

查找espg:4269:

http://spatialreference.org/ref/epsg/4269/

and its a lat-long system. So your big numbers (which are metres) are way too big.

它是一个纬度很长的系统。所以你的大数字(米是米)太大了。

If you've got a shapefile anywhere with data in these coordinates then you might have a .prj file with it that will have the projection spec, otherwise you'll have to chase it on spatialreference.org:

如果你有一个shapefile在这些坐标中的任何地方,那么你可能有一个.prj文件,它将具有投影规范,否则你将不得不在spatialreference.org上追逐它:

http://spatialreference.org/ref/?search=nad83+maryland&srtext=Search

There's assorted variations on NAD83, and there's also 'State plane' here and there. I'm not too sure precisely which is which. The epsg: codes are more standard, then there's a bunch of esri: codes. The sr-org: ones are user-supplied on the site.

NAD83有各种各样的变化,并且还有“国家飞机”。我不确定哪个是哪个。 epsg:代码更标准,然后有一堆esri:代码。 sr-org:在用户提供的网站上。

The esri code looks closest enough to the text you gave. Lets try:

esri代码看起来最接近您提供的文本。咱们试试吧:

> proj4string(nad83_coords)=CRS("+init=esri:102285")
> spTransform(nad83_coords,CRS("+init=epsg:4326"))
SpatialPoints:
             x        y
[1,] -77.03642 38.93586
[2,] -77.02437 38.92650
[3,] -77.01942 38.91656
[4,] -77.02128 38.92368
[5,] -77.02294 38.91614

Anywhere near DC? Actually, epsg:2804 and epsg:3559 give the same answers, and are probably more 'standard'...

DC附近的任何地方实际上,epsg:2804和epsg:3559给出了相同的答案,可能更“标准”......

#1


6  

Look up espg:4269:

查找espg:4269:

http://spatialreference.org/ref/epsg/4269/

and its a lat-long system. So your big numbers (which are metres) are way too big.

它是一个纬度很长的系统。所以你的大数字(米是米)太大了。

If you've got a shapefile anywhere with data in these coordinates then you might have a .prj file with it that will have the projection spec, otherwise you'll have to chase it on spatialreference.org:

如果你有一个shapefile在这些坐标中的任何地方,那么你可能有一个.prj文件,它将具有投影规范,否则你将不得不在spatialreference.org上追逐它:

http://spatialreference.org/ref/?search=nad83+maryland&srtext=Search

There's assorted variations on NAD83, and there's also 'State plane' here and there. I'm not too sure precisely which is which. The epsg: codes are more standard, then there's a bunch of esri: codes. The sr-org: ones are user-supplied on the site.

NAD83有各种各样的变化,并且还有“国家飞机”。我不确定哪个是哪个。 epsg:代码更标准,然后有一堆esri:代码。 sr-org:在用户提供的网站上。

The esri code looks closest enough to the text you gave. Lets try:

esri代码看起来最接近您提供的文本。咱们试试吧:

> proj4string(nad83_coords)=CRS("+init=esri:102285")
> spTransform(nad83_coords,CRS("+init=epsg:4326"))
SpatialPoints:
             x        y
[1,] -77.03642 38.93586
[2,] -77.02437 38.92650
[3,] -77.01942 38.91656
[4,] -77.02128 38.92368
[5,] -77.02294 38.91614

Anywhere near DC? Actually, epsg:2804 and epsg:3559 give the same answers, and are probably more 'standard'...

DC附近的任何地方实际上,epsg:2804和epsg:3559给出了相同的答案,可能更“标准”......