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

Pythonは、多くのGISプログラムで使用されているオープンソースのインタプリタ型プログラミング言語です。

1
QGISでのカスタムPython関数の文書化
QGISでカスタムPython関数をドキュメント化するにはどうすればよいですか? 私がユーザーのために書いた関数についてユーザーにヘルプを提供したいと思います。 私はdocstringを追加しようとしました: しかし、[ ロード ]をクリックするたびに、エラーメッセージが表示されます。 エラーメッセージにはインデントエラーがはっきりと示されていますが、これは実際のコードには対応していません。

2
GDALを使用して特定の緯度/経度の位置で画像を作成しますか?
緯度、経度、data_valが次の形式のASCIIファイルがあります。 35-13.643782N, 080-57.190157W, 118.6 ... GeoTiff画像ファイルを持っているので、簡単に表示できます。 ASCIIファイルにある特定の緯度/経度の位置にある画像に「ピン」(ドット/フラグ/スターまたは最も簡単なものを使用できます)を配置したいと思います。 これが私がこれまで何とかしてきたことです: 私のソース画像は次のようになります: Driver: GTiff/GeoTIFF Files: /tmp/Charlotte SEC 100.tif Size is 16867, 12358 Coordinate System is: PROJCS["Lambert Conformal Conic", GEOGCS["NAD83", DATUM["North_American_Datum_1983", SPHEROID["GRS 1980",6378137,298.2572221010042, AUTHORITY["EPSG","7019"]], AUTHORITY["EPSG","6269"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4269"]], PROJECTION["Lambert_Conformal_Conic_2SP"], PARAMETER["standard_parallel_1",38.66666666666666], PARAMETER["standard_parallel_2",33.33333333333334], PARAMETER["latitude_of_origin",34.11666666666667], PARAMETER["central_meridian",-78.75], PARAMETER["false_easting",0], PARAMETER["false_northing",0], UNIT["metre",1, AUTHORITY["EPSG","9001"]]] Origin = (-365041.822331817995291,240536.419747152860509) Pixel Size = (42.334586069440391,-42.334898968590878) …

1
pyqgisにカスタムqgsfunctionを登録する
スタンドアロンアプリケーション内でpyqgisを使用しています。次に、のルールでfilterExpressionとして使用するカスタム式を作成したいと思いましたruleBasedRendererV2。(以前に既存の関数でレンダラーを試しましたが、すべてうまくいきました!) カスタムqgisfunction(ビットごとのAND関数-そのような関数はまだないため)は次のようになります。 from qgis.utils import qgsfunction @qgsfunction(args="auto", group='Python') def bitwise_and(value1, value2, feature, parent): return value1 & value2 私もそれを登録しようとしました: from qgis.core import QgsExpression QgsExpression.registerFunction(bitwise_and) 式をテストする: expressionString = 'bitwise_and(2, 2) = 2' exp = QgsExpression(expressionString) if exp.hasParserError(): print(exp.parserErrorString()) (与える2=2ので、いつもはTrue)関数を登録した後動作し、ない場合は失敗します。それでも、ルール内で式を使用することはできません... 現時点では、関数を含むファイルは、自動的にPATHに含まれているプロジェクトフォルダーの一番上にありますね。(Nathan Woodrowによると、ファイルはPATHのどこにでも配置できます-https : //nathanw.net/2012/11/10/user-defined-expression-functions-for-qgis/を参照してください)。 UPDATE:上記のコードで、これまでの作品の関数の登録-機能自体に今問題の嘘... アップデート#2: 非常に奇妙な!do_nothing2つの引数を取得する単純な関数は、私のコードでは正常に機能します。 @qgsfunction(args="auto", group='Python') def do_nothing(value1, value2, feature, …

3
QGISを使用して、90%を超える別のベクターポリゴンレイヤーと重複しているポリゴンをプログラムで検索していますか
私はpythonを使用して、別のベクトルと> 90%重複している1つのベクトル内のポリゴンを抽出する方法を理解しようとしています。次に、これらのポリゴンのみを表示するベクター/マップが必要です。サンプル画像は私のレイヤーを示しています。90%を超える赤のすべての灰色のポリゴンが必要です。 私はこれをすべてpython(または同様に自動化された方法)で行う必要があります。同じ方法で処理するマップが1000個以下あります。
9 qgis  python  pyqgis 

1
GDALをPythonパッケージへの依存関係として追加しますか?
PyPIにGDALを使用するPythonスクリプトをパッケージ化しようとしています。私は私の中に直接参照を含めることから始めましたsetup.py: install_requires=['GDAL==1.11.2'], このようにして、パッケージはテスト仮想環境にインストールできませんでした: extensions/gdal_wrap.cpp:2855:22: fatal error: cpl_port.h: No such file or directory #include "cpl_port.h" ^ compilation terminated. error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 次にpygdal、virtualenvフレンドリーバージョンとしてマークされているため、を参照して試してみました。 install_requires=['pygdal'], このようにして、インストールはエラーなしで終了します(ただし、通常のコンパイル警告のロードが伴います)。しかし、その後スクリプトを呼び出すと、次のエラーが返されます。 Traceback (most recent call last): File "/home/desouslu/.virtualenvs/test_p3/bin/hasc2gml", line 5, in <module> from pkg_resources import load_entry_point File "/home/desouslu/.virtualenvs/test_p3/lib/python3.4/site-packages/pkg_resources.py", …
9 python  gdal 

2
フィーチャが削除されたときにシェープファイルのサイズを減らす方法は?
この小さなスクリプトは、すべてのレイヤーのすべての小さな機能を削除します。これは正常に機能しますが、.shpファイルのサイズは削減されません。どうしてか言ってくれない... canvas = iface.mapCanvas() expr = QgsExpression("$length<100") for l in canvas.layers(): l.startEditing() it = l.getFeatures(QgsFeatureRequest(expr)) for ft in it: l.deleteFeature(ft.id()) l.commitChanges()
9 qgis  python 

2
国際日付変更線を横切るポリゴン[-180 .. + 180経度]
衛星軌道帯用のポリゴンを生成しようとしています。これまでのところ、[lat、long]で各帯のエッジを表す2つの線を生成する方法があります。一部のスワスは国際日付変更線と交差しているため、次のように囲みます。 私はこれを解決することができましたogr2ogr -wrapdateline: ogr2ogr -wrapdateline -f "ESRI Shapefile" test.shp orbits.shp おそらく行を分割します 次に、両方の線の内側にポリゴンを生成できるようにしたいと思います。したがって、たとえば、スワスの1つのエッジが日付ラインと交差する場合、次のように、ポリゴンが反対側に現れたときに塗りつぶします。 タスクを何度も繰り返す必要があるため、自動化された方法が必要です。できればpythonで行を生成します。以下は、これらの行を含む2つのシェープファイルです。wraparound ; 固定日付


3
PyQGISのループで空間クエリを実行する
私がやろうとしていること:ポイントシェープファイルをループして、ポリゴンに該当する各ポイントを選択します。 次のコードは、本で見つけた空間クエリの例に基づいています。 mitte_path = r"D:\PythonTesting\SelectByLocation\mitte.shp" punkte_path = r"D:\PythonTesting\SelectByLocation\punkte.shp" polygon = QgsVectorLayer(mitte_path, 'Mitte', 'ogr') points = QgsVectorLayer(punkte_path, 'Berlin Punkte', 'ogr') QgsMapLayerRegistry.instance().addMapLayer(polygon) QgsMapLayerRegistry.instance().addMapLayer(points) polyFeatures = polygon.getFeatures() pointsCount = 0 for poly_feat in polyFeatures: polyGeom = poly_feat.geometry() pointFeatures = points.getFeatures(QgsFeatureRequest().setFilterRect(polyGeom.boundingBox())) for point_feat in pointFeatures: points.select(point_feat.id()) pointsCount += 1 print 'Total:',pointsCount これは機能し、データセットを選択しますが、問題はバウンディングボックスによって選択されるため、明らかに興味のないポイントを返すことです。 qgis:selectbylocationを使用せずにポリゴン内のポイントのみを返すにはどうすればよいですか? 私はwithin()およびintersects()メソッドを使用しようとしましたが、それらを機能させなかったため、上記のコードに頼りました。しかし、おそらくそれらは結局のところ鍵です。

3
バイナリラスターに大量のランダムポイントを作成しますか?
バイナリラスタ内に10000ポイント(またはそれ以上)のポイントベクトルデータセットを作成します。この場合、ポイントはラスター値が1である領域に制限されます。 以下の手順を試しました。 ラスターをポリゴン化 QGIS:Vector-> Research Tools-> Random Points これは最大2000ポイントまで正常に機能しますが、それを超えるとQGISがクラッシュするだけです。 バイナリラスタ(またはポリゴンポリゴンバージョン)によって制約された多数のポイントフィーチャを含むベクターデータセットを作成する方法はありますか? 次のツールは、自由に使用できます。優先度の高いものから順に、QGIS、Python、R、ArcGISです。 これが私が目指していることであり、ポイント機能の10倍のみです。

1
PostGISポリゴンエッジ分析(方向、エッジ長)
私はGISの世界、特にPostGISの世界にはかなり慣れていないので、答えが明らかな場合は失礼します... 多くの建物の分析をしたいと思います。私が興味を持っていることの1つは、それぞれの方向に沿ったファサードの表面です。下の図に示すように、一連のポリゴンのすべてのエッジの長さと(通常の)方向を設定したいと思います。この例では、1つのサーフェスのみを強調表示しています。 結果テーブルは次のようになります。 building_id | edge_id | orientation | edge_length ------------------------------------------------- 1 | 1 | 315 | 10.0 1 | 2 | 45 | 7.0 1 | ... | ... | ... しかし、それをさらに処理するために結果を格納するスマートな方法であるかどうかはわかりません(たとえば、エッジから次の建物までの距離を計算するなど)。だから私の質問は2つあります: ポリゴンのエッジを分析できる効率的なPostGIS関数はありますか?ネイティブのPostGIS関数がない場合は、代わりにPythonベースのアプローチに興味があります。 ポリゴンには異なる数のエッジがある可能性があるため、結果をPostGISテーブルに格納するためのスマートな方法は何でしょうか?


2
OGR / GDALを使用してPythonでシェープファイルとラスターがオーバーラップするかどうかを判断する [閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 OGR / GDALを使用してPythonでスクリプトを作成しています。 シェープファイルのセットとGeoTiffラスターファイルのセットがあります。 シェープファイルがラスター領域と交差しない場合、スクリプトに無視させたいのですが。 シェープファイルは長方形ではないため、layer.GetExtent()から返されたxmin / xmax、ymin / ymaxの値を単純に比較することはできません。全体的な形状を表す実際のポリゴンが必要です。次に、そのポリゴンがラスタースクエアと交差するかどうかを判断する方法が必要です。 どういうわけか、シェープファイル内のすべてのポリゴンを1つのフィーチャにマージし、そのフィーチャのジオメトリを読み取って、その情報をラスター範囲と比較できると考えていました。ただし、具体的にどのように実行するかはわかりません。 シェープファイルからボーダーポリゴン情報を抽出する方法は? そのポリゴンが特定の正方形の領域と交差するかどうかを判断するにはどうすればよいですか?

1
PythonからQGISレイヤーをフィルターする方法?
QGIS 2.4 Pythonコンソールを使用して、レイヤーフィーチャのサブセットのみを表示しようとしています。両方のレイヤーから機能を取得できました: featuresIterator = layer.getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4')) そしてdataProviderから: featuresIterator = layer.dataProvider().getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4')) (違いがよくわかりません)。 私が今達成したいのは、これらの機能だけを表示することです。GUIからクエリビルダーを使用する場合とまったく同じです。これをレンダリングのレベルで管理する必要があるか(他の機能ではなく一部の機能をレンダリングするか)、またはデータプロバイダーのレベルで管理する必要があるか(レイヤーに提供するのは、必要なサブセット)、またはその間のどこか。
9 qgis  python 

3
QGISをパンダ(Windows)で再生する方法は?
Windows上でパンダをQGISのPythonインストールで動作させることに成功した人はいますか?OSGeo4Wインストーラーを使用して、Python 2.7とNumpy 1.5.1に付属するQGIS2.2をインストールしました。かなり新しいバージョンのパンダには、Numpy 1.6.1以降が必要です。それが私の主な問題のようです。私が試しました:-easy_installを使用して古いバージョンのパンダ(例:0.7.3および0.4.1)をビルドしましたが、これにより、非常に長いエラーリストが表示されます。少なくとも最後のエラーは、distutils \ msvc9compiler.pyに関連しています。 -古いパンダバージョンのバイナリを使用していますが、すべてNumpy 1.6.1用にビルドされています。Numpyをアップグレードすると、エラーメッセージも表示されます。誰かが興味を持っている場合、メッセージは「File "C:\ OSGeo4W \ apps \ Python27 \ lib \ distutils \ msvc9compiler.py"、line 299、in query_vcvarsall」という改行で「raise ValueERror(str(list(result。 他の誰かがパンダをWindows上のQGISインストールで動作させるのに成功したことがあるかどうか疑問に思っていますか? QGISに、たとえば、3年未満のバージョンのNumpyが同梱されていれば、とても簡単です。このようなアップグレードがQGISの今後のバージョンで機能するかどうか誰かが知っていますか?
9 qgis  python  numpy 

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