あなたは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
は、彼らが予想される場所ではありますか?
umm WGS84 *は緯度経度です(人が「WGS84」と言うとき、通常はEPSG:4326 lat-longを意味します)。あなたの実際のデータを一目で見ることができますか?そうでなければ、我々は確かに...ここ – Spacedman
を推測している、生データは はここ() 4952(経度)6470636(緯度)32(ゾーン) ターゲットの列名とデータ例である「長いと緯度」でしたフォーマットは次のようになります: 13.665768(経度)59.739838(緯度) これらのフォーマットでは安定しません:P – andreas
これらはWGS84ではなくUTM座標のようです。あなたの質問の編集にあなたのデータの数行を貼り付けることができたらどうなりますか? – Spacedman