フィールドDNが 1つだけのシェープファイルがあります。フィールドの特定の値を持たないすべての機能を削除したいと思います。DNが1、2、または3であるとしましょう。
これまでのところ、フィーチャーの選択方法とフィーチャーの削除方法を見つけることができましたが、それらを組み合わせることに成功しませんでした。DN = 3の機能のみを残したいとします。
ここで見つかった機能の選択は、内部の内容を確認する方法がわからなかったため、想定どおりの動作をするかどうかはわかりません。
select = layer.getFeatures(QgsFeatureRequest().setFilterExpression(u'"DN"!=3'))
ここにある機能を削除
res = Ilayer.dataProvider().deleteFeatures()
私の知る限りでは、deleteFeatures()
機能のIDが必要ですが、私はからからそれらを取得する方法は考えていないselect
であるがQgsFeatureIterator
。