Canalizando dados para ogr2ogr


10

É possível canalizar dados diretamente para ogr2ogr? Estou tentando curlum arquivo GeoJSON e canalizá-lo para encobri- ogr2ogrlo em outro formato.

Sem usar um canal, consegui isso primeiro escrevendo um arquivo e depois convertendo-o usando o seguinte comando, mas estou curioso para saber se é possível pular essa etapa.

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

Também tentei criar uma variável com a saída curl em vez de canalizá-la, mas ogr2ogrnão consegui lê-la:

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

Respostas:


18

OGR tem seu próprio idioma para stdin /vsistdin/,. Use isso como o primeiro argumento do ogr2ogr (o dst_datasource_name) e você pode canalizar a saída do curl para ele:

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

2
Pelo menos no Windows também funciona assim: ogrinfo -ro -al -so /vsicurl/http://svn.osgeo.org/gdal/trunk/autotest/ogr/data/poly.shpOutros exemplos na trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip
user30184

8

Você pode usar URLs como caminhos para fontes de dados OGR, para não precisar de curl ou pipes.

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

1
Fantástico! Eu não tinha ideia de que era uma possibilidade. Esta é uma solução mais limpa que a resposta aceita, mas a pergunta era explicitamente sobre a canalização ogr2ogr.
jczaplew

2
Bom, Mike! Eu não chamaria nenhum deles de super limpo (ogr2ogr colocando o destino antes que a fonte me incomodasse). Tratar uma URL como um arquivo local funciona ... até que não funcione. E o curl tem muitas opções (modo detalhado, segurança) que o ogr2or não possui.
sgillies

Os arquivos de origem listados por último são uma escolha razoável, porque pode haver mais de um.
Steve Bennett
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.