Questions tagged «r»

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

1
R加强造成多边形撕裂
我在使用ggplot2绘制空间数据时遇到了一些麻烦。使用spplot绘制地图时,地图看起来不错,因此我假设撕裂发生在强化阶段。 代码如下: #install the packages library(rgdal) library(mapproj) library(raster) library(rgeos) library(ggplot2) library(plyr) if (!require(gpclib)) install.packages("gpclib", type="source") gpclibPermit() setwd("C:/Users/My Documents") #read in laa to regional mapping #must aggregate to higher level regions as data is provided at this higher level laa_region_mapping <- read.csv("laa_region.csv", header = TRUE) #read in LAA polygons laa_polygons <- …
10 r  ggplot2  rgeos 

2
R中kmeans的无监督分类
我有一个按时间顺序排列的卫星图像(5个波段),并想按R中的kmeans对其进行分类。我的脚本运行良好(循环浏览我的图像,将图像转换为data.frame,将它们聚类,然后将其转换回一个栅格): for (n in files) { image <- stack(n) image <- clip(image,subset) ###classify raster image.df <- as.data.frame(image) cluster.image <- kmeans(na.omit(image.df), 10, iter.max = 10, nstart = 25) ### kmeans, with 10 clusters #add back NAs using the NAs in band 1 (identic NA positions in all bands), see http://stackoverflow.com/questions/12006366/add-back-nas-after-removing-them/12006502#12006502 image.df.factor …
10 r  classification 

1
如何使用R将颜色分配给特定的栅格值
我正在使用levelplot超赞rasterVis包的功能来创建一个地图,其值在零附近变化。我正在使用红色到蓝色调色板绘制栅格文件,但是我试图在地图中将灰色分配为零值。 具体来说,我想复制此图的颜色: 请注意,这里使用的是红色到蓝色的比例,但零值已用灰色上色。 目前,我的地图如下所示: 这是再现它的代码(文件可在https://www.dropbox.com/s/cypfdu1eaz2fuok/r.annual.tif?dl=0上获得): # Load required packages library(rasterVis) # open file r.annual <- raster("Downloads/r.annual.tif") # Set color palette myTheme=rasterTheme(region=brewer.pal('RdBu', n=11)) # Plot levelplot(annual.mask, par.settings=myTheme, margin=F) 如何在上面的地图中为所有零值分配灰度?

1
使用R从WorldClim中提取数据?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为地理信息系统堆栈交换的主题。 9个月前关闭。 我有一个具有1000个不同纬度-经度的数据集。我希望针对这些坐标分别提取年平均气温和年降水量。这些数据可以很容易地从WorldClim获得并使用DIVA-GIS处理。 反正有在R上执行此操作吗? 我希望我的最终输出是一个数据帧,其中包含每个坐标的年温度和降水量。我是R中的GIS的新手,因此我寻求基本的代码块以及此输出所需的库。
9 r  climate  extract 

1
使用R处理向量以更快地栅格化
我正在将向量转换为R中的栅格。但是,过程太长了。是否可以将脚本放入多线程或GPU处理中以使其更快地执行? 我的脚本栅格化矢量。 r.raster = raster() extent(r.raster) = extent(setor) #definindo o extent do raster res(r.raster) = 10 #definindo o tamanho do pixel setor.r = rasterize(setor, r.raster, 'dens_imov') 光栅 类:RasterLayer尺寸:9636、11476、110582736(nrow,ncol,ncell)分辨率:10、10(x,y)范围:505755、620515、8555542、8651792(xmin,xmax,ymin,ymax)坐标。参考 :+ proj = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0 设定者 类:SpatialPolygonsDataFrame功能:5419范围:505755,620515.4,8555429,8651792(xmin,xmax,ymin,ymax)坐标。参考 :+ proj = utm …

2
ggmap:从shapefile绘制多边形
使用ggmap,我想在包含一些位置点的地图上包括来自shapefile的市政边界(多边形)。除了绘制多边形外,此脚本会执行所有操作: library(rgdal) library(ggmap) # Get shapefile with Drammen municipality borders tmpzip<-tempfile() tmpdir<-tempfile() dir.create(tmpdir) download.file("http://www.kartverket.no/Documents/Kart/N50-N5000%20Kartdata/33_N5000_shape.zip",tmpzip) unzip(tmpzip, exdir=tmpdir) kommune <- readOGR(dsn=tmpdir, layer="NO_AdminOmrader_pol") kommune<-kommune[kommune$NAVN=="Drammen",] kommune<-spTransform(kommune, CRS("+init=epsg:4326")) # Get location point data subscr<-data.frame(lon=c(10.1237,10.2161,10.2993),lat=c(59.7567,59.7527,59.6863), pop=c(58,12,150)) coordinates(subscr)<-~lon+lat proj4string(subscr)<-CRS("+init=epsg:4326") lon <- c(10.0937,10.3293) lat <- c(59.7916,59.6563) map <- get_map(location = c(lon[1], lat[2], lon[2], lat[1]), maptype = "roadmap", source …
9 shapefile  r  ggmap 

1
减少R中图例项之间的距离?
我正在尝试choropleth()使用GISTools包在R中创建正确的地图。我choro.legend()用来显示我的图例。但是我无法创建正确的图例位置,并且/或者我不了解fmt参数在choro.legend()函数中的作用。在我看来,fmt可以减少我的图例颜色和描述之间的空间。 我发现choro.legend帮助页面显示fmt为“上述choropleth类限制中所述值的C样式格式”。 因此,这应该仅与我的类值一起使用,而不是由图例项本身之间的距离决定? 或者这是人类可以理解的含义? 如何缩小我choro.legend()的商品之间的距离? choropleth(my.shp, nc.lI[,1], shading = income.shade) choro.legend(-12919698, 5314317,income.shade,title='My title',cex=0.8, bty = "n", fmt = "%0.1f")
9 r  legend  choropleth 

3
在二进制栅格中创建大量随机点?
我想在二进制栅格中创建10000个点(或更大点)的点矢量数据集,该点应限制在栅格值为1的区域中。 我尝试了以下步骤。 多边形栅格化 QGIS:矢量->研究工具->随机点 这可以正常工作到2000点,但是任何以上都会导致QGIS崩溃。 有没有一种方法来创建具有大量点特征且受二进制栅格(或其多边形化版本)约束的矢量数据集? 我可以使用以下工具,从最不喜欢到最不受欢迎:QGIS,Python,R,ArcGIS 这就是我要的,只有10倍的点特征。

1
如何从数据框创建SpatialLinesDataFrame?
我已经在R中创建了一个data.frame。我想获得SpatialLinesDataFrame的结果,所以我理解我必须将data.frame转换为线,将线转换为SpatialLines,将SpatialLines转换为SpatialLinesDataFrame。我做了这个 filedata.frame=data.frame(matrix(file),ncol=14, byrow=T)) file=Lines(filedata.frame) 我得到了我想要的data.frame,但没有得到线。我确定这是基础知识,但是为什么我不能理解?
9 r  line 

1
gdalwarp和projectRaster之间的区别
我正在尝试投影栅格。在R中有对此projectRaster()功能(在一个完全可复制的示例下面): # example Raster require(raster) r <- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, ncols=40, nrows=40) r <- setValues(r, 1:ncell(r)) projection(r) # project to newproj <- "+init=epsg:4714" # using raster package to reproject pr1 <- projectRaster(r, crs = CRS(newproj), method = 'bilinear') 哪个工作正常。但是,它很慢。 为了提高速度,我还是gdalwarp改用了(使用SSD时,从磁盘/ R读写数据的成本不是很高)。 但是,我无法重现projectRaster()使用的结果gdalwarp: # using gdalwarp to reproject tf <- …

1
如何将* .adf文件读入R?
我要将.adf文件加载到R中。数据来自以下页面:http : //www.fao.org/geonetwork/srv/en/metadata.show?id= 14057 我尝试了以下代码,这些代码是在互联网上进行一些研究后发现的。问题是,在RasterLayer类中,我得到了不应该存在的负值。我不知道为什么会这样,所以希望有人可以帮助我! 码: library(rgdal) library(RColorBrewer) dpath<- path... x <- new("GDALReadOnlyDataset", dpath) getDriver(x) getDriverLongName(getDriver(x)) xx<-asSGDF_GROD(x) r <- raster(xx) “ r”的输出为: r类:RasterLayer尺寸:2160、4320、9331200(nrow,ncol,ncell)分辨率:0.08333333、0.08333333(x,y)范围:-180、180,-90、90(xmin,xmax,ymin,ymax)坐标。参考 :+ proj = longlat + ellps = WGS84 + towgs84 = 0,0,0,0,0,0,0 + no_defs数据源:在内存名称中:band1值:-997,16(min,max) 值中的“ 16”表示生长期长度的16类。但是我不知道那些“ -997”来自哪里。坐标可能有问题。参考? 这也是“ xx”的数据摘要: 数据摘要:最小值 第一区 中位数第三区 最高 不适用-997 3 5 -9 …

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
是否在R中导入多个堆叠的栅格图像?
我想从指示的文件夹中导入所有多个镶嵌栅格(每个镶嵌由7层组成)到我的R中。然后将它们作为单个多层栅格进行访问。 所以我做了: # read all mosaics named "mos....img" in R raster_data<-list.files(path=getwd(), pattern="mos.*.img$") # read files as rasters s <- stack(raster_data) # check my imported rasters p.ex. raster n°8 from "s" raster stack s[[8]] 而我的栅格s [[8]]仅包含1层,因此未导入整个镶嵌! nlayers(s[[8]]) [[1]] 如果我分别阅读每个镶嵌图,它将起作用: # read 1 mosaic (composed by 7 bands) mosaic1<-brick("mosaic1.img") # extract one …

3
如何测量SpatialLines对象的相似性
我SpatialLines在R:中创建了两个对象。 这些对象是通过以下方式创建的: library(sp) xy <- cbind(x,y) xy.sp = sp::SpatialPoints(xy) spl1 <- sp::SpatialLines(list(Lines(Line(xy.sp), ID="a"))) 现在,我想以某种方式得出结论,这是旋转和翻转的同一条线,并且它们之间的差等于0(即形状相等)。 为此,可以使用maptools包装并旋转第1行,例如: spl180 <- maptools::elide(spl1, rotate=180) 然后必须使用rgeos包装将每条旋转的线与2号线进行比较,例如: hdist <- rgeos::gDistance(spl180, spl2, byid=FALSE, hausdorff=TRUE) 但是,这是计算SpatialLines对象匹配的昂贵方法,尤其是在对象数约为1000的情况下。 有什么聪明的方法可以完成这项工作吗? PS此外,上述方法不能保证所有可能的旋转和翻转。 P.S2。如果#1线相对于#2缩小,则#1和#2之间的差必须仍等于0。 更新:

1
将R中的readShapePoly坐标转换为经纬度坐标
我正在尝试为丹麦市政当局查找shapefile的质心,然后找到它们之间的行驶时间。我使用R的readShapePoly从功能maptools与组合gCentroid,从功能rgeos,和一切正常。但是,我得到诸如 SpatialPoints: x y 1 571860.7 6225016 Coordinate Reference System (CRS) arguments: NA 我显然不能在Google中使用这来获取旅行时间。我正在寻找一种将这些数字转换为经度-纬度的方法,但不知道如何。 当我readOGR从rgdal库中读取数据时,我得到了相同的坐标,但是它告诉我以下有关我假设是投影的信息(但是坐标是相同的) Slot "proj4string": CRS arguments: +proj=utm +zone=32 +ellps=intl +units=m +no_defs 可重现的示例:我将示例的数据放在这里:https : //github.com/sebastianbarfort/shapefiles 这应该重现该问题: library(maptools) library(rgdal) library(rgeos) map = readShapePoly("~/Downloads/shapefiles-master/kommuner1983.shp") centroid = gCentroid(map) centroid

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.