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

3
Rのシンプルフィーチャオブジェクトからdata.frameを抽出する
シンプルフィーチャオブジェクトからジオメトリ列を除くすべてを抽出するsf-native(つまり「正しい」)方法はありますか?これは動作します df <- dplyr::select(as.data.frame(sf), -geometry) しかし、select( , -geometry)ステップは不要だと感じています。また、ジオメトリ属性は削除されません。
43 r  sf 

2
R sfオブジェクトをSpatialPolygonsDataFrameに戻す
sfオブジェクトをSpatialPolygonsDataFrameに戻すにはどうすればよいですか? R 3.4.0およびsfバージョン0.4.1を実行しています。SFのドキュメントには言及してas_Spatial機能を、これは私の(何らかの理由で)インストールでは使用できません。
27 r  sf 

4
Rのシンプルフィーチャオブジェクトを切り取る
maptools::pruneMap(lines, xlim= c(4, 10), ylim= c(10, 15))SpatialPolygonまたはSpatialLine に使用されるような、sfマップオブジェクトを切り取る機能はありますか? 私は検討してst_intersection()いますが、適切な方法があります。
20 r  clip  sf 

1
RのLon-LatからSimpleフィーチャー(sfgおよびsfc)
lon-latポイントを単純なフィーチャ(sfg)に変換し、単純なフィーチャコレクション(sfc)に入れるにはどうすればよいですか? これは機能しないが、私が手に入れた最も近いMWEです。 library(data.table) library(sf) # The DT data.table is the data I have (but 10,000s of rows, each row is a point) DT <- data.table( place=c("Finland", "Canada", "Tanzania", "Bolivia", "France"), longitude=c(27.472918, -90.476303, 34.679950, -65.691146, 4.533465), latitude=c(63.293001, 54.239631, -2.855123, -13.795272, 48.603949), crs="+proj=longlat +datum=WGS84") DT[, rowid:=1:.N] # The following two rows do …
20 r  sf 

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 

1
sfオブジェクトのポリゴンを単純化する
sfギャップやスライバーを導入せずにポリゴンを単純化するにはどうすればよいですか? たとえば、シェープファイルでは、次を使用しますrmapshaper::ms_simplify()。 library("pryr") library("rgdal") library("rmapshaper") download.file("https://borders.ukdataservice.ac.uk/ukborders/easy_download/prebuilt/shape/England_gor_2011.zip", destfile = "regions.zip") unzip("regions.zip") regions <- readOGR(".", "england_gor_2011") object_size(regions) # ~13MB regions <- ms_simplify(regions) object_size(regions) # < 1MB 私はsf::st_cast()、manページから次のように述べました: ジオメトリを別のタイプにキャスト:単純化するか、明示的にキャストします そして: 引数へ:文字; 対象タイプがない場合、簡素化が試行されます。xがsfgタイプ(つまり、単一のジオメトリ)の場合、指定する必要があります。 私がto行方不明になったとき、これは期待通りに機能しませんでした(それが本当であるには余りにも良いことを知っていました!): library("sf") regions <- sf::read_sf("england_gor_2011.shp") object_size(regions) # ~13MB regions <- sf::st_cast(regions) object_size(regions) # Still 13MB 現在、でファイルを開きrgdal::readOGR()、簡略化して保存し、で再度読み込みsfます。 もっと良い方法はありますか? rgeos::gSimplify() @skの提案はrgeos::gSimplify()、次の引数で指定された場合、トポロジを考慮した単純化(つまり、スライバを作成せずに単純化)を実行できます。 library("rgeos") regions_gSimplify …
14 r  simplify  sf 

2
Rパッケージsfからsfcオブジェクトを結合する方法
Rパッケージを使用して、オブジェクトをsfどのように結合しsfcますか?たとえば、次のコードが与えられた場合、との両方のジオメトリを含む単一のsfcオブジェクトsfc12をどのように作成しますか?(2でなければなりません。)sfc1sfc2length(sfc12) library(sf) pt1 = st_point(c(0,1)) pt2 = st_point(c(1,1)) sfc1 = st_sfc(pt1) # An sfc object sfc2 = st_sfc(pt2) # Another sfc object # sfc12 = ? 動作しないいくつかのアプローチ: sf_sfc(sfc1, sfc2) # Error in vapply(lst, class, rep("", 3)) : values must be length 3, # but FUN(X[[1]]) result is length 2 sfc1 …
12 r  sf 

1
RでwriteOGR()を使用して複数のレイヤーをGeoPackageに書き込みますか?
Rの同じGeoPackageに複数のレイヤーを書き込もうとしていますが、エラーが発生しますCreation of output file failed。RGDALを使用した.gpkgファイルの読み取りと書き込みのドキュメントを検索してみました。たとえば、writeOGR()実際に複数のレイヤーをサポートしているかどうかを調べたところ、ほとんど成功しませんでした。これは可能であれば、どのように行うのですか?最小限の作業例: library(sp) library(maptools) library(rgdal) data(wrld_simpl) norway <- wrld_simpl[wrld_simpl$NAME == "Norway", ] sweden <- wrld_simpl[wrld_simpl$NAME == "Sweden", ] file <- tempfile("scandinavia", fileext = c(".gpkg")) writeOGR(norway, dsn = file, layer = "norway", driver = "GPKG") writeOGR(sweden, dsn = file, layer = "sweden", driver = "GPKG") ogrListLayers(file) トリックを実行するogr2ogr シェルコマンド(ヒントmdsumner)があるようですが、これをR関数でラップできます。ただし、sfパッケージのwriteOGR()やst_write()にこれが組み込まれているとlayer_options便利です。GDALに依存していると思いますが、GDALの …
11 gdal  r  rgdal  geopackage  sf 

2
R:sfパッケージがst_castで複数の行を指す
として与えられた点から複数の線を作成したいと思いますsf objects。 私がいくつかのポイントを持っている場合 library(sf) pts <- st_multipoint(matrix(c(10, 10, 15, 20, 30, 30), nrow = 3, byrow = TRUE), dim = "XY") 私はst_castそれらのラインを作成するために使用しています lines <- st_cast(pts, "MULTILINESTRING") 私は常にsf object複数のセグメントを持つ1つを取得しますが、取得したいのは複数の行(この例では2つ)です。
8 r  sf 

2
Rを使用してラインの「上」または「下」のフィーチャを選択する
直線と一連の点を考えると、sf各点が直線のどちら側にあるかを特定する方法を理解できません。 別の質問を基にした、再現可能な小さな例を以下に示します。 # Load Libraries ---------------------------------------------------------- library('sf') # Test data --------------------------------------------------------------- points.df <- data.frame( 'x' = c(-53.50000, -54.15489, -54.48560, -52.00000, -52.57810, -49.22097, -48.00000), 'y' = c(-38.54859, -41.00000, -38.80000, -38.49485, -38.00000, -40.50000, -37.74859) ) line.df <- data.frame( 'x' = c(-54.53557, -52.00000, -50.00000, -48.00000, -46.40190), 'y' = c(-39.00000, -38.60742, -38.08149, -38.82503, -37.00000) …
8 r  sf 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.