地理信息系统

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

1
有没有办法在Python中适当地使GDAL引发异常?
我正在Python中使用GDAL,并且想让GDAL引发异常,以便我可以对它们做一些有用的事情。例如,如果无法使用gdal.Open()打开文件,我想抛出一个异常,而不是gdal返回None。我只想捕获错误而不是将它们转储到sys.stdout。 目前,我已经尝试使用该gdal.UseExceptions()功能,但是遇到了一个问题。当gdal.UseExceptions()设置似乎隐藏某些错误,他们不会引发异常。例如ERROR 5: Access window out of range in RasterIO() Requested (1,15) of size 25x3 on raster of 26x17消失,没有异常引发。这似乎很危险。 任何想法表示赞赏,谢谢。
12 python  gdal  ogr  osgeo 

1
使用LiDAR数据提取建筑物(改进流程)
我有以下过程,可以从Las文件自动创建建筑轮廓/足迹,并且想知道是否有人可以帮助改进它或对使用其他过程有建议? 实验: 答:ArcGIS-Lidardataset工具:虽然您只能看到建筑类点,但不能自动创建多边形。边界几何最小,但是从整体上看数据集时,它需要您手动为每个建筑物选择点。 B.守望先锋的外部激光雷达分析工具 -建筑物提取是一项核心功能。http://www.featureanalyst.com/lidar_analyst.htm(已不再使用-2014年7月28日) 创建裸露的地球(基本)大约需要8分钟,然后提取建筑物。到目前为止,即使在树下捕捉建筑物,它也能提供最佳效果(1&4)。这是一个非常直观的界面,甚至不需要看教程。 一些问题是它错过了覆盖的走廊(3),但正确地遗漏了敞开的屋顶(2)。 C. LASTOOLS-使用lasmerge合并4个相关图块,然后使用lasclip仅提取AOI区域。 arcpy.lasboundary("AOI.las","1","buildings","true","true","shp","AOI_buildings.shp","","#","true") 输出非常锯齿,所以我使用了: arcpy.SimplifyBuilding_cartography("AOI","AOI_buildings_simplified.shp","4 Meters","0 SquareMeters","NO_CHECK") 然后运行: arcpy.SimplifyPolygon_cartography("AOI_buildings_simplified","AOI_s.shp","POINT_REMOVE","1 Meters","0 SquareMeters","NO_CHECK","KEEP_COLLAPSED_POINTS") 图1和2显示了问题区域。部分原因是由于激光雷达分类不良。 这为长直边建筑物提供了良好的建筑线条,但是如果分支重叠,或者它是一栋具有多个边缘的复杂建筑物,并且多个楼层的屋顶彼此靠近等,则对于任何详细的场地级别工作,都必须手动创建。对于总体估计屋顶形状,该过程足够准确。该过程完成后,整个过程总共不到10分钟。 我的研究:https : //stackoverflow.com/questions/5037588/simplified-or-smooth-polygons-that-c​​ontain-the-original-detailed-polygon和@gromix建议的过程以及定义,算法和实际解决方案是什么凹面船体?

1
有聪明的旅行推销员吗?
除了笑话,我遇到的路由问题几乎是旅行商问题(TSP): 定义起点 终点与起点重合 每个节点都必须被访问 总成本应降至最低 两年前,我认为TSP将是一个完美的选择,因此我通过tsp_solve和协和式处理了一些示例数据。幸运的是,很快就很明显,TSP最短路径不是真正的最短路径,因为通过不切实际地要求对节点进行一次精确访问就使问题变得更加容易。这张图片只是一步一步地尝试优化计算解决方案,并且已经节省了最长使用边缘的距离。 当我试图找到通往地图/监视站点子集的最佳路由时,问题再次浮出水面。位置和道路网络数据非常准确和精确,因此这样的练习很有意义。 我已经看过TSP的概括,但是没有找到合适的算法。最小的生成树不考虑分支返回(这里的第一个解决方案要多花费3个)。据我了解,最短路径问题最终仅关心两个节点,而那些不在最佳路径中的节点将被忽略。车辆路径问题的一个特例似乎最合适,尽管我不知道它是否考虑非直接路径。 我的问题:是否有解决此问题(家庭)的名称,定义?您将使用什么算法和工具来解决它? 我敢肯定这会占用大量计算资源,但我对常规(无限资源)和实用答案都感兴趣。

2
空间启用的Postgres数据库
我正在尝试创建一个启用空间的PostGIS数据库。我正在遵循PostGIS文档http://postgis.net/docs/manual-1.5/ch02.html#id2648455。 在简短的版本中,我执行了 createdb yourdatabase createlang plpgsql yourdatabase 但是我没有执行最后三个命令, psql -d yourdatabase -f postgis.sql psql -d yourdatabase -f postgis_comments.sql psql -d yourdatabase -f spatial_ref_sys.sql 我的数据库还在空间上启用吗?如果没有,那么您能告诉我这些.sql文件的位置,以便执行最后的命令,因为出现以下错误, postgis.sql: No such file or directory 我正在使用Ubuntu 12.04

1
将栅格数据转换为面数据
我正在尝试将栅格数据转换为面数据。以前,我使用shapefile.py在栅格上的各个纬度/经度上创建点数据。但这将创建大量数据,而对其进行查询将是一个大问题。 因此,如果能够将栅格数据转换为多边形数据会更好。我能够找到SAGA,但似乎它只能转换.grd文件。有没有一种方法可以将GeoTIFF格式或栅格数据集一般转换为Polygon? 更新:使用gdal_polygonize.py 我正在执行以下代码行, gdal_polygonize.py ~/development/Biodiversity/biodiversity/GeoTIFF/bio11.tif -f "ESRI Shapefile" bio11.shp 但是我收到以下错误。我的gdal版本是1.9.0。 Traceback (most recent call last): File "/usr/bin/gdal_polygonize.py", line 34, in <module> import gdal, ogr, osr File "/usr/lib/python2.7/dist-packages/gdal.py", line 2, in <module> from osgeo.gdal import deprecation_warn File "/usr/lib/python2.7/dist-packages/osgeo/__init__.py", line 21, in <module> _gdal = swig_import_helper() File "/usr/lib/python2.7/dist-packages/osgeo/__init__.py", line 17, in …

1
您如何组织地理数据?
地理数据库在分层组织数据方面没有提供很大的灵活性。所有要素集都位于数据库的顶层,或者位于要素数据集中的下一层。反过来,要素数据集不能包含另一个数据集。我很想听听其他人如何组织他们的数据,尤其是在他们必须使用地理数据库并且受限于这些限制的环境中。

5
QGIS中是否有旋转工具?
我可以看到移动工具。但是在各种版本中,我在Quantum GIS中都没有看到任何Rotate工具。作为我自己的核心功能编辑器,我发现这相当困难。我缺少明显的东西吗?
12 qgis  editing 

2
在ArcGIS中优化Multcore处理的方法
我对学习方法有兴趣,以充分利用台式计算机上可用的多核处理能力。Arc指出,后台地理处理允许用户利用多个核心,但是,任务本质上必须排队等待上一个任务完成。 是否有人在Arc / Python中开发了并行或多线程地理处理方法?是否存在阻止单个任务进行多核处理的硬件瓶颈? 尽管不是地理处理示例,但我在Stackoverflow中找到了一个有趣的示例,引起了我的兴趣: from multiprocessing import Pool import numpy numToFactor = 976 def isFactor(x): result = None div = (numToFactor / x) if div*x == numToFactor: result = (x,div) return result if __name__ == '__main__': pool = Pool(processes=4) possibleFactors = range(1,int(numpy.floor(numpy.sqrt(numToFactor)))+1) print 'Checking ', possibleFactors result = pool.map(isFactor, …


6
专用Web应用程序的免费地图服务
背景 希望在网页上显示地图(仅供内部使用)。该应用程序必须能够添加自定义图层(无需将数据发送到地图服务主机): 市政区域(由shapefile定义) 自定义区域(由多边形定义,可能以市政区域为单位) 站点位置(经纬度定义) 其他城市数据(由形状文件定义) 由于是私人企业,因此消除了许多地图服务,包括:Google Maps,Bing,Yahoo!。地图,MapQuest和其他付费使用服务。 更新#1 也许MapQuest是有可能的。 更新#2 我忘记提及的要求: 还有其他数据(城市,城镇,小村庄)不是OpenStreetMap的一部分。必须包括这些城市,而无需将数据提供给地图提供商。 在不告知地图提供者在哪里可以找到数据(即数据将位于防火墙之后)的情况下,也必须显示各种层(例如员工位置)。 目前的发展 目前,我找不到能满足我要求的服务器,因此我一直遵循各个网站上的说明来安装Mapnik Web服务器: http://dbsgeo.com/foss4g2010/html/_static/pdf/osm-rendering-foss4g2010.pdf http://osgeo.org.cn/l18n/geodjango/install.html http://wiki.openstreetmap.org/wiki/Mapnik/安装 http://www.postgresonline.com/journal/archives/180-pgAdmin113plugins_postgis.html http://blog.geoserver.org/2009/01/30/geoserver-and-openstreetmap/ http://workshops.opengeo.org/stack-intro/postgis.html 将多个shapefile批量加载到PostGIS中 在这一点上,我有各种数据: 城市和市政数据(加载到PostGIS中的图形文件) 自然地球数据(形状文件;未加载) Mapnik样式表(各种文件;未加载) 地理服务器 我尝试安装GeoServer(Mapnik之前的版本),但发现缺少文档,基于Web的管理工具配置起来很麻烦,并且2 GHz机器上的响应速度非常慢(用10秒钟渲染带有单层:道路)和默认的审美平淡。(我知道我可以使用样式表来丰富演示文稿,但这意味着必须查找[或创建!]合适的文件,进行安装,测试,等等。) 要求 技术要求包括: 城市,道路,水域(湖泊,河流,海洋) 政治界限(省,国家) 高质量(外观类似于Google Maps,MapQuest等) 正常运行时间长 900913投影(类似于Google地图) 自适应磁贴(每个磁贴少于0.1秒) 出色的加拿大街道数据覆盖 适用于滑动地图(与OpenLayers兼容) 每天10,000个磁贴请求 免费用于商业(或私人)用途,或每年少于$ 2000? 好的例子 这是我要实现的一个很好的例子(OpenLayers): 错误的例子 我不希望实现的示例: 不完整数据的示例: …


1
了解QGIS栅格地形分析的曲率滤波器?
我已经阅读了几个QGis-1.7.4栅格滤波器的源代码,这些栅格滤波器计算斜率,纵横比和曲率。 过滤器中有一个计算总曲率的公式令我困惑。 源文件位于QGis的当前版本中,具有以下路径: qgis-1.7.4 / src / analysis / raster / qgstotalcurvaturefilter.cpp 该过滤器的目的是在九单元格窗口中计算表面的总曲率。功能代码如下: float QgsTotalCurvatureFilter::processNineCellWindow( float* x11, float* x21, float* x31, float* x12, float* x22, float* x32, float* x13, float* x23, float* x33 ) { ... some code deleted ... double dxx = ( *x32 - 2 * *x22 + …


1
ArcPy在编写相邻的多部分几何图形时会添加错误的内圈吗?
使用Arcpy将多部分几何体写入shapefile时,我遇到了一个奇怪的问题。我正在使用InsertCursor从零件列表创建一个多零件特征,每个零件都有一个顶点对列表。我了解创建此功能后,相邻的多个零件会自动“溶解”为单个零件。但是由于某种原因,这会创建一个内部环,即使我没有像添加内部环通常所需的那样在数组中包括Null arcpy.point()。这是一个可视化: 有谁知道为什么会这样和/或如何解决这个问题? 供参考,这是我的代码: import arcpy arcpy.CreateFeatureclass_management(r"C:\temp", "test.shp", "POLYGON") OutputCursor = arcpy.InsertCursor(r"C:\temp\test.shp") # List of parts, each with list of vertex pairs ListOfParts = [] ListOfParts.append([[0,1],[1,1],[1,0],[0,0],[0,1]]) ListOfParts.append([[0,2],[1,2],[1,1],[0,1],[0,2]]) ListOfParts.append([[0,3],[1,3],[1,2],[0,2],[0,3]]) ListOfParts.append([[1,1],[2,1],[2,0],[1,0],[1,1]]) ListOfParts.append([[1,2],[2,2],[2,1],[1,1],[1,2]]) ListOfParts.append([[1,3],[2,3],[2,2],[1,2],[1,3]]) ListOfParts.append([[2,1],[3,1],[3,0],[2,0],[2,1]]) ListOfParts.append([[2,2],[3,2],[3,1],[2,1],[2,2]]) ListOfParts.append([[2,3],[3,3],[3,2],[2,2],[2,3]]) # Array of parts to be passed to newRow() ArrayOfParts = arcpy.Array() # Add parts to …


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.