Передача данных в ogr2ogr


10

Можно ли напрямую передать данные ogr2ogr? Я пытаюсь curlсоздать файл GeoJSON и ogr2ogrпередать его в другой формат.

Без использования канала я смог добиться этого, сначала написав файл, а затем преобразовав его с помощью следующей команды, но мне любопытно, можно ли пропустить этот шаг.

curl "https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_50m_admin_0_countries.geojson" -o "countries.geojson" && ogr2ogr -f "KML" countries.kml countries.geojson

Я также попытался создать переменную с выводом curl вместо конвейера, но ogr2ogrне смог прочитать ее:

DATA=$(curl -s "https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_50m_admin_0_countries.geojson") && ogr2ogr -f "KML" countries.kml $DATA

Ответы:


18

У OGR есть своя идиома для стандартного ввода /vsistdin/. Используйте это в качестве первого аргумента ogr2ogr (dst_datasource_name), и вы можете направить вывод curl на него:

curl "https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_50m_admin_0_countries.geojson" | ogr2ogr -f "KML" countries.kml /vsistdin/

2
По крайней мере, в Windows это работает также так: ogrinfo -ro -al -so /vsicurl/http://svn.osgeo.org/gdal/trunk/autotest/ogr/data/poly.shpДругие примеры на trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip
user30184

8

Вы можете использовать URL-адреса в качестве путей к источникам данных OGR, поэтому вам не нужны скручивание или каналы.

ogr2ogr -f KML countries.kml https://raw.githubusercontent.com/nvkelso/natural-earth-vector/master/geojson/ne_50m_admin_0_countries.geojson

1
Это потрясающе! Я понятия не имел, что это возможно. Это более чистое решение, чем принятый ответ, но вопрос был явно о том, чтобы обойтись ogr2ogr.
jczaplew

2
Молодец, Майк! Я бы не назвал ни одного из них супер чистым (ogr2ogr указывает место назначения до того, как исходный код доставит меня). Обработка URL как локального файла работает ... до тех пор, пока это не так. И у curl есть много опций (подробный режим, безопасность), которых нет в ogr2or.
sgillies

Исходные файлы, перечисленные последними, являются разумным выбором, поскольку их может быть несколько.
Стив Беннетт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.