Rでマップレイヤー(shpおよびcsv)をオーバーレイする方法


9

これは、stackoverflowからのクロスポストです。私はGISソフトウェアについてほとんど知識がなく、これがあまりにも基本的な質問である場合は、事前にすべてのマッピングをRで行っています。ソースが異なるが属性が異なる2つのシェープファイルがあるとします。たとえば、1つはテキサス州の行政境界(boundaries.shp)で、もう1つはテキサス川(rivers.shp)です。またtowns.csv、州内の町の場所を示す3番目のファイルもあります。ファイルを読み込んだ後、maptoolsパッケージの管理境界上の町の場所を過剰にプロットできます。

plot(boundaries); points(towns$lon, towns$lat)

しかし、どうすれば3つすべてをオーバーレイできますか?確かにこれを行う簡単な方法はありますか?

回答:


8

PBSMappingはニーズに合うはずです。NCEASにチュートリアルがあります。以下のコードは、そのチュートリアルを基にしています。ところで、私はあなたのデータについて仮定しています。状況に応じて編集してください。

library(PBSmapping)

#prepare towns
pts <- read.csv("towns.csv")
towns <- points(towns$lon, towns$lat)
# read in shapefiles 
rivers <- importShapefile("rivers.shp")
boundaries <- importShapefile("boundaries.shp")


# note that importShapefile reads the .prj file if it exists, but it
# does not adopt the proj4 format used by the above approaches
proj.abbr <- attr(boundaries, "projection") # abbreviated projection info
proj.full <- attr(boundaries, "prj") # full projection info
print(proj.abbr)
# [1] "LL"

# generate map using PBSmapping plotting functions
plotPolys(boundaries, projection=proj.abbr, border="gray",
    xlab="Longitude", ylab="Latitude")
addPoints(towns, pch=20, cex=0.8)
addLines(rivers, col="blue", lwd=2.0)

おかげで、RK私はまだそれのこつを取得しようとしていますが、これは優れた指針でした。
user3671

どういたしまして。マッピングを楽しんでください:)
RK

11

2つのプロットを重ね合わせる最も簡単な方法は、のadd = TRUEオプションを使用することですplot。これは人工データの例です

# Load sp package for creating artificial data
library(sp)

# Create sample town points
towns <- data.frame(lon = sample(100), lat = sample(100))
towns <- SpatialPoints(towns)

# Create sample polygon grid
grd <- GridTopology(c(1,1), c(10,10), c(10,10))
polys <- as.SpatialPolygons.GridTopology(grd)

# Plot polygons
plot(polys)

# Add towns (in red colour)
plot(towns, add = TRUE, col = 'red')

yellowcapをご利用いただきありがとうございます。しかし、「追加はグラフィカルパラメータではない」と書かれています。
user3671

この例は自分のコンピューターで実行すると正常に機能しますが、「追加」が常に機能するとは限らず、入力データのクラスに依存しているようです。この投稿を参照してください。ですから、私の提案は最善の方法ではないかもしれません...
yellowcap
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.