问题标签 [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 投票
4 回答
17543 浏览

geojson - GDAL,ogr2ogr“找不到 proj.db”错误

我试图从自然地球的世界 shp 文件中提取某些国家。

我目前使用的是windows 10,所以我安装了python 3.7、gdal来使用ogr2​​ogr。

我在命令中键入以下代码以提取韩国

ogr2ogr -f GeoJSON -where "geonunit='韩国'" korea-geo.json ne_10m_admin_1_states_provinces.shp

但是出现了以下错误。

错误 1:项目:proj_create_from_wkt:找不到 proj.db

错误 1:PROJ:proj_identify:找不到 proj.db

我已经为 Gdal 设置了环境变量..

C:\Program Files\GDAL\gdal-数据

C:\Program Files\GDAL\gdalplugins

请指导我解决这个问题。

0 投票
1 回答
98 浏览

python - 带有包含特殊字符的变量的 python 的 CLI 脚本

我正在尝试使用 python 运行 CLI 脚本,但由于特殊字符而遇到问题。所以如果我运行这个硬编码它就可以了。将“Innjsø”层写入名为“innsjo”的数据库,作为表名。

但是,我尝试以编程方式运行此程序,但遇到了特殊字符的问题。

如果变量 layer_name 包含特殊字符,我会收到此错误。仅使用拉丁字符的图层可以正常工作。

我无法控制 GML 文件中的图层名称。如何使用名称包含特殊字符的 python 运行 CLI 脚本?

0 投票
1 回答
357 浏览

topojson - 有没有办法改变 topojson 文件中的投影?

我正在尝试创建一个使用 geoAlbersUsa 投影的 topojson 文件,该文件源自美国人口普查局的 ZCTA(本质上是邮政编码)shapefile。我能够使用指定的地图成功通过优秀的ht​​tps://medium.com/@mbostock/command-line-cartography-part-1-897aa8f8ca2c中的示例,现在我正在尝试获得相同的结果使用邮政编码级别的 shapefile。

由于文件的大小和文件中字符串的长度,我不断遇到各种问题。虽然我已经能够创建一个 geojson 文件和一个 topojson 文件,但我无法给它我想要的 geoAlbersUsa 投影。我希望找到一些东西来将当前的 topojson 文件转换为带有 geoAlbersUsa 投影的 topojson 文件,但我找不到任何方法。

我知道这可以在浏览器中以编程方式完成,但我所阅读的所有内容都表明,如果尽可能多地首先在文件本身中完成,性能将会显着提高。

尝试 1:我能够使用 shp2json(如 Mike Bostock 的示例)成功地将 ZCTA 级 shapefile 转换为 geojson 文件,但是当我尝试运行 geoproject(来自 d3-geo-projection)时,我收到与字符串长度过长有关的错误. 在节点(使用 npm)中,我安装了 d3-geo-projection(npm install -g d3-geo-projection)然后运行以下命令:

地质工程“d3.geoAlbersUsa()”< us_zips.geojson > us_zips_albersUsa.json

我收到错误消息,指出“错误:无法创建长度超过 0x3fffffe7 个字符的字符串”

尝试2:我使用ogr2​​ogr(https://gdal.org/programs/ogr2ogr.html)创建geojson文件(而不是shp2json),然后尝试运行与上面相同的geoproject代码并得到相同的错误。

尝试 3:我使用 ogr2ogr 创建 geojson 序列文件(而不是 geojson 文件),然后运行 ​​geo2topo 从 geojsons 文件创建 topojson 文件。虽然这成功创建了 topojson 文件,但它仍然没有在生成的 topojson 文件中包含 geoAlbersUsa 投影。

我从 ogr2ogr 的相当迟钝的文档中得到,可以使用 -a_srs 指定输出投影,但我一生都无法弄清楚如何指定可以让我得到 geoAlbersUsa 投影的东西。我找到了这个参考https://spatialreference.org/ref/sr-org/44/但我认为这会让我得到阿尔伯斯,它可能会切断阿拉斯加和夏威夷,这不是我想要的。

这里有什么建议吗?我希望我能找到一种方法来更改 topojson 文件本身中的投影,因为这样可以避免每当我尝试在节点中执行任何需要使用 geojson 文件的操作时遇到的过长字符串问题. 似乎这可能是可以在早期版本的 topojson 中完成的事情(请参阅投影 topojson 的方法?),但我现在看不到任何方法。

0 投票
1 回答
90 浏览

postgresql - ogr2ogr 查询以“”作为命令的分隔符,并且在查询中导致空响应

使用 ogr2ogr 我将地理数据从 postgis 数据库查询到 Geopackage。主要属性是“自然”,用“”包裹。查询也由“”包裹。这会导致一个空的响应/地理包

命令是: ogr2ogr -f "GPKG" natural_EPSG4326.gpkg -nln natural_EPSG4326_point PG:"host=localhost dbname=osmdatabase user=postgres password=*********" -sql "select * from import.osm_point where "natural" <> ''"

如何在没有“”的情况下包装 ogr2ogr 的 sql 命令来查询“自然”?

0 投票
1 回答
45 浏览

sql-server - ODBC 字符串连接到特定表

我正在使用 ogr2ogr 和 MSSQL 驱动程序连接到 SQL Server 空间数据库。

在这里这里指定

但我想连接下载某个表,有什么建议吗?

也许我需要在 python 中获取它或进行其他解决方法。

0 投票
0 回答
60 浏览

gis - 通过 ogr2ogr 导入数据时,postgis 中的 srid 无效

我正在使用带有 postgis 3.0.0 和 gdal 3.0.0 的 postgis 12 来复制其中的数据。我正在使用的命令是

这里的问题是,当我检查输出表的 srid 时,它是 900914,在我的情况下它不正确,它应该是 2223。要解决这个问题,我必须通过添加“-t_srs EPSG:2223”来手动指定 EPSG 代码。以前版本的 ogr2ogr 和 postgis 2.5 不需要这样做。

0 投票
0 回答
198 浏览

sql-server - ogr2ogr 错误:“无法初始化与服务器的连接....”

运行 ogr2ogr 时,我收到下面屏幕截图中详细说明的错误。使用的命令在我的另一台计算机上运行。我想知道这是否是因为我没有适当的权限而触发的错误。

连接到数据库的 OGR2OGR 错误

最后一个细节:我上传到的数据库存在。

0 投票
1 回答
1108 浏览

postgresql - gdal 安装后,'ogr2ogr/ogrinfo/gdalinfo' 不被识别为内部或外部命令、可运行程序或批处理文件

我安装了 Homebrew 并用它在 Ubuntu 中安装 GDAL。安装完成后,我仍然遇到以下错误:每当我尝试使用 ogr2ogr, gdalinfo --version ,或 ogrinfo --help 命令提示符。如果我在 Ubuntu 中运行它们,错误消息显示为“找不到命令”。

这是否意味着安装无法正常工作?你会建议尝试重新安装GDAL吗?

(最终目标是使用 ogr2ogr 将 shapefile 导入 postgres,最终 ogr2ogr -f "PostgreSQL" PG:"host=myhost user=myloginname dbname=mydbname password=mypassword" mytabfile.tab按照文档的建议运行。)

0 投票
0 回答
519 浏览

oracle - ogr2ogr:无法打开数据源(OCI 驱动程序)

使用 ogr2ogr 命令将数据从 oracle 数据库传输到 postgresql 数据库时,出现有关 OCI 驱动程序的错误。支持的驱动程序列表中没有:“OCI -vector- (rw +): Oracle Spatial”驱动程序(命令:)ogr2ogr --formats。操作系统是 Ubuntu 18.04.3 LTS。

命令语法:ogr2ogr -f "PostgreSQL" "PG:dbname=dbname host=xx.xx.xx.xx port=xxxx user=xxxx password=xxxx" "OCI:user/password@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxx)(PORT = xxxx)))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xxxx))):schema.table" -overwrite -progress -a_srs EPSG:32634 -lco "SCHEMA=schemaname"

如何在支持的驱动程序列表中添加 OCI 驱动程序。

0 投票
1 回答
78 浏览

bash - 带有 ogr2ogr 外部 .sql 文件的 envsubst

我正在尝试将 envsubst 命令与作为选项传递给 ogr2ogr 的外部 sql 文件相结合,但不能完全使其工作。

stop_geo.sql 在哪里:

这会出错:

有没有办法在 ogr2ogr -sql 命令选项中替换外部 sql 文件中的环境变量?