Questions tagged «r»

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

1
将栅格从纬度/经度重新投影到R中的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 …

1
使用核密度计算R中的道路密度?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我有一个很大的道路图形文件(约70MB),并希望将其转换为每个单元格中具有道路密度的栅格。理想情况下,如有必要,我想在R中与GDAL命令行工具一起使用。 我最初的方法是按照此线程直接计算每个单元格中线段的长度。这样可以产生所需的结果,但是即使对于比我的小得多的shapefile也非常慢。这是一个非常简单的示例,其正确的单元格值显而易见: 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中的Polygon shapefile从栅格中提取栅格
我是R的新手,正在使用raster包。我从现有栅格文件中提取多边形时遇到问题。如果我用 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相同。你能告诉我这里有什么问题吗?裁剪功能创建另一个栅格而不是列表是否正确? 编辑:range()函数不适用于我。我仍然遇到相同的错误。但是我确信这两个数据集会重叠!随着 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
通过ID在R中子集一个SpatialPolygonsDataFrame?
我使用了包中的gIntersect函数rgeos来确定两个SpatialPolygonsDataFrames(spdfs)中哪些多边形相交。结果是一个逻辑矩阵,其行名包含sfdf#1中的多边形ID,并使用spdf#2中的多边形ID同名。我想使用此矩阵将两个原始spdf分为子集,然后在使用function之前省略那些没有重叠的多边形gIntersection。我可以轻松地将逻辑矩阵转换为两个ID向量(每个spdf一个),这些向量表示那些至少具有一定重叠的多边形。 我的问题是-我可以使用多边形ID的向量来包含spdf吗?如果是这样,它将正确地对@data插槽中的值进行子集化吗?我知道我通常可以使用以下语法对spdf进行子集化: spdf[spdf@data$myVariable[someVector], ] 这对于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(1,1)而不是c(5,5),则只能计算右下角的新值。因此,预期结果将是: [,1] [,2] [,3] [1,] NA NA NA [2,] …
12 raster  r  adjacency 

2
使用gSimplify简化了带有空间多边形的writeOGR
我正在使用gSimplify(rgeos包)来简化shapefile的几何形状。该功能运行良好,但现在我无法在新的shapefile中写入输出。我尝试了一些方法: 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插槽仅包含逻辑(0)而不包含实际值?
试图弄清楚为什么,当我在读取NDVI栅格时,@ data @ values插槽不包含实际值,除非手动设置它们。例如: NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84") NDVI@data@values ## returns: logical(0) 使用相同方法加载的其他栅格并没有发生这种情况,因此感到困惑。我希望我可以更具体一些,但我不记得之前做过任何不同的事情。使用以下命令手动获取值很容易: NDVI1@data@values <- getValues(NDVI19east) 但是,对于每个文件都必须这样做。因此,分为两部分: 为什么首先发生这种情况?我知道这可能与栅格文件的存储方式有关(即是否存储在内存中),但是我真的不明白这将如何改变我应该使用的访问数据的方法... 是否有一种方法可以自动执行此过程(也许使用类似于lapply的方法)以将文件读取为RasterLayers并访问这些文件的值?我目前的项目涉及一次读取6-10个文件以获取NDVI,降雨和其他环境变量,以将它们组合并执行一些加权叠加。自动化导入数据的过程将很有帮助。
12 raster  r  memory 

2
汇总r中的值时,空间多边形%over%多边形如何工作?
我正在进行一个环境流行病学项目,该项目中我有接触点(约2000头工业猪操作-IHO)。这些IHO喷洒在附近的田地上,但粪便中的水滴和气味可能传播数英里。因此,这些点曝光获得了3mi的缓冲区,我想知道每个NC人口普查区块的IHO曝光数量(各种-粪便量,猪的数量之和;最简单的,只是重叠曝光缓冲区的数量) (〜200,000)。排除人口普查区(蓝色)是(1)在人口最多的前5个城市中的任何事物,以及(2)不与县内有IHO接壤的县(注:这是使用gRelate函数和DE-9IM代码完成的-非常光滑!)。见下图可见 最后一步是将缓冲的曝光量表示汇总到每个人口普查区块。这就是我感到难过的地方。 到目前为止,我在sp程序包中使用%over%函数已经过得很愉快,但是从过分的插图中了解到poly-poly和poly-line over是在rgeos中实现的。该小插图仅涵盖线型多边形和自引用多边形,而不涉及聚合,因此,对于具有函数聚合(例如求和或均值)的多边形的选择,我有些困惑。 对于测试用例,请考虑以下使用世界国家边界文件的冗长代码段。这应该能够被复制出来并按原样运行,因为我为这些点使用了随机种子,并且由于我正在代码中下载和解压缩世界文件。 首先,我们创建100个点,然后将over函数与fn参数一起使用以在数据框中添加元素。这里有很多要点,但请看一下澳大利亚:3分,标号3。到目前为止,一切都很好。 现在,我们变换几何形状,以便我们可以创建缓冲区,向后变换并映射这些缓冲区。(包括在以前的地图中,因为我仅限于两个链接。)我们想知道每个国家/地区重叠了多少缓冲区-以澳大利亚为例,这是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: …

2
在R中的地图上进行点过度绘图(例如,使用ggplot2)-如何将点推到侧面,标记原始位置,合并附近的点……?
我有一个包含语言,其经度和纬度以及特征值(类别1,类别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个要素的区域性街道图层,并在所有要素之间循环,然后以最短的距离进行操作所有点将花费大量时间 我在使GRASS在QGIS 2.0.1中工作时遇到问题(QGIS中的GRASS无法工作(Windows XP))。
12 qgis  python  r  distance 


2
在R中的shapefile中删除行
我已将shapefile导入R,并将其加入到表中。我的shapefile包含所有人口普查ID,而我的表仅包含选定的人口普查ID。我现在正在尝试删除所有未匹配的行。 这是我的数据集的样子(我正在尝试删除所有带有NA的行,因此需要删除最后两行): 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") 不工作 要使用的文件名的正确“形式”是什么,或者,我是否需要将所有文件地理数据库表导出到其他形式或位置?



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.