地理信息系统

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

8
最大限度地利用CPU
我的脚本是将线与多边形相交。因为有3000多个线和500000多个多边形,所以这是一个漫长的过程。我从PyScripter执行: # Import import arcpy import time # Set envvironment arcpy.env.workspace = r"E:\DensityMaps\DensityMapsTest1.gdb" arcpy.env.overwriteOutput = True # Set timer from datetime import datetime startTime = datetime.now() # Set local variables inFeatures = [r"E:\DensityMaps\DensityMapsTest.gdb\Grid1km_Clip", "JanuaryLines2"] outFeatures = "JanuaryLinesIntersect" outType = "LINE" # Make lines arcpy.Intersect_analysis(inFeatures, outFeatures, "", "", outType) #Print end …


3
仅使用ArcGIS for Desktop在特定方向上创建缓冲区?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 6个月前关闭。 我正在尝试为西南方向的多个多边形创建缓冲区。据我所知,使用缓冲工具是不可能的(我使用ArcGIS 10.3)。我可以手动完成,但是对于大约400多个多边形,这将花费太长时间。 有人知道更好的方法吗? 这或多或少是我的目标:

3
如何防止数据驱动页面在后续导出中挂起?
我正在使用ArcMap 10.3.0,并通过数据驱动页面(DDP)导出。DDP导出第一次按预期方式工作,并立即进行后续导出,但是如果我使用DDP 从同一MXD进行大约一分钟左右(时间不同)后再次导出,则程序挂起,我必须将其关闭通过任务管理器。 单击“导出”后,我可以判断它是否将挂断,因为“导出”窗口不显示“ x的x页”文本。在此处查看屏幕截图:https : //geonet.esri.com/message/536459#536459。即使我让计算机运行一会儿,“ x的x页”文本也不会出现,并且不会发生导出。仅在从MXD超过一分钟后,随后的导出才会发生这种情况。 无论我是第一次导出单个页面还是整个文档,这种情况似乎都会发生。但是,如果我使用新名称重新保存MXD,然后将其导出,则该MXD始终会挂断并要求重新启动ArcMap。无论我是创建新的PDF文件还是覆盖现有的PDF文件,似乎都会出现问题。 其他信息: 我的地图由一个ESRI空中底图(没有其他栅格图层)组成,具有五个10000'x 10000'激光雷达轮廓shapefile和大约10个其他小的矢量shapefile图层。 我的导出设置为:300 dpi分辨率和输出图像质量/重采样比1:2。 我正在这座大楼的数据服务器上工作,但是连接速度却有所不同。 另一位同事在他的计算机上使用相同的MXD遇到相同的问题。 编辑后添加此错误消息:在ArcMap挂起在随后的导出上并在任务管理器中单击“结束任务”后出现。这只是我第二次或第三次收到此错误消息,但我认为这可能是无关紧要的。(此外,我没有错误消息中所示的f:/驱动器。) 有人在GeoNet上提出了以下问题:https ://geonet.esri.com/thread/161564 她的问题没有解决方案,因此我想在这里再次提出。 有什么方法可以防止ArcMap在随后的DDP导出中挂起? 编辑以添加此代码段,该代码段将产生多个导出而不会挂起: import_path = r"R:\Projects\Project\GIS\MXDs\Project_property_maps.mxd" # Path of .mxd export_path = r"C:\Users\user\Desktop\test\Test" # Path of output file field_name = "Project_INDEX.Pg_num" # Name of field used to sort DDP pg_name = …

4
最小化ArcMap中的属性表?
在ArcGIS 10.0之前,我同时处理多个属性表,并且经常将它们最小化。 现在,属性表没有图标,可以在Windows 7计算机上使用ArcGIS 10.1 for Desktop将它们最小化。 我们在PC和Citrix中都有它们,并且那里的软件行为是相同的。 有没有一种方法可以使属性表最小化?

7
有没有一种快速的方法来清除图层中的所有属性,但将多边形保留在原处?
我在QGIS 2.6中有一个Shapefile图层,其中包含多个多边形,每个多边形的数据都超过100个字段。我需要创建一个具有所有相同多边形的新图层,但它们的所有数据字段都为空白(根据字段类型设置为0,Null或空)。有没有比一次在每个多边形的每个字段上按Delete更快的方法,所以我必须这样做1000次以上。

1
gdalwarp和projectRaster之间的区别
我正在尝试投影栅格。在R中有对此projectRaster()功能(在一个完全可复制的示例下面): # example Raster require(raster) r <- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, ncols=40, nrows=40) r <- setValues(r, 1:ncell(r)) projection(r) # project to newproj <- "+init=epsg:4714" # using raster package to reproject pr1 <- projectRaster(r, crs = CRS(newproj), method = 'bilinear') 哪个工作正常。但是,它很慢。 为了提高速度,我还是gdalwarp改用了(使用SSD时,从磁盘/ R读写数据的成本不是很高)。 但是,我无法重现projectRaster()使用的结果gdalwarp: # using gdalwarp to reproject tf <- …

1
如何基于点属性创建地图集?
本质上,我想基于点层中的分类字段生成图集。 即,我有一个带有分类字段“ Provision”的托儿服务提供者点层。我已经用“课后俱乐部”,“早餐俱乐部”等对该字段中的每个功能进行了分类,现在我想生成一组地图,这些地图在每个类别中进行迭代,并仅显示每个类别的要点。一张课后俱乐部地图,一张早餐俱乐部地图等。程度可能略有不同。 我可以一个一个地做,但是似乎应该有一种方法可以根据每个类别的范围来制作图集?(我确实觉得我缺少明显的东西:)) 或者,是否有一种方法可以自动创建多边形图层,并将其用作图集的隐藏范围? 编辑:我在此方面取得了一些进展-您可以使用基于规则的样式来打开和关闭与当前地图集覆盖范围功能相关的功能。如果您只想显示一组不同的点,它实际上就可以正常工作。我现在正在考虑将其与配色方案和反应性图例联系起来。
9 qgis  extents  atlas 

4
将KML和样式信息导入Geoserver
因此,我正在从事一个已经开发了一年以上的项目,但是直到最近我才参与其中。我的任务涉及将大约2500个KML文件转换为另一种格式,将这些文件导入Geoserver,然后复制每个文件的关联样式信息。我意识到Geoserver允许您直接导入KML文件,但是,我们的文件似乎永远无法正确呈现,而我的老板出于哲学原因希望退出KML格式。 我尝试使用ogr2​​ogr将这些文件转换为ESRI Shapefile,但是转换过程仅对大约三分之一的文件起作用,并且删除了样式信息中要求的一些元数据。我读取的未转换多边形和点代码的文件对于QGIS等其他程序可能是错误的。 我还尝试将所有KML文件放入PostGIS数据库中,并像这样进行转换。但是,这似乎删除了所有数据,从而基本上保留了空白表供导入。 TL; DR我需要找到一种方法来将2500个KML文件转换为Geoserver可用的格式,并且可以处理XML样式信息。我是一个完整的GIS新手,这是我第一次发布,因此对这似乎有点可笑,我感到抱歉。

1
空间谓词“ Covers”和“ Contains”有什么区别?
我尝试了解DE-9IM交集矩阵的空间谓词。我不明白谓语之间的区别封面(各自CoveredBy)和包含(相应地,在)。 我试着用画几何JTS拓扑套件,他们总是Covers = True 和 Contains = True(或两者都是假),但我不管理,使他们不同,即看到的区别Covers和Contains。是否有人举例说明了差异(最好是WKT或图片)?

1
Leaflet JS将GeoJSON形状添加为多边形中的孔
我有一个已经包含geojson的数据集。我可以使用以下代码将其添加到地图中。 L.geoJson(data.geojson).addTo(map); 我明白了 但我想实现这一目标,将周围的区域覆盖起来,我的geojson形状在其中部形成一个孔。 根据传单文档 您还可以通过传递latlngs数组的数组来创建带有孔的多边形,第一个latlngs数组代表外环,其余的latlngs数组代表内部的孔。 所以从理论上说: var scotland = [[60,-13],[60,0],[50,4],[50,-13]]; L.Polygon([scotland,coordinatesOfShapeHole].addTo(map); 我的问题是此函数似乎不像我传入data.geojson或data.geojson.coordinates作为第二个参数(coordinatesOfShapeHole); 有什么方法可以将data.geojson转换为L.Polygon函数满意的格式? 还是用L.geoJson做同样的事情?

1
如何使用数量符号在ArcGIS中对空值进行符号化?
我的数据中的一个数字字段涉及空值(缺少数据)。当我将其指定为符号体系中的数量时,事实证明与空值关联的多边形将从地图中取出。如何在地图上表示这些值(即它们的多边形)?我读了一些将空值转换为0的地方,但是这样做会产生误导,因为这些缺失的条目不是0。 在将shapefile与属性表连接之后,我陷入了这种情况,但是我猜想任何包含缺失数据的数据都会发生这种情况。是这样,还是仅对加入过程唯一?

2
模糊最小粗共分割算法
给定形状的两个不同分区(出于论证的考虑,一个国家的两个不同行政区划),我如何才能找到一个新的分区,使这两个分区都适合,从而允许(并优化)某些错误? 例如,忽略该错误,我想要一个执行此操作的算法: 也许有助于用设定的术语表达这一点。使用以下编号: 我可以将上面的分区表示为: A = {{1},{2},{3,4,7,8},{5},{6},{9,10,13,14},{11},{12},{15} ,{16}} B = {{1,2,5,6},{3},{4},{7},{8},{9},{10},{13},{14},{11,15} ,{12,16}} 点B = {{1,2,5,6},{3,4,7,8},{9,10,13,14},{11,15},{12,16}} 并且产生A点B的算法似乎很简单(类似,如果两个元素在A(B)中的分区中合并在一起,则将它们在B(A)中的分区合并-重复直到A和B相等。 但是,现在想象一下,这两个分区之间的某些行略有不同,因此不可能找到完美的答案,而是我希望最佳答案受制于最小化某些错误准则。 举一个新的例子: 在左列,我们有两个没有公共线的分区(除了外部边框本身)。上述唯一可能的解决方案是琐碎的解决方案,即右栏。但是,如果我们允许“模糊”解决方案,那么中间一栏可能是允许的,比如说竞争总面积的5%(即分配给每个粗化分区中的不同子区域)。因此,我们可以将中间列描述为表示“误差小于5%的最小粗略公共分区”。 那么,实际答案是顶部行,中间列还是中间行,中间列中的分区,或者介于两者之间的分区,就不那么重要了。

1
PostGIS多边形边缘分析(方向,边缘长度)
我对GIS尤其是PostGIS不太熟悉,因此,如果答案似乎显而易见,请原谅... 我想对许多建筑物进行分析。我感兴趣的一件事是它们的外墙表面以及各自的方向。如下图所示,我希望具有一系列多边形中所有边的长度和(法线)方向。在示例中,我仅突出显示一个表面。 结果表可能是这样的: building_id | edge_id | orientation | edge_length ------------------------------------------------- 1 | 1 | 315 | 10.0 1 | 2 | 45 | 7.0 1 | ... | ... | ... 但是,我不确定这是否是存储结果以进行进一步处理的明智方法(例如,计算从边缘到下一栋建筑物的距离等)。所以我的问题是双重的: 是否有一个有效的PostGIS功能可以分析多边形的边缘?如果没有本地PostGIS功能,我可能会对基于Python的方法感兴趣。 由于多边形的边数可能不同,因此将结果存储在PostGIS表中的聪明方法是什么?

1
(大圆)路径上的项目位置
我已经在这个SE网站上搜索了好几个小时,但我仍在努力寻找解决问题的方法。我的目标是给定OSM中的一种方式和我的位置(纬度/经度坐标),我想以此方式找到最近的位置(纬度/经度坐标)。该点可以在路线上的任何位置,而不仅限于用于定义路线的点。 所以我在考虑以下算法: 单独的路径分成单独的边,每个边仅连接两个点。 选择最近的边。 将我的位置投射到该边缘。 现在有很多关于计算位置和路径之间距离的问题: WGS指向WGS线段(大圆)的距离 计算一个点与两条经度/纬度的虚拟线之间的距离 如何近似球体上点到线段的距离? 还有一个非常类似的问题,我无法正确计算或验证该计算: 在直线上找到最近的点 Math博士也提供了一些有关该主题的信息。但是,我似乎找不到在第3步中计算位置的算法。由于我已经有一段时间没有接触(矢量)代数了,所以我不太理解这些答案中的逻辑。 有人可以展示一种算法来做到这一点吗?我可以用任何合理的编程语言来解决。

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.