Pemipaan data ke ogr2ogr


10

Apakah mungkin untuk langsung mengirim data ke pipa ogr2ogr? Saya mencoba untuk curlfile GeoJSON dan pipa ogr2ogruntuk menyamarkannya ke format lain.

Tanpa menggunakan pipa, saya bisa mencapai ini dengan terlebih dahulu menulis file dan kemudian mengonversinya menggunakan perintah berikut, tapi saya ingin tahu apakah mungkin untuk melewati langkah itu.

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

Saya juga mencoba membuat variabel dengan output curl alih-alih memipangnya, tetapi ogr2ogrtidak dapat membacanya:

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

Jawaban:


18

OGR memiliki idiom tersendiri untuk stdin /vsistdin/,. Gunakan itu sebagai argumen pertama ogr2ogr (the dst_datasource_name) dan Anda dapat mem-pipe output curl ke sana:

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

2
Setidaknya pada Windows berfungsi juga seperti ini: ogrinfo -ro -al -so /vsicurl/http://svn.osgeo.org/gdal/trunk/autotest/ogr/data/poly.shpContoh lain di trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip
user30184

8

Anda dapat menggunakan URL sebagai jalur ke sumber data OGR, sehingga Anda tidak perlu menggulung atau memotong.

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

1
Itu luar biasa! Saya tidak tahu itu kemungkinan. Ini adalah solusi yang lebih bersih daripada jawaban yang diterima, tetapi pertanyaannya secara eksplisit tentang penyaringan ogr2ogr.
jczaplew

2
Bagus, Mike! Saya tidak akan menyebut salah satu dari mereka super bersih (ogr2ogr menempatkan tujuan sebelum sumber mengganggu saya). Memperlakukan URL sebagai file lokal berfungsi ... sampai tidak. Dan curl memiliki banyak opsi (mode verbose, keamanan) yang tidak dimiliki ogr2 atau tidak.
sgillies

File sumber yang terdaftar terakhir adalah pilihan yang masuk akal, karena mungkin ada lebih dari satu.
Steve Bennett
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.