タグ付けされた質問 「pyqgis」

QGISのPythonバインディング。

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

2
QGIS処理でマージするためにディレクトリ内のすべてのファイルを選択しますか?
私は、シェープファイルをディレクトリに書き込んでから、それらをマージする一般的なスクリプトを書いています。ファイルを出力フォルダーに書き込んだ後、saga:mergeshapeslayersアルゴリズムを使用して、出力フォルダー内のすべてのファイルをマージしようとしています。私はモデルビルダーを使用しましたが、ある程度は役立ちますが、特定の目的で使用されているのに対して、一般的な目的でスクリプトを作成しようとしています。 コード: ##Test=name ##Select_folder=folder ##Result=output vector import os import glob path_1 = Select_folder path = path_1 os.chdir(path) def function(): output = glob.glob(path_1 + './*.shp') x = 0 while output[x]: for fname in glob.glob("*.shp"): outputs_1 = processing.runandload("qgis:fieldcalculator", output[x], 'Number', 1, 10, 0, True, 1 , "C:\Users\Me\Desktop\Output\\" + fname) multiple_0 = glob.glob("*.shp") …

1
PyQGISを使用したシェープファイルのレンダリングとラベル付け
QGIS API for pythonの操作でいくつかの問題が発生しています。QGISのpythonコンソールでの作業がより快適になりましたが、QGISの外部でコードを実行しようとすると問題が発生します。 基本的に、シェープファイルを取得し、指定された属性名に基づいてラベルを付け、画像をレンダリングしたいと思います。コードはQGISで機能しますが、QGISの外部では機能しません。だから私の問題はどこから来ているのですか? import sys import qgis import PyQt4 from qgis.core import * from qgis.utils import * from qgis.gui import * from PyQt4.QtCore import * from PyQt4.QtGui import * #initialize QGIS QgsApplication.setPrefixPath( r"C:\OSGeo4W64\apps\qgis", True ) QgsApplication.initQgis() #Add layer to instance file = QgsVectorLayer("Good Shape File", "BMAS", "ogr") QgsMapLayerRegistry.instance().addMapLayer(file) …

3
ArcPyの行/フィールドの更新/削除に対応するQGISの同等の機能は何ですか?
一部のスクリプトをArcPyからQGIS(1.8または2.0)に再プログラムしようとしていますが、やり直したいいくつかの単純な関数がありますが、残念ながら、QGISのドキュメントには特定の領域がありません。 つまり、私にとって最も重要な3つは次のとおりです。 フィールドを追加 - フィールドを追加 arcpy.AddField_management(Feature, "ID", "SHORT") フィールド管理の計算 -そのフィールドを更新 arcpy.CalculateField_management(Feature,"ID","!FID!") 行の更新/削除 -条件に基づいて行を更新/削除(シェープファイルをコピーしない) keep = ["Bob","Janet","John","Mike"] Counter = 0 rows = arcpy.UpdateCursor(Feature) for row in rows: if row.Name in keep: row.ID = Counter rows.updateRow(row) else: rows.deleteRow(row) Counter += 1 これで、SEXTANTEを使用してQGISの各フィーチャを反復処理し、そのジオメトリを取得できます。これを新しいシェープファイルに書き換えて、行またはフィールドを更新/削除できます。に沿って何かから始まります... layer = st.getobject(Polygon) features = st.getfeatures(layer) for f in features: …
8 qgis  pyqgis 

3
Pythonを使用してQGISマップの範囲を設定する
Python / QGISで、マップを作成するだけのスタンドアロンアプリケーションを作成しています。 ベクター/ラスターレイヤーを読み込み、シンボルを設定し、範囲を設定したい 現時点ではそれだけです! 現在、私はここで概説されている単純なレンダリング手法を使用しています:http : //www.qgis.org/pyqgis-cookbook/composer.html#simple-rendering しかし、私はこのコードを特定の範囲を定義するように適合させることに失敗しました。以下のコードを提供します。 範囲を変更する方法を示す唯一の例は、MapCanvasの作成です。...しかし、これが非常に単純なマップを作成しているだけであることを考慮して、これが私がしたいことであるかどうかはわかりません...そして、それはまったく新しい複雑なセットを導入するようです。「シンプルなレンダリング」技術を介して範囲を定義する簡単な方法は確かにありますか? ベッキー from qgis.core import * from qgis.utils import * from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtCore import QFileInfo, QSettings QgsApplication.setPrefixPath('/Applications/QGIS-1.9.app/Contents/MacOS', True) QgsApplication.initQgis() province = QgsVectorLayer('/filepath/Province_studyUTM36S.shp' , 'layer', 'ogr') town = QgsVectorLayer('/filepath/TownPolygons_UTM36S.shp' , 'layer', 'ogr') road = QgsVectorLayer('/filepath/Roads_UTM36S.shp' …
8 qgis  python  pyqgis 

2
PyQGISを使用してレイヤーグループを追加しますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 地理情報システムスタック交換のトピックになるように質問を更新します。 昨年休業。 Pythonコードを使用してレイヤーマネージャーで新しいグループを作成するにはどうすればよいですか?

4
ポイントが存在するポリゴンを見つける方法は?
ポリゴンフィーチャのレイヤーがあります。各機能には属性と値があります。座標のリストもあるので、その座標がどのフィーチャ(またはポリゴン)にあるのか知りたいのですが。 誰かがこれについてどうやって進むかについて私を案内してくれませんか?私の目標を達成するのに役立つ関数がAPIにありますか、それとも自分でそれを行うためにいくつかの計算幾何アルゴリズムを使用する必要がありますか?後者の方法は知っていますが、組み込み関数がすでにある場合は、時間を節約できます。 ありがとう。
8 qgis  pyqgis 

2
QGISでソースが変更された場合、ラスターレイヤーを自動的に再読み込みする方法は?
ソースが変更された場合、ラスターレイヤーを自動的に再読み込みする方法 (パスは同じですが、ソースファイル内が変更されています) 私が使う: qgis.utils.iface.mapCanvas().refresh() しかし、レイヤーは更新されません。 ### マップは再描画されていますが、同じ画像がまだあります(ソースファイルがディスク上で変更されています) 私が使う: layers = qgis.utils.iface.legendInterface().layers() for layer in layers: layer.triggerRepaint()
8 qgis  python  pyqgis 

2
QGIS Pythonコンソールを使用して、単純なレイヤークエリとpng出力を反復処理する方法を教えてください。
QGISコーディングは本当に初めてで、クエリビルダーウィンドウのアクションを実行するためのapiクラス/関数(特に)を見つけるのに苦労しています。 私は基本的にこれをやろうとしています: n = 1から200まで繰り返す... field_id = nであるlayerAのクエリ レイヤーBにクエリを実行し、field_id = n field_id = nであるlayerCのクエリ img_n.pngとして保存 かなりシンプルだと思いますが、GUIで手作業で行うのは本当に大変なことです。
8 qgis  python  pyqgis  query  png 

1
pyqgis:選択したジオメトリのフィーチャーを取得する方法
誰かが選択した機能の属性を取得する方法の例を提供できるかどうか疑問に思いますか? Pythonコンソールで次のコードを試しましたが、属性を取得したいところに行き詰まっています。 qgis.utils.iface canvas = qgis.utils.iface.mapCanvas() cLayer = canvas.currentLayer() selectList = [] if cLayer: count = cLayer.selectedFeatureCount() print count selectedList = layer.selectedFeaturesIds() for f in selectedList: # This is where I'm stuck # As I don't know how to get the Attributes of the features 誰かが助けてくれたら本当に嬉しいです。 よろしく
8 qgis  pyqgis 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.