タグ付けされた質問 「qgis-processing」

QGISに高度な分析機能をもたらす空間データ処理フレームワーク。

2
Windows 7 64ビットでプラグイン「処理」をロードできませんでした
スタンドアロンインストーラーとOSgeo4wインストーラーの両方を使用してQGIS(2.0.1-Dufour Dufour、d94c044)をインストールしましたが、処理プラグインに問題があるようです。最初はpythonパスの問題があると思っていましたが、今ではすべてが正しくインストールされているのだろうかと考えています。ライブラリの場所がわからないので、この問題のデバッグに協力してください。 私が知っていることは次のとおりです。 QGISを起動すると、以下のエラーメッセージが表示されます 次のフォルダーがコンピューターに存在しません。 C:\ Users \ gstein / .qgis2 / python C:\ Users \ gstein / .qgis2 / python / plugins C:\ PROGRA〜1 \ QGISDU〜1 \ bin \ python27.zip C:\ PROGRA〜1 \ QGISDU〜1 \ apps \ Python27 \ lib \ plat-win C:\ PROGRA〜1 \ QGISDU〜1 \ apps \ …


2
ArcToolboxツールをQGISに追加しますか?
ArcGISで公開されているSPreAD-GISというツールを使用しています。「ArcGISツールボックスとして実装」された一連のPythonスクリプトです(tbxファイルを使用)。 QGISは初めてです。 QGISにSPreAD-GISを組み込み、使用する方法はありますか?

3
QGISを使用して隣接ポリゴンの値を合計しますか?
次の問題の解決に役立つことを願っています。ベクター(ポリゴン)レイヤーがあります。レイヤーに属性を追加して、すべてのポリゴンについて、そのすべての隣接するポリゴンの特定のフィールドの値を合計します。 より具体的な例を挙げると、人口に関する情報を含む地区のポリゴンレイヤーがあります。さて、すべての地区について、近隣のすべての地区に住んでいる人の数を知りたいと思います。 300以上の地区があるので、各地区ごとにこれを手作業で行うことはできません。 QGISでこれをより効率的に行う方法はありますか?

3
複雑なシェープファイルをグリッドに分割する
ポリゴン/マルチポリゴン機能を備えたきちんとした詳細なシェープファイルがあります(ファイルは約500MBです)。実際には、全世界のシェープファイルであり、フィーチャは海岸線を表します。グリッドを使用してこのデータを分割する必要があります。明確にするために、データを「ソート」したくはありませんが、実際にはポリゴンをタイルに分割します。この質問は以前に聞かれたことに気づきましたが、見つけた解決策はうまくいきませんでした。 私はもう試した: QGISを使用し、シェイプファイルのコンテンツをベクターグリッドと交差させます-結果はひどいです。主要な陸地の大部分は魔法のように消えますが、土地の小さな塊が時々それを作るようです。この方法は、はるかに単純なデータ(つまりポイントが少ない)で非常にうまく機能することに注意してください。 OGRの交差ツールを使用します。私はogr2ogrを介して、さらには独自のC ++ツールを使用して試してみました。どちらもQGISと同じ問題を抱えています。また、単純なファイルではこの問題は発生しませんが、より複雑なファイルでは失敗します。参考までに、サイズが20 MB未満のオーストラリアとニュージーランドのシェープファイルを使用していますが、QGISとOGRの両方が「グリッド化」できません。 PostGISには交差機能があるため、ある時点でPostGISを使用することを提案しましたが、PostGISのST_IntersectはOGRと同じGEOSバックエンドを使用します。実際、私が知る限り、両方とも同じ関数を呼び出しているため、PostGISが異なる結果をもたらすとは思いません。 私は他に何ができるかについての提案を探していました。非常に詳細なシェープファイルをタイルに分割できる堅牢なアプリケーションまたはツールキットが必要です。 編集:いくつかの情報を追加する シンバマングへの応答: シェープファイルは、基本的にOpenStreetMapの海岸線データです。これは、「processed_p」ファイルのマージされたバージョンであるため(タイルに分割されません)、開発者リストをメールで送信しました。タイルの分割(重複した100 km x 100 kmチャンク)は必ずしも必要なものではないことに注意してください-重複したくないので、グリッドサイズを自由に選択したい、または単にデフォルトのprocessed_p。 デフォルトでは、海岸線データにはQGISによって報告されたジオメトリエラーがあります。これらのエラーは、この問題に特に対処するために設計されたいくつかのコード(海岸線データのジオメトリエラーの修復:https : //github.com/tudelft-gist/prepair)を使用して作成した小さなツールで修正します。このツールを使用してファイルを実行すると、QGISで検出されるほぼすべてのエラーが修正されます。ファイルをクリーニングした後にのみ、交差を試みます。 QGISを使用して行ったこととまったく同じ:データを開いて、QGISで正常に表示されることを確認します。指定した間隔でベクターグリッドを使用してタイルのレイヤーを作成し、2つのレイヤーを交差させてタイルに分割してみてください。より小さなデータセットを使用してみてください-オセアニア(オーストラリア、ニュージーランド)の機能を選択して、より小さなデータセットを試します-この形状ファイルのサイズは20 MB未満です。もう一度分割してみてください、動作しません。 OGRで行ったこと:ogr2ogrは、spat_extentで '-spat'および '-clipsrc'オプションを直接使用しました。また、WKTで動作する小さなC ++ツールを作成したため、ogr2ogrを使用してシェープファイルをWKTに変換し、テキストファイルをアプリケーションにフィードします。ファイル全体を実行し、http://www.gdal.org/ogr/classOGRGeometry.htmlに記載されているIntersection()メソッドを呼び出します。最終的にはogr2ogrを直接使用するのとまったく同じことを行うと思います。 ブレントへの応答: します。すべてがWGS84 Lat / Lonにあります グリッドタイルの特定のセットでは、各タイルにより空間的にローカライズされる可能性のある断片化されたフィーチャの束ではなく、1つの巨大なマルチポリゴンと交差するのに時間がかかると思いました興味深い提案-私はそれを試して報告します。 プロセス中に属性フィールドは保持されません。ジオメトリにのみ興味があります。 よくわかりませんが、特定のグリッドタイルと重なるポリゴンを選択してから交差を実行する必要があると言っていると思います。これはQGISでは手動で面倒です。私のツールは、バウンディングボックスチェックを使用して、すでにある程度これを行っています。少しスピードアップしますが、最終結果はまだ悪く、目立った違いはありません。 これはオプションではありません。現在、データを1 deg lat x 1 deg lonに分割しようとしています。すべてのケースで機能する一般的で堅牢な方法論を探しています。グリッドサイズ(10x10など)を増やして、より良い結果が得られるかどうかを確認しましたが、グリッドサイズと出力の品質との間に相関関係は見られません。 編集#2: 私はこれをもっと試してみましたが、一般的には、GEOSとQGIS(fToolsを使用していますが、GEOSを再び使用するかどうかはわかりません)の両方で結果が信頼できないようです。グリッドのサイズが結果とは何の関係もないと述べるのは間違っていました-グリッドが大きいほど、結果は良くなります(それは知っておくのは良いことですが、解決策ではありません)。これは、ほとんど機能しているが、1つのタイルで部分的に失敗した、実際に間隔をあけたグリッドのスクリーンショットです。 ジオメトリはきれいです-QGISは「妥当性のチェック」ツールでエラーを表示しません。私はこの問題に一歩ずつ取り組むつもりはありません。特定のフィーチャが視覚的に明らかではない場合に、この大きなデータセットの交差に失敗したかどうかを確認することは(そして、小さなタイルでは不可能です)実用的ではありません。

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 2.18を使用しています。複数の行を含むシェープファイルがあります。特定のデータ処理を行った後、既存の線から異なる距離に平行線を描く必要があります。たとえば、既存のシェープファイルに32行あります。ラインID番号から50、100、170、500、400の距離に平行線を描画したい。3、6、20、25、31を一度に。同じことを行うためのQGISのメソッドまたはプラグインはありますか?

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") しかし、結果の出力を取得する方法が見つかりません。

1
ラインストリング上にある間、ランダムなフィッシュネットのセルに互いに指定された距離でポイントを作成します
1x1 kmセルのフィッシュネットを受け取る陸上プロトコルがあります。一部のセルはランダムに選択されます。各セルに4つのポイントを配置する必要があり、これらのポイントも道路上になければなりません。ポイント間の最小距離は、すべての細胞のすべてのポイントのために500メートルでなければならない、可能な場合、またはそれがない場合は、我々は可能な最大距離を求めています。 最初の試行では、ST_CreateFishnetを使用してすべてのセルを4つの500x500 mセルに分割し、次にサブセルの重心にポイントを配置してから、最も近い道路(ST_ClosestPoint)に配置します。いくつかの良い結果が得られますが、以下の例では、ポイント5が6から近すぎるため、左側の道路に移動できることがわかります。 WITH r1 AS ( -- only sub-cells which intersects random cells SELECT id_maille, ROW_NUMBER() OVER() AS id_grille, fishnet_500.geomgrille FROM fishnet_500 JOIN t_mailles ON ST_Intersects(ST_Buffer(t_mailles.geom,-200), fishnet_500.geomgrille) -- buffer < 0 to not select neightbours ) , r2 AS ( -- cut roads in every cells SELECT id_maille, …

2
QGISのバッチリファクターフィールドツールの「フィールドマッピング」構文とは何ですか?
QGISでは、Processing Toolboxにこの素晴らしいツール「リファクターフィールド」があります: 単層で使用するのはかなり簡単です。 ただし、バッチモードで使用する場合は、「フィールドマッピング」テキストボックスが表示されます。そこで使用する構文の例を探しています。特定のドキュメントはまだ見つかりません。

2
QGIS 2.14.6処理拡張機能、 'Polygonize'ツールがありません
OSGEO4WインストーラーからQGIS 2.14.6 64Bitをインストールしました。処理拡張機能のバージョンは2.12.99です。スクリーンショットに示されているように、Polygonizeツールにアクセスするために通常どおり「高度なインターフェイス」に切り替えることができません(Lines to Polygonsはまだ機能しません。cp。QGIS 2.12 Lines to Polygonsは正しく機能しません)。 同じインストールを別のマシンで並行して実行すると、Processing Plugin Version 2.10.3が実行されます。ここで、高度なインターフェイスに切り替えてPolygonizeツールにアクセスできます。 追加/更新: 完全に混乱:スタンドアロンインストーラーからインストールされた2.14.5では、処理プラグインのバージョンも2.12.99ですが、ここではPolyonizeツールにアクセスできます。 これまでの研究努力:私は、ケース2でusername\.qgis2\python\plugins\コアプラグインの異常なパスの下に処理プラグインがインストールされていることに気付きました。明らかに(または多分?)問題は、処理がコアプラグインになる前のQGISの以前のインストールであるため、ここのプラグインはコアプラグインをオーバーライドするようです。これは、2のプラグインが更新の影響を受けない理由も説明します(処理はコアプラグインであるため、リポジトリでは使用できません)。解決策は、単にプラグインをアンインストールし、QGISを再起動することでした。コアプラグインバージョン2.12.99が利用可能です。注目すべき点:Polygonizeツールは引き続き使用できます(ケース1とは異なります)。ここまでは順調ですね。 まとめると: 3つのケースすべてで、処理プラグインのバージョンは2.12.99です。 OSGeo4Wインストーラー、Polygonizeツールなし OSGeo4Wインストーラー、Polygonize利用可能なツール スタンドアロンインストーラー、Polygonize利用可能なツール では、ケース1の問題は何でしょうか?OSGeo4Wインストーラーで何かを見逃しましたか?

2
スタンドアロンPythonスクリプトでQGIS処理をインポートしますか?
Qgisの処理ツールボックスを使用するいくつかのスタンドアロンスクリプトを記述したいと思います。 私はいくつかのスレッド(ここやここなど)を読みましたが、まだ有効な解決策を見つけることができませんでした。 Ubuntu Xenial 16.04 LTSでのQgis 2.16.1の使用 スクリプトのインポートセクションは次のようになります。 # Python modules import sys import time import os # Qgis modules from qgis.core import * import qgis.utils from PyQt4.QtCore import QFileInfo, QSettings 処理モジュールをインポートするために欠けているものを誰かが知っていますか? 単純なインポート処理で、私はこれを取得します: Original exception was: Traceback (most recent call last): File "/home/steph/Documents/Projets/20141227-CIM_Bishkek/Scripts/python/00-projets/20160811-AnalysesUAVs/20160811-UAVAnalyse.py", line 36, in <module> import processing File …

2
QGISのコア機能はマルチスレッドを利用しますか?
QGISでマルチスレッド処理を有効にするを読んだ後?、さまざまなプロセスを実行するときにQGIS 2.6にこれが含まれるかどうか疑問に思っていました。オンラインで確認したところ、QGIS 2.4にマルチスレッドレンダリングが導入されていることだけがわかりました(2.6でも利用できると思います)。特に大規模なデータセットを扱う場合、マップを非常にすばやく再描画できるようになりました。 コア機能にマルチスレッディングを含めるのはかなり難しいことと、PyQGISでのGIS操作の並列化などでPythonコードを操作してこれを実現することをユーザーに勧めていることを読みました。。 機能のリクエストも確認しましたが、Tim Suttonによって9か月間閉鎖されており、最後のコメントは次のとおりです。 「私はこれを締めくくっています-Martin DobiasはQGIS 2.2の後にマージされるブランチでの実装を持っています」 QGIS 2.6の一部の機能はマルチスレッドを利用しますか(または再びレンダリングに焦点を当てます)、そうでない場合、QGIS 3.0で変更されますか?

1
QGIS処理でメモリ内ベクターレイヤーを使用する/ SEXTANTE
qgis:clipアルゴリズムをコンソールから実行しようとしていますが、メモリ内レイヤーをオーバーレイパラメーターとして使用するとエラーが発生します。これは予想されることですか、それとも私は何か間違っていますか? コード: mem_layer = QgsVectorLayer("Polygon?crs=epsg:4326", "temp_layer", "memory") if not mem_layer.isValid(): raise Exception("Failed to create memory layer") mem_layer_provider = mem_layer.dataProvider() clip_polygon = QgsFeature() clip_polygon.setGeometry(QgsGeometry.fromRect( QgsRectangle( self.output_layer.extent().xMinimum() + 10, self.output_layer.extent().yMinimum() + 10, self.output_layer.extent().xMaximum() - 10, self.output_layer.extent().yMaximum() - 10 ) )) mem_layer_provider.addFeatures([clip_polygon]) mem_layer.updateExtents() output = self.output_layer_path + "2" processing.runalg("qgis:clip", layer, mem_layer, output) # …

2
PyQGISを使用して多数のマップを生成しますか?
種の分布図を多数(数百)作成する必要があります。各種の分布を含むシェープファイルがあり、各種について、関係する種の名前、凡例(領域を区別するため)を含む画像(jpg、pngなど)としてマップを取得したい年間分布、繁殖、非繁殖など...)。 これを行うためにQGISを使用したいと思います。

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