问题标签 [ogr2ogr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
341 浏览

windows - 批量文件名和路径链接

所以我使用 ogr2ogr 地理空间工具在 .bat 中有一行代码:

对于 (*_gpx.shp) 中的 /R %F 执行 ogr2ogr -update -append "%~dpnF.shp" "______________"

在“___________”空间中,我需要指定一个文件,即:

- 与 *_gpx.shp 在同一个文件夹中

- 它的名字的开头等于gpx.shp,但结尾不是(它是一对“ sametext_abc_gpx.shp ”和“ sametext_bby.shp ”)

-我有很多这样的对,它们的名字长度不同,但结尾相同(只有abcbby

我的第一个猜测是

“*_bby.shp”

但这对我不起作用。我尝试使用%~dpF来解决它,删除最后 7 个字符(“ abc_gpx ”)并添加“ bby ”,但我对 bash 语法不太熟悉。

0 投票
0 回答
161 浏览

postgresql - 如何使用 ogr2ogr 在 PostgreSQL 的 INSERT 命令中生成 WKT

我的问题是我有一些 Mapinfo 文件,其中多边形的洞的范围为零,例如 POLYGON((35 10, 45 45, 15 40, 10 20, 35 10), (20 30, 35 35, 20 30) )。这在 Mapinfo 中是合法的,ogr2ogr 也可以处理它,但是当 ogr2ogr 在 PostgreSQL 表中进行插入时,PostgreSQL 会生成错误:

  • 新功能的 INSERT 命令失败。错误:几何需要更多点

那是因为多边形中的洞需要多一点才能有一个范围。我该如何解决这个问题?

信息:我从另一个系统接收 Mapinfo 文件,我无法对其产生影响,因此我需要一个可以处理上述多边形的解决方案。

0 投票
1 回答
1415 浏览

windows - Batch script vs command line

When I run following command in cmd prompt it works:

but when I run it from .bat file it does not work. Saying -nln was unexpected.

Is there anyway I could run this from .bat file.

0 投票
1 回答
424 浏览

postgresql - ogr2ogr 缓慢上传到 postgres

我需要使用 ogr2ogr 将 geojson 上传到 PostgreSQL 数据库。当我在 PostgreSQL 数据库所在的同一台服务器上上传 geojson 时,ogr2ogr 会在大约 3-4 秒内上传一个文件。但是,当我在 Ubuntu 16.04 计算机上运行 ogr2ogr 时,ogr2ogr 需要很长时间,同一文件最多需要 1 个多小时。我的桌面上有一个 i72600k,而服务器是一个 Amazon EC2 免费试用微型实例,所以它不能处理能力。我注意到的一件事是在我的桌面上打开系统监视器显示系统范围内的上传速度为 7KB/秒,所以我不确定它是否只是在我的桌面上上传速度非常慢。我在两台机器上对 ogr2ogr 命令使用相同的主机 URL,所以它不像 Amazon ec2 实例正在保存 DNS 查找。有什么问题?

0 投票
0 回答
779 浏览

node.js - 如何安全地中止 NodeJS 中的管道流?

我正在使用请求将 HTTP 流通过管道传输到本地地理空间文件处理实用程序 ogr2ogr:

但是,如果我收到的文件太大,我想中止:

打电话httpStream.abort()够吗?ogr2ogr 进程到底发生了什么?它是挂着的吗?确保它被清理并且不会在某处留下半满的内存缓冲区的正确方法是什么?

0 投票
0 回答
56 浏览

postgresql - ogr2ogr 在不同的系统上产生不同的结果

我正在尝试将代表行政区域的形状文件转换Philippines为geojson。我从这里获取形状文件。我要转换的文件是这个PHL_adm3.shp

我正在使用这个 bash 脚本:

我在我的服务器上运行了这个脚本并得到了相应的 geojson 文件。现在我在本地运行了相同的脚本,并且许多城市的几何图形在本地与我的服务器上的不同。虽然坐标相差不大,但它们仅在小数点后 6-7 位后有所不同,但当我尝试将它们插入PostGIS.

这是在将其插入 PostGIS 时在服务器上产生错误的几何示例。我还发布了我在同一个城市的当地人得到的几何图形。

服务器:几何

本地:几何

我也在ST_IsValidReason这两种几何体上运行。我的服务器上出现以下错误。

我在印度、日本、泰国等不同国家尝试了完全相同的事情,对于我测试过的所有国家,同样的事情正在发生。在本地我没有发现任何错误,但在我的服务器上我得到了无效的几何图形。

谁能解释我的查询有什么问题以及如何解决这个问题?

PS-我的两个系统都是 64 位并运行 Ubuntu 14.04。

0 投票
1 回答
188 浏览

shapefile - topojson - 将县 CSV 数据合并到状态的 shp 文件中

我正在尝试将县数据的 CSV 文件与我从美国人口普查网站获得的纽约州的 SHP 文件结合起来。

我已经下载了形状文件。让我们说纽约,这将是 CSV 文件:

我用CLI尝试了这个命令,但无济于事: topojson -e nycounty.csv --id-property=id -o final.json -- tl_2010_25_state10.shp

这仅创建了 SHP 文件的 topojson,但缺少id每个对象的 csv 数据。

例如我正在寻找这样的东西:

对我来说变成了一个令人头疼的问题。感谢您提供任何信息。

0 投票
0 回答
828 浏览

postgresql - 使用 ogr2ogr 更新 pgsql 表,PK 问题

使用 ogr2ogr 从 shp 导入新的 GIS 数据(从 osm 或特定数据)到 pgsql 时出现问题。要创建我的表,我使用:

使用 PGSQL_OGR_FID 强制 pgsql 使用我的原始列作为主键。这个密钥必须使我的更新成为可能。

因此,要使用新数据进行更新,我想这样做:

但是 pgsql 根本不喜欢这样!我希望它用新的替换具有相同PK的数据,但它想保留旧的并取新的,这当然是不可能的,所以消息是:

是否可以使用 ogr2ogr 替换数据?似乎,在更新时,想要保留一切......我不知道该怎么办......也许在我的请求中使用 SQL 查询......

奇怪的是,这似乎与 sqlite/spatialite 一起工作!(见http://lists.osgeo.org/pipermail/gdal-dev/2011-December/031099.html

如果您有任何解决方案,非常感谢,并为我的英语不好感到抱歉!

西里尔

0 投票
1 回答
318 浏览

mysql - 将 shapedata 插入 MYSQL

我正在尝试使用 ogr2ogr 将 .shp(形状文件)插入 MySQL,但出现以下错误:

错误 1:MySQL 错误消息:为列“hght_lmt_m”指定了太大的比例 31。最大值为 30。说明:ALTER TABLE shapefiledatabaseADD COLUMN hght_lmt_mDOUBLE(33,31)

如何克服这个限制?

0 投票
1 回答
1376 浏览

sql-server - 在 Ubuntu 16.04 上使用 MS SQL 的 OGR2OGR

我需要从 Ubuntu Server 16.04 访问带有 OGR2OGR 的 Microsoft SQL Server。它在微软上工作,所以基本设置很好。

我的问题是,当我运行我的 OGR2OGR 命令时(在使用 sudo apt-get install gdal-bin 安装 GDAL 之后):

我得到错误:

错误 1:无法初始化与 MSSQL 的服务器的连接:“DATABASE_SERVER”;[unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found 尝试在可用驱动程序列表中的连接字符串中指定驱动程序:

我尝试根据说明安装 Microsoft ODBC Driver for SQL Server,但安装 gdal 时无法安装。错误是:

某些软件包无法安装。这可能意味着您请求了一种不可能的情况,或者如果您使用的是不稳定的发行版,一些必需的软件包尚未创建或已从 Incoming 中移出。以下信息可能有助于解决这种情况:

以下软件包具有未满足的依赖关系: msodbcsql:依赖:unixodbc-utf16 (>= 2.3.1-1) 但不会安装 E:无法纠正问题,您持有损坏的软件包。

一段时间后,我设法安装了 Microsoft ODBC 驱动程序,但这意味着要删除 GDAL。所以我可以拥有 GDAL 或 Microsoft ODBC 驱动程序。有没有办法解决这个问题?

谢谢你的帮助!

更新(2017.01.03):我找到了以下解决方案,并且我还评论了 MSDN 博客上的相应文章(到目前为止没有回复)here

如果还没有安装 UnixODBC

从某处下载:msodbcsql-11.0.2270.0.tar.gz(使用 msodbcsql-13.xxxtar.gz 可能会更好,但我找不到它)和

如果缺少依赖项安装它们,在我的情况下可以这样做:(除了 apt-get install 之外的所有内容都是通过创建链接来修复文件的命名:)

安装和清理:

如果使用它的工具找不到驱动程序(例如 ogr2ogr 或 pyodbc),请编辑 /etc/odbcinst.ini 并为 [SQL Server] 创建一个连接器