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

QGISのPythonバインディング。

2
PyQGISで利用可能なPostGIS接続を取得する
PyQGISでPostGISデータベースへの利用可能な接続を取得できますか?利用可能なdb-connectionsのリストを提供し、続いて私のプラグインのui内のテーブルのリストを提供したいと思います。 クックブックをチェックしましたが、これをさらに進める方法が見つかりませんでした。
10 qgis  postgis  pyqgis 

5
オープンソースツールを使用して衛星画像の画像境界/フットプリントを計算していますか?
以下に示すように、範囲/境界ボックスではなく、いくつかの単一レイヤーラスターイメージのポリゴンアウトラインを作成する必要がありますが、nodata値がない領域を作成します。。 上記の質問への回答で、Image Boundaryプラグインについて言及しましたが、Ubuntuで実行されているQGIS 1.8.0 Lisboaでは見つかりません。 ツールはまだ利用できますか? そうでなければ、ArcMapではなく、gdal、R、QGIS、GRASSなどのオープンソースツールを使用してこれを行う方法はありますか?

3
Pythonを使用してQGISで選択した1つのフィーチャのデータを取得しますか?
PythonとQGISに関する問題/質問があります。Pythonを使用してQGISで選択した1つのフィーチャのデータを取得することは可能ですか? 私の例では、都市計画のためのいくつかの区画を示すレイヤーがあります。パーセルの1つを選択した場合、このパーセルのデータを取得します。このデータはpythonスクリプトによって読み取られ、自動的に作成されたPDFファイルに追加されます。最後の手順は簡単ですが、この選択した機能からデータを取得できませんでした。 アクティブレイヤーからデータを取得することは可能ですが、このレイヤーの選択した1つのフィーチャからデータを取得することもできますか? あなたが私を助けることができることを願っています。よろしく
10 qgis  python  pyqgis 

2
PyQGISを介してツールバーを追加しますか?
チュートリアルを通じて、Pythonを介してプラグインツールバーにツールボタンを追加する方法を学びました。今私はpythonを介してtoolbarbuttonsで完全なツールバーを追加する方法を疑問に思います。 誰かがいくつかのサンプルコードを与えることはできますか?
10 pyqgis  toolbar 

2
PyQGISでレイヤー範囲を取得しますか?
r.neighborsラスタ用のグラスアルゴリズムを使用して処理スクリプトを記述しようとしています。このアルゴリズムにGuiを使用する場合、GRASSレイヤーの範囲フィールドを空白のままにして、最小範囲を使用できます。逆に、Pythonコンソールで使用すると、このような「デフォルト」値を入力する方法がわかりません。 私は上を見https://docs.qgis.org/2.2/en/docs/user_manual/processing/console.htmlある程度パラメータのための4つの座標入力に必須であると考えられること。使用してみましたiface.mapCanvas().extent()が、返されたオブジェクトはパラメーターとして受け入れられず、座標を取得する方法が見つかりません。 xmin, ymin, xmax, ymaxPyQGISのレイヤーを取得してアルゴリズムに入力する方法はありますか?私はそれを完全に間違っていますか?

2
ポイントレイヤーとラインレイヤーの間の垂線の自動作成
QGISを使用していて、ポイントレイヤーから別のラインレイヤーのラインに多数の垂直線を作成できるスクリプトまたはプラグインを探しています。 これまで、MMQGISのハブ距離関数(ラインをポイントに変換し、ポイントを最も近いハブに接続する)とQGIS地理アルゴリズムのそれぞれのツールを使用してみました。どちらもうまくいきませんでした。どちらも2時間以上かかり、すべてのレイヤーの線、またはポイントに垂直または接続されていない線を作成します。 写真では、プロジェクトの現在のステータスを確認できます。垂直線は、ポイントから最も近い線まで延びる必要があります。最後に、ポイントと国境を結ぶ線との交点を使用して、2ポリゴンの深さである4辺ポリゴンのバッファを作成します。これを行う簡単な方法がある場合に備えて、これについて触れます。 垂線を作成する方法についていくつかの記事があることは知っていますが、どちらも私の問題を解決しませんでした。


2
SQLクエリを実行してQGIS Pythonコンソールから結果を取得する方法は?
QGIS APIを使用してPythonスクリプトを作成しています。postgresデータベーステーブルから結果を取得する必要があります。テーブルには、ジオメトリフィールドとその他の非ジオメトリフィールドがあります。 非ジオメトリフィールドでSQLクエリを実行し、コードで結果を取得したいと考えています。これを行う方法?そうするクラスはありますか? QgsDataSourceURIクラスについては知っていますが、私が知る限り、ジオメトリフィールドからの結果しか得られません。

2
PyQGISを使用してQGISコンテキストメニューから[名前を付けて保存]を削除[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、地理情報システムスタック交換のトピックになるようにします。 9か月前に閉鎖。 QGISレイヤーのコンテキストメニューから既存のオプション(「名前を付けて保存」)を削除したいのですが、これまでのところ、新しいアクションをに追加するLegendItemsか、新しいオプションで完全に上書きします。しかし、既存のデフォルトのコンテキストメニューオプションを削除できるオプションを見つけることができませんでした。 menuProvider()メソッドが使用可能であることがわかりましたが、このメソッドでは詳細を取得できませんでした。 QGISのコンテキストメニューから既存の[名前を付けて保存]オプションを削除するにはどうすればよいですか?
9 pyqgis  pyqt 

2
QGIS 3のprocessing.getObject()
それはそうないprocessing.getObject()QGISで利用できなくなっています。 from PyQt5.QtCore import * from qgis.core import * #... layer = processing.getObject(layer) # -> ...module 'processing' has no attribute 'getObject' 新しい使用方法はありますget.Objectか?

1
QGIS 2.18.10はどのSAGAバージョンをサポートしていますか?
QGIS 2.18.10から、SagaAlgorithmProviderと呼ばれる辞書はなくなりましたsupportedVersions。以前は次のようになりました。 supportedVersions = {"2.1.2": ("2.1.2", SagaAlgorithm212), "2.1.3": ("2.1.3", SagaAlgorithm213), "2.1.4": ("2.1.4", SagaAlgorithm214), "2.2.0": ("2.2.0", SagaAlgorithm214), "2.2.1": ("2.2.0", SagaAlgorithm214), "2.2.2": ("2.2.2", SagaAlgorithm214), "2.2.3": ("2.2.3", SagaAlgorithm214), "2.3.0": ("2.3.0", SagaAlgorithm230), "2.3.1": ("2.3.0", SagaAlgorithm230)} 今それは単に言います: if not version.startswith('2.3.'): ProcessingLog.addToLog(ProcessingLog.LOG_ERROR, self.tr('Problem with SAGA installation unsupported SAGA version found.')) したがって、2.3で始まるSAGAバージョンのみがサポートされるようになったと思います。ただし、私のQGIS GUIでは、ログメッセージパネルにSAGAバージョン2.3.1がサポートされていないことが表示されます(興味深いことに、SAGA 2.3.1をのようなカスタムアプリケーションで使用できますRQGIS)。QGIS 2.18.10ではどのSAGAバージョンがサポートされていますか?


1
スクリプトアトラスの式ベースのラベルが更新に失敗する
私は、プログラムからcomposerをテンプレートからロードし、pyQgisを使用してアトラスを生成し、pyqgisを使用してアトラス印刷コンポーザーを自動化しようとします。 アトラスコードの特定は言う: myAtlasMap = myComposition.getComposerMapById(0) myAtlas = QgsAtlasComposition(myComposition) myAtlas.setCoverageLayer(atlas_desktop) myAtlas.setComposerMap(myAtlasMap) myAtlas.setFixedScale(True) myAtlas.fixedScale() myAtlas.setHideCoverage(False) myAtlas.setFilterFeatures(True) このコードは私の仕事のために機能し、私は新しい100アトラス機能マップを取得しますが、私の中には次のtemplate.qptようなコードを持ついくつかのラベルがあります: QGIS [%concat( "OBJECTID" )%] これOBJECTIDは、すべての新しい100個のアトラス機能マップと同じです。なぜか?手動のアトラスエクスポートを使用している場合は、マップをOBJECTID変更します。 私はより多くの詳細を持っていますtrue私はtemplate.qpt私の中にレイヤーアトラスに関連する何も機能しません私はこのようないくつかの基本スタイルルールまたは基本ラベルルールを持っています: intersects($atlasgeometry, $geometry ) または $id = $atlasfeatureid これは100個のマップの一部です。 私は、プログラムからcomposerをテンプレートからロードし、pyQgisを使用してアトラスを生成するため、アトラスレイヤーから機能を1つずつエクスポートし、テンプレートのアトラスはFalseのままであると考えています。 何か案が ?

1
QGISのログメッセージパネルの問題を解決する方法:「100を超えるリクエストエラーをログに記録しない」。
エラー/警告が検出されるとすぐに再描画をトリガーするために、pyqgisで次のコードを使用してWMSレイヤーからのエラー/警告をキャッチしています(前の質問に基づいて:ログメッセージパネルからWMSエラーメッセージをキャッチする方法QGISでPythonを使っていますか?) しかし、明らかに「WMS」プロバイダーには、メッセージログに100を超えるエラーリクエストを送信しないという制限があるようです。つまり、100回目のエラー/警告の後、WMSレイヤーがまだ正しく応答していません。それでも、ログパネルに独自のメッセージを送信する場合、制限はないようです(以下のコードを参照)。 メッセージログパネルを使用する代わりに、ここで責任があるインスタンスから直接エラー/警告をキャッチする可能性はありますか(おそらくWMSプロバイダーです)。または、実行中のプロセスのログメッセージパネルをクリア/リセットするか、制限を解除しますか? Windows 10でQGIS 2.18.2を使用しています。 Pythonコードは次のとおりです。 # coding=utf-8 from qgis.core import * wmsLayer_name="wms-dtk50_wgs" url_with_params ='url=http://sg.geodatenzentrum.de/wms_dtk50?&crs=EPSG:25832&featureCount=10&format=image/png&layers=DTK50&styles=' wmsLayer = QgsRasterLayer(url_with_params, wmsLayer_name,'wms') QgsMapLayerRegistry.instance().addMapLayer(wmsLayer) def errorCatcher( msg, tag, level ): if tag == 'WMS' and level != 0: #Warnings or Errors (0: Info, 1:Warning, 2:Error) print "WMS error detected!" myWMSLayer = QgsMapLayerRegistry.instance().mapLayersByName("wms-dtk50_wgs")[0] myWMSLayer.triggerRepaint() …
9 qgis  pyqgis  wms  log 

1
QGISにPythonスクリプトを自動的に保存する
Pythonスクリプトを作成する場合、ユーザーがctrl+Sコマンドまたはを使用してメインプロジェクトを保存しても、QGISはそれらを保存しませんProject->Save。さらに、QGISを終了するときに、プロジェクトへの未保存の変更について警告し、それらを保存するように提案しても、プログラムはPythonスクリプトの未保存の変更について警告しません。 この動作を変更するオプションはありますか? 終了時にプロジェクトを保存するためにダイアログオプションを使用してそれを追加する必要がありますが、実際にはpythonスクリプトは保存されません。それらは単に失われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.