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?
Jawaban:
Anda kehilangan tanda minus sebelumnya
where
danselect
itu tidak perlu, jadi seharusnya:atau jika Anda harus melakukan kueri yang lebih kompleks pada data input Anda:
Jika
ID
adalah bidang tipe Integer, gantikanID='1'
denganID=1
.Catatan:
-f "ESRI Shapefile"
tidak diperlukan karena"ESRI Shapefile"
merupakanogr2ogr
format output default;-select
dan menggunakan langsung-where
klausa ketika Anda ingin memilih semua bidang.sumber
os.system('''ogr2ogr ... ''')
. pastikan untuk beradaimport os
di bagian atas skrip python Andaogr2ogr -sql "SELECT * FROM infile WHERE ID='1'" outfile.shp infile.shp
alih-alih hanya ID = 1 apakah ada cara untuk menyediakan vektor atau serangkaian angka saja, misalnyaogr2ogr -sql "SELECT * FROM infile WHERE ID IN ['1','5','29']" outfile.shp infile.shp
?