如何教ogr2ogr有关投影的信息?


11

我有从ArcGIS生成的JSON,我想将其转换为EPSG 4326中的GeoJSON。此操作失败:

$ ogr2ogr -f GeoJSON -t_srs EPSG:4326 out.geo.json in.arcgis.json OGRGeoJSON
ERROR 6: EPSG PCS/GCS code 102100 not found in EPSG support files.  Is this a valid
EPSG coordinate system?

我发现一个论坛帖子说102100可以更改为3857,在数学上是相同的。因此,这可行,并带有相同的错误消息:

$ ogr2ogr -f GeoJSON -s_srs EPSG:3857 -t_srs EPSG:4326 out.geo.json in.arcgis.json OGRGeoJSON 
ERROR 6: EPSG PCS/GCS code 102100 not found in EPSG support files.  Is this a valid
EPSG coordinate system?

但是,我在102100投影系统中有几个文件。我想教ogr2ogr有关102100投影的知识,所以我可以编写转换脚本。有没有一种方法可以更新配置,使102100被识别并与3857一样对待?

更新 -此数据来自ArgGIS Server 9.3.1的REST API。如果未指定输出空间参考,则会得到102100,它们将其定义为投影坐标系“ WGS_1984_Web_Mercator_Auxiliary_Sphere”。实现我的目标的一种简单得多的方法是使用outSR=4326查询参数来请求所需的投影。如果您无权访问原始数据,则该问题仍然有效。

Answers:


11

由于102100和3857在数学上是相同的,因此我认为您可以放心地忽略这些错误,并继续使用-s_srs标志覆盖源srs 。

您可以尝试在$ GDAL_DATA $中添加102100的定义,但实际上不建议这样做。如果您确实想要这样做,那么以下是Frank Warmerdam的方法和随附的警告:

.csv文件主要用于EPSG坐标系,因此手动扩展它们并不适合。

但是您可以按照与gdal / data / cubewerx_extra.wkt类似的方式添加自己的自定义词典。这些词典文件由短名称的行,逗号和坐标系统的WKT定义组成。

您可以使用以下格式从SetFromUserInput()和使用该函数的程序(例如s_srs,a_srs,t_srs(用于gdal_translate,ogr2ogr和gdalwarp))中引用此类定义:

gdal_translate -a_srs DICT:cubewerx_extra.wkt,41001

我希望这有帮助。祝好运!


1
谢谢,我做了类似您建议的事情。我的$GDAL_DATA$目录位于/usr/local/share/gdal,并且pcs.csv该文件夹中定义了EPSG 3857 。我将该行复制到pcs.override.csv,然后将ID(第一列)从3857更改为102100。这时,转换工作没有-s_srs标记。较长期的解决方案是将源数据放在一个已知的投影中,以便我可以单独使用ogr2​​ogr进行格式转换,而不必混入投影中。
jwhitlock
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.