Questions tagged «postgresql»

PostgreSQL是一个开放源代码的对象关系数据库系统。


1
在PostgreSQL的QGIS中使用array []数据类型
我只是GIS的初学者,所以很高兴在这里看到任何评论。 我在PostgreSQL中有已连接到QGIS的表。表中的列具有数据类型array[]。但是用户使用{a,d,c}这样的视图将数据插入列并不容易。有没有简单的方法可以编辑数据? 我只是想将数据放入'a,b,c'这样的QGIS中,并trigger在INSERT / UPDATE之前进行创建,以便将数据Postgres正确地放入表中。但这似乎也不是最好的方法。


2
如何通过一个表中的特征通过另一表中的特征ST_Split?
我需要通过封闭线和非封闭线串(图层“ lin”)拆分多边形(图层“ pol”)。 不幸的是,运行以下查询没有得到正确的结果。 CREATE VIEW splitted_pol AS SELECT g.path[1] as gid, g.geom::geometry(polygon, SRID) as geom FROM (SELECT (ST_Dump(ST_Split(pol.geom, lin.geom))).* FROM pol, lin ) as g; 在我的示例中,ST_Split应该创建六个多边形(图层“ splitted_pol”)。 有人知道如何在QGIS / PostGIS中使用ST_Split吗?

3
如何使用postgis将等值线转换为等多边形?
我有一张等值线的postgis表,其定义如下: CREATE TABLE myisolines ( gid serial NOT NULL, isotime timestamp without timezone, val numeric(10,4), geom geometry(LineString,4326) ); 在外观上,此线串对象如下所示: 我知道数据的空间范围,因此可以添加一个Bbox,这样LineStrings可以是封闭的。 我想myisopolygons从myisolines具有多边形的表格中创建一个等值多边形表格,该表格不会重叠,而是创建一个连续的曲面,并具有一列等值线val最低val的列,由此形成多边形。我知道它可以由自封闭的等值线(孤岛)形成,也可以由用bbox封闭的等值线形成,在这种情况下,val应从特定的等值线中获取。在视觉上,它应该看起来像这样: 我以为可以以某种方式创建拓扑,然后将面转换为多边形,但是我不知道如何正确地进行。如何才能做到这一点? 另一个选择是在bbox和每个创建的多边形之间递归使用差异函数,但我想这不是正确的方法,而且绝对不快。

2
如何使用PostGIS计算曼哈顿距离?
我正在使用ST_Distance函数计算两个几何图形(火车站和建筑物)之间的距离。由于我知道所有建筑物和所有火车站都在芝加哥,街道网格非常好/完整,所以我想使用曼哈顿(或出租车)距离。 通用的公式是X的差加Y的差,所以Abs(X1-X2)+ Abs(Y1-Y2)。 什么PostgreSQL查询将使这项工作?

1
计算球体上的可见度图
我有一个包含一些多边形的PostGIS表(使用地理数据类型存储)。它们代表球形地球上的区域。 对于从所有多边形中选择的每对顶点,我要计算这两个顶点是否彼此“可见”。(有n *(n -1)/ 2个这样的对,其中n是表中所有多边形上唯一顶点的总数。)“彼此可见”是指两个点之间的大圆路径。两个顶点不与表中的任何多边形相交。 什么是最快的计算方式(最好在PostgreSQL / PostGIS中)? 我有一些有效的方法,但是很慢。我只是天真地遍历所有对,看看它们之间的LineString是否与任何多边形相交。(PostGIS的地理数据类型对我来说处理了所有困难的数学工作。)因此,我想知道是否存在一个聪明的数据结构或算法可以加快速度。

2
在Ubuntu 12.04中安装PostGIS和TIGER数据
有人能写一个简短的文章,尽管愚蠢地愚弄了傻瓜在ubuntu上安装Postgis和加载国家Tiger数据的指南吗?我尝试了一些指南,即http://wiki.bitnami.com/@api/deki/pages/302/pdf,但运气不佳。对于这个问题的开放性质,我深表歉意。

2
PostgreSQL / PostGIS有哪些具有空间意识的GUI管理软件?
我对PostgreSQL的大部分经验是pgAdminIII和psql,但是我很想知道其他人在使用什么。 是否有与SQL Server Management Studio(SSMS)等效的PostgreSQL及其以有限的方式显示包含几何图形(免费或付费)的结果的能力? 还是大多数人为此目的只是在侧面运行GIS客户端,就像这个问题似乎表明的那样:用于PostgreSQL / PostGIS的GUI工具?? 我浏览了PostgreSQL软件目录,但没有找到任何东西(除了断开的链接以外)。

1
PostGIS中计算栅格统计数据的性能
我正在尝试使用PostgreSQL / PostGIS计算矢量层中每个多边形的栅格统计信息(最小值,最大值,平均值)。 这个GIS.SE答案描述了如何通过计算多边形和栅格之间的交点然后计算加权平均值来做到这一点:https : //gis.stackexchange.com/a/19858/12420 我正在使用以下查询(dem我的栅格在哪里,topo_area_su_region我的矢量在哪里,并且toid是唯一的ID: SELECT toid, Min((gv).val) As MinElevation, Max((gv).val) As MaxElevation, Sum(ST_Area((gv).geom) * (gv).val) / Sum(ST_Area((gv).geom)) as MeanElevation FROM (SELECT toid, ST_Intersection(rast, geom) AS gv FROM topo_area_su_region,dem WHERE ST_Intersects(rast, geom)) foo GROUP BY toid ORDER BY toid; 这可行,但是太慢了。我的矢量层2489k的特点,周围每个人服用90毫秒到过程-这将需要几天来处理整个层。如果仅计算最小值和最大值(这避免了对ST_Area的调用),则计算速度似乎并没有明显提高。 如果我使用Python(GDAL,NumPy和PIL)进行类似的计算,则可以显着减少处理数据所需的时间,而不是对栅格进行矢量化处理(使用ST_Intersection),可以对矢量进行栅格化。在此处查看代码:https : //gist.github.com/snorfalorpagus/7320167 我真的不需要加权平均值-“如果碰到就行了”的方法就足够了-而且我有把握地确定这是放慢速度的原因。 问题:有什么方法可以使PostGIS像这样运行?即从多边形所接触的栅格中返回所有像元的值,而不是返回精确的交集。 我是PostgreSQL / PostGIS的新手,所以也许还有其他我做不正确的事情。我正在Windows …


3
PostGIS错误:无法加载库“ /usr/lib/postgresql91/lib64/postgis-2.0.so”
操作系统为openSUSE 12.1,PostgreSQL-9.1,PostGIS-2.0。Postgre / PostGIS是从Application:Geo存储库安装的。 经过最近的更新后,当我尝试连接到数据库时,出现以下错误: ERROR: could not load library "/usr/lib/postgresql91/lib64/postgis-2.0.so": /usr/lib/postgresql91/lib64/postgis-2.0.so: undefined symbol: pj_get_spheroid_defn 我在网上搜索了此错误(hint-1,hint-2),似乎它可能与ld.so.config(或ldconfig命令)有关。但是我不知道该怎么办。

2
开源Python / PostGIS原型的最佳设计
我正在编写通过apache交付的数据密集型Web应用程序。我的问题是考虑到存在多个选项,如何最好地安排处理。 我可以使用OpenLayers / JQuery / Javascript,PostGIS / Postgresql(带有pgsql),python / psycopg2,php。 该数据库包含约300万行,原型当前运行如下: 用户在OpenLayers窗口上单击一个点 坐标作为AJAX请求发送到服务器上的python函数 目前,我的应用程序是无状态的 Python的psycopg2用于调用pgsql存储过程,并且将较大的WKT值集(和数据字段)返回给python模块 数据字段用于按以下方式对python中的WKT记录进行分类:所有WKT值均分为5组之一。实际修改了大约1%的WKT值。 WKT的五个集合/组被缓冲以创建五个不同的多边形。我目前在数据库中调用存储过程来执行此操作。反过来,这仅使用ST_BUFFER。(我已经考虑过使用Shapely,但由于在两种情况下都使用GEOS库,因此不确定会带来性能优势。) 最后,将5个WKT文本值包装在JSON字符串中,然后发送回OpenLayers以呈现为五层。 我发现瓶颈是初始空间搜索和最终缓冲阶段。 我想问题是: 有没有更好的方式安排东西?例如,是否所有数据处理都应在PostgreSQL中完成(例如,使用游标),这在维护和性能方面是否是一件好事?使用切片服务器来避免将较长的WKT字符串传递到Web客户端会更好吗?您将如何解决?

1
如何查看PostGIS中存储的155 MB栅格?
我正在使用以下命令将栅格加载到postgres数据库中: raster2pgsql -I -C -e -Y -F -s 3086 -I -C -M myraster.tif myraster -F -t 30x30 | psql -U postgres -d database -h localhost -p 5432 myraster.tif是155M。当我尝试在QGIS中使用栅格插件时,加载时间很长(15-20分钟)。我不确定是否可以采取任何措施来加快此速度,或者不确定是否可以使用其他方法查看栅格。我要做的就是快速查看栅格,并检查栅格是否与数据库中存储的矢量数据正确对齐。(相比之下,矢量数据显示得非常快。)此刻,QGIS冻结并显示栅格。它只是显示一个黑色正方形,并且由于任何交互都会导致程序冻结,因此更改色阶是不可行的。 我不熟悉与加载栅格相关的细微差别,因此也许应该使用不同的标志和参数。我意识到这是一个很大的栅格,所以我很乐意为显示目的重新采样它或类似的东西(尽管我不知道该怎么做)。 我正在wktrasterQGIS中使用最新版本的插件。我正在连接到远程服务器以显示数据。我将OSX与QGIS 1.8一起使用。我愿意使用任何程序在任何OS上查看栅格。


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.