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

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

1
GDAL Pythonでデータセットを閉じるのはなぜですか?
Python GDALコードには、スクリプトの最後でデータセットを閉じる人がいることがよくあります。Python GDALでデータセットを閉じるのが理にかなっているのはなぜですか?実行しないと、結果はありますか? import gdal # open dataset ds = gdal.Open('test.tif') # close dataset ds = None
17 python  gdal 

9
シェープファイルとラスターをオーバーレイする方法は?
ポリゴンを含むシェープファイルがあります。また、グローバルラスターファイルがあります。シェープファイルのポリゴンをラスタグリッドにオーバーレイし、各ポリゴンの平均ラスタ値を計算します。 GDALを使用して結果をシェープファイルに書き込むにはどうすればよいですか?

3
極立体図の地理変換?
現在、CANGRID気候データ(Surfer Grid ascii、「。grd」ファイルとして提供)をArcGISにインポートしています。グリッドのサイズは、95行125列です。メタデータは、緯度/経度の原点(左下隅)、セルサイズ(50km)に加えて、中央子午線(110度W)と原点の緯度(60度N)を備えた極立体図としてのノートの投影を提供します。 最初に.grdを.asciiおよび.fltとしてラスターに変換しようとして失敗した後、GDALを使用して範囲と投影を設定することができましたが、データセットは意図した領域の境界に正しく整列しません。下の画像をご覧ください。 このアライメントの欠如を説明することができる、ポーラーステレオグラフィックの受け入れられた地理変換はありますか? たとえば、使用すべき特定の変換係数または回転はありますか? データセットのサンプルファイルは次のとおりです。「t201113.grd」 ここに私が現在GDALで使用しているコードがあります ds = gdal.Open("t201113.grd") array = ds.ReadAsArray() x_rotation = 0 y_rotation = 0 xres = 1 yres = -1 llx = -129.8530 lly = 40.0451 ulx = -175.144 uly = 71.385 input_osr = osr.SpatialReference() input_osr.ImportFromWkt(ds.GetProjection()) wgs84_osr = osr.SpatialReference() wgs84_osr.ImportFromEPSG(4326) wgs_to_nps_trans = osr.CoordinateTransformation(wgs84_osr, input_osr) …

5
バッファなどのジオプロセシング用のPythonライブラリ(ArcPy以外)を探していますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 8か月前に閉鎖されました。 ArcPyを除き、シェープファイルを使用してバッファー/交差などのジオプロセシングを実行できるPythonライブラリはありますか?

1
NumPy配列を使用してビッグデータジオプロセシングを最適化するにはどうすればよいですか?
NumPy配列を利用してジオプロセシングを最適化する方法を学ぶことに興味があります。私の仕事の多くは「ビッグデータ」に関係しており、ジオプロセシングでは特定のタスクを完了するのに数日かかることがよくあります。言うまでもなく、これらのルーチンを最適化することに非常に興味があります。ArcGIS 10.1には、arcpyを介してアクセスできる次のような多くのNumPy関数があります。 NumPyArrayToFeatureClass(arcpy.da) RasterToNumPyArray(arcpy) TableToNumPyArray(arcpy.da) 例として、NumPy配列を利用した次の処理集中型ワークフローを最適化するとします。 ここでの一般的な考え方は、ベクトルとラスタベースの操作の両方を移動する膨大な数のベクトルベースのポイントがあり、その結果バイナリ整数ラスタデータセットが得られるということです。 このタイプのワークフローを最適化するためにNumPyアレイをどのように組み込むことができますか?

3
PythonでGeoJSONを生成する
シェープファイルのポリゴンを使用してGeoJSONファイルをプログラムで作成しますが、独自のアプリケーションから属性を追加します。 これは、シェープファイルに対して簡単に実行できます。 def create_data_dayer(self,varlist, data): """ Creates a new shape to contain data about nodes. varlist is the list of fields names associated with the nodes. data is a list of lists whose first element is the geocode and the remaining elements are values of the fields, in the same …
16 python  geojson  ogr  fiona 

4
SHP機能を削除するPythonモジュール(デスクトップGISがインストールされていない場合)
外部データベースからシェープファイル機能を更新する非実動マシン上で毎晩実行されるソフトウェア(Arcではない)があります。定期的に、シェープファイルのすべての機能(ファイル自体ではなく、削除する必要があります)を削除し、ソフトウェアにシェープファイルを最初から「再構築」させたいと思います。このプロセスを自動化したいと思います。 現在、そのマシンにはGISソフトウェアがインストールされていません。Arcの[フィーチャの削除]ジオプロセシングツールのように、フィーチャを自動的に削除するルーチンをPythonでスクリプト化できることを望んでいました。 これを可能にするPythonモジュールはありますか?できればオープンソース?ShapelyとPyShpを調べましたが、機能をまとめて削除できるものや、WHERE句に一致するものは見当たりませんでした。機能を記述して分析することはできますが、DELETE FEATURES関数はどこにも見ていません。 私は確かにシンプルなものを見逃しているに違いありません... 編集:私は35個のフォルダ(異なる地理的範囲、すべて独自の投影)を持ち、35〜65個のシェイプファイルと約1000個のシェイプファイルを扱います。

8
Pythonを使用してラスターの各ピクセルのXY座標とセル値を取得する方法は?
私は本当にPythonが初めてで、ArcGIS 10のPythonを使用して、ピクセルごとのラスターのセル値と座標(各ピクセルの中心のXY座標をマップ)を取得する簡単な方法があるかどうかを知りたいですか? これをさらに説明するには、最初のピクセルのマップX、マップY、およびセル値を取得し、それらの3つの値を3つの変数に割り当て、他のピクセルの残りに対してこの手順を繰り返す必要があります(ラスター全体をループします)。 私の質問をもっと説明する必要があると思います。問題は、最初のラスタのピクセルのXY位置を取得し、そのXY位置に対応するいくつかの他のラスタのセル値を取得する必要があることです。このプロセスは、中間ポイントシェープファイルを作成せずに、最初のラスターのすべてのピクセルをループ処理する必要があります。80億ピクセル近くのラスターを処理する必要があるため、本当に時間がかかります。また、ArcGIS 10でPythonを使用してこれを行う必要があります。 @JamesS:ご提案ありがとうございます。はい、これは1つのラスターで機能しますが、他のいくつかのラスターのセル値も収集する必要があります。問題は、最初のラスタの最初のピクセルのX座標とY座標を取得した後、最初のラスタのX、Y位置、3番目のラスタなどに対応する2番目のラスタのセル値を取得する必要があることです。だから、最初のラスターをループするとき、ピクセルのXとYの位置を取得し、その位置に対応する他のラスターのセル値を取得することは同時に行われるべきだと思いますが、わかりません。これは、最初のラスターをポイントシェープファイルに変換し、ArcGIS 10でポイント値への複数値の抽出を実行することで実行できますが、 @hmfly:ありがとう、はい、このメソッド(RastertoNumpyarray)は、配列の既知の行と列の値の座標を取得できれば機能します。 @whuber:計算を実行したくないので、テキストファイルにXY座標とセル値を書き込むだけで十分です。

2
投影されたgeoTiffをGDALおよびPythonでWGS84に変換する
次の質問がやや馬鹿げている場合はおologiesび申し上げますが、私はこのGISのことをまったく知りません。 Pythonでgdalを使用して、投影されたgeoTiff画像をWGS84に変換しようとしています。次のようなものを使用して、投影されたGeoTiffs内のポイントを変換するプロセスの概要を示す投稿を見つけました。 from osgeo import osr, gdal # get the existing coordinate system ds = gdal.Open('path/to/file') old_cs= osr.SpatialReference() old_cs.ImportFromWkt(ds.GetProjectionRef()) # create the new coordinate system wgs84_wkt = """ GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.01745329251994328, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]]""" new_cs = osr.SpatialReference() new_cs .ImportFromWkt(wgs84_wkt) # create a transform object …

5
Vincentyと大圏距離の計算の違いは?
Pythonのgeopyパッケージには、Great CircleとVincentyの公式という 2つの距離測定技術が備わっています。 >>> from geopy.distance import great_circle >>> from geopy.distance import vincenty >>> p1 = (31.8300167,35.0662833) # (lat, lon) - https://goo.gl/maps/TQwDd >>> p2 = (31.8300000,35.0708167) # (lat, lon) - https://goo.gl/maps/lHrrg >>> vincenty(p1, p2).meters 429.16765838976664 >>> great_circle(p3, p4).meters 428.4088367903001 違いはなんですか?どの距離測定が望ましいですか?

2
ジオパンダを使用してポリゴンエリアを取得しますか?
与えられたgeopandas GeoDataFrameポリゴンのシリーズを含む、私は私のリストにある各機能のキロ平方の領域を取得したいと思います。 これはかなり一般的な問題であり、過去に通常の提案された解決策を使用するようになっているshapelyとpyproj(例えば、直接こことここ)。 これを純粋に行う方法はありgeopandasますか?

1
更新されたシェープファイルで変更された行を確認する方法は?
郡のGISデータを使用して、OpenStreetMapの道路を更新しています。昨年公開されたコピーと公開されたばかりのコピーがあり、属性またはジオメトリが変更されたLineStringをすべて検索したいと思います。これにより、OpenStreetMapですべての新規および修正された道路が更新されるようになります。 QGISやPython / OGRなどのFOSSソフトウェアを使用してこれを行いたいです。道路セグメントには一意の識別子が必要です。そのため、私の唯一の考えは、両方のシェイプファイルを開き、古い(追加されたセグメント)に存在しない新しいセグメントを見つけ、逆(削除されたセグメント) 、その後、構成座標を比較して一致したペアをループ処理し、変更があったかどうかを確認します。 これは良いアプローチですか?もっと簡単な方法はありますか?

5
ArcMapで使用される「Python.exe」のパスをプログラムで取得する方法
C#でArcMapのアドインを使用しています。C#コードから、いくつかのPythonスクリプトを実行しました。さて、これらのスクリプトを実行するために、Pythonパスをハードコーディングしています。しかし、これは移植性がありません。したがって、コードからPython実行可能ファイルのパスを取得して使用したいと思います。 質問: ArcMapで使用されるPython実行可能ファイルのパスをC#コードから取得するにはどうすればよいですか? 編集: あなたの提案から、今のところ私はPythonのパスを取得するために「パス環境」を使用しています。 //get python path from environtment variable string GetPythonPath() { IDictionary environmentVariables = Environment.GetEnvironmentVariables(); string pathVariable = environmentVariables["Path"] as string; if (pathVariable != null) { string[] allPaths = pathVariable.Split(';'); foreach (var path in allPaths) { string pythonPathFromEnv = path + "\\python.exe"; if (File.Exists(pythonPathFromEnv)) return pythonPathFromEnv; } …
15 arcgis-10.0  python  c# 

4
GDALでラスターを平滑化/再補間しますか?
短い: ラスターの解像度を変更し、以下の画像に示すようにグレーのランプを滑らかにします。GDAL、PIL、またはNumpyを使用することをお勧めします。 説明: 私は、高性能地球統計ライブラリーを使用して、20メートルの出力解像度でラスターにポイントをクリギングしています。補間時間が指数関数的に増加するため、出力解像度を変更したくありません。 この解像度では、出力画像は見苦しくなります(ピクセル化およびエイリアス化)。概念的に正しいかどうかはわかりませんが、次の例のように画像をより滑らかにしたいです。これは、画像をより良い解像度に「再補間」するようなものです。私はpythonを使用しているので、私の好みはGDAL、Python Imaging LibraryまたはNumpyです。答えは、アルゴリズム名やこの種の操作の概念を指摘するような理論的なものです。 ソース: 先: gdalwarpキュービックスプラインを使用した結果の編集:
15 python  raster  gdal 

3
生態学的な地理空間の難問
私は、空間統計問題に対する別のより洗練された解決策を探しています。生データは、個々のツリーのxy座標で構成されます(つまり、ポイント.shpファイルに変換されます)。この例では使用されていませんが、すべてのツリーには、クラウンの直径を表す対応するポリゴン(.shpなど)もあります。左側の2つの画像は、個々のツリー位置のポイント.shpファイルから導出されたランドスケープスケールカーネル密度推定値(KDE)を示しています。1つは1989年、もう1つは2009年です。右側の図は、2つのKDE平均値の+/- 2標準偏差の値のみが表示されます。Arcのラスター計算機を使用して、右手画像にラスターオーバーレイを作成するために必要な簡単な計算(2009 KDE-1989 KDE)を実行しました。 樹木密度または樹冠面積の経時的な変化を統計的またはグラフィカルに分析するより適切な方法はありますか?これらのデータを考慮して、地理空間環境で1989年と2009年のツリーデータ間の変化をどのように評価しますか?ArcGIS、Python、R、Erdas、ENVIのソリューションが推奨されます。

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