タグ付けされた質問 「sp」

3
Rの空間ポリゴンオブジェクトのリストをマージします
関数で構築した空間バッファー(30000バッファー)のリストがありますlapply。 buff.pts <- lapply(1:nrow(pts.prj), FUN=function(l){ buff <- gBuffer(pts.prj[l,], width=1000) ## 1km return(buff) })) > head(buff.pts) [[1]] class : SpatialPolygons features : 1 extent : 307941.8, 311941.8, 4994518, 4998518 (xmin, xmax, ymin, ymax) coord. ref. : +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0 [[2]] class : SpatialPolygons …
16 polygon  r  sp  rgeos 

1
ポリゴン内のspパッケージのポイントと同等/ sfを使用したオーバー
コードをspパッケージから新しいsfパッケージに移行しています。以前のコードでは、SpatialDataFrame(censimentoMap)とSpatialPointDataFrame(indirizzi.sp)のポリゴンがあり、以下の手順で各ポイントのポリゴンセルID(Cell110)を取得しました。 points.data <- over(indirizzi.sp, censimentoMap[,"Cell110"]) 実際に、2つのsfオブジェクトを作成しました。 shape_sf <- st_read(dsn = shape_dsn) shape_sf <- st_transform(x=shape_sf, crs=crs_string) そして indirizzi_sf = st_as_sf(df, coords = c("lng", "lat"), crs = crs_string) そして、上記の命令に相当するsfを探しています... ids<-sapply(st_intersects(x=indirizzi_sf,y=shshape_sfpeCrif), function(z) if (length(z)==0) NA_integer_ else z[1]) cell_ids <- shape_sf[ids,"Cell110"]
16 r  overlay  sp  sf 

2
rの値を集計するとき、空間ポリゴン%over%ポリゴンはどのように機能しますか?
私は環境疫学プロジェクトに取り組んでおり、そこではポイント暴露(〜2,000の産業豚の操業-IHO)を受けています。これらのIHOは近くのフィールドにスプレーしますが、糞の水滴と臭いは何マイルも移動します。したがって、これらのポイント露出は3miのバッファを取得し、NCセンサスブロックごとのIHO露出の数(さまざまな種類の肥料の合計、豚の数、最も単純な、重複する露出バッファの数)を知りたい(〜200,000)。除外国勢調査ブロック(青)は、(1)最も人口の多い上位5都市のすべてであり、(2)IHOのある郡と国境を接していない郡(注:gRelate関数とDE-9IMコードで行われました-非常に滑らかです!)。下の画像をご覧ください 最後のステップは、バッファリングされた露出表現をすべての国勢調査ブロックに集約することです。ここで私は困惑しています。 これまで、spパッケージの%over%関数を使って楽しい時間を過ごしましたが、over-vignetteから、poly-polyとpoly-line overはrgeosで実装されていることを理解しています。ビネットはラインポリと自己参照ポリのみを対象とし、集計は対象外です。そのため、合計や平均などの関数集計を使用したポリポリのオプションについて少し混乱しています。 テストケースについては、以下の世界の国の国境ファイルで動作する多少冗長なスニペットを検討してください。これは、ポイントにランダムシードを使用しているため、またワールドファイルをコードでダウンロードして解凍しているため、そのままコピーして実行できるはずです。 最初に100ポイントを作成し、次に関数fnを引数に使用してデータフレーム内の要素を加算します。ここには多くのポイントがありますが、オーストラリアを見てください:3ポイント、ラベルとしての3番目。ここまでは順調ですね。 次に、ジオメトリを変換して、バッファを作成し、元に戻して、それらのバッファをマップできるようにします。(リンクは2つに制限されているため、前のマップに含まれています。)各国がオーバーラップしているバッファーの数を知りたいです。オーストラリアの場合、目で見て4です。ただし、over関数で取得します。コードの最終行で私の混乱を参照してください。 編集:r-sis-geoのコメンターが集約関数に言及していることに注意してください-スタック交換質問63577でも参照されています-そのため、回避策/フローはその関数を介している可能性がありますが、なぜ行く必要があるのか​​分かりませんポリポリを集約するために、他の空間オブジェクトにその機能があるように思えます。 require(maptools) require(sp) require(rgdal) require(rgeos) download.file("http://thematicmapping.org/downloads/TM_WORLD_BORDERS_SIMPL-0.3.zip", destfile="world.zip") unzip("world.zip") world.map = readOGR(dsn=".", "TM_WORLD_BORDERS_SIMPL-0.3", stringsAsFactors = F) orig.world.map = world.map #hold the object, since I'm going to mess with it. #Let's create 500 random lat/long points with a single value in the data frame: the …

3
Rを使用してポリゴン内のポイント数をカウントしていますか?
同じCRS(緯度と経度)を共有する2つのクラスがあります。 bolognaQuartieriMap:SpatialPolygonDataFrame都市のボロートのデータが含まれています。 crashPoints:SpatialPointsDataFrame事故のデータが含まれています。 彼らはよく使用してプロットされます: plot(bolognaQuartieriMap) title("Crash per quartiere") plot(crashPoints, col="red",add=TRUE) 必要なのはcrashPoints、構成する各ポリゴンのポイント数()を取得することbolognaQuartieriMapです。使用するよう提案されましたover()が、成功しませんでした。
11 r  sp 

2
マルチポリゴンに縮小せずにRでバッファとユニオン
空間オーバーレイを実行して、一連のポイントが含まれるポリゴンを特定します。ただし、最初にポリゴンをバッファリングしてディゾルブし、マージされたポリゴン内の任意の場所にあるポイント(穴内にはない)に、オーバーレイ手順によって同様にラベルが付けられるようにします。 残念ながら、私が使用しているバッファリングまたはディゾルブプロセスは、SpatialPolygonsオブジェクトをマルチポリゴンに縮小しています。を使用gBufferすると、の場合はマルチポリゴンが作成されますが、の場合byid=FALSEは重複するポリゴンの結合に失敗しますbyid=TRUE。後者の場合、続いてgUnaryUnion再びポリゴンをディゾルブすると、マルチポリゴンが作成されます。SpatialPointsこれらのマルチポリゴンでオーバーレイすると、含まれているすべてのポイントがポリゴン1内にあると報告されます。 これは、バッファ付きポイントを使用した関連するおもちゃの例です。バッファ付きポリゴンでポイントをオーバーレイしたいと思います。 library(sp) library(rgeos) pts <- SpatialPoints(cbind(c(1, 1, 2, 3), c(1, 2, 1.5, 2.5))) plot(gBuffer(pts, width=0.6), lwd=2) points(pts, pch=20, cex=2) text(coordinates(pts), labels=seq_len(length(pts)), pos=4, font=2) そして、いくつかのオーバーレイの結果... とbyid=FALSE: b <- gBuffer(pts, width=0.6) over(pts, b) # [1] 1 1 1 1 とbyid=TRUE: b2 <- gBuffer(pts, width=0.6, byid=TRUE) over(pts, b2) # [1] 1 …
9 r  sp 

1
SpatialPolygonDataFrameから特定のポリゴンを削除する
R maptoolsライブラリを使用して、シェープファイルを解析してポリゴンのリストを作成しています。関数readShapeSpatial shp <- readShapeSpatial("<path to my shapefile>") 私に与えSpatailPolygonDataFrameのオブジェクトを。私の例では、SpatialPolygonsDataFrameに次の列があります。 > names(shp) [1] "AREA" "PERIMETER" "COMAREA_" "COMAREA_ID" "AREA_NUMBE" [6] "COMMUNITY" "AREA_NUM_1" "SHAPE_AREA" "SHAPE_LEN 特定のポリゴンをで削除できることを知っていますrow.id。たとえば、 shp.dropI <- shp[-i, ] shp.subset <- shp[i %in% c(1,2,3),] 次に、特定のポリゴンを条件付きでドロップしたいとしAREA > 10ます。これをエレガントに実装するにはどうすればよいですか?私が今持っている唯一の方法は、すべての行を反復処理して対応するを見つけることrow.idです。
9 shapefile  r  sp 

4
CSVファイルをシェープファイルに結合
CSVファイルをシェープファイルに結合したいと思いました。 結合を容易にするフィールドを特定したとき、たとえば、 map <- spChFIDs(map, as.character(map$ID)) 戻った spChFIDs(SP、x)のエラー:長さが異なります 誰かアドバイスできますか?
9 shapefile  r  csv  spatial-join  sp 

3
Rを使用して空間ポイントデータを複数のポリゴンデータと結合する
SpatialPolygonsDataFrameとSpatialPointsDataFrameを空間結合したいのですが。 コードの下で、複数のポリゴン内の1つのポイントデータのみを取得します。 sp::over(meuse, srdf) 一部のデータは複数のポリゴンにポイントされます。ポイントデータを取得したいのですが、すべてのポリゴンデータを保持します。 例: ポリゴンaとb内のポイントA。 今得ることができます: | point | polygon | ------------------- | A | a | 私はこのようになります: | point | polygon | ------------------- | A | a | | A | b | データを使用: coordinates(meuse) = ~x+y sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409, 180162, 180114), c(332349, …
8 r  sp 

2
Rでラスターを再投影すると、投影された点が有限ではないという警告が表示されますか?
1.質問 RのラスターパッケージでprojectRaster()関数を使用して警告が発生しました。完全に再現可能な例を以下に貼り付けます。 Warning message: In rgdal::rawTransform(projto_int, projfrom, nrow(xy), xy[, 1], : 33940 projected point(s) not finite 私の質問は次のとおりです。このデータは、地上データで作業している場合に修正する必要がある問題ですか?つまり、データは「失われた」ということです。もしそうなら、これは私にとって大きな問題になるでしょう。もしそうなら、私がそれを修正できる方法があるかどうか知っていますか? 私はこの問題の解決策をオンラインで検索したところ、ここ、ここ、およびここにいくつかの言及が見つかりましたが、この問題に対する適切な答えを提供するものはないと思います。 2.ラスターライブラリを読み込む library(raster) 3.まず、各グリッドセルに定数を使用して、世界の(長緯度)マップを作成します 各グリッドセルに定数を配置して、警告がデータに影響する可能性がある場合の問題を診断できるかどうかを確認しています。 rastertest.longlat<-raster(ncol=360, nrow=180) values(rastertest.longlat)<-c(rep(1,n=180*360)) 4.(長緯度)マップを等面積グリッドに再投影すると、警告メッセージが表示されます rastertest.eck4<-projectRaster(rastertest.longlat, res=c(100000,100000), crs="+proj=eck4",method="ngb", over=T) Warning message: In rgdal::rawTransform(projto_int, projfrom, nrow(xy), xy[, 1], : 33940 projected point(s) not finite このメッセージは基本的に、一部のグリッドセルで再投影が失敗したことを示していると思います。 5.しかし、2つのマップをプロットした場合、この警告はデータに問題を引き起こすようには見えません つまり、プロットされたデータに白いギャップはありません。私の推測では、失われた細胞は非地球上の細胞であり、世界の最上部と最果てです。何か案は? par(mfrow=c(2,1)) plot(rastertest.longlat, col="blue") …

1
RのSpatialPointsDataFrameと同じすべてのポイントの最も近いポイントまでの距離
Rで使用しているSpatialPointsDataFrameがあります。すべてのポイントについて、SpatialPointsDataFrame内の最も近い他のポイントまでの距離を含む新しいベクトルをデータフレームに追加します。spdepパッケージのknearneighと、spパッケージのspDistsN1およびspDistsを確認しましたが、どちらも希望どおりのものを提供しません。明確にするために、これらのポイントはすべて1つのSpatialPointsDataFrameにあります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.