地理信息系统

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

1
从QGIS Python插件添加PostGIS层
我尝试开发一个插件,以从插件中向qgis添加postgis层,作为学习python的一部分。 如果我从qgis中的python控制台运行它,则用于添加postgis图层的代码可以从食谱中获取,并且可以正常工作(如果在对话框result == 1中按了OK按钮,则应该将我的图层添加到qgis中)。 但是,如果我从插件运行它,则会引发消息NameError:未定义名称'QgsDataSourceURI'。为什么从插件运行该错误? 我如何从插件/函数内部添加图层与从Python控制台添加图层有区别吗? def run(self): """Run method that performs all the real work""" # show the dialog self.dlg.show() # Run the dialog event loop result = self.dlg.exec_() # See if OK was pressed if result == 1: # Do something useful here - delete the line containing …

2
将特定的GeoJSON文件格式化为正确的格式
我想使用这个json文件,它还不是GeoJSON文件,但是我注意到它包含多个功能,而没有一个令我感到困惑的功能。我想问一下您是否知道可以将所有Feature / FeatureCollections合并到一个有效的GeoJSON文件中的工具,以便可以将其用于D3.js?原始文件在这里,我已经摆脱了geojson不需要的东西。 这是GeoJson的摘录,它很大,所以我不只是片段 {"points": [{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "coordinates": [41.9773865, 36.3372536], "type": "Point" }, "properties": { "attacks": 1, "location": "Sinjar", "date": "2015-10-16" } }, { "type": "Feature", "geometry": { "coordinates": [43.4873886, 34.9301605], "type": "Point" }, "properties": { "attacks": 2, "location": "Baiji", "date": "2015-10-16" } …
9 geojson  json 

1
异国投影QGIS
我想在QGIS中使用一些我看不到直接支持的投影。一个例子就是这样的保形立方体投影。http://www.csiss.org/map-projections/Polyhedral_Globes/Cube_Gnomonic.pdf 关于寻找细节以及使用此或类似投影的任何提示?

3
使用QGIS映射一百万个点
我正在尝试在美国映射不超过元数据的,具有超过一百万纬度/经点的CSV。我从未尝试过映射这么多数据,并且想知道我应该采取什么步骤。我知道QGIS的数据太多,所以我尝试将其拆分为100,000行CSV,但随后得到了很多我不知道该怎么处理的文件。我认为最好是按人口普查汇总点,但是不知道使用Javascript(我从未使用过Python)或命令行工具的最佳方法吗?有什么建议么?
9 qgis  turf 

3
具有多边形的“贪婪”剪切线
我希望将一组折线(下图中的黑线)剪辑到多边形的外部边界。多边形内的任何空隙均应忽略。我理想的输出是黄色虚线。初始线可能是直线,也可能不是直线。图像是一个简化的示例,实际上多边形要复杂得多,并且有数百条线。我认为凸包不会起作用(但是我可能错了)。我对arcgis,qgis,arcpy,shapely等解决方案持开放态度。最好在python中进行编码,因为如有必要,我也对其他选项开放。为了使我的同事更容易共享工具,Arcgis也将是更可取的,但这不是必需的。 我现在能想到的最好的方法是将一条线与多边形相交,在所有边界相交处创建一组点。按距离到直线起点的距离对点进行排序。最远和最近的(FAC)点将是多边形的外边界。然后,使用FAC点从原始线中选择适当的顶点,并从适当的点创建黄色虚线。它应该可以工作,但看起来比必要的更为复杂。 一些其他想法: 这些线是线性的,足以进行点之间的简单距离计算,而不必进行线性参照。 如果有一种工具可以在一点上分割一条线,但是我找不到它,那么在arcpy中这很容易。 有人在想吗?


6
检测并修复GPS轨迹中的异常值
我需要找到一种算法或方法,该算法或方法可以 latitude longitude 在后处理过程中检测出轨迹中的异常点,然后可以对其进行修复(根据其邻居将其重新带入轨迹的路径中)。 作为我要检测和修复的异常点的示例,我附加了一个图像,该图像演示: 我尝试使用无味的Kalman过滤器尽可能地平滑数据,但是对于更极端的异常值(原始数据为蓝色,平滑数据为红色)来说,这似乎还不够有效: 我的UKF可能未正确校准(但我相当确定是正确的)。 轨迹是步行者,跑步者,骑自行车者的轨迹-可以启动和停止,但不会迅速或突然急剧改变速度或位置的人力运动。 不依赖时序数据(仅依赖位置数据)的解决方案将非常有用(因为正在处理的数据可能并不总是包含时序数据)。但是,我知道这种解决方案不太可能存在,因此,我同样很高兴拥有任何解决方案! 理想情况下,解决方案将检测异常值,以便将其固定,从而得到正确的轨迹: 我筛选的资源: Smooth GPS data- /programming/1134579/smooth-gps-data Common GPS and Geospatial Tracking Challenges and Solutions-http ://www.toptal.com/gis/adventures-in-gps-track-analytics-a-geospatial-primer(解决方案似乎失去了数据的准确性) 我应该使用什么算法去除跟踪数据中的异常值?

3
在PyQGIS中循环执行空间查询
我所试图做的事:循环通过一个点shapefile,然后选择属于每个点为一个多边形。 以下代码受我在一本书中发现的空间查询示例的启发: mitte_path = r"D:\PythonTesting\SelectByLocation\mitte.shp" punkte_path = r"D:\PythonTesting\SelectByLocation\punkte.shp" polygon = QgsVectorLayer(mitte_path, 'Mitte', 'ogr') points = QgsVectorLayer(punkte_path, 'Berlin Punkte', 'ogr') QgsMapLayerRegistry.instance().addMapLayer(polygon) QgsMapLayerRegistry.instance().addMapLayer(points) polyFeatures = polygon.getFeatures() pointsCount = 0 for poly_feat in polyFeatures: polyGeom = poly_feat.geometry() pointFeatures = points.getFeatures(QgsFeatureRequest().setFilterRect(polyGeom.boundingBox())) for point_feat in pointFeatures: points.select(point_feat.id()) pointsCount += 1 print 'Total:',pointsCount 这有效,并且确实选择了数据集,但是问题在于它是通过bounding box选择的,因此显然返回的点我不感兴趣: 如何不使用qgis:selectbylocation仅返回多边形内的点? …



2
剪切光栅图像会增加文件大小
使用QGIS 2.4.0 Chugiak我有一个关于裁剪光栅图像的问题。我有一个航拍图片,我想使用shapefile的范围进行裁剪。到目前为止,我已经使用光栅/提取/剪切器工具来做到这一点。问题是我的输出栅格的文件大小几乎是原始文件的三倍(即分别为725.283和249.693 kb),而其覆盖面较小。 为什么我的文件更大?有什么办法可以“设置”输出文件的大小? Clipper的帮助功能参考以下页面:http : //www.gdal.org/gdal_translate.html尽管我不能从中做很多。 我对QGIS比较陌生。

3
在二进制栅格中创建大量随机点?
我想在二进制栅格中创建10000个点(或更大点)的点矢量数据集,该点应限制在栅格值为1的区域中。 我尝试了以下步骤。 多边形栅格化 QGIS:矢量->研究工具->随机点 这可以正常工作到2000点,但是任何以上都会导致QGIS崩溃。 有没有一种方法来创建具有大量点特征且受二进制栅格(或其多边形化版本)约束的矢量数据集? 我可以使用以下工具,从最不喜欢到最不受欢迎:QGIS,Python,R,ArcGIS 这就是我要的,只有10倍的点特征。

1
如何从数据框创建SpatialLinesDataFrame?
我已经在R中创建了一个data.frame。我想获得SpatialLinesDataFrame的结果,所以我理解我必须将data.frame转换为线,将线转换为SpatialLines,将SpatialLines转换为SpatialLinesDataFrame。我做了这个 filedata.frame=data.frame(matrix(file),ncol=14, byrow=T)) file=Lines(filedata.frame) 我得到了我想要的data.frame,但没有得到线。我确定这是基础知识,但是为什么我不能理解?
9 r  line 

1
从n个预期位置为一个点逼近GPS坐标
我正在尝试查找关注点的坐标(X点,标记为蓝色)。我使用汽车的GPS设备来收集每次访问点x时车辆停放位置的坐标。因此,在进行了16天的练习之后,我设法获得了16套坐标,并围绕我的注意力分散开来。 在地图上绘制这些坐标后,我观察到以下情况:十两次,三次,我的GPS设备给出了一组错误的坐标,结果证明它远离X点很安静。此外,由于路况,我有时无法停在x点附近,因此在这种情况下,获得的坐标也远离x点。 问题:从获得的16组坐标中,我应该使用什么过程来缩小到与我的关注点(X点)非常接近的一组坐标?

1
数据访问的“ SHAPE @ XY”和“ SHAPE @ TRUECENTROID”令牌之间有什么区别?
数据访问搜索光标。 令牌"SHAPE@XY"和之间的区别是什么(如果有的话)"SHAPE@TRUECENTROID"? 他们在测试多边形上返回了相同的坐标: >>> cursor = arcpy.da.SearchCursor("test", "SHAPE@XY") >>> for row in cursor: ... print row[0] ... (559389.3838043335, 4239093.201390337) >>> cursor = arcpy.da.SearchCursor("test", "SHAPE@TRUECENTROID") >>> for row in cursor: ... print row[0] ... (559389.3838043335, 4239093.201390337) 对于多部分面要素,其行为方式相同。它会返回不同的结果吗?

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.