Передача даних на 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.