ogr2ogr에 파이핑 데이터


10

데이터를 직접 파이프 할 수 ogr2ogr있습니까? curlGeoJSON 파일을 만들고 ogr2ogr다른 형식으로 은밀하게 파일로 파이프 하려고 합니다.

파이프를 사용하지 않고 먼저 파일을 작성한 후 다음 명령을 사용하여 변환 하여이 작업을 수행 할 수 있었지만 해당 단계를 건너 뛸 수 있는지 궁금합니다.

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

또한 파이프 출력 대신 curl 출력을 사용하여 변수를 만들려고했지만 ogr2ogr읽을 수 없었습니다.

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

답변:


18

OGR에는 stdin에 대한 고유 한 관용구가 /vsistdin/있습니다. 이를 ogr2ogr의 첫 번째 인수 (dst_datasource_name)로 사용하면 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
적어도 Windows에서는 다음과 같이 작동합니다. trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip의ogrinfo -ro -al -so /vsicurl/http://svn.osgeo.org/gdal/trunk/autotest/ogr/data/poly.shp 다른 예제
— user30184

8

URL을 OGR 데이터 소스의 경로로 사용할 수 있으므로 컬이나 파이프가 필요하지 않습니다.

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

1
대단해! 나는 그것이 가능한지 몰랐다. 이것은 허용 된 답변보다 깨끗한 해결책이지만 질문은로 연결하는 것에 관한 것 ogr2ogr입니다.
— jczaplew

2
잘 했어, 마이크! 나는 그들 중 하나를 슈퍼 클린이라고 부르지 않을 것입니다 (ogr2ogr는 목적지가 소스보다 먼저 오게합니다). URL을 로컬 파일로 취급하면 작동하지 않을 때까지 작동합니다. curl에는 ogr2or 가하지 않는 많은 옵션 (verbose 모드, 보안)이 있습니다.
— sgillies

마지막에 나열된 소스 파일은 둘 이상이있을 수 있으므로 합리적인 선택입니다.
— Steve Bennett
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.