Questions tagged «r»

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

1
如何在R中创建一个有吸引力的Choropleth贴图?
我一直在尝试使用R中的Choropleth映射技术,获得了ggplot2在功能强大的数据分析包中创建漂亮图形的好处。 当涉及到映射时,我无法产生与我通常从QGIS获得的结果相当的结果。使用Sheffield中的流数据(此处是完全可复制的数据和.qgs文件),QGIS轻松生成了以下内容: 使用R(使用此处描述的代码)可以产生的最好的效果是这两张地图,第一张使用GISTools,第二张使用ggplot2: 对我来说,如果只能解决行错误的问题(可能是fortify()命令有问题,或者不使用此处介绍的readOGR()读取shapefile),则ggplot2选项似乎更具吸引力。 所以问题是两方面的:ggplot2选项是R中最佳的Choropleth映射解决方案吗?如果是的话,我该如何解决白线错误的问题? 找出我所做的可复制代码在这里。 编辑-由于使choropleth()输出选项更具吸引力: 可以通过以更高的分辨率导出并删除图例来减少此选项的丑陋性(其他R图例可用)。仍然无法改变线的粗细,但它越来越好了!红线代表流向雇用超过5000名员工的区域。
18 r  thematic-map 

3
如何在R中泛化SpatialPolygons和守恒拓扑?
我想对SpatialPolygonsDataFrame R中的A进行泛化,以使绘图更加有效。我所产生的多边形会产生大量的pdf图,这些图加载缓慢且难以集成到文档中。 我尝试使用程序包中的gSimplify函数rgeos,但不幸的是,它不能保存多边形的拓扑。 有没有我可以使用的替代方法?

4
使用“ ESRI Shapefile”驱动程序时如何从缩写字段名称中停止writeOGR
我目前正在使用以下脚本将表中的某些属性数据添加到很多单独的shapefile中: library(rgdal) specieslist <- read.csv("SpeciesList1.txt", header=F) attdata <- read.table("TestAtt.csv", sep = ",", header=T) for (n in 1:dim(specieslist)[1]) { speciesname <- specieslist[n,1] shp <- readOGR("Mesoamerica_modified_polygons", speciesname) shp$ENGL_NAME<-attdata[n,2] writeOGR(shp, "PolygonsV2", speciesname, driver="ESRI Shapefile") } 最后我得到以下警告: 1: In writeOGR(shp, "PolygonsV2", speciesname, driver = "ESRI Shapefile") : Field names abbreviated for ESRI Shapefile driver …

1
带自定义json的rMaps choropleth
想要使用RI制作带有包和自定义贴图的动画ChoroplethrMaps贴图。我尝试遵循此处描述的Diego Valle的示例,并为Datamaps使用自定义地图信息。 但是,地图不会显示。但是,带有正确填充键的图例随年份动画栏出现。topoJson文件似乎很好。 library(rCharts);library(rMaps);library(rgdal) map = readOGR("https://raw.githubusercontent.com/gupierre/GHA_vol/master/Data/GHA_adm/GHA_adm1.topo.json", layer="admin_1",stringsAsFactors=F) #Data: SDLOG<-read.table("https://raw.githubusercontent.com/gupierre/GHA_vol/master/Data/sdlog.csv", header=T,stringsAsFactors=F, sep =",") head(SDLOG) year name sdlog type >1 2004 Greater Accra 0.20030687 urban >2 2005 Greater Accra 0.15322712 urban >3 2006 Greater Accra 0.10782677 urban #Map: library(rCharts);library(rMaps) d1 <- ichoropleth(sdlog ~ name, data = SDLOG[SDLOG$type=="rural",], ncuts = 7, pal …
17 r  topojson  choropleth 

6
如何在SpatialPointsDataFrame上覆盖多边形并保留SPDF数据?
我有SpatialPointsDataFrame一些其他数据。我想提取多边形内的那些点,同时保留SPDF对象及其对应的数据。 到目前为止,我运气不佳,只能通过一个通用ID进行匹配和合并,但这只能工作,因为我已经使用单个IDS对数据进行了网格划分。 这是一个简单的示例,我正在寻找红场内的点。 library(sp) set.seed(357) pts <- data.frame(x = rnorm(100), y = rnorm(100), var1 = runif(100), var2 = sample(letters, 100, replace = TRUE)) coordinates(pts) <- ~ x + y class(pts) plot(pts) axis(1); axis(2) ply <- matrix(c(-1,-1, 1,-1, 1,1, -1,1, -1,-1), ncol = 2, byrow = TRUE) ply <- SpatialPolygons(list(Polygons(list(Polygon(ply)), ID …
17 r  overlay 

1
使用QGIS和pgRouting在最佳人行道上进行蒙特卡洛模拟
我是空间分析的新手,不胜感激我正在尝试的一个项目的总体指导,概述如下(我从头开始)。 目标:在我的家乡寻找在2000英尺长的人行道上安装最佳位置的位置,以便将最多的家庭与中央商务区(CBD)连接,此处的“连接”意味着距CBD的步行距离为1.2英里。我有shapefile,其中显示了现有的结构(房屋),道路和人行道(已安装)。 这是我建议的解决方案/思考过程: 将就地人行道网络转换为通过权重(即距离)连接的节点的数据库。是否可以通过单击所有路口在QGIS(或其他程序)中直接执行此操作? 使用pgRouting或其他路由功能计算距离中央商务区1.2英里(例如,经纬度或多边形)步行距离内的家庭数。这将是基本情况下的“家庭访问”值。 使用路层作为指导,将另外2000英尺(例如10英尺长)的人行道随机放置到人行道层上。这相当于任意构造一堆新的人行道。 使用(1)中的新行人网络重新计算节点和权重,然后使用(2)重新计算现在距离CBD 1.2英里以内的住户数量。它应该随着人行道的增加而增加。将其他人行道的位置和关联的“家庭访问”值保存到文件(例如电子表格)中。 重复步骤(3)和(4)10000次,类似于Monte Carlo模拟。使用10000个数据点集,选择人行道放置位置,以在距CBD 1.2英里范围内的住户数量最大化。 这种思考过程听起来是否现实?有没有人有什么建议? -我想使用QGIS和R的某种组合来实现这一点,但是我愿意学习PostGIS和/或Python(或其他任何东西)以实现目标。

6
当前地统计分析类/事件的来源是什么:公开或专有
这篇文章是社区维基。编辑现有答案以改善此职位。它当前不接受新的答案。 我对地理统计非常感兴趣(还有3 t的其他词:)。 我不太喜欢编程,但是一直关注此主题的一些清单。 一种是用于stackexchange的R过滤器(我偶尔在那收到问题的摘要电子邮件)。 我发现通常有一种与统计数据相关的极为复杂的语言。 我从外行的角度学习这种语言的含义,以及如何将其应用于日常GIS。 请列出有关地统计学知识/理解的所有当前来源。 这是有用信息的示例... 培训在线旅行 机会 编辑:根据请求;我喜欢在线培训,但可以在课堂上或通过逐步的书(或pdf)获得更多信息。
17 r  training 

3
合并R中的空间多边形对象列表
我有一个使用该函数构建的空间缓冲区(30000个缓冲区)列表lapply: buff.pts <- lapply(1:nrow(pts.prj), FUN=function(l){ buff <- gBuffer(pts.prj[l,], width=1000) ## 1km return(buff) })) > head(buff.pts) [[1]] class : SpatialPolygons features : 1 extent : 307941.8, 311941.8, 4994518, 4998518 (xmin, xmax, ymin, ymax) coord. ref. : +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs +towgs84=0,0,0 [[2]] class : SpatialPolygons …
16 polygon  r  sp  rgeos 

1
如何在R中将CRS分配给RasterLayer
我有一层coord. ref. : NA。 我该如何分配coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0给coord. ref. : NA? class : RasterLayer dimensions : 127, 146, 18542 (nrow, ncol, ncell) resolution : 0.01, 0.01 (x, y) extent : -122.39, -120.93, 36.72, 37.99 (xmin, xmax, ymin, ymax) coord. ref. : NA data source : C:\2012Tif\2012ASC5min_ppt_spas1306_0001_20121222_0005_UTC.asc.tif …

2
如何使用R中的多边形图层执行多边形图层的真实GIS剪辑?
我想使用一系列单边界多边形在土壤多边形的R中创建一个真正的GIS剪辑,但是我找不到能够正确执行此操作的R函数。它应该像clipESRI的ArcMap中的功能一样工作。我已经尝试过该over方法在sp包中,但它似乎不适用于多边形而不是多边形。 一种建议是使用以下代码将gIntersectionin rgeos包用作剪辑: #------------------------------------ library(rgeos) library(maptools) #Read layers as SpatialPolygonsDataFrame (both the same Albers projection) Soils_poly = readShapePoly("Soils_polygons") #Note - Has 400 polygons clipper_poly = readShapePoly("clipper_polygon") #Note - Has 1 polygon #Try gintersection as clip Clipped_polys = gIntersection(Clipper_Tile_poly, Soils_poly) #----------------------------------- 这需要5分钟才能运行(速度太慢),并且会出现以下错误: RGEOSBinTopoFunc中的错误(spgeom1,spgeom2,byid,id,drop_not_poly,“ rgeos_intersection”):TopologyException:在-721459.77681285271 2009506.5980877089中找不到传出的dirEdge 我还尝试了以下代码来检查是否重叠: gIntersects(Clipper_Tile_poly, Soils_poly) 结果为TRUE。clipESRI ArcMap中的函数对此数据可以正常工作。 有人知道R函数可以使用空间多边形对空间多边形进行适当的剪辑吗?
16 r  polygon  layers  vector  clip 

2
需要一个可以被QGIS和R使用的空间数据库
我对QGIS还是很陌生,我正在寻找一种创建数据库的简单方法,该数据库允许我使用QGIS和R中的表。我将许多数据存储在Excel电子表格中,这些数据将用于统计分析在R中 我的任务更加详细:我的第一个任务是通过将表连接到shapefile来可视化数据。其次,我想在QGIS中使用shapefile进行一些空间转换,并在统计分析中使用新创建的数据。因此,我将不得不将此数据添加到我的数据库中。 最后但并非最不重要的一点是,我不会确保数据以良好的方式存储,以备将来在QGIS和R中使用,因为该数据库将在其他上下文中使用。 一些人向我表示MS Access是这样做的好方法。谁能给我一些建议?也许还有文学之类的东西。

7
从开源GIS解决方案中的多边形叠加层获取栅格值
我有两层。包含许多图块的多边形形状层和包含CORINE 2006土地覆盖物的栅格层,并在色图中包含许多类别。我想为shapelayer中的每个多边形获取栅格图层的每个土地覆盖类别的总和。 例如,有一个ID为'2'的多边形,我要为此多边形设置这样的属性(以百分比或平方米为单位): 耕地:15% 森林:11% 街道:2%(...等等) 我试图在草,qgis(无功能),saga(将每个总和求和成一个总值)r(总和)中做到这一点,但我仍然没有找到解决方案。大多数插件(qgis中的区域统计信息)仅支持0-1栅格图层。v.rast.stats也没有帮助。Iam接受任何优秀而明智的解决方案!也许我什至使用了错误的方法或犯了错误。 如果记得正确的话,在Arcgis中,此任务非常容易,但是对于您的日常linux用户,我仍然缺少一个好的解决方案。 我正在运行一个debian linux系统,这就是为什么我只能为此操作系统使用程序的原因。 编辑:因为这个问题仍然有这么多的视图和访问者:我写了一个QGIS插件,它也能够计算栅格图层的土地覆盖。我还没有编写多边形叠加层的代码,但是它确实经过了规划。在此处找到插件,然后首先安装Scipy库。
16 qgis  raster  polygon  r  statistics 

1
等价于sp包在多边形中的点/使用sf覆盖
我正在将代码从sp包迁移到较新的sf包。我之前的代码中有一个多边形SpatialDataFrame(censimentoMap)和一个SpatialPointDataFrame(indirizzi.sp),并使用下面的指令获取了放置在其中的每个点的多边形单元格ID(“ Cell110”): points.data <- over(indirizzi.sp, censimentoMap[,"Cell110"]) 实际上,我创建了两个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 


4
在R中将osm文件转换为shapefile(或数据框)
我今天在寻找澳大利亚的道路形状文件。我最终去了Geofabrik。Open Street Map具有.osm格式的数据。但是他们没有一个.shp适合澳大利亚。 如果可能的话,我想将osm文件转换为shapefiles使用R。我已经搜索过,但是还没有找到解决方案。有什么办法吗?另外,是否可以将osm文件读入R并将数据转换为数据帧,以便我可以使用绘制图形ggplot2? 我通过使用带有maptools和的两个shapefile实现了NZ的以下图形ggplot2。理想情况下,我想制作一张类似的澳大利亚地图。

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.