2012-02-10 3 views
3

編集:タイトルの質問に若干の言い直しをし、@DWinによるコメントに応答するようにテキストを調整しました。異なる投影で地理レイヤを結合するR

投影されて投影されていない地層を組み合わせることは難しいことがあります。多くの場合、地理的な層は異なる製品や出版社から来るため、いくつかの変換が必要です。

Rには地理変換を実行するためのツールがいくつかあることを知っています。例えば:spパッケージ内のクラスSpatial*のオブジェクトの場合

  1. rgdalパッケージ内spTransform()関数を使用することができます。
  2. rasterパッケージのクラスRaster*のオブジェクトについては、projectRaster()関数を使用できます。ここ

IがRで達成したい特定のタスクである:投影(これ:UTMグリッドゾーン15N(NAD27データム)で湖を記述する多角形層:UTMグリッドゾーン15N(NAD83データム)に変換ESRIシェイプファイル形式です)。

+0

この質問は広すぎるようで、読者に一般的な意見を提供したり、独自の例を作成するよう依頼しています。質問を絞り込むべきではなく、特定のソリューションを説明するために使用できる構造を作成するダミーの例を提供することが期待される理由はありません。 –

+0

@Dwinは質問とテキストのタイトルを改めました。要求されたタスクははるかに狭いです。 – digitalmaps

+0

あなたと@Spacemanのおかげで、予想以上に一般的な答えが出てきました。 –

答えて

5

有用なのは、rgdalに含まれるepsgデータベースです。

epsgs = make_EPSG() 
subset(epsgs,grepl("15N",epsgs$note)) 

[etc] 
     code 
2703 26715       # NAD27/UTM zone 15N [etc] 
2851 26915       # NAD83/UTM zone 15N [etc] 
[etc] 

これらのコードは、spTransformで必要なものです。あなたの湖は、そのNAD27投影とシェープファイルにある場合、:供給として

require(maptools) 
lakes = readShapeSpatial("lakes.shp") 
proj4string(lakes)=CRS("+init=epsg:26715") 

はあなたに湖を与える必要があります(私はreadShapeSpatialはシェープファイルのセットで.PRJファイルを読み込みますので、私は設定していると思ういけない注意それここに明示的に)今

UTMゾーン15NのNAD83データムバージョンに変換する:あなたは、あなたの予想に規則的な格子で終わるように、彼らは一般的に反りを伴うので、

lakes83 = spTransform(lakes,CRS("+init=epsg:26915")) 

ラスタは少しトリッキーです座標系 - あなたは単にコーナーを変換することはできませんコーナーの夕食...

+0

epsgデータベースが魔法のように見えます!ありがとう。 – digitalmaps

+0

epsg dbは便利です。www.spatialreference.orgとhttp://www.epsg-registry.org/ – Spacedman

+0

も参照してください。基本的に、Rにはネイティブオンザフライ再投影はありません。 –

関連する問題