Questions tagged «postgis»

PostGIS是PostgreSQL对象关系数据库的扩展,增加了对地理对象的支持。

4
从PostGIS表中获取每一列的数据类型?
我需要获取表中所有列的列数据类型,包括几何类型。我想知道的是,是否存在提供类似以下内容的函数或SQL: column_name | data_type ------------+-------------- gid | integer descr | character varying(32) class | character varying(10) area | double precision geom | geometry(Polygon,3763) 从这几个答案stackexchange和gis.stackexchange我知道,我可以得到一些与下面的查询的信息: SELECT g.column_name, g.data_type, g.character_maximum_length, g.udt_name, f.type, f.srid FROM information_schema.columns as g JOIN geometry_columns AS f ON (g.table_schema = f.f_table_schema and g.table_name = f.f_table_name ) WHERE table_schema …
9 postgis 

1
QGIS / PostGIS图层样式
我做了一个插件,要求向数据库登录。登录后,该插件将从数据库加载某些层。在数据库中,既有管理员用户,又有“普通”用户。 我已经从UI中将两种样式分别作为其图层的默认样式保存到数据库中(似乎您必须具有数据库管理员权限才能保存它们)。 将样式保存到数据库后,我看不到它们的存储位置,即看不到任何新表。(我希望样式可以保存在表格中) 再次运行QGIS和插件(以管理员用户身份),将自动加载图层样式。 但是,再次运行QGIS和插件(作为普通用户rnd)它们不会自动加载。然后,我尝试从数据库(从GUI)加载样式,但未加载任何样式。 两个问题。 图层样式如何存储在数据库中? 没有DB管理员权限,有没有办法加载图层样式?
9 qgis  postgis  layers  style 

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中去除Z值?
如何摆脱PostGIS中的Z尺寸?具体来说,我有一些MultiPolygonZ要复制为MultiPolygons的s。我不在乎Z值-可以将它们扔掉也可以。 一定有一个简单的方法,但是我一直找不到能做到这一点的任何函数……任何提示都将不胜感激!

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 …

2
接驳巴士服务
首先,有一点背景。 我在区域运输机构工作。我们正在对馈线巴士服务进行“诊断”。我们想知道有多少比例的用户可以乘公共汽车去火车站而不是开车。这已经完成了几次,但是现在我们使用gtfs作为主要数据源,因此我们必须重新考虑我们的方法。 要被视为“为火车供餐”,公共汽车路线必须在距火车站一定距离内的车站(红色缓冲区)停靠。同样,与火车服务的同步性也很重要,因为如果您的巴士在火车前半小时到达火车站,那么等待时间就太长了,您将需要早上多睡20分钟才能开车。 假设您在12号车站乘A线(蓝色),然后在13号车站下车。公交车到达13号车站,这是火车前5分钟到达1号火车站的车站。这是非常好的。这意味着每个在1到13站内乘坐该公交车的人都将在火车开行前5分钟到达。 然后,火车经过人口稠密的地区,那里有很多学校和人行横道,被迫大幅度降低其速度。同时,公交车在14至17号车站接载乘客,并在火车开行前10分钟到达2号火车站。因此,一旦到达火车站,在14至17号车站乘坐公共汽车的乘客将都有10分钟的等待时间。因此,沿着那条公交线路,在1至13号车站乘坐巴士的乘客的等待时间为5分钟,而在14至17号车站乘坐巴士的乘客的等待时间为10分钟。 B线在轨道的另一侧,经过1号火车站附近,但其车站距离太远,无法考虑“为1号火车站供餐”。它在火车出发前7分钟到达2号火车站(在高峰期,每趟火车都要这样做;它的同步性很好)。因此,沿着B线的乘客从1号车站到59号车站到处都有巴士,等待时间为7分钟。 现在,我的问题。一旦我确定LineA.13和LineA.17停靠站正在为我的火车供电(这是在PostGIS中在空间上完成的),并且在#13之前停靠的公交车的等待时间是5分钟,但之后的等待时间是等待时间为10分钟,我该如何为所有停靠站分配等待时间? 我想在Postgres / PostGIS(pl / pgsql或pl / python)中做到这一点,但是我也可以使用纯python(OS或arcpy)。 我认为我可以向后循环。因此,一旦我找到合适的停靠点(在这里为LineA.17),就将相同的等待时间分配给停靠点16,然后是15 ...直到找到另一个适合我的条件的停靠点(LineA.13),然后分配其余的停靠点的等待时间与13。 我不知道如何创建这样的循环。我不认为我可以用SQL做到这一点,所以我不得不在PostgreSQL中使用过程语言。 我有一个使用pgRouting来找到每个供料器停靠点之间的路线的想法,这样一来,线A就会一分为二(停靠点1至13,然后停靠13至17)。这样会更容易吗? 下一步,将使用pgRouting从所有有等待时间的站点(抱歉LineA.18及以上!)计算出行驶时间,并将其与公交车的时间表进行比较以计算竞争力(是否需要5在公交车上比在车上多几分钟? 有任何想法吗?我通常会发布一个冗长的正在进行中的脚本,以显示到目前为止我所做的努力,但是我被困住了!

1
带有GDAL和PostGIS的Python替代了ArcGIS
几次前,我处理了阿拉斯加大小的每日地面温度卫星图像。 我必须处理大约一千张图像。我下载了它们,进行镶嵌,投影,修剪到shapefile边界,从修剪的栅格中提取均值,然后在时间-温度图上绘制均值。时间-温度图是最终输出。我在ArcGIS中完成了所有这些工作,即使我创建了有助于自动完成一部分工作的ArcPy脚本,也仍然很艰辛。 现在,我想构建一个执行相同操作但自动100%完成的程序。我只想将拐角的坐标输入到程序中,以便定义感兴趣的区域并获得生成的最终输出,即时间-温度图。 您认为使用Python与GDAL库和PostGIS作为栅格数据存储库是否可行?


2
自动将多个GPX文件批量加载到PostGIS中?
我有50多个GPX文件,我想“批量加载”到PostGIS数据库中。所有track_points数据都将被加载到“ track_points”表中(具有典型的GPS字段(例如经度,纬度,海拔,时间等),并且轨道数据将被加载到类似的,适当设计的“ tracks”线几何表中。 我希望自动执行此过程,这样当我获得下一个50岁以上时,就不必手动将数据输入数据库了。我个人更喜欢使用Python编写此类过程的脚本,但是欢迎提出任何建议。 我的总体思路是: 获取要处理的GPX文件列表(通过标准的Python工具非常容易) 遍历每个GPX文件,并将必要的数据提取/转换为PostGIS格式 使用psycopg Python库将GPS数据插入PostGIS 我想我可以管理步骤1和3,但是我想知道是否有一个相对简单的方法/库可以将数据(tracks和track_points)转换为PostGIS格式,或者只是可以插入已创建表格的表格形式。 我已经阅读了“ 是否有一个好的GPS轨迹分析库? ”,“ 如何建立GPS日志的地理数据库? ”和“ 如何使用python提取.gpx数据 ”,并且已经研究了GDAL / OGR和FWTools Python绑定,但不想重蹈覆辙,因为有人已经对此有了很好的方法。

2
如何在OpenStreetMap / PostGIS数据库中找到POI的最近城市?
我有兴趣为OSM数据库中的POI查找其他数据。 当前,我可以使用以下SQL来获取所有POI的名称+ long + lat SELECT name, x(transform(way, 4326)) AS lon, y(transform(way, 4326)) AS lat FROM planet_osm_point WHERE tourism='museum' UNION SELECT name, x(centroid(transform(way, 4326))) AS lon, y(centroid(transform(way, 4326))) AS lat FROM planet_osm_polygon WHERE tourism='museum' 我还想知道最近的城镇名称或POI所在的城镇名称。


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.