地理信息系统

制图师,地理学家和GIS专业人员的问答

2
计算球形多边形质心
我想要一种通用方法来计算球体上多边形的质心。 到目前为止,最好的在线参考似乎是: Jeff Jenness的图形和形状工具。 此处描述的方法建议将多边形分解为多个球形三角形,并计算球形三角形质心的平均值,并按球形三角形面积加权。 我知道有几种定义球形多边形质心的方法,但是我正在寻找类似于以下对点和折线的定义的方法: 点:表示点的笛卡尔向量的算术平均值。 折线:笛卡尔向量的加权平均值,代表每个线段的中点,由每个线段的(球形)长度加权。 将多边形质心定义为按面积加权的三角分解的加权平均值,似乎是一个合理的延续。 我的问题是,无论所使用的三角形分解如何,上述参考文献中的方法是否都将起作用。特别地,它提到相对于任意点甚至在多边形外部都分解为三角形,使得某些三角形将具有负面积,这些负面积会带来负的权重。 相关:如何找到对象的几何中心?

3
在不丢失ArcGIS for Desktop中原始字段名称的情况下联接表?
我想知道加入csv时是否有任何方法可以在ArcGIS中保留原始字段名称。表到Shapefile。 我问,因为有时我联接具有10、20甚至更多列的表,并且在导出联接的数据时, ArcGIS总是根据原始表的名称和列的顺序(例如table_xy_1,table_xy_2等)对它们进行重命名。 由于没有简单的方法可以永久地重命名属性表中的字段(即,您必须创建一个新列并将旧列复制到该新列中并删除旧列),这会产生大量工作(尽管事实如此)您必须将自己定位在这种混乱的字段名称中)。

4
如何使用MapServer使用完全透明的填充为多边形着色?
是否可以填充多边形,以便它们在MapServer中完全透明?我想要一个稍微不透明的黑色背景,并且无论哪里有多边形,我都希望它完全透明且没有填充。我通过以下方式设置背景: IMAGECOLOR 0 0 0 TRANSPARENT OFF 我尝试创建一个白色来填充多边形的类,并尝试使用TRANSPARENCY0-100范围内的值进行不透明度,但它不会产生清晰的多边形: CLASS NAME "light" EXPRESSION ([max_cost] == 2000) STYLE OUTLINECOLOR 255 255 255 COLOR 255 255 255 SIZE 1 WIDTH 2.0 END END 这将导致以下类型的图像: 而不是用白色填充的多边形;我希望它没有颜色。我在网上找到了一条建议来定义这种颜色: COLOR -1 -1 -1 但它也没有用。在文档的此部分中,描述了以下内容: “ PALETTE = / path / to / palette.txt”用于定义可以找到调色板颜色的绝对路径。对于RGB图像模式,此文件必须包含256个r,g,b三元组条目,对于RGBA图像模式必须包含r,g,b,a四元组。预期的格式是每行一个三联体(或四联体),每个值用逗号分隔,并且每个三联体/四联体在一行上。如果要对调色板使用透明度,则在调色板文件中具有以下两种颜色很重要:0,0,0,0和255,255,255,255。 阅读此内容后,我也尝试使用,COLOR 0 0 0 …

1
如何从Python代码隐藏/显示QGisVectorLayer?
创建图层后,如何隐藏/显示它?我可以通过选择QGIS中的复选框来启用/禁用特定图层的渲染,但是我需要通过python代码以编程方式进行。 如何显示/隐藏(不删除)Python代码中的标签? 我正在寻找类似的东西: aLayer = self.addVectorLayer(uri.uri(), layerName, self.dbConn.getProviderName()) aLayer.Hide() .... aLayer.Show()

2
不同的GIS系统如何确定多边形的内部?
我有兴趣了解现实世界中的GIS系统及其数据如何编码“多边形”。 具体来说,它们如何解决球体上多边形内部的模糊性? 背景:在2D中,由于2D平面是无限的,因此选择具有有限面积的边界边很简单。但是,球体是有限的,因此如果没有其他假设,就不可能知道哪一侧在内部。 我知道的可能方法: 右手规则:始终以顺时针顺序指定外部边界,并以逆时针顺序指定孔。(当然也有左手规则)。 最小的面积:对于任何给定的戒指,请始终选择面积最小的侧面。我不确定如何指定大范围的多边形:也许是一个空的外圈,然后是孔? 等角矩形:只需考虑在无限2D平面上的等角矩形投影。但是,这是假定要素在前线被切碎,否则上述两种方法之一将需要回退。 我个人的偏爱是第一种方法,但是我想了解这在标准GIS系统中是否很常见。

1
是否基于PostGIS / PostGresQL中的最大重叠量进行联接?
我在两个表中有两组多边形。这些集合彼此重叠。对于集合A中的每个多边形,我想获取集合B中重叠最多的多边形的ID。我正在使用带有PostGIS扩展名的PostgreSQL。 我对SQL足够了解,因此只能基于对/错条件进行联接。所以这行不通: SELECT a.id as a_id, b.id as b_id, FROM a JOIN b ON max(ST_Area(ST_Intersection(a.geom, b.geom))) 因为max()不能在ON子句中。 ST_Intersects()是对/错测试,因此我可以参加,但是集合A中的多边形通常会与集合B中的多个多边形重叠,因此我需要知道哪个重叠最多。无论重叠的程度如何,ST_Intersects大概只会返回遇到的第一个重叠ID。 这似乎应该可行,但这超出了我。有什么想法吗?

1
如何在GRASS中平移Landsat图像以进行图像分类?
我想学习如何在GRASS中使用i.cluster> i.maxlik锐化的15m分辨率图像对Landsat场景进行无监督分类(在其Wiki中给出的示例使用普通的30m分辨率)。 我尝试使用i.pansharpen先创建泛锐化的图像,但i.pansharpen只能输出3个可以使用d.rgb或组合的通道r.composite。据我所知,图像分类过程需要完整的多光谱波段1到7。在将它们输入到图像之前,如何使用其15m分辨率的波段8图像进行全景锐化,如何生成单独的波段(波段1到波段7)。图像分类过程? 我发现了一篇论文,展示了他们是如何做到的。基本上,他们使用某种主成分分析将30m多光谱波段与15m全色波段合并。确切的报价是: “该方法首先将30米的多光谱图像重新采样到15米。然后计算多光谱图像的所有六个主要成分(由于航向分辨率,我们删除了热能带。)然后是全色能带的直方图(15米重新缩放以匹配30米图像的第一主成分的直方图,并用重新缩放的全色带替换第一成分。这是合理的,因为第一主成分以类似于全色图像的宽光谱带。替换后,然后将这六个分量转换回原始数据空间,从而改善了空间分辨率。” 首先,论文没有显示任何算法/公式。我不知道如何将上述报价转换为相应的数学公式。我意识到我可以使用i.pansharpenPCA算法而不是通常的Brovey或IHS-但仍然-输出只会是红色,蓝色和绿色的3个通道-很遗憾,我不知道如何使用它们进行图像分类.. 因此,在我试图尝试手动编写新的PCA算法之前,还没有人可以帮助我指出一种更简单,更好的方法来对全貌的Landsat图像进行图像分类吗?我的意思是-应该有一种更简单的方法,对吗?我觉得我缺少一些简单的东西。 如果剩下的唯一途径就是编写自己的脚本,那么请给我指出一些类似于我正在尝试做的事情的东西吗? 很感谢任何形式的帮助!

1
具有共享数据目录的GeoServer集群
我正计划将GeoServer集群化。我可以在网上找到几个结果,说通常通过配置多个共享相同数据目录的GeoServer节点来建立群集。 同时,有一些结果(http://osgeo-org.1560.n6.nabble.com/Using-GeoServer-with-shared-data-directory-td4468628.html)表示所有GeoServer功能可能无法使用共享数据目录。 我尝试查看实际的GeoServer文档,但找不到有关如何使用共享数据目录,是否支持共享目录,哪些功能可以使用以及哪些不可用的详细信息。最好能找到的是“在设置GeoServer计算机集群时,通常在所有集群节点之间共享一个数据目录”,网址为http://docs.geoserver.org/latest/en/user/advanced/logging。 html。 不能使用共享数据目录。节点可能正在数据目录中写入各种文件,互相阻塞和干扰。没有清晰的GeoServer文档,我犹豫在生产中使用这种方法... 是否有一些权威文档 如何在群集的Geoserver中使用共享数据目录 集群Geoserver的其他方面(例如,我可以简单地在前面添加一个负载均衡器并且一切正常吗?http : //opengeo.org/publications/geoserver-production/上的3.2 表示正确吗?)
11 geoserver 

3
如何在顶点上分割线?
我进行了很多搜索,但没有找到答案:用QGIS编辑线时,我经常需要在他现有的内部顶点之一上精确地分割线串,但是我找不到办法。我已经尝试过“分割要素”工具,以为它可以在顶点上对齐,但是我错了,而且我尝试了几种没有运气的选择顶点的方法……任何解决方案?
11 qgis  editing 

7
开源云GIS的选项?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 我正在寻找一种开源云GIS解决方案。 当前情况:每天更新的文件地理数据库中存储的数据多达100gb。数据用于创建地图以及地理处理任务。 理想情况下,我只想要一个数据副本,但是需要在从事该项目的多家公司之间共享它们,这些公司还将添加新数据并更新旧数据。GIS用户正在使用ArcGIS Desktop v10.1,但对于项目团队的其他成员,我希望拥有一个可以执行简单任务(如测量和缓冲)的数据查看器。如果我们可以为数据查看器创建一些自定义工具,那就太好了。 所以我的主要标准是数据存储: 大量储存 从任何地方都可以轻松访问 快速简便地更新 可从自定义前端管理吗? 易于共享数据 安全 备份 权限等级 数据查看器: 良好的符号学 透明度 良好的基础映射 处理不同的预测 快速 2D和3D? ID工具 链接到文档/图像 添加简单的工具 缩放和测量 查看CAD和GIS,栅格,vect,TIN 良好的访问 创建特征 添加数据和坐标 权限等级 我希望实现一种经济高效且得到良好支持的解决方案。我认为这将是由多个组件组成的综合解决方案,但我只是不知道从哪里开始。 有比文件地理数据库更好的选择来存储更适合多路访问的数据,但是我不记得它们被称为什么(仍然是ESRI数据库)?很高兴使用附加到它们的大型数据库功能,例如SQL或Oracle-这会有所帮助吗?我没有我们希望继续使用的仅ArcGIS Server桌面...。当然,开源元素仍然可以使用ESRI桌面吗?我也没有对像样的观众感到高兴-我所见过的仅有的两个不错的人是Autodesks Infrastructure Modeller(Autodesk 360)和Google Earth Builder...。我知道这两个是要付出代价的,但是如果有的话没有什么开源软件可以匹配我,我愿意付钱。显然,ArcGIS Online没有 甚至可以询问光栅图像,因为我们处理高度数据很多,因此对我们毫无用处。因此,这可能会成为各种软件的错配,但我确定我可以使某些工作正常吗?我还想要一种自定义的元数据编辑器,而不是ArcCatalog中的讨厌的编辑器...一种可以将传入数据记录在数据库中,还可以将相同的元数据自动应用于地理数据库中的要素类的工具。我不喜欢像使用shapefile那样生成丢失的XML。我是只是在空想梦中设置不切实际的目标,还是您认为可以实现某些目标?可以将输入的数据记录到数据库中,也可以将相同的元数据自动应用于地理数据库中的要素类的某种操作。我不喜欢像使用shapefile那样生成丢失的XML。我是只是在空想梦中设置不切实际的目标,还是您认为可以实现某些目标?可以将输入的数据记录到数据库中,也可以将相同的元数据自动应用于地理数据库中的要素类的某种操作。我不喜欢像使用shapefile那样生成丢失的XML。我是只是在空想梦中设置不切实际的目标,还是您认为可以实现某些目标?

1
验证是否在ArcObjects的查询中使用了属性索引?
作为通过.NET使用ArcObjects编写的较大项目的一部分,我们有一些软件。该软件将数据从一个方案中的多个文件地理数据库迁移并合并到相似但不同方案中的单个文件地理数据库。迁移中的某些步骤涉及查找现有行,并使用其他表中的数据对其进行更新。当目标地理数据库很大时,这可能会变得非常慢,因此我添加了一些多字段属性索引来提高查询/更新性能。 有没有一种方法可以确认查询正在使用新的属性索引,以及可能如何执行查询? 我想我真的在寻找与查询计划等效的工具-与EXPLAIN PLANOracle 类似。 查询直接在使用ArcObjects的文件地理数据库中进行(没有RDBMS后端或SQL)。

2
如何描述连接边之间的特殊关系?
考虑以下简单情况,其中三个边在一个节点处连接: 我想对A和B之间的关系进行简洁明了的描述,以使其与A和C之间的关系区别开。到B,但是A不相邻?到C。” 但这并不是真正的邻接。 用另一种方式说:假设您站在节点上并且正对着A。您开始按顺时针方向旋转。下一个优势是B,而不是C。 有没有一种方法可以比我上面写的更简洁,正式或正确的方式描述A和B之间的这种关系? 它必须是有方向的(这种关系从A沿顺时针方向存在,而另一种沿逆时针方向存在)。并且必须扩展到节点上连接三个以上边缘的情况。也许与路由有关?(我在道路网络的背景下正在考虑这一点。) 我已经尝试过但还没有走很远的两种方法: 类似于9IM的拓扑参考:我研究过DE-9IM,即使我不是数学家,我仍然可以从图表和术语中看出它并不涵盖这种类型的关系。我在ESRI帮助或Oracle帮助的拓扑描述中都找不到它。(也许那里有东西,但是我还没找到呢!) 面孔:我一直在考虑这样一个事实,即A的“北”侧的面孔也可能受B限制,但不受C限制。但是,正如您在此图中看到的那样,这并不总是正确的。想象一下,我的图是从道路网络中摘录的,其中A和C是主干道路,B是一条短死角道路。 我怀疑我要说的话可能没有一个术语。至少我希望能够以一种比上述简单的方式描述这种关系。这是一个与平台无关的问题。现在,我只是在寻找正确的词。稍后,我将尝试在shapefile中以python(pyqgis或arcpy)实现该概念,因此考虑到该终点的任何答案都将特别有趣,但并非必需。

2
在osm2pgsql中,如何填充planet_osm_roads表?
我正在使用osm2pgsql从planet.osm填充北美OSM数据库。 我喜欢生成的PostGIS模式多么简单,但是我对其内容感到有些困惑。 我有两个桌子planet_osm_roads和planet_osm_line。我以为planet_osm_roads包含了所有高速公路数据,但是随后发现它只包含某些“高速公路”类型道路的一部分。 例如,planet_osm_line有超过12,000,000条线,“高速公路”值为“住宅”。但是,planet_osm_roads只有2,000个。相比之下,两个表都具有相同数量的“高速公路”功能。从数据来看,我不能说为什么某些功能会出现在一个表中,而另一个表中却没有。 我真的很想看看osm2pgsql用于将线要素定向到每个表中的规则。 我尝试浏览osm2pgsql源代码以了解这个谜,但是到目前为止,我还没有找到想要的东西。 任何建议都非常欢迎。

2
如何实现视域计算?
我正在寻找一种实现可见性(又称视域)的方法。我发现了一个先前的GIS SE问题,该问题提出了一些GIS应用程序(不是我需要的-我正试图嵌入计算结果)以及SAGA。SAGA看起来更像我要寻找的东西(C ++,Java,C#类),但是我对API文档了解得不够多,无法弄清楚我什至需要实例化哪些类(或子类)。 我不依赖SAGA的想法-我只是在寻找可以进行互见性计算的库/引擎。 约束条件是: 合理地“轻巧”(因为我希望能够涵盖嵌入式/移动设备) 合理的开源(因为我的应用程序将是开源的,尽管只要与(L)GPL兼容,我可以灵活地确定使用哪个许可证)。 谁能推荐这样的库或引擎,并提供描述或链接到我需要用来查看视域计算的库或引擎的哪一部分? 作为替代/补充,我也希望能获得对论文或教程的引用,这些论文或教程解释了如何以有效的方式进行这些计算(适用于嵌入式/移动设备,因此基于GPU的实现可能不如更通用,并处理低功率设备) 我的偏好是现有的实现,而不是自己创建一些东西(这是一个备份选项)。 编辑:C ++不是一个严格的要求-任何合理的可移植性(C#,C ++,Java)都可以。我正在尝试使用库或模板,而不是嵌入大型应用程序。
11 c++  saga  viewshed 

2
如何在PostGIS中识别和简化点簇?
我刚刚开始使用空间数据库,我想编写一个SQL(PostGIS)查询来自动概括原始GPS轨迹(具有固定的跟踪频率)。我要唤醒的第一件事是一个查询,该查询以查询形式(例如“ y米距离内的x个点”)标识停顿点,以用代表点代替大量点云。我已经意识到要在一定距离内捕捉点并计算捕捉的点。在下面的图片中,可以看到原始示例轨迹(小的黑点)和捕捉点的中心为彩色圆圈(大小=捕捉点的数量)。 CREATE table simplified AS SELECT count(raw.geom)::integer AS count, st_centroid(st_collect(raw.geom)) AS center FROM raw GROUP BY st_snaptogrid(raw.geom, 500, 0.5) ORDER BY count(raw.geom) DESC; 我对这个解决方案非常满意,但是存在时间问题:将轨道想象成一个城市中的全日轨道,人们可以返回到之前已经访问过的地方。在我的示例中,深蓝色圆圈代表该人两次访问过的房屋,但我的查询当然忽略了它。 在这种情况下,复杂的查询应仅收集带有连续时间戳(或id)的点,以便在此处产生两个代表点。我的第一个想法是将查询修改为3d版本(时间为三维),但似乎不起作用。 有人对我有什么建议吗?我希望我的问题清楚。 谢谢您的创意。我意识到要制作和简化线串,如下面的屏幕截图所示(点是原始点)。 我仍然需要确定休息地点(半径小于x米的x点),理想情况下是到达时间和离开时间的一个点……还有其他想法吗?
11 postgis  point  time 

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.