8

EPSG 2790 ( http://spatialreference.org/ref/epsg/2790/ ) またはおそらく ESRI 102672 ( http://spatialreference.org/ref/esri/102672/ )。

これは間違いなく以前に尋ねられました。私のコードは、ここの回答に基づいています ( rgdal R パッケージの spTransform の「非有限変換が検出されました」およびhttp://r-sig-geo.2731867.n2.nabble.com/Converting-State-Plane-Coordinates-td5457204. html )。

しかし、何らかの理由で私はそれを動作させることができません:

library(rgdal)
library(sp)
data = data.frame(long=c(41.20,40.05), lat=c(-86.14,-88.15))
coordinates(data) <- ~ long + lat
proj4string(data) <- CRS("+init=epsg:4326") # latitude/longitude
data.proj <- spTransform(data, CRS("+init=epsg:2790")) # illinois east

与えます:

non finite transformation detected:
  long    lat               
 41.20 -86.14    Inf    Inf 
Error in spTransform(data, CRS("+init=epsg:2790")) : failure in points 1
In addition: Warning message:
In spTransform(data, CRS("+init=epsg:2790")) :
  2 projected point(s) not finite
4

4 に答える 4

4

何が起こっているのかを明確にするいくつかの実用的なコードを次に示します。

# convert a state-plane coordinate to lat/long
data = data.frame(x=400000,y=0)
coordinates(data) <- ~ x+y
proj4string(data) <- CRS("+init=epsg:2804")
latlong = data.frame(spTransform(data, CRS("+init=epsg:4326")))
setnames(latlong,c("long","lat"))
latlong

与えます:

  long      lat
 1  -77 37.66667

と:

# convert a lat/long to state-plane
data = latlong
coordinates(data) <- ~ long+lat
proj4string(data) <- CRS("+init=epsg:4326")
xy = data.frame(spTransform(data, CRS("+init=epsg:2804")))
setnames(xy,c("y","x"))
xy

与えます:

> xy
      y             x
1 4e+05 -2.690839e-08

そして、ここに関数があります:

# this is for Maryland
lat_long_to_xy = function(lat,long) {
  library(rgdal)
  library(sp)
  data = data.frame(long=long, lat=lat)
  coordinates(data) <- ~ long+lat
  proj4string(data) <- CRS("+init=epsg:4326")
  xy = data.frame(spTransform(data, CRS("+init=epsg:2804")))
  setnames(xy,c("y","x"))
  return(xy[,c("x","y")])
}
于 2014-12-11T03:39:39.703 に答える
0

他の方向への変換に問題があり、GIS Stack Exchange でこの回答を見つけました。これは、将来のシーカーに役立つ可能性があります。座標系が NAD83 か NAD83 (HARN) かによって、空間参照 epsg コードが異なります。間違ったシステムを使用すると、ポイントを座標平面の制限を超える値に変換できない場合があります。

https://gis.stackexchange.com/questions/64654/choosing-the-correct-value-for-proj4string-for-shape-file-reading-in-r-maptools

緯度+経度と経度+緯度で読むと、出力に違いが生じます-私の場合(州平面からWGS84に行く)、私は書く必要がありました

coordinates(data) <- ~ long+lat

これは、既知の基準点をプロットして正しく変換されたかどうかを確認することで確認できます。

于 2016-12-06T16:26:05.603 に答える