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

統計計算言語とソフトウェア環境。

1
カーネル密度を使用してRの道路密度を計算しますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた2年前。 道路の大きな(〜70MB)シェープファイルがあり、これを各セルの道路密度を持つラスターに変換したい。理想的には、必要に応じてGDALコマンドラインツールとともにRでこれを実行したいと思います。 私の最初のアプローチは、このスレッドごとに各セルの線分セグメントの長さを直接計算することでした。これにより目的の結果が得られますが、シェープファイルが私のものよりはるかに小さい場合でも非常に遅くなります。正しいセル値が明らかな非常に単純化された例は次のとおりです。 require(sp) require(raster) require(rgeos) require(RColorBrewer) # Create some sample lines l1 <- Lines(Line(cbind(c(0,1),c(.25,0.25))), ID="a") l2 <- Lines(Line(cbind(c(0.25,0.25),c(0,1))), ID="b") sl <- SpatialLines(list(l1,l2)) # Function to calculate lengths of lines in given raster cell lengthInCell <- function(i, r, l) { r[i] <- 1 rpoly <- rasterToPolygons(r, na.rm=T) lc …

3
Rのポリゴンシェープファイルを使用してラスターからラスターを抽出する
私はRが初めてで、ラスターパッケージを使用しています。既存のラスターファイルからポリゴンを抽出する際に問題があります。私が使用する場合 extract(raster, poly_shape) ラスター上の関数は、常にデータを含むリストを作成します。本当に欲しいのは、ArcGISで再びロードできる別のラスタファイルを抽出することです。もう少し読んだ後、クロップ機能が本当に必要だと思います。しかし、この機能を使用しようとすると crop(raster, poly_shape) 私はこのエラーを受け取ります: Error in .local(x, y, ...) : extents do not overlap In addition: Warning message: In intersect(extent(x), extent(y)) : Objects do not overlap ファイルrasterとpoly_shapeは、両方の関数で同じです。ここで何が間違っているのか教えてもらえますか?トリミング機能がリストではなく別のラスターを作成するのは正しいですか? 編集:extent()関数は私のために動作しません。それでも同じエラーが発生します。しかし、2つのデータセットは重複していると確信しています!とともに extract(raster, poly_shape) 適切なデータを取得します。ただのリストとしてであり、私が望んでいるようなラスターとしてではありません。前にArcGISにデータセットを読み込んだところ、非常にうまく収まるため、投影を確認しませんでした。今私は試した projection(raster) # "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs" projection(poly_shape) # "+proj=utm +zone=32 +ellps=GRS80 +units=m …
13 raster  shapefile  r  line 

1
RのIDでSpatialPolygonsDataFrameをサブセットしますか?
パッケージのgIntersect関数を使用してrgeos、2つのSpatialPolygonsDataFrames(spdf)で交差するポリゴンを特定しました。結果は、sfdf#1のポリゴンIDを含む行名と、spdf#2のポリゴンIDを列名する論理行列です。この行列を使用して、関数を使用する前に、2つの元のspdfをサブセット化し、重複のないポリゴンを省略したいと思いますgIntersection。論理マトリックスを、少なくともいくつかのオーバーラップがあるポリゴンを表すIDの2つのベクトル(spdfごとに1つ)に簡単に変換できます。 私の質問は-ポリゴンIDのベクトルを使用してspdfをサブセットできますか?もしそうなら、それは@dataスロットの値を正しくサブセットしますか?私は一般的にこの構文を使用してspdfをサブセット化できることを知っています: spdf[spdf@data$myVariable[someVector], ] これはIDには機能しません。IDがspdfリスト構造の奥深くに埋まっているためです。
13 r 

3
隣接するラスターセルへの値の条件付き割り当て?
値ラスターがあります: m <- matrix(c(2,4,5,5,2,8,7,3,1,6, 5,7,5,7,1,6,7,2,6,3, 4,7,3,4,5,3,7,9,3,8, 9,3,6,8,3,4,7,3,7,8, 3,3,7,7,5,3,2,8,9,8, 7,6,2,6,5,2,2,7,7,7, 4,7,2,5,7,7,7,3,3,5, 7,6,7,5,9,6,5,2,3,2, 4,9,2,5,5,8,3,3,1,2, 5,2,6,5,1,5,3,7,7,2),nrow=10, ncol=10, byrow = T) r <- raster(m) extent(r) <- matrix(c(0, 0, 10, 10), nrow=2) plot(r) text(r) このラスターから、この図に従って現在のセルの8つの隣接するセルに値を割り当てる(または値を変更する)にはどうすればよいですか?このコード行から現在のセル内に赤い点を配置しました。 points(xFromCol(r, col=5), yFromRow(r, row=5),col="red",pch=16) ここで、期待される結果は次のようになります。 現在のセルの値(つまり、値ラスタの5)は0に置き換えられます。 全体として、8つの隣接セルの新しい値は次のように計算する必要があります。 新しい値=赤い長方形に含まれるセル値の平均*現在のセル(赤い点)と隣接するセル間の距離(つまり、斜めに隣接するセルの場合はsqrt(2)、そうでない場合は1) 更新 隣接セルの境界がラスターの制限を超えている場合、条件を尊重する隣接セルの新しい値を計算する必要があります。条件を尊重しない隣接セルは「NA」に等しくなります。 たとえば、[row、col]表記を使用して参照位置がc(5,5)ではなくc(1,1)である場合、右下隅の新しい値のみを計算できます。したがって、期待される結果は次のようになります。 [,1] [,2] [,3] [1,] NA NA NA [2,] NA …
12 raster  r  adjacency 

1
Rでlat / lonからUTMにラスターを再投影しますか?
バッファーを機能させるためには、UTMに変換する必要があります。 wets<-readOGR(dsn=".",layer="shapefile") r.raster <- raster() extent(r.raster) <- extent(wets) res(r.raster) <- 100 wets.r <- rasterize(wet,r.raster) plot(wets.r) wetsbuf<-buffer(wets.r,width=500) コードの最後の行であるバッファーの作成中に、次の警告が表示されます。 Warning message: In couldBeLonLat(x) : raster has a longitude/latitude CRS, but coordinates do not match that ここに情報があります summary(wets.r) layer Min. 1 1st Qu. 1 Median 2 3rd Qu. 9 Max. 11 NA's 52629 …

2
gSimplifyによって単純化された空間ポリゴンを持つwriteOGR
gSimplifyシェープファイルのジオメトリを単純化するために(rgeosパッケージ)を使用しています。この機能は正常に機能しますが、新しいシェープファイルに出力を書き込めなくなりました。私はいくつかの方法を試しました: writeOGR(simplyshape, file, driver="ESRI Shapefile", layer='test') 私は得る objはSpatialPointsDataFrame、SpatialLinesDataFrameまたはSpatialPolygonsDataFrameでなければなりません そして: writePolyShape(simplyshape, file) 私は得る: エラー:is(x、 "SpatialPolygonsDataFrame")はTRUEではありません
12 shapefile  r  simplify  rgdal 

1
RasterLayerの@ data @ valuesスロットには、実際の値ではなくlogical(0)のみが含まれているのはなぜですか?
NDVIのラスターを読み取ると、手動で設定するまで@ data @ valuesスロットに実際の値が含まれないのは、理由の一番下に到達しようとしています。例えば: NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84") NDVI@data@values ## returns: logical(0) これは、同じ方法で読み込んだ他のラスターでは発生しなかったため、混乱しています。もっと具体的になりたいのですが、以前と違うことをしたことは覚えていません。以下を使用して、値を手動で取得するのは簡単です。 NDVI1@data@values <- getValues(NDVI19east) しかし、すべてのファイルに対してこれを行う必要があるのは、まだ苦痛です。したがって、2つの部分から成る質問: そもそもなぜこれが起こったのですか?ラスターファイルの格納方法(つまり、メモリにあるかどうか)に関係があることは理解していますが、データにアクセスするために使用するメソッドがどのように変更されるかを本当に理解することはできません... ファイルをRasterLayersとして読み取り、それらのファイルの値にアクセスするために、このプロセスを自動化する方法はありますか(おそらくlapplyに似た方法を使用して)?私の現在のプロジェクトでは、NDVI、Rainfall、およびその他の環境変数の6〜10個のファイルを一度に読み取り、それらを組み合わせていくつかの加重オーバーレイを実行します。データをインポートするプロセスを自動化すると役立ちます。
12 raster  r  memory 

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 …

2
Rのマップでのポイントのオーバープロット(たとえばggplot2を使用)-ポイントを横に押して、元の位置をマークし、近接ポイントを結合する方法は…?
言語、その経度と緯度、および特徴値(カテゴリ1、カテゴリ2、または両方-プロットではこれらはそれぞれ赤、青、緑でマークされています)を含むデータベースを持っています。言語ごとに最大3つのポイントがあり、当然ながら2つの言語ポイントが互いに非常に近い位置にある場合があります。 name longitude latitude sp_sum 1 Modern Armenian 45 40 both 2 Modern Armenian 45 40 both 3 Modern Armenian 45 40 spatial 4 Dieri 138 -28.1667 both 5 Dieri 138 -28.1667 both 6 Finnish 25.5577 64.7628 non-spatial 7 Crimean Tatar 28.1418 43.8398 spatial 8 Ese Ejja -67.515 -11.7268 non-spatial …

2
QGISを使用してポイントからラインまでの最短距離を計算しますか?
非常に大きなデータセットを持つQGISの一連の住所ポイントの最も近い道路からの距離を計算する最良の方法は何ですか?(QGIS 2.0.1、Win XP) 以前の同様の質問に対する回答を読みました。 QGISでの線と点の間の距離の測定 PyQGISで垂直線を描く? QGISでポイントとポリゴン間の最小距離を計算しますか? /programming/16448402/distance-of-point-feature-to-nearest-polygon-in-r それにもかかわらず: MMQGISプラグインは、ラインまでの最短(垂直)距離ではなく、ラインネットワークの最も近いノードまでの距離を検出します。 RとPythonが提案するスクリプトは、小さなデータセットで正しく機能し、モデラーに実装できますが、私の仕事では、530ポイントと約135'000のフィーチャを持つ地域のストリートレイヤーがあり、すべてのフィーチャをサイクリングしてから、すべてのポイントには膨大な時間がかかります QGIS 2.0.1でGRASSを動作させるのに問題があります(QGISのGRASSが動作しません(Windows XP))。
12 qgis  python  r  distance 

2
R(または必要に応じてQGIS)のシェープファイルの解像度を下げる
NHGISの米国の州境の歴史のシェイプファイルを使用してRで地図を作成しています。これらのシェイプファイルは、国の規模で地図を作成するときに必要な解像度よりもはるかに高い解像度です。Rでこれらのシェープファイルの解像度を下げることができる方法はありますか?必要に応じて、代わりにQGISでそれを行うことができます。
12 qgis  shapefile  r  resolution 

2
Rのシェープファイルの行を削除する
シェープファイルをRにインポートし、テーブルに結合しました。シェープファイルには国勢調査IDがすべて含まれていますが、テーブルには選択した国勢調査IDのみが含まれています。私は今、すべての行を削除しようとしましたが、一致しませんでした。 これは私のデータセットのようです(NAですべての行を削除しようとしているので、最後の2つを削除する必要があります)。 CTUID Cluster Average 5350007.01 1 124.53 5350007.02 1 234.87 5350010.01 4 110.11 5350010.02 5 187.68 5350001 NA NA 5350002 NA NA 私はこの行コードを使用してみました: shape2[!(rowSums(is.na(shape2))==NCOL(shape2)),] これは私にこのエラーを与えました: Error in rowSums(is.na(shape2)) : 'x' must be an array of at least two dimensions In addition: Warning message: In is.na(shape2) : is.na() applied to …

3
Rを使用してファイルジオデータベースを読み取りますか?
ファイルジオデータベース(fgdb)には、多数のファイルジオデータベーステーブルが含まれています。私の知る限り、それらはdbfファイルとして存在しますが、内にありDatabase.gdbます。 ArcCatalogでは、ファイルパスウェイはに似ていC:\Users\...\Database.gdb\Stats_AAます。 これらすべてのdbfファイルをR(統計ソフトウェア)に読み込む方法は?供給する正しい経路は何ですか?使用される関数はread.dbf(外部パッケージ内)です。 のバリアント test<-read.dbf(file="C:/Users..Database.gdb/Stats_AA.dbf") そして test<-read.dbf(file="C:/Users..Database/Stats_AA.dbf") 動作しません。使用するファイル名の正しい「フォーム」とは何ですか、またはすべてのファイルジオデータベーステーブルを他のフォームまたは場所にエクスポートする必要がありますか?



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.