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.