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.