Questions tagged «geometry»

(1)抽象几何;(2)将地理数据存储在投影坐标中;(3)矢量特征的通用ESRI术语;“几何”对象的类。

3
使用QGIS反转多边形?
我有一个Shapefile,它具有代表世界陆地区域(大陆,岛屿)的多边形特征。 是否有可能将它们反转,并获得代表世界海洋的几何图形? 因此,原始的陆地多边形需要成为覆盖整个地球的单个全局多边形中的环。 基本上,我正在寻找类似Photoshop中的“选择”>“反向”之类的东西。 我正在使用QGIS。

3
如何从SQL Server几何BLOB转换为其他东西?
我有来自第三方的CSV数据文件,该文件是导出的SQL Server表。他们只是做了一个,select * from foo然后将结果输出到一个文本文件,然后发送过来。 在他们的表中是Geometry类型的列,因此在我的原始文本中,我有类似“ 0xE610000010C47 ...”之类的信息。此刻,我已将其作为nvarchar加载到SQL Server的表中。 我期望自己最终可以返回到“几何”字段,但这似乎并不容易。 STGeomFromWKB不起作用,因为它实际上不是WKB。我不能将字符串转换为Geometry,因为它抱怨它不是WKT。 因此,有什么办法可以将这个值当作正常的几何BLOB传入SQL Server?我可以告诉SQL Server这样对待它吗? 我发现此链接至少可以帮助我回答有关SQL Server中内容的问题,但并不能完全理解: SQLServer 2008的Geometry数据类型的格式是什么?

1
检测分支多边形形状?
我有一个包含数百万个多边形的矢量层,可以连续覆盖。我需要根据它们的形状对其进行分类。我已经在使用景观生态学中的几个形状指标,例如紧密度(4piA / P ^ 2),平均宽度(2A / P),形状编号(P / sqrt(A)),我也看到了计算的圆度/紧凑度的答案多边形? 我的问题是所有这些指标都仅使用面积和周长的某种比率。即使是分形维数索引也仅使用面积和周长(2ln(0.25P)/ ln(A))。但是,如何区分两个具有相同面积和周长但形状完全不同的多边形?像这样的分支多边形A: 我试图以与弯曲的条带B相同的面积和周长进行绘制。我所有已知的索引对于它们都将是相同的。但是对我来说,区分简单的条带(包括弯曲的新月形)和复杂的分支形状非常重要。 我有意将多边形B显示为弯曲的条带,而不是直线的条带,因为我知道相关的外接圆索引可以检测到细长的笔直形状,但是我的多边形也可能具有相同的外接圆。即使我构造凸包并计算面积比Apolygon / Aconvex,在这里也可能非常相似。 那么,如何在矢量数据中自动清晰地区分分支多边形A和多边形B?(将它们转换为栅格将需要非常小的像元大小,巨大的数据集和内存不足,因此这是不可能的)。是否有其他形状索引包含其他参数?理想情况下,该方法不仅可以区分清楚分支的多边形,还可以区分C和D: 我唯一的想法是构造凸包,然后从其凸包中删除多边形,并计算它留下的(大)块的数量(逐个多边形而不是整个图层擦除多边形)。这可能表明边界的复杂性。 我欢迎数学解决方案/算法,以后将在Python中实现。

2
奇形多边形的质心坐标
在QGIS(通过几何工具)中计算某些多边形的质心时,我遇到了一个问题:对于某些具有奇怪且相当长的形状的多边形,所计算的质心不在多边形内。例如,在下图中查看标记为红色的多边形: 它的质心(由蓝色箭头指向)实际上落在感兴趣的多边形之外。对于少数(但很烦人)其他多边形会发生这种情况。 我对QGIS相对较新,所以我不认为此问题是否是由于shapefile与多边形的投影所致(WGS 84)。无论如何,我还是尝试通过WGS84 / UTM Zone 31重新投影地图,该区域对应于比利时(我正在查看的国家)。 在过去的讨论中,我没有找到类似问题的答案;抱歉,如果我无意中忽略了它。

5
如何在QGIS中将道路网络捕捉到六边形网格?
我正在尝试使用QGIS 2.14将道路网络捕捉到六边形网格中,但出现了奇怪的伪像。 我用MMQGIS创建了一个十六进制网格,单元大约为20 x 23 m。我已经将公路网缓冲了1m并进行了密实处理,因此每隔几米就有一个节点。您可以在下面查看我要实现的目标。如您所见,在某些情况下,我可以使其工作:- 蓝色是致密路(缓冲线) 红色是“十六进制”版本-这是我要查找的 灰色是十六进制网格 然后,我使用了新的“ 捕捉几何”功能将节点捕捉到最近的六角形角。结果令人鼓舞,但似乎在某些极端情况下,线扩展以填充六边形(或其一部分): 使用缓冲区的原因是,“ 捕捉几何”不允许您捕捉到几何不同的图层。例如,您不能将LINE层上的节点捕捉到POINT层上的点)。将POLYGON抢购到POLYGON似乎是最快乐的。 我怀疑当缓冲的道路线的一侧跳到十六进制单元的一侧,而另一侧跳到十六进制单元的另一侧时,道路会扩展。在我的示例中,以锐角横穿东西的道路似乎是最糟糕的。 我尝试过的事情没有成功: 仅对道路网进行少量缓冲,因此它仍然是多边形,但非常薄。 使十六进制单元致密(因此沿边缘有节点,而不仅仅是在角落) 改变最大捕捉距离(这具有最大的作用,但是我似乎找不到理想的值) 使用线层,而不是多边形 我发现如果更改为仅使用LINE图层,它会工作一段时间,然后崩溃。它似乎可以保存它的工作-有些行已被部分处理。 有谁知道其他方法可以将一条线上的点捕捉到另一条线/多边形图层上的最近点,理想情况下无需使用postgres / postgis(尽管也欢迎使用postgis解决方案)? 编辑 对于任何想去的人,我都在Dropbox上放置了一个入门QGIS项目。这包括“十六进制网格”和“密实线”层。(道路网来自OSM,因此可以使用QuickOSM下载,例如,如果您需要获取原始文件以使道路致密化)。 请注意,它位于OSGB(epsg:27700)中,这是英国的本地化UTM,以米为单位。

5
存在哪些深入的空间数据库系统教程?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 有没有一个很好的教程,它在没有任何背景假设的情况下,深入地解释了GIS和空间数据库系统(例如PostGIS)的内部结构?我正在特别寻找问题的答案,例如: GIS中的几何是什么? 如何代表? 给定纬度/经度坐标,我需要对其执行哪些操作才能使其达到可调用诸如ST_contain PostGIS之类的状态以检查多边形是否包含纬度/经度坐标的状态? 我对一般的关系数据库系统有一些经验,但是对GIS或空间数据库范例没有任何背景知识。

4
自交点为多边形,如何解决?
我有一个有关修复自相交多边形shapefile的问题。我有一个shapefile,其中包含具有自相交特征的多边形(ZM)。如果使用“修复几何”工具,它将找到多个自交点并进行修复。欢呼! 但是,当我导出此文件(或对其进行选择)时,此导出再次包含自交点。在我为解决该问题而进行的所有尝试中都会发生这种情况,其中包括: 使用工具“修复几何”,失败; 根据多边形的所有属性溶解它们,失败; 处置ZM属性,然后执行以上所有操作,均失败; 即使使用ArcCatalog将这个shapefile导入到地理数据库中,它也可以正确导入,但是当我从数据库进行导出时,自交点又在那里了。 因此,有关如何解决此问题的任何建议将不胜感激。如果有人能解释为什么存在这种行为,那就太好了。 我正在使用ArcGIS 9.3.1 build 4000(SP2)。

5
模拟面要素的扩展
我有一个我希望成为一个有趣的问题。我正在为GIS课程简介做作业,该课程使用一些墨西哥湾漏油数据介绍常见的基于向量的空间分析方法(缓冲区,叠加层等)。我有一个多边形要素类,其中包含某一天发生的“深水地平线”漏油事件,我正在用缓冲液模拟它的膨胀。 它确实可以说明这个概念,但是肯定不能提供现实的结果。这让我开始思考如何以一种不太均匀的结果来实现此目的,模仿/伪造电流在油膨胀时将油流向各个方向的效果。 从一般意义上讲,我正在寻找一种工作流程,只要输入多边形要素可以完成以下工作: 创建一个新的多边形要素,该要素比原始要素大指定范围(例如10平方公里)或指定因子(例如5%) 新的多边形要素将具有任意形状,但需要注意的是... 新的多边形要素将包含原始的多边形要素(这不是交易突破点,但是很高兴拥有) 任何现实世界的解决方案都必须涉及对洋流,流体动力学等进行建模,而这远远超出了我正在尝试做的事情(尽管包含这种解决方案当然是受欢迎的,并且很有趣),但是这个主意激起了我对潜在的空间问题的好奇心,我很好奇那里有什么解决方案。我想到了一个解决方案,但我想听听其他人可能提供的解决方案。 我在ESRI领域工作,但是当然欢迎使用涉及其他软件包/平台的解决方案(尽管我可能无法对其进行测试)。通用算法,伪代码和代码也可以。
13 geometry  buffer 

1
更改最小边界框算法
我正在尝试创建类似于最小边界框的算法(尽管最终可能看起来不像它)。在这种情况下,角度将作为参数传递,并且给定角度,我需要覆盖所有点/多边形的最小矩形。到目前为止,我的思路是找到点的中心(质心算法),然后从中创建两条与参数角相同的平行线,以及两条与之垂直的线。然后使用迭代将这些线向外(沿相反的方向)移动,直到包含所有点。也不必是确切的最小边界框,近似的作品(我想这取决于每个迭代步骤的大小)。 到目前为止,这是我的代码。我已经将所有多边形分解为一个。然后,我采用凸包来减少顶点。然后,我将所有顶点都放入列表中-不确定是否有帮助... a = layer.getFeatures() for feat in a: geom = feat.geometry() a = geom.convexHull() vertexId = QgsVertexId() vertices = [] b = a.constGet().nextVertex(vertexId) while b[0]: vertices.append(b[1]) b = a.constGet().nextVertex(vertexId) 注意:在某些时候,我需要传递盒子的角度。我正在使用QGIS 3,并且需要在Python中创建它。图层“图层”具有一种几何形状,即所有其他多边形的溶解多边形-也许不需要迭代即可访问它。 请让我知道我是否应该传递更多详细信息。

2
几何和$ geometry QGIS之间的区别
这可能是一个琐碎的问题,但是我很困惑,QGIS中的geometry和$ geometry有什么区别?我没有找到使用此功能的任何示例。 我特别对几何感兴趣,在什么情况下有帮助?
12 qgis  geometry 

2
如何使用Python计算直形骨骼?
是否有Python包提供了Straight Skeleton算法的实现? 我知道开源(C ++)项目CGAL包含一个实现,但似乎cgal-bindings不包含此CGAL包。 无论如何,我都希望使用纯Python实现,可以对其进行修改/扩展以满足自己的需求。 尽管可以处理带孔多边形的实现是可取的,但并非绝对必要。



1
Python:找到一种计算多边形的“内部质心”(在弧图中也称为labelPoint)的方法
我正在寻找一种计算(不规则)多边形的内部点(在弧图中也称为labelPoint)的X,Y坐标的方法。我尝试在不使用ArcGIS模块的情况下找到解决方案 “质心”和labelPoint之间的区别在于,质心可能在多边形之外。 我正在使用匀称的模块 从shapely.geometry导入多边形 ref_polygon = Polygon(points) # get the x and y coordinate of the centroid ref_polygon.centroid.wkt 'POINT (558768.9293489187300000 6361851.0362532493000000)' 使用以下数据(我的多边形的顶点) 在此先感谢您的帮助和建议 points = [(560036.4495758876, 6362071.890493258), (560036.4495758876, 6362070.890493258), (560036.9495758876, 6362070.890493258), (560036.9495758876, 6362070.390493258), (560037.4495758876, 6362070.390493258), (560037.4495758876, 6362064.890493258), (560036.4495758876, 6362064.890493258), (560036.4495758876, 6362063.390493258), (560035.4495758876, 6362063.390493258), (560035.4495758876, 6362062.390493258), (560034.9495758876, 6362062.390493258), (560034.9495758876, 6362061.390493258), (560032.9495758876, …


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.