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

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

6
多くのシェープファイルからサムネイル画像を生成するにはどうすればよいですか?
同僚と私は最近、Mapotecaと呼ばれるオープンソースプロジェクトをリリースしました。これは、GDAL / FWToolsインストールと統合して、空間データを探し、範囲、ジオメトリ、要素数、投影を抽出するディレクトリの完全なウォークスルーを可能にするPythonスクリプトのセットです。ユーザーがそれをcsvファイルに書き込む。関連するDBFファイルを説明する部分に取り組んでおり、各シェープファイルのサムネイル画像を生成したいと思っています。Pythonを使用してjpegまたはpngでこれらのサムネイルを生成する方法を知っていますか?
9 python  gdal  ogr  jpg 

4
ArcView 3.x Avenueビットマップ(タブ?)とArcView 10 Pythonカーソルの比較
注:この質問には答えがありますが、カーソル処理を最適化するためのヒントがあれば、大歓迎です。更新を監視します。 現在、上司(Avenueで働く)と私(Pythonで働く)はどちらも同じ問題を解決しようとしています。むしろ、私たちは両方ともそれを解決しましたが、私たちのソリューションが動作する速度は...控えめに言っても、バラバラです。彼のスクリプトが2時間で処理するものは、最大6です。ロジックの構文と実装の実際の違いは、3.xのビットマップと10.xのカーソルだけです。私たちは両方: 1)表1の値を保管します 。2)これらの値を使用して、表2の行を照会します 。3)表2の値を保管して、新しい行として表3に挿入します。 どちらのスクリプトでも、これらのプロセスは2つのネストされたループで完了します。コード最適化の素晴らしい世界を掘り下げる前に、AvenueスクリプトのパフォーマンスをPythonと比較すると、これは予期された出来事ですか?彼のスクリプトが操作時間の点で私のものを大幅に上回ったのはこれが初めてではないので、私は恐ろしいスクリプトを作成する前に気をつけるべきことがあるかどうかを知りたいのです。 これが無関係なビットを除いた私のスクリプトです: import arcpy import time import sys import os def recordfindcopy(inFile,query,outFile): findRecord = arcpy.SearchCursor(inFile,query) for record in findRecord: copyRecord = arcpy.InsertCursor(outData) # <--- D'oh! (See answer) field = record.FIELD copy = copyRecord.newRow() copy.FIELD = field copyRecord.insertRow(copy) StreetsFileList = [r"Path", r"Path"] for sfile in StreetsFileList: …

3
1つのPythonスクリプトの変数を他のPythonスクリプトで使用しますか?
すべてのデータソースの場所を含む変数を含む単一のpythonファイルを設定したいと思います。これは他のすべてのスクリプトで使用され、データソースが変更されたときに、1つのファイルを編集するだけで済みます。 私のData_sources.pyは次のようになります。 BC_BEC = "Database Connections\\BC.sde\\FOREST_BC.BC_Eco\\BC.BC_BEC" BC_TFL = "Database Connections\\Forest_BC.sde\\BC.BC_Admin\\BC.TFL_Boundary" 等々... 他のすべてのスクリプトでData_sources.pyのこれらの変数をロードまたはアクセスするにはどうすればよいですか?
9 python 

4
ArcGIS Pythonツール-ToolValidatorクラスへのカスタムスクリプトのインポート
先週、ToolValidatorクラスのカスタマイズに関する質問を投稿し、いくつかの非常に良い答えを得ました。提案されたソリューションを使用して、データベースでクエリを実行するカスタムモジュールを作成しました。これは、ToolValidatorクラス(ドロップダウンリストに値を提供するため)と後でジオプロセシングスクリプト(他を取得するため)の両方から呼び出されます。ドロップダウンリストで選択した項目に基づくパラメーター)。ただし、ToolValidatorクラスのカスタムモジュールを実際に呼び出すことはできません。私は運が悪くパスに追加しようとしています。これらの変更をスクリプトに適用しようとすると、ランタイムエラーが発生します:[Errno 9]不正なファイル記述子。インポート行をコメントアウトしても、エラーは発生しません。 sys.path.append('my_custom_module_directory') import my_custom_module ArcObjectsでカスタムツールを実装しないのはなぜでしょうか。その理由は、私のエンドユーザーが自分のコンピューターにDLLを登録するために必要な特権を持っていないためです。 更新:これはArcGIS 10で発生していました。興味深いことに、最初はToolValidatorクラスのinitialiazeParameters関数内のパスに追加していました。ToolValidatorクラスの外側(上)に追加すると、すべてが期待どおりに機能します。 sys.path.append('C:/Working/SomeFolder') import somescript -------->THIS WORKS class ToolValidator: """Class for validating a tool's parameter values and controlling the behavior of the tool's dialog.""" def __init__(self): """Setup arcpy and the list of tool parameters.""" import arcpy sys.path.append('C:/Working/SomeFolder') import somescript -------> THIS DOESNT WORK self.params …

2
ArcScanのスクリプト可能な代替(特に、許容範囲内のラインのベクトル化)?
残念ながら、PythonスクリプトからArcScanにアクセスできますか?Pythonスクリプト内からArcScanをスクリプト化することは不可能であることを示唆しています。 したがって、誰もがスクリプト可能なArcScanの代替案(ArcGIS内、または別のGIS内、または何か...)を知っていますか?私が必要としている機能は、ラインを「インテリジェントに」ベクトル化することによってラスターからベクターに変換する機能です。たとえば、ArcScanでは、距離許容差を設定して、ベクトル化されていて、その距離よりも離れているラインを結合することができます。また、ラスターラインで他のさまざまな実用的な処理を行います(たとえば、ラインの幅が3ピクセルの場合、ラスターラインの中央に配置された単一のラインにベクトル化されます)。 何か案は?

3
PostGISから無向グラフを作成する方法は?
この質問は、私がしばらくウェブを検索してきましたが、まだ特定していない可能性のあるリソースに関連しています。 プロジェクトで今作業しているのは、オフィスルーム、廊下、階段、エレベーター、建物間のルートを表すグラフで最短経路アルゴリズムを実行する必要があることです。 プレゼンテーションレイヤーについては、MapServerでPythonスクリプトを使用することを考えましたが、エッジを簡単に追加または削除できるように、OpenEVから生成された(シェープファイルが必要とされる)postGIS dbからグラフを構築する方法についてさらに考えていますその後のポイントに関する重みまたは情報。 Pythonには、グラフを処理するnetworkXと呼ばれるモジュールがあり、この問題はここでstackexchange で取り上げられていますが、私が作成しようとしているグラフは有向グラフではなく、無向グラフです。 更新:5日前Ben ReillyのutilitynetworkがnetworkXプロジェクトに追加されました。Utilitynetworkは、シェープファイル機能から有向グラフを構築します。 質問は、postGISデータベースからフィーチャを読み取る同様のアプローチについて未解決のままです。


4
Pythonを使用してポリゴンフィーチャの重心をポイントに変換する
複数のポリゴンフィーチャを含むいくつかのポリゴンベースのshpファイルを、基本的に各ポリゴンフィーチャの中心点を表す各フィーチャのポイントに変換したいと思います。ArcGISの世界ではFeature To Pointツールを使用できることはわかっていますが、これをArcpyがインストールされていないPCで実行できるスクリプトに保持したいので、それに代わるオープンソースを探しています。私がこれに使用できるライブラリと、それをどのように活用してこれを達成するかについての方向性を知っている人はいますか?

3
USGS Earth Explorerにログインして、PythonでLandsat画像をダウンロードします
USGS Earth Explorer Webサイト(http://earthexplorer.usgs.gov/)にPython でログインし、Landsat Archiveコレクションからユーザー名、パスワード、パス/行(または緯度/経度)、日付を入力するだけで画像をダウンロードしたい、および雲量のしきい値。私はすでにこれを試しました:https : //github.com/olivierhagolle/LANDSAT-Download/wiki うまくいきませんでした。それから私はこれを調べました:https : //github.com/developmentseed/landsat-util しかし、私は仕事の制限のためにツールを追加できなかったのでそれを使用できません。 そう。私はPythonの経験が限られているため、それを使用してWebサイトにアクセスしたことがありません。Windows 7でPython 2.7.8を使用していて、Chromeを介してWebサイトにアクセスしようとしています(バージョン51.0.2704.106 mが役立つ場合)。 Webサイトへのアクセス、ログイン(すでにログイン資格情報を持っている)、画像の検索、フォルダーへのダウンロードのための簡単なスクリプトのアイデアはありますか?Pythonでできることのように思えますが、私にとってオンラインソリューションはすべて高度すぎるようです。必要なのは、さまざまな座標や日付で繰り返し使用できるスタンドアロンスクリプトだけです。

1
rasterioを使用してTIFの概要から読み取る
rasterioを使用してtifのウィンドウを読んでいます。利用可能な概要を利用して、実際の解像度で読み取る代わりに、データのダウンサンプリングされたバージョンを取得するにはどうすればよいですか? 今私はこのようなウィンドウを読んでいます: rmin, cmin = source.index(xmin, ymin) rmax, cmax = source.index(xmax, ymax) data = source.read(band, window=((rmax, rmin), (cmin, cmax))) 私がやりたいこと: rmin, cmin = source.index(xmin, ymin, use_overview=True) rmax, cmax = source.index(xmax, ymax, use_overview=True) data = source.read(band, window=((rmax, rmin), (cmin, cmax)), use_overview=True) 何か案は?私の場合、概要は内部的なものですが、概要を読み取るソリューションはどれも優れています。

1
PyQGISマルチスレッドを実装してプログレスバーを更新する方法
Pythonを使用してPyQGISプラグインを開発しています。プラグインでのスレッドの実装中に問題が発生しました。使用中のすべてのジオプロセシングメソッドをラップするクラスを含むPythonスクリプトを記述しました。私が直面している問題は、メソッドをスレッドで処理することです。私の問題をより詳しく説明するために、次のようにメソッドを呼び出すUIがありますcalcNDVI()。 self.lst.calcNDVI(self.RedBand, self.NIRBand, None, self.outputRaster, self.sensorType, self.dataType, self.addToQGIS) この関数呼び出しは、すべての魔法を実行し、結果をQGISプロジェクトに追加するcalcNDVI()メソッドを呼び出します。メソッド呼び出しは、いくつかの引数を渡すことにも関連付けられています。 多くのソースを調べてきましたが、アルゴリズムをスレッド化して実装する方法を理解できません。私が通ったコードはrunメソッドにすべてを実装しているため、クラスで処理するメソッドが複数あるため、実行が困難であり、実行するメソッドをユーザーが選択できるようにしたいUI。 処理に時間がかかりすぎるLandsatデータセットを処理しています。

1
Qgis 2.1でpythonを使用して新しいフィールドをdoubleとして属性テーブルに追加するときの小数点以下の桁数を定義する方法は?
小数を定義するために式を変更するにはどうすればよいですか? layer.dataProvider().addAttributes([QgsField("fieldname", QVariant.Double)]) QGIS APIドキュメントを読んだとき: Parameters name Field name type Field variant type, currently supported: String / Int / Double typeName Field type (eg. char, varchar, text, int, serial, double). len Field length prec Field precision だから私は試してみます: layer.dataProvider().addAttributes([QgsField("fieldname", QVariant.Double, 10, 3)]) しかし、私はこのエラーを受け取ります: TypeError: arguments did not match any overloaded call: …
9 qgis  python  pyqgis 

1
QGISプラグインでサードパーティのパッケージを使用するにはどうすればよいですか?
QGISプラグインを開発していますが、日付やREST APIの操作に慣れているので、矢印またはリクエストパッケージを使用したいと思います。 QGISにはこれらのパッケージは付属していません(矢印は下)。QGISでプラグインにアクセスしようとすると、次のようになります。 「ImportError:arrowという名前のモジュールはありません」 どうすれば要件を指定できますか?

2
Python GDAL ReadAsArrayの最適化
私はGDALのReadAsArrayメソッドを使用して、numpy(具体的には再分類)を使用してラスターデータを処理しています。ラスターが大きいため、配列をブロックで処理し、各ブロックを反復処理して、GeoExamplesの例と同様の方法で処理します。 これらのブロックのサイズを設定して、ラスター全体の処理にかかる時間を最適化する方法を検討しています。numpy配列サイズの制限と、ラスタの「自然な」ブロックサイズを使用するためのGDAL GetBlockSizeの使用に注意して、「自然な」サイズの倍数で構成されるいくつかの異なるブロックサイズを使用してテストしました。以下のサンプルコードで: import timeit try: import gdal except: from osgeo import gdal # Function to read the raster as arrays for the chosen block size. def read_raster(x_block_size, y_block_size): raster = "path to large raster" ds = gdal.Open(raster) band = ds.GetRasterBand(1) xsize = band.XSize ysize = band.YSize blocks = 0 …
9 python  raster  gdal  numpy  array 

2
QGISでPythonを使用して線の長さを計算する
行の長さを計算するための「QGIS GUIの方法」について説明しているこの記事を見つけました。http://www.qgistutorials.com/en/docs/calculating_line_lengths.html Pythonコードを使用してベクターレイヤーの1行(フィーチャ)の長さを計算するにはどうすればよいですか? 例として、黄色の線の長さを知りたい。
9 qgis  python  pyqgis 

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