Questions tagged «r»

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

1
限制光栅包在R中使用的内存?
将raster软件包使用的内存限制R为5GB RAM 的最简单方法是什么? 理想情况下,我希望将超出此大小的所有栅格写入硬盘驱动器并从临时文件进行分析。 我正在使用Windows 7(64位)和R版本3.0.3。 这是我在具有16GB RAM的计算机上使用的一些代码,但是在我处理大型栅格时,它一直保持最大值: require(raster) memory.limit(size = 5000) rasterOptions(format="GTiff",overwrite=TRUE,datatype="INT1S", tmpdir="C:/Research/BIN",tmptime=1.1,progress="text",chunksize=1000, maxmemory=1000) rasterTmpFile("delete_me_") r <- raster("myraster.tif") r[r==0] <- NA 正是在脚本的此阶段,RAM使用量增加到全部16GB,然后停止工作并取消了该功能。 我需要在这里更改什么?
10 raster  r  memory 

2
R中的镶嵌栅格?
我正在尝试将多个栅格镶嵌到R中的单个大栅格中。使用在/programming/15287807/how-can-i-create-raster-mosaic-using-list-of-rasters中发布的脚本 但是,我收到了警告消息和错误消息。 rasters1 <- list.files("F:\\MOD15A2_LAI_1km\\MOD15A2_LAI_2009", pattern = "mod15a2.a2009001.*.005.*.img$", full.names = TRUE, recursive = TRUE) mos1 <-mosaic(rasters1, fun=mean) 它报告错误如下 Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘extent’ for signature ‘"character"’ 然后我尝试了另一个版本。 rasters1.mosaicargs <- rasters1 rasters1.mosaicargs$fun <- mean 但是这里有一些警告信息如下 Warning message: In rasters1.mosaicargs$fun <- …
10 raster  r  mosaic 

2
帮助选择最合适的双变量拟色映射着色方案
我正在尝试在数值变量的覆盖范围内覆盖名义变量(2类-雨育vs灌溉)。 为了突出两种类别在样式上的差异,我概述了一种具有不同颜色的类别(灌溉区域为“红色”),而未着色的类别为雨养区域。 但是,地图感觉很混乱,轮廓与数字变量的较深阴影混合在一起。 我试图避免使用两种不同的颜色着色方案来表示两个类别,因为我认为这会隐藏基础变量的整体分布。 有没有更好的方法可以使用R中的ggplots2包来表示这种双变量分类(我目前正在使用它来制作所附的图)? 这些地图最终将被打印在纸上。

3
防止栅格中的反射面
我一直在尝试使用ESRI ASCII网格栅格格式的数字地形模型文件。尽管对这种类型的数据有零经验,但我发现按以下代码非常容易将其加载到R中。包中的plot3D函数rasterVis默认为漂亮的图,但模型相当反射。考虑到它应该是风景,所以这种光亮的表面并不是真的合适。 我正在寻找更自然的(如果可以将这样的词用于一组图形的3D渲染),无光,拓扑图。 我想一定有办法解决这个问题,但是我没有使用raster和寻求经验的经验。 如何减少或消除图的反射率? library(raster) library(rgdal) library(rasterVis) foo <- raster(readGDAL("my.dtm.asc")) plot3D(foo)
10 raster  r  dem  visualisation  color 

1
时空接近
我有一些点数据,这些数据代表动物的每日经纬度位置以及相关的时间戳。 我想找出STATIONARY = TRUE的所有点。如果某个点周围100公里的缓冲区与其他(例如)5个时间相邻 点重叠,则该点为固定点。因此,如果第10天是我的关注点,那么我想问一下,在时间上相隔5天是否在该点的100公里范围内。如果第5、6、7、8和9天;或第11、12、13、14和15天;或第8、9、11、12、13天(等等)在缓冲区内,则STATIONARY = TRUE。但是,如果第5、7、9、11和13天在缓冲区内,但间隔之间不是隔天(偶数)天,则STATIONARY = FALSE 我认为某种移动窗口缓冲区将提供解决方案,但我不知道该如何实现。 我一直试图在ArcGIS和R中解决这个问题,但是到目前为止还没有脑筋。这是我最接近解决方案的方法,但是它并不适合,我不认为:标识指定缓冲区中的连续点 这是一些虚拟数据,近似于我的数据结构(尽管实际上我每天有两次位置(中午和午夜),但缺少一些位置-但稍后会担心) x<-seq(0,15,length.out=20) y<-seq(10,-10,length.out=20) t<-seq(as.POSIXct('2013-07-01'), length.out = 20, by = "days") data<-data.frame(cbind(x,y,t=as.data.frame.POSIXct(t))) x y t 1 0.0000000 10.0000000 2013-07-01 2 0.7894737 8.9473684 2013-07-02 3 1.5789474 7.8947368 2013-07-03 4 2.3684211 6.8421053 2013-07-04 5 3.1578947 5.7894737 2013-07-05 6 3.9473684 4.7368421 2013-07-06 7 …

1
如何找到用户从给定位置(点)和方向(角度范围)可以看到的建筑物(多边形)?
我想检索从给定位置(点-lat,lng)和方向(角度间隔)+当然可以给定深度(例如100米)看到的一组建筑物。理想情况下,我希望输出如下内容:从角度1到angle2,用户可以看到建筑物1,从角度2到angle3,我们可以看到建筑物2。 数据=在shapefile中代表城市建筑物的多边形。 输入:代表一个人的视觉感知的位置和方向(角度范围)。 输出: 版本1-{BuildingID} 版本2(更好)的列表-{BuildingID,每个建筑物(建筑物的立面)可见段的集合} 的列表版本3(理想输出)-{buildingID,角度范围的列表}。(例如,从角度1到angle2,用户可以看到建筑物1,从角度2到angle3,我们看到建筑物2,依此类推。) 我可以使用的工具箱:PostGis,QGis,ruby,R 输出v1解决方案的开始: -创建一个三角形,代表给定点和方向(角度的间隔)并具有一定的半径/深度(例如100米)的用户的简化视觉范围 -计算与建筑物的交点(例如ST_INTERSECTION )和视觉范围。但是建筑物可以隐藏另一座建筑物,因此视觉范围和建筑物之间的纯交集可能不会添加可见建筑物。这个问题需要解决。 更新:潜在解决方案2- 创建一个三角形,代表给定点和方向(角度的间隔)并具有一定的半径/深度(例如100米)的用户的简化视觉范围-创建不同角度的n条光线(LINE)填补范围。 -将所有建筑物(POLYGONS)转换为SEGMENTS / LINES- 为每条射线找到最接近的SEGMENT和相关buildingID。(ST_DISTANCE,ST_DWithin) 在这个阶段,因此我们应该具有光线列表和相关的建筑物ID。 -然后我们可以汇总此列表{角度范围,相关建筑物ID}。 关于更有效的方法有什么想法吗?
10 qgis  postgis  r  viewshed 

5
使用ArcGIS DEsktop和/或R计算到最近点的距离(以公里为单位)(以纬度/经度给出)?
我在ArcGIS中有两个点数据集,这两个数据集都是在WGS84纬度/经度坐标中给出的,并且点分布在整个世界上。我想找到数据集A中与数据集B中每个点最近的点,并以公里为单位获取它们之间的距离。 这似乎是对Near工具的完美使用,但这使我得到了输入点坐标系中的结果:即十进制度。我知道我可以重新投影数据,但是我(从这个问题)收集到(很难(如果不是不可能的话))很难找到一个可以给出全世界准确距离的投影。 该问题的答案建议使用Haversine公式直接使用纬度-经度坐标来计算距离。有没有办法做到这一点,并使用ArcGIS获得以km为单位的结果?如果没有,什么是解决此问题的最佳方法?

1
如何可视化具有不确定性的方位角数据?
我正在尝试制作一个图,显示在每个点具有不同范围不确定性的方位角数据。这张来自1991年论文的老式人物捕捉了我旨在的“领结情节”构想: 关于如何制作类似数字的任何建议?我是GIS领域的新手,但是我确实可以通过我的大学使用ArcGIS。我的Arc经验仅限于制作地质图,因此我不必做任何过于奇特的事情。 我在Arc和QGIS中浏览了符号系统选项,但没有看到我认为可以完成此工作的任何设置。注意,这不仅仅是旋转方位角的蝴蝶结形状的问题;每个“领结”的角度范围需要不同。 我将我的Python技能评为“高级中级”,而将我的R技能评为“低级中级”,因此如果有必要,我不反对与matplotlib和mpl_toolkits.basemap或类似的库一起破解某些东西。但是我认为在走那条路之前,我会在这里征求建议,以防万一有一个我还没有听说过的GIS领域的简单解决方案。

2
如何在R中栅格化SpatialPolygons?
我正在尝试使用{sp}包中的“栅格化”功能从世界测深栅格图层中提取感兴趣区域的测深值。 *编辑:我发现了“提取”功能,这似乎是我想要的。 到目前为止,这是我所做的: > class(subarea0) #This is my area of interest (Eastern Canadian Arctic Sea) [1] "SpatialPolygons" attr(,"package") [1] "sp" > extent(subarea0) class : Extent xmin : -82.21997 xmax : -57.21667 ymin : 60.2 ymax : 78.16666 library(marelac) data("Bathymetry")#World bathymetric data in library (marelac) names(Bathymetry);class(Bathymetry);str(Bathymetry) [1] "x" "y" "z" [1] …
10 raster  r  overlay 


4
在Windows中使用R'raster'包读取.DEM文件时NA值出现问题
我正在尝试使用R中的'raster'包在Windows上读取.DEM格式的光栅文件。 在Windows 7中将数据加载到R中时,NA值出现问题,但在装有OSX Lion的Mac上却没有问题。在Windows上,似乎无法正确读取NA值。问题是为什么会这样? 使用以下R代码从USGS下载了使用的光栅文件: download.file('http://edcftp.cr.usgs.gov/pub/data/gtopo30/global/e020n90.tar.gz', 'e020n90.tar.gz') untar('e020n90.tar.gz') 然后,我使用“ raster”包将栅格读入R。在OSX Lion和R64版本2.13.1中,可以识别NA值: > onMac <- raster('E020N90.DEM') > onMac class : RasterLayer dimensions : 6000, 4800, 28800000 (nrow, ncol, ncell) resolution : 0.008333333, 0.008333333 (x, y) extent : 20, 60, 40, 90 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 …
10 raster  r  windows  osx 

3
如何基于核密度对点进行聚类?
我有一个大型数据集,其中有36k个点代表商业土地用途,每个点都有一个包含平方英尺的字段。我已经对该数据集进行了内核密度分析,生成了一个栅格,显示了整个都市区域内商业平方英尺的密度。我需要将此栅格划分为与局部最大值相对应的区域,我称其为“中心”。我已经确定了中心的位置,现在我需要做以下两件事之一: 使用点聚类工具(例如“围绕类固醇分区”)将点分组到围绕我确定的中心的聚类中。这种方法的问题在于计算量大,如果我尝试使用相异矩阵按大小对点加权,则更是如此。 以某种方式将内核密度栅格(大致类似于地形栅格)划分为每个中心周围的各个“山丘”。但是我想不出什么工具可以做到这一点。 这个问题困扰了我一阵子,我希望我能够在R中执行聚类方法,但是这很耗时,我已经没时间了。有谁知道将密度栅格划分为强度邻域或快速聚类大型数据集的简单方法吗?


3
仅将ESRI shapefile的一部分读取到R中
我有一个很大的ESRI shapefile(> 8000个多边形,.shp文件> 32MB),我想在Windows 7上读入R。 我熟悉rgdal和readOGR()。但是,对于这种大小的shapefile,将整个shapefile读取到内存中的过程非常缓慢。此外,我只对shapefile中包含的8,000个聚集的多边形(<100个)感兴趣。我需要执行的过程是高度重复的,即shapefile需要加载多次,因此目前非常缓慢。 因此,我想知道是否有可能仅读取shapefile的一部分以加速该过程。加载如此大量的数据然后丢弃其中的大部分似乎不切实际。
10 shapefile  r  rgdal 

1
R gstat krige()-位置[5.88,47.4,0]处的协方差矩阵奇异:正在跳过
当我想执行克里金法时,它有时只能工作,这取决于我在数据表中使用的值。作为krige函数的结果,我得到了var1.pred: NA NA NA ...and var1.var: NA NA NA ...(但仅当我在数据表中使用“错误”值时)。 例如: 它的工作原理总是(到目前为止)时,我只用10个值 它的工作原理,当我用50个值,但只有特定的一些 当我使用50个值和“错误”值时,它不起作用 当我使用25个值和前面提到的“错误”值时,它起作用 我不明白为什么它有时起作用而有时却不起作用。奇怪的是,当我添加Zwiesel;49.02999878;13.22999954;2.2到数据表中时,当我使用少于20个值时,它就起作用了;但是当我使用了50个以上的值时,它就不起作用了。 我的错误在哪里? myWeatherTable.csv: Place;Latitude;Longitude;Temperature Aachen;50.77999878;6.09999990;3 Abbikenhausen;53.52999878;8.00000000;7.9 Adelbach;49.04000092;9.76000023;3.1 Adendorf;51.61999893;11.69999981;1.9 Alberzell;48.45999908;11.34000015;4.6 ... ... 我的代码执行克里金插值 WeatherData <- read.csv(file="myWeatherTable", header = TRUE, sep ";") coordinates(WeatherData) = ~Longitude + Latitude vario <- variogram(log(Temperature) ~1, WeatherData) vario.fit <- fit.variogram(vario, vgm("Sph")) min_lon …

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.