Przesyłanie danych do ogr2ogr


10

Czy można bezpośrednio przesyłać dane do potoku ogr2ogr? Próbuję curlutworzyć plik GeoJSON i potokować go w ogr2ogrcelu ukrycia go w innym formacie.

Bez użycia potoku byłem w stanie to osiągnąć, najpierw pisząc plik, a następnie konwertując go za pomocą następującego polecenia, ale jestem ciekawy, czy można pominąć ten krok.

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

Próbowałem również utworzyć zmienną z wyjściem curl zamiast potokować, ale ogr2ogrnie byłem w stanie odczytać:

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

Odpowiedzi:


18

OGR ma swój własny idiom dla stdin /vsistdin/. Użyj tego jako pierwszego argumentu ogr2ogr (dst_datasource_name) i możesz do niego przesyłać dane wyjściowe 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
Przynajmniej w systemie Windows działa również tak: ogrinfo -ro -al -so /vsicurl/http://svn.osgeo.org/gdal/trunk/autotest/ogr/data/poly.shpInne przykłady na trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip
user30184

8

Możesz używać adresów URL jako ścieżek do źródeł danych OGR, więc nie potrzebujesz zawijania ani potoków.

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

1
To cudownie! Nie miałem pojęcia, że ​​to jest możliwe. Jest to czystsze rozwiązanie niż zaakceptowana odpowiedź, ale pytanie dotyczyło bezpośrednio instalacji ogr2ogr.
jczaplew

2
Dobra, Mike! Nie nazwałbym żadnego z nich super czystym (ogr2ogr umieszczenie miejsca docelowego poprzedzającego źródło błędów mnie). Traktowanie adresu URL jako pliku lokalnego działa ... dopóki tak się nie stanie. A curl ma wiele opcji (tryb gadatliwy, bezpieczeństwo), których nie ma ogr2or.
sgillies

Lista plików źródłowych wymienionych na końcu jest rozsądnym wyborem, ponieważ może być ich więcej niż jeden.
Steve Bennett
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.