地理信息系统

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

3
在PostGIS中存储大型栅格并在QGIS中进行可视化会降低性能
我的问题是与PostgreSQL,PostGIS,QGIS和GDAL一起使用的几种软件工具的使用和性能有关。 我是ArcGIS,Python和R的长期用户,他对使免费开源GIS生态系统和Linux多样化感兴趣。最近,我对将QGIS(版本2.8)与PostgreSQL(版本9.4)和PostGIS(版本2.1)一起使用非常感兴趣,并且我已在装有Windows 8.1 x64的计算机上安装了该软件(简要的计算机规格:ThinkPad配备2.1GHz核心2、8GB RAM和240GB SSD的X200)。学习了如何管理空间数据(价值约100GB)后,我想在此计算机上运行Ubuntu。 目前,我只是试图可靠地存储和检索shapefile和栅格。到目前为止,我已经成功地将shapefile加载到PostGIS中,但是栅格被证明存在更多问题。我已经成功完成了小的geoTIFF和GRID文件的单次和批量导入,但是较大的栅格(例如,磁盘上大小为870MB的15619x14655单元IMG或TIFF文件)需要永久加载到PostGIS中。我已经阅读并配置了raster2pgsql工具,以使用以下参数构建空间索引并通过图块加载栅格: raster2pgsql -s 3161 -C -I D:\PostGIS_data\dem.img -t auto raster.dem | psql -h localhost -U postgres -p 5432 -d postgres 导入性能仍然很差,并且硬件不是问题。QGIS中PostGIS栅格的可视化甚至更糟,充其量只能缓慢加载小栅格或完全冻结。像我提到的那样的大型栅格无法在QGIS中可视化。从文档和论坛讨论中,该缺陷似乎是由于GDAL的PostGIS栅格驱动程序而不是QGIS本身引起的。论坛讨论中简要提到了这个问题,甚至有人建议不应将栅格存储在PostGIS中(空间数据库中不能平滑处理栅格的意义是什么?)。但是,我通常使用ESRI的文件地理数据库来快速,轻松地存储,可视化和分析相当大的栅格(〜70GB),而ArcGIS 10.1绝不会因这种常规操作而冻结或变慢。 这里有我想念的东西吗?我还没有解决瓶颈?PostgreSQL是否需要进行调整以实现PostGIS的性能优势?我是否缺少寻找和编译所需的GDAL版本?如何改善Shapefile和栅格的QGIS中的PostGIS性能和可视化?如何通过Linux终端享受全面,快速的空间数据管理的荣耀?在这个问题上的任何帮助都将受到欢迎! 我按照Duncan Golicher的指南进行操作:https://duncanjg.wordpress.com/2012/11/20/the-basics-of-postgis-raster/ 我最初使用的是具有自动设置的图块,但我将图块重置为每行100x100个像元,然后按照指南中的说明添加了金字塔,如下所示: raster2pgsql -s 3161 -d -C -I -M -l 4 D:\PostGIS_data\dem.img -t 100x100 raster.dem100 | psql -h localhost -U …

6
让ArcPy与Anaconda合作?
我想在回答一步一步的方向,以遵循“ 如何Python安装在ArcGIS分离 ”,但无法找到路径的文件,DTBGGP64.pth在C:\Python27\ArcGIS10.2\Lib\site-packages。 有人遇到过类似的问题吗? 我想知道是否有一种解决方法,包括一个告诉Anaconda arcpy安装在哪里的路径文件?我试图创建一个包含以下文本的.pth文件: # .pth file for arcpy C:\Program Files (x86)\ArcGIS\Desktop10.2\bin C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy C:\Program Files (x86)\ArcGIS\Desktop10.2\Scripts 并将其保存到C:\Anaconda\Lib\site-packages(也就是说,如果确实是所有软件包都保存在这里),但出现以下错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\__init__.py", line 21, in <module> from arcpy.geoprocessing import gp File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\__init__.py", line 14, …

3
一般GIS中多边形顶点的顺序:顺时针或逆时针
两天前,我问了一个关于ESRI shapefile中多边形顶点的内部存储顺序的问题。回答了该问题(将多边形按顺时针还是逆时针存储在shapefile中?),并且在旧帖子中也回答了该问题(创建多边形(是否顺时针旋转)) 但是现在我的问题更笼统了,我不知道它是否有唯一的答案。顺时针顺序仅适用于ESRI shapefile还是通用GIS格式?GIS软件的内部表示又如何呢?例如,如果我使用QGIS,并且读取了一个包含多边形的* .shp,我认为外边界​​的内部表示形式是与原始shapefile中一样的顺时针方向,但是QGIS支持的所有文件格式又如何呢?对于ArcGIS?并且如果存在一种文件格式,该文件格式具有以逆时针方向存储的多边形,则如果这些文件加载​​到QGIS,ArcGIS等中,则内部会改变方向,因此,例如,如果我使用PyQGIS读取数据,则多边形是顺时针的下令? 我的目的是为QGIS编写插件,但数据源可以是ESRI shapefile或其他格式。由于需要使用多边形的方位角检查多边形的连续边之间的角度,因此需要知道顺序是否为顺时针。一种解决方案是计算每个多边形的面积,如果我没记错的话,如果它为正,则顺序为顺时针,如果为负,则顺序为逆时针。 区域计算不是一项繁重的任务,因此不会使我的插件变慢。但是在QGIS的特殊情况下,有人知道它是否按顺时针或逆时针方向存储多边形,而不管原始源中的顺序如何?到目前为止,我正在使用ESRI shapefile,并且layer.getFeatures()。geometry()。asPolygon()中的坐标按顺时针方向存储为外部边界,按逆时针方向存储为孔,即与原始的* .shp相同。

3
如何将附近和平行的道路线(例如,双行车道)合并/折叠为一条直线?
我有一个来自OSM的shapefile,其中包含城市中的所有道路。较大的道路(如双行车道)似乎有2条平行线。我想将它们折叠/合并为1行,以便可以在外部3D应用程序中很好地导出和渲染它们(两条重叠的路很复杂,在3D中看起来很奇怪)。 如何使用QGIS或PostGIS实现呢?我不担心精度会略有下降(在几米之内),我希望最终的单条线位于当前平行线之间(理想情况下为中心)。 谢谢。 (这是我要合并的两条道路的示例)
23 qgis  postgis  line  road 

2
在GeoServer中发布PostGIS栅格?
如何使用GeoServer发布PostGIS栅格? 我花了很多时间尝试使用Image Mosaic JDBC创建Raster数据源,但是没有运气。 执行的步骤: 1.下载并安装JDBC Image Mosaic扩展(正常) 2.创建“连接参数”文件: connect.postgis.xml.inc: <connect> <dstype value="DBCP"/> <username value="postgres" /> <password value="password" /> <jdbcUrl value="jdbc:postgresql://localhost:5432/db1" /> <driverClassName value="org.postgresql.Driver"/> <maxActive value="10"/> <maxIdle value="0"/> </connect> mapping.postgis.xml.inc: <spatialExtension name="postgis"/> <mapping> <masterTable name="mosaic" > <coverageNameAttribute name="name"/> <maxXAttribute name="maxX"/> <maxYAttribute name="maxY"/> <minXAttribute name="minX"/> <minYAttribute name="minY"/> <resXAttribute name="resX"/> <resYAttribute name="resY"/> …

1
如何获取磁盘上文件地理数据库要素类的大小?
有没有简单的方法来确定要素类占用的硬盘空间? 我觉得我缺少一些简单的东西,但是我不记得有这样做的方法。 您会认为,右键单击ArcCatalog中的数据集将为您完成此操作。 我曾经能够做的最好的事情就是通过在Windows资源管理器中查找来获得整个gdb的大小。 如果在ArcCatalog UI中没有办法做到这一点,我仍然会对在代码中做到这一点的方法感兴趣。 有任何想法吗?

6
手动将旋转的经/纬度转换为常规纬度/经度?
首先,我需要澄清一下,我之前没有该领域的经验,所以我不知道技术术语。我的问题如下: 我有两个天气数据集: 第一个具有正则坐标系(我不知道它是否具有特定名称),范围从-90到90和-180到180,并且两极在-90和90的纬度处。 在第二个中,尽管它应该对应于相同的区域,但我注意到了一些不同:纬度和经度并不相同,因为它们有另一个参考点(在描述中称为旋转网格)。连同纬度/经度对一起,提供以下信息:南极纬度:-35.00,南极纬度:-15.00,角度:0.0。 我需要将第二对lon / lat转换为第一对。可以简单地将纬度添加35,将经度添加15,因为角度为0,这似乎很简单,但是我不确定。 编辑:我有关坐标的信息如下 http://rda.ucar.edu/docs/formats/grib/gribdoc/llgrid.html 显然,第二坐标系由球体的总体旋转定义 “这些参数的一种选择是: 以坐标系南极为单位的地理纬度,例如点击; 坐标系南极的地理经度,例如lambdap; 假设围绕新极轴的旋转角度(以度为单位,当从南极到北极看时为顺时针方向)是通过首先使球体绕地理极轴旋转lambdap度来获得的,然后旋转(90 + thetap)度,以使南极沿格林威治子午线(先前旋转过)移动。” 但我仍然不知道如何将其转换为第一个。


2
使用来自独立PyQGIS脚本的QGIS3处理算法(GUI外部)
我正在编写必须在QGIS GUI外部运行的脚本。我从qgis.core调用了一些API函数,但我想使用处理插件。 我可以使用sys.path.append()导入处理,但无法运行任何进程。此外,QgsApplication.processingRegistry()。algorithms()中缺少所有“本机”算法 那么有可能以这种方式运行处理吗?我想念什么? import os, sys from qgis.core import * QgsApplication.setPrefixPath('/usr', True) qgs = QgsApplication([], False) qgs.initQgis() sys.path.append('/usr/share/qgis/python/plugins') from processing.core.Processing import Processing Processing.initialize() import processing layer1 = QgsVectorLayer('data/ROUTE_PRIMAIRE.SHP') layer2 = QgsVectorLayer('data/ROUTE_SECONDAIRE.SHP') processing.run('qgis:union', layer1, layer2, 'test.shp') # returns nothing 我正在使用QGIS 3.0.1-Debian 9


4
具有ST_Distance,kNN的PostGIS最近点
我需要在一个表上的每个元素上获取另一个表的最接近点。第一个表包含交通标志,第二个表包含城镇的入口大厅。事实是我不能使用ST_ClosestPoint函数,而必须使用ST_Distance函数并获取min(ST_distance)记录,但是我非常想建立查询。 CREATE TABLE traffic_signs ( id numeric(8,0) ), "GEOMETRY" geometry, CONSTRAINT traffic_signs_pkey PRIMARY KEY (id), CONSTRAINT traffic_signs_id_key UNIQUE (id) ) WITH ( OIDS=TRUE ); CREATE TABLE entrance_halls ( id numeric(8,0) ), "GEOMETRY" geometry, CONSTRAINT entrance_halls_pkey PRIMARY KEY (id), CONSTRAINT entrance_halls_id_key UNIQUE (id) ) WITH ( OIDS=TRUE ); 我需要获取每个traffic_sign中最接近的entrnce_hall的ID。 到目前为止我的查询: SELECT …

2
用于GeoJSON功能的setStyle()函数-传单
好的,因为我已经问了一个很长的问题,但是由于有一段时间没有收到任何新的答复,并且也不想在细节上感到困惑,所以我将尽力保持这一简单。 如果我没记错的话,setStyle用于命名的特定功能的函数如下: var bounds = [[54.559322, -5.767822], [56.1210604, -3.021240]]; var rect = L.rectangle(bounds, {color: "#ff7800", weight: 1}).addTo(map); rect.setStyle({color: "#4B1BDE"}); ...这会将颜色从橙色变为蓝色。我也知道resetStyle()将样式恢复为原始样式的功能。 这是我设置GeoJSON样式的方式: var everything = L.geoJson(myfile, { onEachFeature: function(feature){ array_of_layers.addLayer(feature); }, style: function(feature){ switch(feature.properties.name){ case "belgium": return belgium_style; break; case "bosnia": return bosnia_style; break; case "denmark": return denmark_style; break; case "great_britain": …

2
如何在Python中读取shapefile?
我的问题是多边形shapefile中垂直线的扩展。请先参考该问题。 您将看到的是一种以用户定义的间距相对于边界框生成垂直线的方法。我知道OGR,Fiona,Shapely等可用于下一步剪切,但我不了解它们的使用情况。 如何读取多边形shapefile的一行?每个使用Shapely的应用程序都显示了如何生成LineString,Point或Polygon,但是从不读取现有shapefile 请至少为我提供一个骨架结构,以便我可以在其上进行构建。

3
GeoTIFF金字塔/概述如何标准化?
虽然金字塔/概述不是GeoTIFF标准的一部分,但许多工具都支持创建金字塔。例如vips / nip2,Orfeo工具箱(otb)和ossim,它们都为创建它们提供了支持。但是我不知道他们是否都会以其他人支持的格式创建文件。浏览这些工具的文档并没有真正提及任何内容。 vips不是地理空间工具,我找不到任何最终用户友好的文档,但是IIPImage文档提到了其对“平铺的金字塔形TIFF”的支持:http : //iipimage.sourceforge.net/documentation/images/ OTB没有提及有关“多分辨率金字塔”的格式或规格的任何内容:https : //www.orfeo-toolbox.org/CookBook/CookBooksu65.html ossim表示其“降低分辨率的数据集”支持各种输出格式,但我不知道它们的实际含义:https : //trac.osgeo.org/ossim/wiki/img2rr GDAL还没有真正指定有关其“概述图像”的内容:http : //www.gdal.org/gdaladdo.html 因此它们都具有金字塔/概述,但尚不清楚它们是否相互兼容。 在更一般的页面上,我发现以下引号: http://iipimage.sourceforge.net/documentation/images/说 平铺的多分辨率(或平铺的金字塔形)TIFF只是平铺的多页TIFF图像,每个分辨率存储为TIFF中的单独图层。这是标准的TIFF扩展,包括Photoshop,GIMP,VIPS和ImageMagick在内的大多数图像处理应用程序都支持。libtiff编解码器库也完全能够读取和写入此类图像。 那是每个人使用的吗? 国会图书馆也有一些信息:http : //www.digitalpreservation.gov/formats/fdd/fdd000237.shtml 他们指出: 由不同应用程序创建的金字塔TIFF文件的结构不一定相同。特别是,从使用JHOVE进行分析和ImageMagick中的identify命令来看,Adobe的Photoshop和Image Magick生成具有不同内部TIFF结构的文件。在这两种情况下,大多数可以处理TIFF的软件似乎都能毫无问题地识别主TIFF。 那么,这些格式是否在某处进行了标准化,指定和记录?如何找到可以与他人兼容的方式生产它们的工具?概述/金字塔中是否有任何地理空间标签,或者我可以使用任何软件在图像数据上创建它们?

5
支援Galileo定位的Android装置和应用程式?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 虽然欧洲的伽利略定位系统预计仅在2020年之前完全部署,但使用已部署的伽利略卫星进行的首次定位是在2013年。此外,支持伽利略的硬件设备已经在市场上销售。 但是,我不知道有任何支持Galileo的Android智能手机。 是否有已知,现有或计划中的支持Galileo定位的Android设备和android应用? 据我了解,伽利略的支持可能取决于微处理器本身的支持。因此,有关支持Galileo的android设备的问题可能归结为关于哪个微处理器系列支持Galileo的问题。

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.