R正成为处理和分析空间数据的强大工具。我在SO这样的问题中学到了一些有用的东西,并认为类似的东西可能有用,但更面向“空间”。 ?

评论

社区Wiki?

@relet:meta.gis.stackexchange.com/questions/191/…

ack。谢谢。我相信我看到了那个,但很容易忘记。

另外:rspatialtips.org.uk

我认为这也应该是社区Wiki,因为它已经成为各种各样的列表。

#1 楼

这并不是什么小把戏,而是spplot()的漂亮内置功能。 spplot()在讨论属性数据分布和分类类型时,可以缩放图例色标(以匹配分类突破范围),是一种有用的教学工具。将累积分布图与地图结合起来有助于实现这一目标。



学生只需修改一些脚本参数即可探索分类类型和数据转换效果。这通常是他们在以ArcGIS为主的课程中首次涉足R。

这是一个代码段:卢比奥)

评论


很酷!看起来很有用。

– djq
11年11月29日在17:22

PolyGeo作为主持人很烂

–雷达下方
16年6月20日在12:25

#2 楼

编辑:请注意,由于对Google地图源的新要求,这不再适用于2018-10-24。

我很高兴找到带有地理编码和Google地图下载的dismo软件包: ,在此安装dismo及其依赖项很简单,不确定在其他系统上。



评论


这看起来非常有用-但是,我遇到了行e <-scope(x [4:7] + c(-0.001,0.001,-0.001,0.001))的问题,并且收到一条错误消息Error:c (“ x”,“ y”)%in%names(x)并非全为TRUE。 x [4:7]看起来不错;对问题可能有什么想法?

– djq
2011-11-25 17:07

是的,您需要一个可重现的示例

–mdsumner
2011-11-25 19:39

我正在尝试重现此答案中的示例,但它不起作用。 x <-地理编码(例如'110 George Street,Bathurst,NSW,澳大利亚')返回ZERO_RESULTS,例如,当我使用返回lat / long的示例时,函数e <-scope(x [4:7] + c (-0.001,0.001,-0.001,0.001))也失败。

– djq
11-11-27在21:18

这样做可能会有更优雅的方法,但是范围需要一个数字向量。因此,这可以满足e <-range(c(x [,4],x [,5],x [,6],x [,7])+ c(-0.001,0.001,-0.001,0.001))。

– djq
11年11月27日在21:29

以下内容也适用:e <-范围(as.numeric(x [4:7])+ c(-0.001,0.001,-0.001,0.001))

–snth
2011年11月28日在8:50



#3 楼




这是我收集的一些内容。
cran.r空间,
gmane博客,
时间序列分析,
geodatacenter

#4 楼

也不是一个技巧,但是这里是我收集的一些资源/示例。

使用格包在R中绘制小型Areal数据多图的示例。关于StackOverflow的一些问题,询问有关映射和R的问题,这里有一个很好的例子。我还将查看SO上的其他答案以及它们提供的资源(以及寻找更多示例)。 。它非常活跃,Roger Bivand几乎每天在小组中回答问题。两者都与编程和统计分析有关。

除了检查颅骨空间页面外,我还建议特别检查由Adrian Baddeley维护的Spatstat页面。大量示例,课程和即将出版的电子书。 (此刻我一直在学习spatstat课程,我认为这比Bivand的书介绍的要温和得多。)

不是免费的资源,但是对RI感兴趣的任何人都会建议查看Use R! Springer系列。有一本与R直接相关的《应用空间数据分析》(也是我建议学习的R书《 R入门指南》。)

一本免费电子书,《地统计映射实用指南》( Hengl 2009),其中有在R,GRASS和Google Earth(KML)中应用的地理统计仪的示例。 !)

评论


谢谢安迪。我喜欢格子的例子。完全同意Bivand等。书-很棒的资源。

– radek
2010年11月10日,11:35

#5 楼

对于栅格分析,栅格软件包非常强大。除了标准手册外,还有一些小插曲可以入门。

评论


对于栅格程序包因为它可以与RAM一起使用而无法处理的所有事情,您可以考虑使用gdal_Utlis,它提供了使用gdal的包装器功能,允许您处理大文件。

– joaoal
19年8月1日在7:24

#6 楼

我不是PostGIS用户,但是在为最近的邻居问题建议Voronoi多边形后,我做了一些搜索。我发现使用R,您可以为PostGIS创建Voronoi多边形。我印象深刻。

评论


我敢肯定,有比我建议的方法更简单的方法,但是您可以在spatstat包中创建Tesselation,然后使用Adrian Baddeley提供的此功能将tess对象转换为sp对象。如果需要,可以从sp对象将其导出到shapefile。

– Andy W
2011-11-30 14:42

#7 楼

我偶然发现了Spatial-Analyst.net。非常有用,全面和有用。更特定于此问题并与先前的一些答案内联,请参阅此页面。

#8 楼

另请参见此处如何在GRASS中享受高质量的统计分析:http://grass.osgeo.org/wiki/R_statistics

#9 楼

使用此功能,可以轻松进行空间连接,但前提是所有区域都被多边形填充。

library(rgeos)
library(sp) 
library(maptools)
library(rgdal)
library(sp)
xy.map <- readShapeSpatial("http://www.udec.cl/~jbustosm/points.shp")
manzana.map <- readShapeSpatial("http://www.udec.cl/~jbustosm/manzanas_from.shp" )

IntersectPtWithPoly <- function(x, y) { 
# Extracts values from a SpatialPolygonDataFrame with SpatialPointsDataFrame, and appends table (similar to 
# ArcGIS intersect)
# Args: 
#   x: SpatialPoints*Frame
#   y: SpatialPolygonsDataFrame
# Returns:
# SpatialPointsDataFrame with appended table of polygon attributes

  # Set up overlay with new column of join IDs in x
  z <- overlay(y, x)

  # Bind captured data to points dataframe
  x2 <- cbind(x, z)

  # Make it back into a SpatialPointsDataFrame 
  # Account for different coordinate variable names 
  if(("coords.x1" %in% colnames(x2)) & ("coords.x2" %in% colnames(x2))) {
    coordinates(x2) <- ~coords.x1 + coords.x2  
  } else if(("x" %in% colnames(x2)) & ("x" %in% colnames(x2))) {
    coordinates(x2) <- ~x + y 
  }

  # Reassign its projection if it has one
  if(is.na(CRSargs(x@proj4string)) == "FALSE") {
    x2@proj4string <- x@proj4string  
  }
  return(x2)
}


test<-IntersectPtWithPoly (xy.map,manzana.map)


#10 楼

点图案分析示例:

#Load library
library(spatstat) 
#create some coordinates        
x=c(78,120,150,17,20,402) 
#prepare the window range      
y=c(70,103,100,205,200,301)
win=owin(range(x),range(y)) 
#create the point pattern
p <- ppp(x,y,window=win)
#Plot it
plot(p) 


创建点图案并进行描述。 spatstat软件包具有许多用于分析地理数据的功能。以下是一些spatstat教程:


Spatstat:用于分析空间点图案的R包
spatstat简介
处理spatstat包中的shapefile


#11 楼

不知道这是否符合“技巧”,但我非常喜欢acs软件包(用于选择美国人口普查数据)和leaflet软件包(用于制作可以在线托管的交互式javascript映射)的组合。 br />
本教程做得很好,说明了将这两个软件包一起使用的好处。