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

QGISのPythonバインディング。

4
Pythonを使用して、印刷/マップQGISコンポーザービューをPNG / PDFとして保存します(表示レイアウトの変更なし)。
QGISコンポーザー/印刷ビューを開いて、すべての要素を希望どおりに調整しました。ここで、これをPythonコンソール/ PythonスクリプトからPNGまたはPDFファイルとして印刷/保存/エクスポートする必要があります。 現在のレイアウトで何も変更したくない。私が見つけたほとんどの例(例:this)は、現在の作曲家ビューに表示されているものと比較して、出力PDFのマップの位置またはサイズを変更します。[印刷]-> [ 画像としてエクスポート ]をクリックしたときに得られる結果とまったく同じ結果を受け取りたい。 どうやってやるの?アトラスは私にとって解決策ではありません。


3
PyCharmとPyQGISをセットアップする際の「SDKは無効のようです」エラーを修正しますか?
このブログ投稿で説明されているように、PyCharmをセットアップしたかった:PyQGISおよびQt用のPyCharmのセットアップ。 指示どおりにすべてを行いましたが、プロジェクトインタープリターの追加に関しては、次のエラーメッセージが表示されました。 誰にもこれに対する解決策がありますか?

2
ArcpyとPyQGISの両方を呼び出すことができるスクリプトを作成しますか?
私はこのトピックの明確な答えを探すのにかなりの時間を費やしましたが、スタンドアロンスクリプトでPyQGISにアクセスするという目標を実際に達成することができませんでした。 回答の一部は、次のような多くの異なる質問にわたって提供されています。 QGISと環境変数を使用したスタンドアロンアプリケーション スタンドアロンスクリプトのpyQgis、ベクトルロードエラー PyQGISを使用してスタンドアロンPythonスクリプトを作成しますか? 私が見つけた最も微妙な答えは、ここ @geneによって提供されました。 私が特に興味を持っているのは、ArcpyとPyQGISの両方を呼び出すことができるスクリプトを作成できることです。PyQGISクックブックのドキュメントに従って、PATHとPYTHONPATHの両方のシステム変数を次のように設定しました。 C:\OSGeo4W\apps\qgis\bin,%PATH%;C:\Python27\ArcGIS10.2\Lib\site-packages\PyQt4;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\ そして C:\OSGeo4W\apps\qgis\python; C:\OSGeo4W\apps\Python27\Lib\site-packages それぞれ。 私はこのスクリプトから始めています: from qgis.core import * QgsApplication.setPrefixPath("C:\OSGeo4W\bin\qgis.bat", True) QgsApplication.initQgis() # or your solution # read …

1
PyQGISを使用してジオメトリを使用してベクターレイヤーをCSVファイルに書き込みますか?
私はPythonを使用して、このコードでベクターレイヤーファイルをcsvファイルに書き込もうとします: QgsVectorFileWriter.writeAsVectorFormat(mylayer, r'c:\temp\xyz.csv', "utf-8", None, "CSV") xyz.csvにエクスポートできますが、csvには属性のみが表示され、ジオメトリ列は表示されません。 属性データと空間データの両方をcsvファイルにエクスポートするにはどうすればよいですか?

1
QGISでPythonセッションを保存する方法は?
QGISのpythonコンソールで多くのスクリプトを実行した後、10を超える辞書とリストがあり、さらに分析するためにこれらが必要です。これらすべての変数で、Pythonセッションを保存する方法はありますか? 一般に、私の質問は、変数をPythonコンソールから何かにエクスポートして、将来再びロードできるようにする方法ですか? ありがとう
11 qgis  python  pyqgis 

1
QThreadとPyQGISを使用してレスポンシブGUIを維持するにはどうすればよいですか
QGIS 1.8のPythonプラグインとしていくつかのバッチ処理ツールを開発しています。 ツールの実行中にGUIが応答しなくなることがわかりました。 一般的な知恵は、作業はワーカースレッドで行われ、ステータス/完了情報がシグナルとしてGUIに返されることです。 私は川岸のドキュメントを読んで、doGeometry.py(ftoolsからの実用的な実装)のソースを研究しました。 これらのソースを使用して、確立されたコードベースに変更を加える前にこの機能を調べるために、簡単な実装を構築しようとしました。 全体的な構造は、プラグインメニューのエントリであり、開始ボタンと停止ボタンのあるダイアログを開きます。ボタンは100までカウントするスレッドを制御し、各番号のシグナルをGUIに送り返します。GUIは各信号を受信し、メッセージログとウィンドウタイトルの両方を含む文字列を送信します。 この実装のコードは次のとおりです。 from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * class ThreadTest: def __init__(self, iface): self.iface = iface def initGui(self): self.action = QAction( u"ThreadTest", self.iface.mainWindow()) self.action.triggered.connect(self.run) self.iface.addPluginToMenu(u"&ThreadTest", self.action) def unload(self): self.iface.removePluginMenu(u"&ThreadTest",self.action) def run(self): BusyDialog(self.iface.mainWindow()) class BusyDialog(QDialog): def __init__(self, parent): QDialog.__init__(self, …


2
processing.runalg()は「TypeError:BaseExceptionから継承しないクラスのキャッチは許可されていません」をスローします
皆さん、こんにちは。PyQGISは初めての方で、QGIS 3.0でスクリプトを実行しようとしましたが、成功せず(完全に2.18で実行されました)、常に同じエラーが発生します。 AttributeError:モジュール 'processing'に属性 'runalg'がありません上記の例外の処理中に、別の例外が発生しました:トレースバック(最後の最新の呼び出し):ファイル "C:\ PROGRA〜1 \ QGIS3〜1.0 \ apps \ Python36 \ lib \ code.py "、91行目、runco​​de exec(code、self.locals)ファイル" "、8行目、TypeError:BaseExceptionから継承しないクラスのキャッチは許可されていません これはPYTHONPATHと関係がありますか?次のように入力すると、アルゴリズムのリストも表示されません:processing.alglist()

3
QGISで複数のポイントをラインに揃えますか?
ラインオブジェクトの周りに指定された許容値またはバッファーを使用して、ラインまたはレイヤー内のラインに複数のポイントを揃えたいのですが。添付のサンプルスケッチを参考にしてください。 この例では、BEFOREピクチャのラインに最も近いポイントはラインの5マップ単位以内にあり、最も外側のポイントは10マップ単位以上離れています。5マップ単位の許容誤差を使用して、AFTER画像の結果を達成するために、最も近いポイントを最も近いラインにスナップしたいと思います。

3
QGIS処理からメモリ出力を読み込む方法は?
多くの処理アルゴリズムには、出力をメモリとして保存するオプションがあります。ツールボックスから実行した場合、[アルゴリズム実行後に出力ファイルを開く]チェックボックスをオンにできるため、これは正常に機能します。 QGISのソースコードを見ると、メモリレイヤーをロードするためのコードが関数で定義されているようPostprocessing.handleAlgorithmResultsです。この関数はalg.outputsリストへのアクセスを使用して、次のことを行います。 for out in alg.outputs: progress.setPercentage(100 * i / float(len(alg.outputs))) if out.hidden or not out.open: continue if isinstance(out, (OutputRaster, OutputVector, OutputTable)): try: if out.value.startswith('memory:'): layer = out.memoryLayer # NOTE!! QgsMapLayerRegistry.instance().addMapLayers([layer]) # NOTE!! else: # ... コンソールから処理アルゴリズムを実行するときに、このオブジェクトにアクセスせずにレイヤーをロードする方法はありますか?走れる processing.runalg("qgis:intersection", layer1, layer2, "memory:") あるいは processing.runalg("qgis:intersection", layer1, layer2, "memory:myLayerName") しかし、結果の出力を取得する方法が見つかりません。

3
QGISホットキーの割り当て:「次のフィーチャを選択してフィーチャにズーム」
住所に基づく2000以上の機能を持つデータセットがあります。各ポイントを個別にズームして少し移動する必要があります(一貫したシフトがないため、他の方法はありません)。 属性テーブルで次の機能を選択し、「選択範囲にズーム」を押すのは少し面倒です。次の機能を自動的に選択してズームするホットキーを割り当てる方法(またはPythonスクリプト)はありますか?

2
PyQGISを使用してレイヤー名のリストを取得しますか?
QGISセッションのすべてのレイヤーの名前を含むリストが必要です。私は次のように仕事をしました layersNames = [] for i in self.iface.mapCanvas().layers(): layersNames.append(str(i.name())) しかし、これには可視レイヤーの名前のみが抽出されるという問題があります。PyQGISを使用して、すべての(表示されているかどうかにかかわらず)レイヤーの名前のリストを取得するにはどうすればよいですか?
11 pyqgis 


1
PyQGISを使用してプログラムでパネルのオン/オフを切り替える
QGISではright-click、ツールバー領域のどこかを使用して、下のスクリーンショットのようにパネルをオン/オフに切り替えることができます(たとえば、GPS情報パネル)。 これをプログラムで行う必要があるので、PyQGISからパネルのオン/オフを切り替える方法は?QgsInterfaceクラスにaddDockWidgetand removeDockWidgetメソッドがあることがわかりましたが、これがこれを達成する正しい方法であるかどうか本当にわかりませんでした...
10 pyqgis  panel 

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