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

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

2
QGISのPythonコンソールから補間プラグインを呼び出す
PythonコンソールからQGIS補間プラグイン関数(TINメソッド)(ラスター->補間)を呼び出したいです。 QGIS API内または処理アルゴリズムリスト内に対応する関数が見つかりません。SAGA三角形分割アルゴリズムを見つけました。これは正常に機能しますが、5〜10倍遅く、私の場合は速度が重要です。 それを実行する方法はありますか?

4
リモートセンシング用のPythonリソース?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 リモートセンシングアプリケーション用にPythonを教えるための優れたリソース(MOOC、書籍など)を探しています。私はすでにhttp://www.rsgislib.org/に精通しています -初心者のPythonプログラマーのための他のリソースはありますか?


1
GRASSおよびSAGAモジュールをPythonスクリプトにインポートする
私はこれが初めてです。私はqgis用のPythonプラグインを「ビルド」しています。GRASSとSAGAからモジュールをインポートしたいのですが、その方法がわかりません。インポートするプラグインは、SAGAからのクリギング補間、GRASSからのv.surf.idw、またはRaster qgisからの補間プラグインです。グリッド内のポイントを変換する補間方法が必要です。 手伝って頂けますか? もう一つ疑問があります。 私のコードで次の行を実行します。 vectorlayer_vector = ftools_utils.getVectorLayerByName(inputLayer) Elevation = self.lineAttrib.currentText() cellSize = int(self.linePix.value()) outPath = self.inputLayerCombo3.text() output = ftools_utils.getRasterLayerByName(outPath) Processing.runAlgorithm("saga:shapestogrid", vectorlayer_vector, Elevation, 0, 0, 4, None, cellSize, output) 実行すると、tiffイメージが得られますが、何もありません。.auxファイルは作成されず、作成したTIFFイメージを開こうとすると、次のメッセージが表示されます。 c:... teste3.tifはサポートされているラスターデータソースではありません したがって、出力が間違っていると思います。正しい出力を得るために何をしなければなりませんか?私は何が欠けていますか?

2
pyqgis 2.0でフィールド名を取得する方法
プラグインをQGIS 1.8から2.0に変更しようとしています。1.8バージョンでは、次のようなフィールド名のテーブルを作成します。 layer = vlayer provider = layer.dataProvider() feat = QGSFeatrue() allAttrs = provider.attributeIndexes() provider.select(allAttrs) fieldNames = [] while provider.nextFeature(feat) fields = layer.pendingFields() for (k, field) in fields.iteritems(): fieldNames.append(field.name()) 私はこれを2.0バージョンで試しました layer = vlayer fieldNames = [] for feature in layer.getFeatures(): fields = layer.pendingFields() for (k, field) in fields.iteritems(): fieldNames.append(field.name()) ただし、pendingFields()は機能しません。フィールドの名前を取得する新しいメソッドはありますか?
13 python  pyqgis  qgis-2 

6
連続ラスタのすべてのセルを反復処理するにはどうすればよいですか?
詳細については、このリンクを参照してください。 問題: 連続ラスタ(属性テーブルを持たないラスタ)をセルごとにループして、セルの値を取得したい。これらの値を取得して条件を実行し、実際にラスター計算機を使用せずに、以下で説明するマップ代数ステップをエミュレートします。 以下のコメントのリクエストごとに、問題の背景を提供し、「分析が必要:」と呼ばれる以下のセクションにメソッドを実装する必要性を正当化する詳細を追加しました。 以下に提案する分析は、背景を提供することで私の問題に関連している一方で、回答に実装する必要はありません。質問の範囲は、セル値を取得/設定するために連続ラスタを繰り返し処理することのみに関係します。 必要な分析: 以下の条件のいずれかが満たされている場合、出力セルに値1を与えます。出力セルに値0を与えるのは、どの条件も満たされない場合のみです。 条件1:セルの値が上部および下部のセルより大きい場合、値1を指定します。 Con("raster" > FocalStatistics("raster", NbrIrregular("C:\filepath\kernel_file.txt"), "MAXIMUM"), 1, 0) カーネルファイルは次のようになります。 3 3 0 1 0 0 0 0 0 1 0 条件2:セルの値が左右のセルより大きい場合、値1を指定します。 Con("raster" > FocalStatistics("raster", NbrIrregular("C:\filepath\kernel_file.txt"), "MAXIMUM"), 1, 0) カーネルファイルは次のようになります。 3 3 0 0 0 1 0 1 0 0 0 条件3:セルの値が左上および右下のセルより大きい場合、値1を指定します。 Con("raster" > …
13 python  raster  arcobjects  gdal  c# 


2
GDALを取得してPythonでGTiffの統計を作成する方法
私は定期的にPythonでGDALを使用して自分のGeoTIFFラスターを作成します。例: from osgeo import gdal from numpy import random data = random.uniform(0, 10, (300, 200)) driver = gdal.GetDriverByName('GTiff') ds = driver.Create('MyRaster.tif', 200, 300) band = ds.GetRasterBand(1) band.WriteArray(data) ds = band = None # save, close ただし、結果をArcCatalog / ArcGISで表示すると、統計がないため、黒または灰色に見えます。これは、ArcCatalogでラスターを右クリックして[統計の計算...]を選択するか、コマンドプロンプトでgdalinfoを使用することで解決できます。 gdalinfo -stats MyRaster.tif MyRaster.tif.aux.xmlArcGISがラスターを適切にスケーリングするために使用するを生成します。PAM(Persistent Auxiliary Metadata)ファイルには、統計、特に最小値と最大値が含まれています。 <PAMDataset> <PAMRasterBand band="1"> <Metadata> <MDI key="STATISTICS_MINIMUM">0</MDI> …

4
ArcGIS以外で使用するために添付ファイル付きのフィーチャをエクスポートしますか?
ArcGIS 10には、ジオデータベースに格納されているフィーチャクラスの個々のフィーチャに添付ファイルを追加する新しい機能が備わっています。これの1つの用途は、特定の場所に複数の写真を追加することです。消火栓は人気のある例のようです(私が思うに、ピットストップが必要なインターネット上の犬であるかどうかを知ることは重要です)。 データベースでは、アタッチメント対応フィーチャクラスの構造は3つになります。 フィーチャクラス自体、 添付ファイルと関連するメタデータ(ファイル名、サイズなど)を保持するテーブル、および 2つの間の1対多の関係を定義する関係クラス。 私の質問は、このデータ(フィーチャクラス、添付ファイル、添付ファイルメタデータ)をArcgis 外で使用するためにエクスポートする方法ですか?* FCのエクスポートは簡単で、FeatureClassToFeatureClassは、接続されていないFCと同じように機能します。添付ファイルのテーブルをエクスポートしますか?そんなにない。TableToTableにoutput.dbfのみを抽出し、output.csvエラーにサポートされていないフィールドタイプとアウト、および出力への添付ファイルのメタデータ情報テーブルは、一般的なフィールドのエラーで失敗します。 これらのファイルタイプはバイナリblobデータタイプをサポートしていないため、これはそれほど驚くべきことではありません。私は、添付されたバイナリをネイティブ形式に変換するツールを見つけることを期待していました。 それでは、どうですか?データを取得するには何をする必要がありますか? * 皮肉なことに、このQを生み出した瞬間の私のプロジェクトは、Arcgis Desktopではなく、Arcgis内で使用するためにエクスポートすることです...

4
WKTラインストリングの長さを計算するためのPythonの方法を探しています
私はマイルのWGS84で線ストリングの長さを計算することにかなり不満でした。与えられたSRIDに従ってWKT線ストリングの長さを計算するためのより便利でPythonicな方法があるかどうか疑問に思いました。 私は次のようなものを心に留めています: srid="WGS84" line="LINESTRING(3.0 4.0, 3.1 4.1)" print length(line, srid) sin\cos近似値ではなく、正確な答えを探しています。 何か案は?
13 python  wkt  wgs84  srid  length 

2
Pythonを使用してArcMapで描画を無効および有効にする方法
私が書いているスクリプトは、2つのデータフレームの位置を変更し、その範囲を設定します。 これを行うと、アクティブビュー全体が4回再描画され、スクリプトが大幅に遅くなります。 スクリプトを実行する前にF9キーを押すか、[描画の一時停止]ボタンをクリックすると、描画が無効になり、スクリプトの実行速度が大幅に向上しますが、スクリプトでこれを自動的に実行する必要があります。 スクリプトの冒頭でArcMap 10の描画を無効にし、最後に有効にします。 どうすればいいですか?

4
Shapelyを使用して個々のラインセグメントを1つのLineStringに溶接します。
私はpythonでShapelyを使用していMultiLineStringて、たくさんのLinestringオブジェクトを与えられています。すべてのLineStringオブジェクトが2つの頂点のみを持つ単純なラインであり、それらがすべて1つの単一ラインの一部であること(ブランチはないこと)を保証できます。 「ドットをつなげて」単一のを作成しますLineString。このために再帰溶接方法を書く必要がありますか、それとももっと速い方法がありますか?
13 python  shapely 

3
論理演算子およびその他の関数のgdal_calcラスター計算機構文
でgdal_calcのドキュメントには記載されているnumpyの構文でコマンドラインラスタ電卓を。後で、そのうちの1つにいくつかの例があります。 gdal_calc.py -A input.tif --outfile = result.tif --calc = "A *(A> 0)" --NoDataValue = 0- ゼロ以下の値をnullに設定することを意味します 残念ながら、次のような論理演算子の例はありません。 --calc = "A *(A> 0 and A> B)"- は、Aがゼロより大きくBが大きい場合にAを保持し、残りをnullに設定することを意味します Numpy / Scipyの論理関数に基づいて、論理演算子を次のように記述することを期待します。 --calc = "A * logical_and(A> 0、A> B)" 私はこれを試しましたが、うまくいくようですが、それが正しいことを確認したいと思います。 同様に、AとBの最小値が必要な場合: --calc = "A *(A <= B)+ B *(A> B)" あなたはただ書くことができます: --calc = …
13 python  gdal  numpy  gdal-calc 

1
スタンドアロンのPyQGIS処理スクリプトでインポートの順序が重要なのはなぜですか?
スタンドアロンのPyQGIS処理スクリプトの実行中に奇妙な問題に遭遇しました。スクリプト内のインポートの順序は、通常の実行に影響します。 Pythonコンソールを開いて次のスクリプトを入力することで問題を再現できます(GNU / Linux、QGIS 2.6.1、処理プラグインv.2.2.0-2、Python 2.7.3を使用しています)。 # Prepare the environment import sys from qgis.core import QgsApplication from PyQt4.QtGui import QApplication app = QApplication([]) QgsApplication.setPrefixPath("/usr", True) QgsApplication.initQgis() # Prepare processing framework sys.path.append('/home/YOUR_USER/.qgis2/python/plugins') from processing.core.Processing import Processing Processing.initialize() print Processing.getAlgorithm("qgis:creategrid") # Exit applications QgsApplication.exitQgis() QApplication.exit() 以下を入手する必要があります。 ALGORITHM: Create grid HSPACING <ParameterNumber> VSPACING …

1
OGR / GDALスレッドにより、コア使用率が低くなります
ogr / gdalを使用していくつかのラスターデータを処理しようとしていますが、マシンのすべてのコアを最大限に活用できないようです。単一のコアでのみプロセスを実行すると、そのコアの使用率が100%になります。マルチコアに分割しようとすると(以下の例では、xオフセットをチャンクしてキューに入れることにより)、8つのコアのそれぞれで哀れな使用率が得られます。各コア全体で最大100%の使用率(たとえば、各12.5%)にしかならないようです。 同じデータソースを使用することがボトルネックになるのではないかと心配していましたが、コアごとに基になるラスターファイルを複製しました... これは、ogrまたはgdalが何らかの形でボトルネックの共有リソースのように動作していると信じるようになりますが、それについてはオンラインで見つけることができません。どんな助けでも大歓迎です! これは、各ワーカースレッド内で実行される「ヘルパー」関数です。 def find_pixels_intersect_helper(datasource, bounds_wkt, x_min, x_max): bounds = ogr.CreateGeometryFromWkt(bounds_wkt) rows_to_write = [] for x_offset in range(x_min, x_max): for y_offset in range(datasource.RasterYSize): pxl_bounds_wkt = pix_to_wkt(datasource, x_offset, y_offset) pxl_bounds = ogr.CreateGeometryFromWkt(pxl_bounds_wkt) if pxl_bounds.Intersect(bounds): rows_to_write.append(['%s_%s' % (x_offset, y_offset), pxl_bounds.Centroid().ExportToWkt()])

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