0

WGS84座標を含む大きなデータセットがあります。長い/緯度座標に変換したいです。 WGS84座標は、現在、独自の列(すなわち、「北」「東」)に分割され、さらに対応するゾーンとともに「ゾーン」に分割される。合計でいくつかのゾーンがあります。RGSを使用してWGS84を緯度/経度に変換する方法R

これらの列をLat/Longに変換して新しい列に保存する方法についてのご意見はありますか?データセットの

例:

Longitude Latitude zone 
233243 6571770 33 
262706 6653520 33 
195348 6573696 33 
256880 6645020 33 
260610 6654042 32 
13799  6505840 33 
+3

umm WGS84 *は緯度経度です(人が「WGS84」と言うとき、通常はEPSG:4326 lat-longを意味します)。あなたの実際のデータを一目で見ることができますか?そうでなければ、我々は確かに...ここ – Spacedman

+0

を推測している、生データは はここ() 4952(経度)6470636(緯度)32(ゾーン) ターゲットの列名とデータ例である「長いと緯度」でしたフォーマットは次のようになります: 13.665768(経度)59.739838(緯度) これらのフォーマットでは安定しません:P – andreas

+1

これらはWGS84ではなくUTM座標のようです。あなたの質問の編集にあなたのデータの数行を貼り付けることができたらどうなりますか? – Spacedman

答えて

1

あなたはspパッケージ、座標、およびspTransform機能上に読みたいかもしれません。そのことなど。データフレームとしてdについて

> d 
    Longitude Latitude zone 
1 233243 6571770 33 
2 262706 6653520 33 
3 195348 6573696 33 
4 256880 6645020 33 
5 260610 6654042 32 
6  13799 6505840 33 

計画である:zone IDリストに分割し、各リスト要素の+」基準座標系を使用して、空間的な点データフレームとして作成ゾーン33の場合は "init = epsg:326" + "zone"(たとえば、 "+ init = epsg:32633")し、epsg:4326 lat-longに変換してロットを1つの空間ポイントデータフレームに合わせます。

が必要です。

> library(sp) ; library(raster) 
、CRSの座標を設定し、すべての部品オーバー

> byzone = split(d,d$zone) 

、および変換:

ゾーンIDでリストを作成します

> zdll = lapply(byzone, 
    function(zd){ 
     coordinates(zd)=~Longitude+Latitude 
     proj4string(zd)=paste0("+init=epsg:326",zd$zone[1]) 
     spTransform(zd, CRS("+init=epsg:4326")) 
    }) 

を今すぐそれらを結合する:

> dll = do.call(rbind.SpatialPointsDataFrame, zdll) 

dllをプロットすると、lat-longのポイントが表示されます。あなたは座標が、元の座標と比較したい場合は、次の操作を行います。

> cbind(d, coordinates(dll)) 
    Longitude Latitude zone Longitude Latitude 
5 233243 6571770 33 4.712098 59.95395 
1 262706 6653520 33 10.327202 59.20086 
2 195348 6573696 33 10.750120 59.95049 
3 256880 6645020 33 9.663825 59.19259 
4 260610 6654042 32 10.656096 59.87099 
6  13799 6505840 33 6.663177 58.42136 

は、彼らが予想される場所ではありますか?

+0

ありがとうございました!これは本当に私の問題を解決! :) – andreas

+0

更新:現在、UTM /緯度の長い座標の一部がマップ(つまりhttp://www.geoplaner.com/)に対応しているようですが、他のマップは重大な不一致を持っているようです。 考えられる原因に関する提案はありますか? – andreas

関連する問題