Transfert des données vers ogr2ogr


10

Est-il possible de diriger directement les données vers ogr2ogr? J'essaie de curlcréer un fichier GeoJSON et ogr2ogrde le rediriger vers un autre format.

Sans utiliser de pipe, j'ai pu y parvenir en écrivant d'abord un fichier puis en le convertissant à l'aide de la commande suivante, mais je suis curieux de savoir s'il est possible de sauter cette étape.

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

J'ai également essayé de créer une variable avec la sortie curl au lieu de la canaliser, mais je n'ai ogr2ogrpas pu la lire:

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

Réponses:


18

OGR a son propre idiome pour stdin, /vsistdin/. Utilisez-le comme premier argument d'ogr2ogr (le nom de source_dat_datasource) et vous pouvez lui rediriger la sortie de 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
Au moins sur Windows, cela fonctionne aussi comme ceci: ogrinfo -ro -al -so /vsicurl/http://svn.osgeo.org/gdal/trunk/autotest/ogr/data/poly.shpAutres exemples sur trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip
user30184

8

Vous pouvez utiliser des URL comme chemins vers des sources de données OGR, vous n'avez donc pas besoin de boucles ou de canaux.

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

1
C'est génial! Je ne savais pas que c'était une possibilité. Il s'agit d'une solution plus propre que la réponse acceptée, mais la question portait explicitement sur la canalisation ogr2ogr.
jczaplew

2
Bien, Mike! Je n'appellerais pas l'un d'eux super propre (ogr2ogr mettant la destination avant la source me bugs). Le traitement d'une URL comme un fichier local fonctionne ... jusqu'à ce que ce ne soit pas le cas. Et curl a beaucoup d'options (mode verbeux, sécurité) que ogr2or n'a pas.
sgillies

Les fichiers source répertoriés en dernier est un choix raisonnable, car il peut y en avoir plusieurs.
Steve Bennett
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.