2017-12-15 18 views
0

私は、それぞれ1000 x 1000の2つのデータフレームと、緯度を持つ1つのデータフレーム(緯度)と、ピクセル(またはラスタ)配列を作成し、2つのデータフレームを1つの1000 x 1000のspatialpointsデータフレーム(またはそれに相当するもの)に結合する方法について説明します。 spatialpointsデータフレームの最初のセルは、lon [1,1]やlat [1,1]などで指定された座標を持ちます。これを行う簡単な方法はありますか?私は列ごとにそれを行い、次に空間ポイントオブジェクトを連続して束縛することができると思うが、これは少し長いようだ。何か案は?示唆されるように R:経度と緯度の別々のデータフレームを空間ポイントに結合する

が試み:私は4×4ので経度は/ LATラスタと一致していることを必要だと思う場合

lat.t <- data.frame(seq(10, 15, 1), seq(20, 25, 1), 
    seq(30, 35, 1),seq(40, 45, 1)) 
colnames(lat.t) <- c("1", "2", "3", "4") 
lon.t <- data.frame(seq(90, 95, 1), seq(100, 105, 1), 
seq(110, 115, 1), seq(120, 125, 1)) 
colnames(lon.t) <- c("1", "2", "3", "4") 
coords <- cbind(lon = unlist(lon.t), lat= unlist(lat.t)) 
sp.ob <- SpatialPoints(coords) 

は、16行の2つの列sp.obを与えます。

私はちょうど行う場合:

coords <- cbind(lon =lon.t , lat= lat.t) 
sp.ob <- SpatialPoints(coords) 

私は入手できますか4×4が、すべての最後の4中緯度、と私はこれが私の右の経度を与えるものではありませんだと思い、最初の4列内のすべての経度と/ラットペアを使用してコンテンツを見ると、次のようになります。

sp.ob[1] 

たとえば、

+1

実例を示してください。 – dayne

+0

1000x1000の "spatialpointsdataframe"が何を意味するのかよくわかりません。私はそのオブジェクトのタイプが "ロング"フォーマットで記録されたと思った。なぜ5×5の緯度と経度のおもちゃ版を作って、何が望ましいかを示してみませんか? –

+0

私は少しだけはっきりと考えさせてくれる便利なプロダクトでした。 – chrisR

答えて

1

このお試しください:

lon <- data.frame(matrix(rnorm(10000), 100, 100)) 
lat <- data.frame(matrix(rnorm(10000), 100, 100)) 

cbind(lon = unlist(lon), lat = unlist(lat)) 

または:(行または列による)望んでいたためで

によって
cbind(lon = unlist(t(lon)), lat = unlist(t(lat))) 

+0

多くのおかげで本当に - これは私の問題を整理しましたが、それを実現するまでにはしばらく時間がかかりました。あなたの答えはまた、ラスターデータがどのように整理され、どのように私がより広い問題を解決できるかを理解するのに役立ちました。 – chrisR

0

私の最初の質問は/別の経度を組み合わせる方法についてでしたラスタ内の関連する座標を指定するためにこれらを追加できるようにラスタデータフレームを1つに変換します。根本的な問題は、1000 x 1000ピクセルの極座標(南極)投影を表すティフ画像と、ピクセル画像に一致する1000 x 1000個の要素のそれぞれの経度と緯度のファイルを分離することです。 @Gillesは単純なデータフレーム変換(基本的なR!)を指摘しました.1000 x 1000 lon/latデータフレームを変換して、xとy座標を取得して、ラスターティフのデータフレーム変換と組み合わせることができますxyz列のファイルを指定します。次に、rasterFromXYZを使用してタスクを完了できます。しかし、座標はかなり規則的ではないが、 'griddify'はその問題を解決するかもしれない。私の最初の質問への答えは大変高く評価されました!

+0

あなたの質問は、回答であるかのように追加するのではなく、編集してください。そうでなければ、このディスカッションを他の人が使用するのは非常に混乱することがあります。 – RobertH

+0

十分に良い。私は元の質問に答えられたと思っていたことを示すように意図し、根本的な問題に対する解決策を持っていました。私はこれでもっと良くなるだろう! – chrisR

0

根本的な問題は、私は1000×1000個のピクセルと 別経度と緯度のためのファイルは、それぞれ1000×1000年素子 ピクセル画像のマッチング 極性立体(南極)投影を表すTIFF画像を有することである

あなたがする必要がどのような

は、座標参照系(投影)を確認

library(raster) 
r <- raster("file.tif") 

ある

crs(r) 

極座標立体に正しく設定されていれば、いいですね。 それ以外の場合は、適切な説明で設定することができます。

crs(r) <- "+proj=stere +lat_0=-90 +lon_0=0 +lat_ts=-71 +datum=WGS84 +units=m" 

ような何かあなたが経度/緯度に変換したい場合は、試してみてください。

x <- projectRaster(r, "+proj=longlat +datum=WGS84") 

と追加のパラメータの?projectRasterを参照してください。

+0

これは非常に便利で、私はlon/latのための別々のファイルが必要ではないかもしれないと考えていませんでしたが、それでも役に立つチェックになります。あなたの提案を大変感謝します! – chrisR

関連する問題