Memilih fitur berdasarkan atribut menggunakan ogr2ogr?


17

Saya menulis shapefile setelah beberapa pemrosesan; Namun, pada langkah terakhir saya perlu melakukan beberapa seleksi dengan atribut dari shapefile.

Saya menggunakan perintah di shell dengan tujuan menggunakannya dalam skrip Python ketika berfungsi.

ogr2ogr -f "ESRI Shapefile" -select * where ID="1" outfile.shp infile.shp

Saya menerima pesan kesalahan:

FAILURE: 
Unable to open datasource `Downloads' with the following drivers.

Apa yang bisa saya lakukan salah?


Apakah itu benar-benar pesan yang tepat untuk perintah itu?
— BradHards

Jawaban:


30

Anda kehilangan tanda minus sebelumnya wheredan selectitu tidak perlu, jadi seharusnya:

ogr2ogr -where ID="1" outfile.shp infile.shp

atau jika Anda harus melakukan kueri yang lebih kompleks pada data input Anda:

ogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp

Jika IDadalah bidang tipe Integer, gantikan ID='1'dengan ID=1.

Catatan:

  1. -f "ESRI Shapefile"tidak diperlukan karena "ESRI Shapefile"merupakan ogr2ogrformat output default;
  2. lebih mudah untuk melewati -selectdan menggunakan langsung -whereklausa ketika Anda ingin memilih semua bidang.

1
Terima kasih banyak. Saya menggunakan: ogr2ogr -di mana "ID = '1'" output.shp input.shp
— user2757128

Bagaimana saya dapat menggunakan kode ini: ogr2ogr -sql "SELECT * FROM infile WHERE ID = '1'" outfile.shp infile.shp "dalam python?
— Shiuli Pervin

1
@ShiuliPervin Anda dapat menggunakan pernyataan dalam python dengan menggunakan os.system('''ogr2ogr ... ''') . pastikan untuk berada import osdi bagian atas skrip python Anda
— geoeye

@afalciano, untuk pernyataan ogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shpalih-alih hanya ID = 1 apakah ada cara untuk menyediakan vektor atau serangkaian angka saja, misalnya ogr2ogr -sql "SELECT * FROM infile WHERE ID IN ['1','5','29']" outfile.shp infile.shp?
— hlm

@afalciano satu hal lain ... alih-alih menulis file shp lain, apakah ada cara untuk mendapatkan koordinat poligon ID yang dipilih?
— hlm
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.