2016-09-06 9 views
1

WGS84のコーディネートでRにデータセットdatがあります。通常の緯度/経度をAlber's Equal Areaに変換する

私はアルバーの等しい面積の投影にこれらの座標に変換することができますどのよう
require(sp) 
dat.sp <- SpatialPointsDataFrame(c(dat[,c('longitude','latitude')]), data = dat) 

:私はこの空間点のデータフレームにするspパッケージを使用して、この(以下dput出力)

dat <- structure(list(latitude = c(46.414597, 46.137664, 46.567187, 
45.730901, 43.379185, 46.657572), longitude = c(-86.030373, -85.990492, 
-87.954285, -87.674475, -86.226577, -89.807461), mat = c(5.21999979019165, 
5.55999994277954, 4.03000020980835, 5.40000009536743, 8.3100004196167, 
4.30000019073486), map = c(824.52001953125, 822.77001953125, 
806.900024414062, 780.510009765625, 885.940002441406, 912.789978027344 
)), .Names = c("latitude", "longitude", "mat", "map"), row.names = c(NA, 
-6L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x10200fd78>) 

    latitude longitude mat map 
1: 46.41460 -86.03037 5.22 824.52 
2: 46.13766 -85.99049 5.56 822.77 
3: 46.56719 -87.95428 4.03 806.90 
4: 45.73090 -87.67448 5.40 780.51 
5: 43.37918 -86.22658 8.31 885.94 
6: 46.65757 -89.80746 4.30 912.79 

のようにそれが見えますか?私は、この例では種類のランダムパラメータを設定し、あなたがあなたのために意味をなすものを選択することをお勧めします

+0

@ Hack-Rごめんなさい。 'data.table'オブジェクトを使って書かれた' SpatialPointsDataFrame'関数の実行に問題はありません。より大きなデータオブジェクトのサブセットです。しかし、私の 'dput'出力のコピーと貼り付けは、' dput'の出力が間違っているにもかかわらず、うまくいかないようです。 – colin

答えて

2
library(sp) 
dat.sp <- as.data.frame(dat) 
dat.sp <- SpatialPointsDataFrame(c(dat.sp[,c('longitude','latitude')]), data = dat.sp) 

library(mapproj) 
mapproject(dat.sp$longitude,dat.sp$latitude,projection ="albers", par=c(39,49)) 
$x 
[1] 0.0224144915 0.0230045456 -0.0006617149 0.0027256535 0.0211352166 -0.0227947615 

$y 
[1] -0.9929906 -0.9978269 -0.9905721 -1.0052115 -1.0462001 -0.9887275 

$range 
[1] -0.02279476 0.02300455 -1.04620005 -0.98872752 

$error 
[1] 0 

注意。さらに詳しい情報はhereですが、ドキュメントにも例があります。

関連する問題