Verileri ogr2ogr'ye aktarma


10

Verileri doğrudan yönlendirmek mümkün müdür ogr2ogr? curlBir GeoJSON dosyasına çalışıyorum ve ogr2ogrbaşka bir biçime dönüştürmek için boru .

Pipo kullanmadan, önce bir dosya yazıp aşağıdaki komutu kullanarak dönüştürerek bunu başardım, ancak bu adımı atlamanın mümkün olup olmadığını merak ediyorum.

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

Ben de boru yerine bukle çıktısı ile bir değişken oluşturmaya çalıştım, ama ogr2ogrokuyamadı:

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

Yanıtlar:


18

OGR, stdin için kendi deyimine sahiptir /vsistdin/. Bunu ogr2ogr'un ilk argümanı (dst_datasource_name) olarak kullanın ve curl çıktısını buna ekleyin:

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

2
En azından Windows'da şu şekilde çalışır: trac.osgeo.org/gdal/wiki/UserDocs/ReadInZipogrinfo -ro -al -so /vsicurl/http://svn.osgeo.org/gdal/trunk/autotest/ogr/data/poly.shp adresindeki diğer örnekler
user30184

8

URL'leri OGR veri kaynaklarına yol olarak kullanabilirsiniz, böylece kıvrılma veya kanallara ihtiyacınız yoktur.

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

1
Bu harika! Bunun bir ihtimal olduğu hakkında hiçbir fikrim yoktu. Bu, kabul edilen cevaptan daha temiz bir çözümdür, ancak soru açıkça içine girmekti ogr2ogr.
jczaplew

2
Aferin Mike! Ben ya süper temiz (ogr2ogr kaynak beni hata önce geliyor hedef koyarak) çağırmaz. Bir URL'yi yerel dosya olarak işlemek işe yaramazsa ... işe yaramaz. Ve curl, ogr2veya olmayan birçok seçeneğe (ayrıntılı mod, güvenlik) sahiptir.
sgillies

En son listelenen kaynak dosyalar makul bir seçimdir, çünkü birden fazla olabilir.
Steve Bennett
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.