问题标签 [sp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1578 浏览

r - 删除 PNG 绘图边距

我试图摆脱 SpatialPolygons 图的顶部和底部边距。我尝试将边距设置为 c(0,0,0,0) 但这只会改变左右边距。

在 RStudio 中绘图时,上下边距为 0,但左右不是。

阴谋

0 投票
0 回答
55 浏览

r - 调用 sp 包的反应输出

我用表达式中的包创建了一个多边形 ( myBounds) 。spreactive()

我尝试在包中的observe函数的over()函数中使用这个多边形sp

我想知道每个多边形有多少个点。我也point object来自一个reactive表达式,在我的观察中得到了一些处理。

所以我所拥有的observe只是这个:

但是,这引发了我这个错误:

警告:观察者中未处理的错误:无法为签名 '"reactive"、"character" 的函数 'over' 找到继承的方法

图书馆不能sp处理reactive内容吗?!

0 投票
1 回答
1035 浏览

r - R中的finalPolygonCRS + over()函数sp包

我用SpatialPolygon这种方式创建

这样SpatialPoints

我想运行这个over()功能:

但是,我收到以下错误消息:

警告:观察者中未处理的错误:相同的CRS(x,y)不是TRUE

当我将此行添加到我的SpatialPoints

我收到以下错误:

proj4string<-( , value = )中的警告*tmp*:新的 CRS 已分配给具有现有 CRS 的对象:+init=epsg:3857 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0= 0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs 不重新投影。对于重投影,使用包 rgdal 中的函数 spTransform

  1. 为什么会出现CRS are not identical错误?它们应该是相同的,因为proj4stringspTransform是相同的代码?!
  2. 为什么当我尝试将 分配proj4string给 SpatialPoints 时会出现此错误,但在 Polygon 上执行时不会出现此错误?
0 投票
1 回答
778 浏览

r - 在 sp 中添加 CRS 似乎不一致

我想over()使用sp.R

我分配一个CRS.

一切似乎都很好。

让我们检查一下CRSallPoints

所以,当我over()现在运行这个函数时

我得到错误:

相同CRS(x, y) 不为真

我想我知道这里的问题是什么,但我不知道如何解决它。

如果你仔细看,allPoints还有几个字——即+init=epsg:3857我在这里读到,sp package简单地比较插槽中的字符串是否CRS相同。嗯,它们CRS和你看到的一样(空间参考的结构完全相同),但是由于我创建它们的过程,字符串略有不同。

当我使用

它把allPoints我扔回去了:

proj4string<-( , value = )中的警告*tmp*:新的 CRS 已分配给具有现有 CRS 的对象:+init=epsg:3857 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0= 0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs 不重新投影。对于重投影,使用包 rgdal 中的函数 spTransform

然后该over()功能起作用,但是我得到的没有意义。

如何解决这个问题?!

0 投票
0 回答
525 浏览

r - 无效的`.internal.selfref`警告,列未更新与`SpatialPolygonsDataFrame`一起使用

我正在尝试进行一些地理空间分析,R其中将涉及SpatialPolygonsDataFrame在绘图期间向 s 添加属性以进行着色等。

对于组织,我想SpatialPolygonsDataFrame通过合并和更新将这些属性添加到我的 s 中,但我不断收到“无效.internal.selfref”警告并且不会添加列。

这里的问题和答案,似乎与SpatialPolygonsDataFrame对象的数据存储在 a中的事实有关list,但是答案对于如何处理这个问题没有帮助,因为它们通常处理用户定义list的 s而不是像这里这样从包装中出来的。

这是一个使用愚蠢 shapefile 的简单示例,比如说美国(你会注意到我使用下面的 500k 分辨率):

警告消息:在:通过获取(浅)副本检测和修复`[.data.table`(us.states@data, , `:=`(test, 1L))无效,以便可以通过引用添加此新列。在较早的时候,这已被复制 (或使用或类似方法手动创建)。避免, 并且目前(奇怪地)可能会复制整个 . 请改用语法以避免复制: 和. 此外, in ,复制了整个 和(用于复制命名对象);请升级到 .internal.selfrefdata.table:=data.tableRstructure()key<-names<-attr<-Rdata.tableset*?set?setnames?setattrR<=v3.0.2list(DT1,DT2)DT1DT2Rlist()R>v3.0.2如果那是咬人的。如果此消息没有帮助,请向 datatable-help 报告,以便修复根本原因。

这种与我从其他相关答案中收集到的内容不谋而合,但我至少预计数据会更新,但唉:

有什么方法可以继续使用:=通过引用语法进行的舒适更新来处理SpatialPolygonsDataFrame(或类似的.shp检索对象)?

现在,我通过复制来使用更新,这很有效,例如:

0 投票
1 回答
1443 浏览

r - 人口加权多边形失真(制图)

我正在尝试在 R 中创建一个映射,该映射既传达底层几何图形的形状(即物理边界),传达对象在关联值方面的相对重要性。

具体而言,我想专注于复制(一个版本)以下地图*(形状,而不是颜色,因为我找不到轮询数据):

一张扭曲的美国地图,标题为

我也不想费心让阿拉斯加和夏威夷出现在美国下方,而不是它们的测地线正确位置。

我只是将数据与权重合并,例如如下所示:

1.获取多边形

美国大陆的平原、未扭曲的地图。 白色多边形,黑色边框,带有两个字母的州邮政编码。

2. 添加选举人团数据

相同的未扭曲的州地图,但这次,每个州都被涂成红色、蓝色或紫色。 红色的意思

这一切都很好——看一眼这张地图,我们就可以知道哪些州在选举团中的代表性高低。但是如果(就像在我们的目标地图中)我们想用状态的颜色来表示另一个变量怎么办?

3. 增加 2012 年选举结果

再次出现未扭曲的状态,这一次根据选举结果完全是红色或蓝色。

最后一张图是问题的症结所在。从我们可以从地图的红色与蓝色百分比中感知共和党还是民主党获胜的意义上,第一个图表要好得多。最后一张地图具有误导性,因为共和党人数最多的州也是人口最稀少的州。

有没有办法创建这张地图的扭曲版本,以传达每个州在选举团中的相对重要性?我在网上找不到任何帮助,可能主要是因为我不知道这种类型的图表是否有标准名称。

*这张地图是在这里找到的;我以前见过类似的尺寸扭曲的地图,例如在The Economist中。它似乎是基于普林斯顿选举联盟的 Sam Wang 博士的工作,由Drew Thaler制作。

0 投票
1 回答
2039 浏览

r - R中多边形上的覆盖点

我需要在 100,000 个多边形上覆盖 40,000 个点。多边形是使用以下方法创建的:

叠加层是使用以下方法创建的:

因此,我有一个数据框,其中包含落在每个多边形(平均值)中的点的属性。我的问题是是否可以将多边形的 gps 坐标(质心)cbind() 绑定到我的数据框?

我查看了 google 和 stackoverflow,但没有找到关于该主题的任何内容。解决方案可能很简单,但我就是看不到 :)

任何帮助,将不胜感激!

谢谢你马丁

编辑:那么,如果我想选择其中包含(一个或多个)点的多边形怎么办。我用了

如何将多边形的坐标绑定到数据框列表(每个对应一个多边形)。我需要信息。作为列表,因为我需要计算行驶距离。谢谢M。

0 投票
1 回答
1479 浏览

r - 将文本添加到 spplot [R]

我用一些数据在 R 中执行了空间插值,并在创建地图时遇到了困难。我必须使用spplot这样做。当我从那里测试代码示例时:

一切都按预期工作。当我将它应用到我的数据集时,我得到一个错误

这就是我的代码的样子:

知道如何解决这个问题吗?我的数据看起来与 spplot 文档中给出的示例几乎相同。感谢您的任何提示!

0 投票
2 回答
36777 浏览

r - 创建 SpatialPointsDataframe

我有一个df1包含 10 列的数据框。其中两列是lnglat。我想创建一个SpatialPointsDataframe来自df1. 当我阅读如何创建SpatialPointsDataframe时,感觉就像我必须m1从我的两个坐标列创建一个矩阵,然后将该矩阵分配给数据框“df1”。

那将是一个弯路,因为我的坐标已经是我的数据框中的一列df1。此外,如何确保矩阵m1中的坐标分配给数据框中的正确行df1

这就是我的df1样子

0 投票
1 回答
804 浏览

r - spplot/lattice:未绘制/透支的对象

我有一个网格,我想从这个网格中生成一个带有一些地图元素(比例、指北针等)的地图。我可以毫无问题地绘制网格和所需的颜色,但额外的地图元素不会显示在地图上。我尝试first=TRUE根据sp 手册提出 sp.layout 参数,但仍然没有成功。

我使用集成的 meuse 数据集重现了该问题,因此您可以复制并粘贴该代码。我使用那些包版本:lattice_0.20-33sp_1.2-0

这就是它看起来的样子......全裸: 在此处输入图像描述 所以我的问题:

  1. 比例尺、指北针等隐藏在哪里?我错过了什么?我在互联网上找到的每个示例都与此类似。在我自己的数据集上,我首先可以看到比例尺和指北针被绘制,但是一旦网格被渲染,它就会叠加额外的地图元素(除了比例文本,显示在地图上 - 而不是栏和北箭头出于某种原因我似乎不理解)。
  2. 地图上出现的错误消息仅在我尝试添加采样位置时显示sampling = list("sp.points", meuse.riv, color = "black")。如果没有此条目,则地图显示不会出错,但也没有其他地图元素。如何在地图上显示采样点(例如,在大小取决于该采样点的绝对值的圆圈中)?

到目前为止,这困扰了我很多很多小时,我找不到任何解决方案。在 Bivand 等人的教科书 (2013) “Applied Spatial Data Analysis with R”中,我可以阅读以下条目:

sp.layout 参数中的项目顺序很重要;原则上,对象是按照它们出现的顺序绘制的。默认情况下,当 spplot 的对象有点或线时,sp.layout 项目会在点之前绘制,以允许绘制网格和多边形作为背景。对于网格和多边形,sp.layout 项目随后被绘制(因此项目不会被网格和/或多边形过度绘制)。对于网格,首先添加列表元素 = TRUE 可确保在绘制网格之前绘制项目(例如,添加填充多边形时)。合并图层时,透明度可能会有所帮助;它适用于 PDF 设备和其他几种设备。函数 sp.theme 返回一个格子主题,可用于 spplot 绘制的绘图;在打开或更改设备后使用 trellis.par.set(sp.theme()) 以使其生效。

但是,同样有了这些附加信息,我也无法解决这个问题。很高兴任何提示!