Questions tagged «r»

统计计算语言和软件环境。

1
随机改变栖息地类型的栅格图?
我有一个苏格兰特定地区的栖息地类型栅格。我需要通过改变栖息地来创建未来的栖息地场景,以评估鸟类的种群生存力。 例如,将来该地区的林业可能会增加10%。我想通过以一定大小的块随机添加林业来更改当前地图。到目前为止,我正在沿着从栅格中选择随机点的思路进行思考,以识别可能发生林业的区域,并使用某种细胞自动机来生长正确大小的块。 这似乎是解决此问题的最佳方法吗?有没有更好的方法? 如果这是最好的方法,那么我该如何在R中做到这一点呢?(我目前正在与CellularAutomata包一起查看“ spatstat”中的rpoints函数) 如果它们中有更简单的方法,我也可以访问GRASS,QGis和ArcMap 10。
12 raster  r 

1
R中的空间运算符?
如何在R中进行空间选择或过滤?我可以在PostGIS中使用(例如)执行此操作: SELECT * FROM mypoint, mypoly WHERE ST_Within(mypoint.geom, mypoly.geom); 同样,在大多数其他GIS软件中也是如此。所以我希望R中的内容看起来像: mypoint[within(mypoint, mypoly),] 但我在任何地方都找不到线索。我正在寻找一种使用PostGIS / GEOS / JTS / Shapely中常用的空间谓词术语(在内部,包含,相交,重叠,接触等; DWithin会很有价值)的东西。R是否存在此功能或库?如果不是,是否有相似之处? 注意:在R中,我将sp类用于我的对象(SpatialPointsDataFrame,等等)。

3
R或ArcGIS中的时空插值?
我正在尝试使用ArcGIS 9.3中的反加权距离工具从多个点计算平均降雨量。 我的问题是:每个点都有自己的时间序列,因此插值过程应该能够进行所有年份(可以说是迭代的一种)。 以下是样本属性表: ID X Y Name Rain1990 Rain1991 Rain1992 Rain1993 .... Rain2010 1 xx1 yy1 AA 1210 1189 1863 1269 ...... 2 xx2 yy2 BB 1492 1502 2187 1923 ...... ...... 有人可以告诉我该怎么做吗? 编辑1:我最终使用C ++代码完成了此操作,这需要ArcGIS遮罩网格,数据文件和所有点的位置。 编辑2:我最近使用R来执行此插值任务。您可以使用hydroTSM,gstat或spacetime包。以下是几个示例链接: http://spatial-analyst.net/wiki/index.php?title=Spatial_interpolation_exercises_%28NL%29 http://www.geostat-course.org/Topic_Bivand_2012 编辑3:在下面为以后的读者添加了一个工作示例

2
如何从R包SF组合SFC对象
使用R包sf,如何组合sfc对象?例如,给定以下代码,将如何创建包含来自和的几何的单个sfc对象?(应为2。)sfc12sfc1sfc2length(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 

2
R-创建一个边界框,转换为Polygon类并绘制
我有 NE lat lng和SW lat lng。我的目标很简单,我使用的是RStudio,我想从上述两个纬度和经度创建一个边界框,然后生成多边形,并想向正方形多边形添加随机点。我在CSV文件中包含NELat / Lng和SW-Lat / Lng,可以将其导入到data.frame中。 我只需要一点指导就可以开始使用,对于R语言来说我是非常陌生的人,它与我以前所使用的完全不同。 到目前为止,我有这个: coords = cbind(78.46801, 19.53407) coordsmax = cbind(78.83157, 19.74557 ) sp = SpatialPoints(coordsmax) sp2 = SpatialPoints(coords) r1 = rbind(coords, coordsmax[1, ]) # join P1 = Polygon(r1) Ps1 = Polygons(list(P1), ID = "a") plot(Ps1) 我只是在其他地方看到了一些示例,但无法绘制4个角的多边形。
11 r  rgdal 

5
如何下载MOD16(Modis Evapotranspiration)图像?
我使用“ R”脚本下载MODIS图像。但是,它不提供MOD16产品。我在Earthexplorer网站上都找不到MOD16产品。虽然可以从http://www.ntsg.umt.edu/project/mod16#data-product获得所需的产品,但是我找不到要下载的任何脚本。 有可用的脚本吗?或我需要单击每个图像进行下载。 例如,如果我想从一年中的每个月下载“ h02v08 ”图像,该怎么做?
11 qgis  r  remote-sensing  modis 

3
如何匿名化gps文件?
想象一下,从法律的角度来看,您有一个要匿名的GPS轨迹。你会怎么做?捕捉到最近的x距离并剥离时间是否足够?是否有国际认可的标准?有没有人已经写过算法来做到这一点?如果没有,我计划在不断发展的stplanr程序包中创建一个函数来执行此操作。 可重现的示例(使用来自@geospacedman的出色旋转功能)来自我自己的' Identifiable '数据: library(rgdal) library(tmap) downloader::download("https://www.openstreetmap.org/trace/1619756/data", "test.gpx") r <-readOGR(dsn = "test.gpx", layer = "tracks") r <- spTransform(r, CRS("+init=epsg:27700")) rproj <- rotateProj(rs, 90) # rotate projection for plotting r <- spTransform(r, rproj) rs <- rgeos::gSimplify(r, 1000) # snap to nearest km qtm(r) + qtm(rs, line.col = "red") + tm_layout(draw.frame = …
11 r  gps  gpx  simplify 

3
从多边形到连续测量多样性?
首先; 我试图找到一个类似的问题,但没有成功。也许是因为我对GIS还是很陌生,我真的不知道自己到底在寻找什么。如果有人指出我存在类似问题,我很乐意删除该帖子。 我需要为给定国家/地区创建人口连续性的“连续”或栅格(在小网格中)变量。我有一个shapefile,显示了族裔在多边形中的分布(图1),我要寻找的结果是每个行政单位(非盟,在这种情况下,是360个尼日利亚选区)。 图1.尼日利亚的人口组多边形 我想出的解决方案是获取每个AU中每个多边形的面积百分比,然后从中计算出异质性指数。但是问题是由于行政单位的分配,我会留下很多信息。如图所示。在图2中,正方形“ a”,“ b”和“ c”将具有相同的“偏析指数”,但很明显,它们与“热点”的位置不同。 图2。 因此,尽管我可以提出另一种解决方案,即创建一个栅格地图,并计算到最近边界的距离,但是再次共享一个边界与在地图的中央部分(这是几个小组一起生活)并不相同。 找到这个问题之后,我猜想多边形可以使用其质心转换为点,然后应用相同的方法。但事实是,我对此并不陌生,而这个问题并未得到明确回答。我该怎么做? 使用另一个示例,我想创建类似以下内容(此网站的图片): 给定一些具有不同定性特征的点的分布,从我可以估计每个行政单位的“平均异质性”的位置获取多样性的度量。 我该怎么办?我使用R和QGIS,所以我不介意在哪个平台上创建解决方案。
11 qgis  raster  polygon  r 

3
在世界许多地方,经纬度点绕1公里
我有数百个纬度长点分布在世界各地,并且必须在它们周围创建半径为1000米的圆多边形。我知道必须先将点从度数(经度)投影到具有米单位的东西,但是如何在不手动搜索和定义每个点的UTM区域的情况下做到这一点呢? 这是芬兰第一个重点。 library(sp) library(rgdal) library(rgeos) the.points.latlong <- data.frame( Country=c("Finland", "Canada", "Tanzania", "Bolivia", "France"), lat=c(63.293001, 54.239631, -2.855123, -13.795272, 48.603949), long=c(27.472918, -90.476303, 34.679950, -65.691146, 4.533465)) the.points.sp <- SpatialPointsDataFrame(the.points.latlong[, c("long", "lat")], data.frame(ID=seq(1:nrow(the.points.latlong))), proj4string=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")) the.points.projected <- spTransform(the.points.sp[1, ], CRS( "+init=epsg:32635" )) # Only first point (Finland) the.circles.projected <- gBuffer(the.points.projected, width=1000, byid=TRUE) plot(the.circles.projected) …

1
使用R的自然资源应用的多光谱图像分割
R具有图像分割的能力,尽管我遇到的所有示例都使用单个波段进行分割(示例)。我对将R的随机森林图像分类能力与面向对象的分割方法结合起来很感兴趣。 R对于适合基于自然资源的分析的多光谱图像分割具有什么功能?或如何链接单个波段分割的结果以进行进一步分析。

2
从1个像元/像素的种子在栅格中创建随机形状的像元细胞?
就像我的标题所说,我希望从栅格中的种子“生长”成簇的细胞。我的基本栅格充满1和0,1代表陆地,0代表海洋/北美地区。我希望从1开始选择60个随机像素/单元作为我的种子,然后随机生长一个预定义编号的连接簇。该种子的像素/单元数限制。我听说该技术可以称为“散布染料”,但运气不好。种子单元将被设置为2,然后从周围的1中选择的下一个单元也将被转换为2。这样2将无法在将来进行转换。 这个线程确实有所帮助,因为我也很愿意在R中做到这一点,因为我熟悉在R中读取和操作GIS数据。但是,我需要的是一组规则,以随机选择围绕现有簇的像素。 如果有人在GIS环境中完成了这种更基本的细胞自动机形式,那么我将不胜感激。 例: 我的目标是250个单元格。我随机选择一个值为1的单元。将其转换为值2。然后,将= 1的种子单元的邻居之一转换为2。然后,将任一单元的邻居之一转换为值2。选择具有2值的值并将其变为2。这将继续进行,直到达到编号250个单元的连续形状为止。 编辑:进一步的问题 基于whuber的出色回答,我对代码有一些疑问: 我如何才能将已成长的单元格的值分配给一个“ 2”,而不是代表它们创建顺序的变量值? 我需要在“ 1”区域内创建60个单元格块。我已经设计出一些方法来选择随机的起始位置,但是很难使用expand您编写的函数使其在一个循环中全部正常工作。您能建议一种创建60个彼此不冲突且包含在同一最终矩阵中的块的方法吗? 编辑:问题的进一步解释 每个群集单元代表一个定义大小的保护区域,例如250个单元。每个区域都必须开始并成长为值为1的像元,因为它代表陆地,而要避免值为0的像元,因为这代表海洋。我需要在每次迭代中对60个受保护区域进行迭代1000次以创建一个空模型,以显示这些区域的偶然分布。因此,在1000次迭代中,所有60个区域中的单元总数必须相同,因此具有可比性。因此,如果区域接触就可以了,但是如果发生碰撞,则理想情况下,团块会朝另一个可用方向增长,直到达到250个目标为止。 一旦创建了这1000个保护区网络中的每一个,它们都将被用作掩盖其他栅格数据(例如生物多样性措施)的遮罩,以查看(a)它们是否与特定物种范围相交以及(b)特定物种占这些随机网络的百分比保护区的覆盖范围。 到目前为止,感谢@whuber的帮助,我不希望您花费更多的时间来帮助我,但我想我会根据您的要求尝试澄清我的处境。

1
如何使用fortify()从shapefile创建过滤的R数据帧?
我正在建立ggplot威尔士行政区人口的总人口图。我已经从军械测量局下载了边界线数据,并提取了似乎正确的shapefile(community_ward_region.shp)。使用R,我已经读完shapefile。 require(maptools) shape <- readShapePoly(wards) str(shape) 这给了我这个有希望的输出: Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots ..@ data :'data.frame': 1690 obs. of 4 variables: .. ..$ NAME : Factor w/ 1507 levels "Abbey Cwmhir",..: 969 90 111 200 441 477 1455 249 255 305 ... .. ..$ DESCRIPTIO: Factor w/ 4 …
11 shapefile  r 

3
与多边形相交时,Rgeos会删除关联的值
我正在尝试将两个SpatialPolygonsDataFrames相交,并得到一个SpatialPolygonsDataFrame作为结果。不幸的是,使用gIntersectionfrom函数rgeos(该函数可以快速地与多边形相交),我似乎无法检索到关联的数据框。考虑以下示例: > fracPoly <- gIntersection( toSingle, fromSingle ) > class(toSingle) [1] "SpatialPolygonsDataFrame" > class(fromSingle) [1] "SpatialPolygonsDataFrame" > class(fracPoly) [1] "SpatialPolygons" 我可以编写一个包装函数来处理的传递data.frames,但是正确完成所有检查将是一个小小的麻烦,在我希望有人可以确认没有更好的方法或将我指向另一个函数(或选项)之前,这会是一个小麻烦。为gIntersection),这将使我保留关联的data.frames。 更新资料 经过进一步的思考,这可能是的非常刻意的行为gIntersection。毕竟,您传递了两个SPDF中的data.frame吗?因此,我可能必须编写一个将两者合并的包装器。


1
使用R从经纬线对中创建点组?
我有一个包含纬度/经度对的数据库,用于标识兴趣点的位置。我想将兴趣点分为10个组。该组在地理位置上应该准确地包含10个点。每个组应具有最小面积。 我已经看过R中的各种实现,但是它们(我都能看到)都不允许您指定确定的集群大小。 我之前曾问过将地图点分组为固定的簇大小吗?但是我认为我的问题不够准确,无法得到很好的答案。 从地理位置上讲 -我想我的意思是小组不应有太多重叠。在我的应用程序中(将人员分配到各个组进行监视),如果每个组的物理区域尽可能小,那将是理想的。 最小面积 -再次尝试将组面积保持为最小。我想这可以量化为将每个小组的面积保持在指定的阈值以下(避免数十个小团体和一个大团体)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.