Dữ liệu đường ống đến ogr2ogr


10

Có thể trực tiếp dữ liệu đường ống đến ogr2ogr? Tôi đang cố gắng gửi curlmột tệp GeoJSON và chuyển nó để ogr2ogrchuyển đổi nó sang định dạng khác.

Không cần sử dụng đường ống, tôi đã có thể đạt được điều này bằng cách trước tiên viết một tệp và sau đó chuyển đổi nó bằng lệnh sau, nhưng tôi tò mò liệu có thể bỏ qua bước đó không.

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

Tôi cũng đã thử tạo một biến với đầu ra curl thay vì đường ống, nhưng ogr2ogrkhông thể đọc nó:

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

Câu trả lời:


18

OGR có thành ngữ riêng cho stdin /vsistdin/,. Sử dụng đó làm đối số đầu tiên của ogr2ogr (dst_datasource_name) và bạn có thể dẫn đầu ra của curl tới nó:

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

2
Ít nhất là trên Windows, nó cũng hoạt động như thế này: ogrinfo -ro -al -so /vsicurl/http://svn.osgeo.org/gdal/trunk/autotest/ogr/data/poly.shpCác ví dụ khác tại trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip
user30184

8

Bạn có thể sử dụng URL làm đường dẫn đến nguồn dữ liệu OGR, vì vậy bạn không cần cuộn tròn hoặc đường ống.

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

1
Thật tuyệt vời! Tôi không biết đó là một khả năng. Đây là một giải pháp sạch hơn câu trả lời được chấp nhận, nhưng câu hỏi rõ ràng là về đường ống dẫn vào ogr2ogr.
jczaplew

2
Tốt, Mike! Tôi sẽ không gọi ai trong số họ siêu sạch (ogr2ogr đặt đích đến trước khi nguồn khiến tôi gặp rắc rối). Xử lý một URL như một tệp cục bộ hoạt động ... cho đến khi nó không. Và curl có rất nhiều tùy chọn (chế độ dài dòng, bảo mật) mà ogr2or không có.
sgillies

Các tập tin nguồn được liệt kê cuối cùng là một lựa chọn hợp lý, bởi vì có thể có nhiều hơn một.
Steve Bennett
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.