Questions tagged «spatial-join»

4
无需QGIS,ArcGIS,PostGIS等的Python中的高效空间连接
我正在尝试进行空间连接,类似于此处的示例:是否存在“按位置连接属性”的python选项?。但是,这种方法似乎效率低下/缓慢。即使仅以250点的分数运行它,也要花费近2分钟的时间,而对于> 1,000点的shapefile,它完全失败。有没有更好的方法?我想完全在Python中完成此操作,而无需使用ArcGIS,QGIS等。 我也想知道是否有可能对一个多边形内所有点的属性(即总体)求和,然后将该数量加入到多边形shapefile中。 这是我要转换的代码。我在第9行出现错误: poly['properties']['score'] += point['properties']['score'] 其中说: TypeError:+ =:'NoneType'和'float'不受支持的操作数类型。 如果我将“ + =”替换为“ =”,则可以正常运行,但不会对字段求和。我也尝试过将它们设置为整数,但这也失败了。 with fiona.open(poly_shp, 'r') as n: with fiona.open(point_shp,'r') as s: outSchema = {'geometry': 'Polygon','properties':{'region':'str','score':'float'}} with fiona.open (out_shp, 'w', 'ESRI Shapefile', outSchema, crs) as output: for point in s: for poly in n: if shape(point['geometry']).within(shape(poly['geometry'])): poly['properties']['score']) += point['properties']['score']) …

3
将空间点数据连接到R中的多边形
此问题是从Stack Overflow 迁移而来的,因为可以在Geographic Information Systems Stack Exchange上回答。 迁移 4年前。 我正在尝试在点数据和面数据之间执行空间连接。 我的csv文件A中有指示事件空间坐标的数据,还有另一个文件shapefile B,该文件以多边形形式包含区域的边界。 head(A) month longitude latitude lsoa_code crime_type 1 2014-09 -1.550626 53.59740 E01007359 Anti-social behaviour 2 2014-09 -1.550626 53.59740 E01007359 Public order 3 2014-09 -1.865236 53.93678 E01010646 Anti-social behaviour head(B@data) code name altname 0 E05004934 Longfield, New Barn and Southfleet …


3
geopandas空间连接极慢
我正在使用下面的代码来查找数百万个GPS点的国家(有时是州)。该代码当前每点大约需要一秒钟,这非常慢。shapefile为6 MB。 我读到geopandas使用rtree进行空间连接,这使它们效率极高,但这在这里似乎不起作用。我究竟做错了什么?我希望每秒能获得一千个积分。 可以在此处(5MB)下载shapefile和csv:https ://www.dropbox.com/s/gdkxtpqupj0sidm/SpatialJoin.zip ? dl =0 import pandas as pd import geopandas as gpd from geopandas import GeoDataFrame, read_file from geopandas.tools import sjoin from shapely.geometry import Point, mapping,shape import time #parameters shapefile="K:/.../Shapefiles/Used/World.shp" df=pd.read_csv("K:/.../output2.csv",index_col=None,nrows=20)# Limit to 20 rows for testing if __name__=="__main__": start=time.time() df['geometry'] = df.apply(lambda z: Point(z.Longitude, z.Latitude), …

3
使用QGIS将点触线属性返回到线层?
我正在使用QGIS 2.14.4-Essen。我有两层: points.shp包含带有YEAR列的点 lines.shp包含精确连接点与point.shp的线 我想将point.shp的YEAR属性返回到lines.shp。每条线都是一个单独的线段,两端各有一个点(请参见下图)。我想得到的是从第一点开始的YEAR和从第二点开始的YEAR,回到每条线属性。 例如:第1行触及YEAR = 2010的第一点和YEAR = 2011的第二点。我想将“ 2010-2011”之类的内容恢复到第1行属性中。结果应如下所示: id | points ----+----------------- 1 | 2010-2011 2 | 2011-2012 3 | 2012-2016 有没有一种使用QGIS来实现这一目标的方法?

2
如何在QGIS中执行重复性任务?
我正在尝试对许多功能文件进行处理,因此我想使其自动化。 实际上,我有一个shapefile具有某些物种的空间分布,而另一个则具有植被类型。 我想在“物种形状”文件中选择(按属性)一个物种,然后选择(按位置)与其分布区域相交的所有植被区域。最后,我想创建一个shapefile,其名称为物种名称,并具有常见植被类型的属性和形式。我想对所有物种(超过100个)重复此操作,并且如果可能的话,可以轻松地进行此操作(这样可以由另一个人完成)。 我已经使用Sextante插件尝试了此任务,但是最后没有种类名称作为shapefile名称。 有人可以建议一种方法吗?

2
要素类中的一对多联接到表
我正在使用具有高级许可证的ArcMap 10.2.2。我已经将ArcMap用于其他基本分析,但是对于该程序来说这是一个新手,仅具有基本的编码技能,除了使用ArcMap中的SQL代码生成器进行非常基本的查询外,没有SQL经验。 我有一个物种地理范围的多边形,并且有一张表格,列出了这些物种携带的病原体/疾病。某些物种携带多种病原体。在理想的世界中,我将范围的多边形连接到“物种+病原体”表中并保留多边形/空间数据,但是似乎没有GIS工具可以做到这一点(我将之后再计算重叠的病原体,因此每种物种-病原体组合都具有自己的特征,而不是具有多种病原体信息的特征很重要。这些是我的数据的样子(#1&#2,#3供以后使用): 空间特征的属性表: 没有任何空间数据的表: (请注意,这些不是真实的数据,病原体-物种组合可能不是真实的。我实际上有115个多边形和519行表。物种携带1-40种病原体,因此物种在1-40行之间我的桌子) 另外,由于需要进行将来的分析,因此理想情况下,我希望能够进行此一对多联接,以便可以从表中保留额外的数据列(请参见下面的示例)看起来如何)。但是,这并不重要,因为如果我能弄清楚如何进行联接,就可以重做分析。 我找到了一些解决此问题的方法,但由于以下原因,它们对我不起作用: 解决方案1:David Aalbers的博客 -我对一个新手来说太过头了,无法弄清楚如何编辑较新的脚本并弄清楚如何将其导入ArcMap。我尝试了较旧的脚本,它只是生成了大量名为test,test_1,test_1_1,test_1_1_1等的空多边形。 解决方案2:一对多联接 -我尝试使用Make Query Table工具(尽管我使用表达式生成器,但我不具备SQL知识),但出现错误000383:表出现问题,找不到工作区&执行失败(MakeQueryTable)。我所有的文件都在同一个文件夹中,但是不在地理数据库中。

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.