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

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


1
シェイプエリアフィールド名の決定
私はさまざまな空間ポリゴンファイル(シェープファイル、ファイル/パーソナルgdbフィーチャクラス、sdeフィーチャクラス(一部は空間ビュー))を扱っており、ファイルタイプによっては、シェイプエリアフィーチャクラスフィールド名(作成されたフィールドではなく、必須フィールド) たとえば、フィールド名は「Shape_Area」、「SHAPE_Area」、「SHAPE.AREA」、「GEOMETRY_Area」、「GEOMETRY.AREA」とは異なります これらすべてのタイプのフィーチャクラスの領域を引き出すPythonスクリプトを書いていて、次のように何かを行います。 for field in arcpy.ListFields(fc): if field.name in ["Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"]: do something 名前を付けることができるすべての方法を一覧表示するだけでなく、シェイプエリアフィールドを引き出すより賢い方法があるかどうか疑問に思っていますか?Areaなどのフィールドプロパティはないようです。これを行う他の方法はありますか?

2
ジオプロセシング速度テストの異常な結果
Pythonジオプロセシングスクリプトで異常なパフォーマンスを観測しています。(添付)スクリプトは、次のアクションを実行します。 検索カーソルを使用して、ポリゴンフィーチャに対応するUTMゾーンを検索します 検索カーソルの結果に基づいて空間参照オブジェクトを作成する .csvをフィーチャレイヤーに変換してからポイントフィーチャクラスに変換する スクリプトの実行方法に基づいて、処理時間が著しく異なることに気付きました。 IDLEを使用した32ビット処理= 203秒 32ビット処理フォアグラウンドスクリプトツール = 91秒 64ビット処理のバックグラウンドスクリプトツール = 206秒 上記の条件でこのスクリプトのパフォーマンスが異なるのはなぜですか? フォアグラウンドで実行される32ビットスクリプトツールが他のメソッドの2倍の速さで動作することは期待できません。 import arcpy, os, time ###IDLE Parameters ##fc = r'C:\path\to\polygon\fc\with\utm\zones\and\features' ##outws = r'C:\out\location' ##arcpy.env.workspace = r'C:\workspace' #################### ## Script tool parameters fc = arcpy.GetParameterAsText(0) # Feature class outws = arcpy.GetParameterAsText(1) # Folder arcpy.env.workspace = arcpy.GetParameterAsText(2) # …

3
ArcGIS for Desktopを使用してフィールドで重複レコードを検索しますか?
「ID」と呼ばれる属性に基づいて、dbfファイル内の重複レコードを探しています。50万レコードから150万レコードまでのさまざまなdbfファイルがあり、多数の重複があることを知っています。 ID属性が他の場所にある場合に、「はい」または「いいえ」(または1または0で十分)と表示されるフィールド「重複」を追加したいと思います。Field Calculatorで次のPythonスクリプトを使用すると、重複するエントリに対して1が返され、一意のエントリに対して0が返されます。 uniqueList = [] def isDuplicate(inValue): if inValue in uniqueList: return 1 else: uniqueList.append(inValue) return 0 isDuplicate(!FIELD_NAME!) ただし、たとえば5つの重複IDの最初のレコードも0として返されます(後続の4つは重複と見なされます)。IDが他の場所に存在するため、5つすべてを重複としてマークする必要があります。 次のコードを使用すると、そのIDが何回発生したかを増分カウントできます。1は1回目を意味し、以下同様です。 UniqueDict = {} def isDuplicateIndex(inValue): UniqueDict.setdefault(inValue,0) UniqueDict[inValue] += 1 return UniqueDict[inValue] isDuplicateIndex( !YOUR_FIELD! ) そのレコードのIDが他の場所に存在する場合は、1(または[はい])が必要です。(ArcGISバージョン10.1) 重複レコードを特定するためのPythonスクリプト(フォローアップ)などの他の回答を見てきましたが、うまくいきません。

1
ポリゴンの頂点の順序を逆にする方法は?
ベクターレイヤーにアクセスして編集するQGISでOracle空間接続を使用しています。ジオメトリを編集すると、頂点の順序が逆になり(外側のリングで時計回りに)、Oracleでエラーとしてフラグが立てられます。 独自の編集ツールで結合機能(http://www.qgis.org/api/classQgsGeometry.html)を使用していますが、これはネイティブのポリゴン統合ツールでも発生していることに気づきました。 私はこの時計回りの再順序付けがこのリンクに基づくQGISのデフォルトであると思います:https : //hub.qgis.org/issues/6283そして、時計回りにそれを逆にする方法があるかどうか疑問に思っていましたか?(できればpythonを使用)

1
「編集をベースに移動」オプションを使用してデータがバージョン管理されているかどうかを確認する方法はありますか?
「編集をベースに移動」オプションを使用してデータがバージョン管理されているかどうかを確認する方法はありますか? できれば、ArcGIS自体またはPythonを使用しますが、どの方法でも機能します。 編集 データのバージョン管理時にこのボックスがオンになっていたかどうかを確認する方法はありますか?

3
OpenLayersプラグインQGIS 2でのPythonエラー
QGISをしばらく使用していますが、QGIS 2を使用して以来、自宅のPCではOpenLayersプラグインが機能しません。しかし、同じバージョンを職場にインストールして成功しました。他の投稿を調べて、CRSを設定してオンザフライで許可しようとしましたが、うまくいきません。 誰か他のガイダンスを提供できますか? アンインストール/再インストールも試しました。 以下のエラーコード: Pythonコードの実行中にエラーが発生しました: トレースバック(最後の最後の呼び出し):addLayer selfのファイル「C:\ Users \ Lee / .qgis2 / python / plugins \ openlayers_plugin \ openlayers_plugin.py」、48行目。plugin.addLayer(self)ファイル "C:\ Users \ Lee / .qgis2 / python / plugins \ openlayers_plugin \ openlayers_plugin.py"、line 194、in addLayer layer = OpenlayersLayer(self.iface、self .__ coordRSGoogle、self.olLayerTypeRegistry)ファイル "C:\ Users \ Lee / .qgis2 / python …


2
フィーダーバスサービス
まず第一に、少し背景。 私は地域の交通機関で働いています。フィーダーバスサービスの「診断」を行っています。車を利用する代わりにバスを利用して駅まで行くことができるユーザーの割合を知りたいのですが。これは何度かパスで行われましたが、現在はgtfsをメインデータソースとして使用しているため、方法論を再考する必要があります。 電車に「餌をやる」と見なされるには、バス路線が駅から一定の距離内に止まる必要があります(赤いバッファ)。また、バスが電車の30分前に駅に到着した場合、待ち時間が長すぎるため、朝20分以上眠って車に乗る必要があるため、電車サービスとの同期が非常に重要です。 12番線でラインA(青)に乗ったとします。13番バスでバスを降りると、バスは13番の停留所に到着します。それはとても良いことです。つまり、1から13までの停留所でそのバス路線を利用する全員が、その電車の5分前に到着するということです。 次に、列車は、学校や交差点がたくさんある非常に人口密度の高いエリアを通過するため、速度が大幅に低下します。一方、バスは14〜17番の停留所で乗客をピックアップし、その列車の10分前に第2駅に到着します。そのため、14〜17番の停留所でバスに乗車する乗客は、駅に到着したら、すべて10分の待ち時間があります。したがって、そのバス路線に沿って、1番から13番のバスに乗る乗客は5分の待ち時間を持ち、14番から17番のバスに乗る乗客は10分の待ち時間を持っています。 線路の反対側にあるラインBは、鉄道駅#1の近くを通過しますが、その停留所は、「給餌」鉄道駅#1を考慮するには遠すぎます。電車の7分前に駅#2に到着します(朝のラッシュアワー中に電車ごとに行ってください。非常によく同期しています)。したがって、B線沿いの乗客は、バスを停車場1から59までどこにでも連れて行くのに7分の待ち時間があります。 さて、私の質問です。LineA.13とLineA.17の停車地が私の列車に供給していることを確認したら(PostGISでは空間的に行われています)、#13の前の停留所でバスに乗るときの待ち時間は5分ですが、その後は待ち時間が10分の場合、すべてのストップにその待ち時間を割り当てるにはどうすればよいですか? Postgres / PostGIS(pl / pgsqlまたはpl / python)で実行したいのですが、純粋なpython(OSまたはarcpy)も使用できます。 逆にループできると思います。したがって、適切なストップ(ここではLineA.17)を見つけたら、同じ待機時間を16に割り当て、次に15 ...基準に合う別のストップ(LineA.13)を見つけて、残りを割り当てます。ストップの数は13と同じです。 しかし、そのようなループを作成する方法はわかりません。SQLではできないと思うので、PostgreSQLで手続き型言語を使用する必要があります。 私はpgRoutingを使用して各フィーダーストップ間のルートを見つけることで、ラインAが2つに分割されるようにしました(ストップ1から13、次にストップ13から17)。それは簡単でしょうか? 次のステップは、pgRoutingを使用して、待ち時間のあるすべてのストップからの運転時間を計算し(LineA.18以上に申し訳ありません!)、それをバスのスケジュールと比較して、競争力を計算します(5車でそれよりバスで数分?) 何か案は?私は通常、これまでに行った努力を示すために、長い進行中のスクリプトを投稿していますが、行き詰まっています!

1
ArcGISの代替としてのGDALおよびPostGISを使用したPython
ほんの少し前に、私はアラスカのサイズの地域の毎日の地表面温度衛星画像を扱いました。 約1000枚の画像を処理する必要がありました。それらをダウンロードし、モザイク化し、投影し、シェープファイルの境界にクリップし、クリップされたラスターから平均を抽出し、平均を時間-温度グラフにプロットしました。時間と温度のグラフが最終的な出力です。これらはすべてArcGISで行いましたが、作業の一部を自動化するのに役立つArcPyスクリプトを作成しましたが、それでもまだ骨の折れる作業でした。 同じことを行いますが、100%自動的に実行するプログラムを作成したいと思います。関心のある領域を定義し、時間と温度のグラフである最終的な出力を生成するために、プログラムにコーナーの座標を入力したいだけです。 これは、GDALライブラリとPostGISをPythonでラスターデータストアとして使用することで可能だと思いますか

3
gdalがインストールされていてもogrモジュールはありませんか?
素晴らしいPySALパッケージのマッピングコンポーネントを使用しようとしていますが、何らかの理由でogrモジュールがありません。gdalに同梱されているような印象を受けました。何か不足していますか? import gdal import ogr --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-29-ef9eb3418665> in <module>() ----> 1 import gdal 2 import ogr ImportError: No module named gdal 更新: 飛行機に乗るのが少し急いでいたので、いくつかの重要な情報を含めることができませんでした。ここで説明したapt-getメソッドを使用してpython-gdalを既にインストールしました。パッケージマネージャーが正しくインストールしなかった可能性はありますか? choct155@choct155-Q550LF:~$ sudo apt-get install python-gdal Reading package lists... Done Building dependency tree Reading state information... Done python-gdal is already the newest …
9 python  gdal  ogr 

3
スタンドアロンスクリプトでMap Composerを使用する方法
私はpyqgisクックブックのマップレンダリングセクションをフォローしようとしていますが、これをスタンドアロンアプリケーションとしてテストしたいと思います。最初の部分は簡単なレンダリングを使用して実行できますが、スタンドアロンのスクリプトとしてマップコンポーザーを使用して2番目の例を実行するのは少し行き詰まっています。 これが私ができるビットのスタンドアロンの例です: from qgis.core import * from qgis.gui import * from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtXml import * QgsApplication.setPrefixPath("/usr/", True) QgsApplication.initQgis() fh = open("eg.csv","w") fh.write(""" x,y,name 153.0278, -27.4679, Brisbane 144.2500, -23.4500, Longreach 145.7753, -16.9256, Cairns """) fh.close() uri = "eg.csv?delimiter=%s&xField=%s&yField=%s" % (",", "x", "y") layer = …
9 qgis  python  pyqgis 

3
内部データを保持したままシェープファイルをSVGに変換しますか?
私はGISが初めてです。Pythonツールを使用してコロプレスを作成する方法のチュートリアルを見つけました。フォローしたいのですが、自分のデータと地図を使います。ただし、チュートリアルではUSマップのSVGファイルを使用しており、CAの郵便番号マップを使用する必要があります。米国国勢調査のシェープファイルで私が見つけた唯一のマップ。kartograph.pyを使用してSVGに変換しようとしましたが、そうするとファイル内の郵便番号が失われます。ファイルをSVGに変換し、各パスを適切な郵便番号としてidしたままにするにはどうすればよいですか。 私は無料のツールのチュートリアルを使用して米国郡の主題図を作成する方法に従っています。これで、私が何をしようとしているのかがわかります。私はSVG形式のマップを持っていません。 私はjavascriptユーティリティへの参照を見てきました。私はJavaScriptを使用したことがありませんが、簡単なものを使用できると仮定します。

6
図形の数=テーブルレコードの数かどうかをプログラムで確認する方法
破損しているシェープファイルが約1000個あります(添付のエラーメッセージを参照)。シェープファイルはeCognition Developer 8から生成されました。シェープファイルが破損していると識別されると、シェープファイルを修復するように見えるスクリプトツールがあります。 編集: すべてのシェープファイルをループして、シェイプの数がテーブルレコードと一致するかどうかを確認する簡単なスクリプトを作成したいと思います。以下を使用してテーブルレコードをカウントできます。 # Name: fcCount.py # Purpose: calculate the number of features in a featureclass # Import system modules import arcpy from arcpy import env env.workspace = "C:/data" Sample = "MyShp.shp" result_dbf = int(arcpy.GetCount_management(Sample).getOutput(0)) print result_dbf 最終的には、次のようなロジックチェックを作成します。 if result_dbf = result_shp: pass else: print "There is a …

4
PROJ.4ライブラリを使用して、地上制御点を使用してローカル座標系座標からグローバル座標系に変換しますか?
ローカル座標系を基準とした座標を持つ点群があります。GPS値のある地上管理ポイントもあります。PROJ.4または他のライブラリを使用して、これらのローカル座標をグローバル座標系に変換できますか? 上記の問題に関するPythonのコードは、非常に役立ちます。

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