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

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

1
GDALはPythonでポリゴン化して空白のポリゴンを作成しますか?
PythonでPolygonize関数を使用すると問題が発生します。このためのクックブックの例はここにあります。 私のコードの関連部分は次のとおりです。 sourceRaster = gdal.Open('myraster.tif') band = sourceRaster.GetRasterBand(1) bandArray = band.ReadAsArray() outShapefile = "polygonized" driver = ogr.GetDriverByName("ESRI Shapefile") if os.path.exists(outShapefile+".shp"): driver.DeleteDataSource(outShapefile+".shp") outDatasource = driver.CreateDataSource(outShapefile+ ".shp") outLayer = outDatasource.CreateLayer("polygonized", srs=None) gdal.Polygonize( band, None, outLayer, -1, [], callback=None ) outDatasource.Destroy() sourceRaster = None 私はバンドに関連情報があることを知っています、ここにスニペットがありbandArrayます: array([[ 4., 4., 3., 3., 3., 2., 2., …
12 python  gdal 

2
シェープファイルMultiPolygonsからShapely MultiPolygonsを作成する
私はフィオナを使用してシェープファイルを読んでいます: with fiona.open('data/boroughs/boroughs_n.shp') as source: mpolys = [p for p in source] candidate = polys[0]['geometry'] これは私に座標のリストのリストを含む辞書を提供し、「MultiPolygon」と入力しますが、座標データを使用してShapely MultiPolygonを作成する方法はわかりません a sequence of exterior ring and hole list tuples: [((a1, ..., aM), [(b1, ..., bN), ...]), ...]. FionaとShapelyを使用してこれを行う「正しい」方法はありますか?
12 python  shapely  fiona 

3
gdalbuildvrtに相当するPython
GDAL Pythonバインディングを使用してgdalbuildvrtユーティリティと同じタスクを実行する方法はありますか?これまでのところ、単一のデータセットのvrtを作成し、xmlを手動で編集する以外に、これを行う方法を見つけていません。複数のラスターからモザイクを作成します(基本的にモザイクを実行します)。これは純粋なPythonを使用して可能ですか?私の他のオプションは、サブプロセスを使用して単にgdalbuildvrtを呼び出すことです。

1
Python:ポリゴンの「内部重心」(アークマップではlabelPointとも呼ばれます)を計算する方法を見つけます
(不規則な)ポリゴンの内側のポイント(アークマップではlabelPointとも呼ばれます)のX、Y座標を計算する方法を探しています。ArcGISモジュールを使用せずに解決策を見つけようとしています。 「重心」とlabelPointの違いは、重心が多角形の外側にある可能性があることです。 形の良いモジュールを使用しています shapely.geometryインポートポリゴンから ref_polygon = Polygon(points) # get the x and y coordinate of the centroid ref_polygon.centroid.wkt 'POINT (558768.9293489187300000 6361851.0362532493000000)' 次のデータ(ポリゴンの頂点)を使用します ヘルプと提案を事前に感謝します points = [(560036.4495758876, 6362071.890493258), (560036.4495758876, 6362070.890493258), (560036.9495758876, 6362070.890493258), (560036.9495758876, 6362070.390493258), (560037.4495758876, 6362070.390493258), (560037.4495758876, 6362064.890493258), (560036.4495758876, 6362064.890493258), (560036.4495758876, 6362063.390493258), (560035.4495758876, 6362063.390493258), (560035.4495758876, 6362062.390493258), (560034.9495758876, 6362062.390493258), (560034.9495758876, 6362061.390493258), (560032.9495758876, …

4
shapelyの使用:ポリゴンとマルチポリゴン間の変換
[編集:これに対する解決策は、OGRを使用してシェープファイルを読み取ることでした。geographikaの例を参照してください。] ESRIシェープファイルでは、ポリゴンとマルチポリゴンを区別しません。さらに、内部の穴と外部のリングの間に明確な区別はありません(特定のポリゴンの「利き手」以外)。 したがって、シェープファイルを読み込んだ後、リングを記述する座標シーケンスのリストがありますが、いくつかのより集中的な処理なしでは、これらのリングのどれが外部リング、内部穴、または追加のポリゴンであるかを区別できません。 のためと思わスッキリポリゴンとMultiPolygonのコンストラクタs」は、外部と内部リング間の明確な区別がなければならないので、どのように私は明らかに指定された内部と外部リングで、分離ポリゴンの順序集合にリングの不明瞭リストから移動する必要があります? 要約すると、ポリゴンリングのリストはあるが、どのリングが内部の穴であるか、または個別のポリゴンであるかわからない場合、指定された内部の穴を持つ個別のポリゴンにどのように分類すればよいですか? 私はPythonで実装でき、数百のポリゴンを1分以内に処理するために使用できる簡単なアルゴリズムソリューションを探しています。そして、私はこれをして多数の交差を実行します。


5
生データをジオパンダに読み込む
生データをa geopandas GeoDataFrame、la a に読み込むことはできpandas DataFrameますか? たとえば、次の作品: import pandas as pd import requests data = requests.get("https://data.cityofnewyork.us/api/geospatial/arq3-7z49?method=export&format=GeoJSON") pd.read_json(io.BytesIO(r.content)) 以下は行いません: import geopandas as gpd import requests data = requests.get("https://data.cityofnewyork.us/api/geospatial/arq3-7z49?method=export&format=GeoJSON") gpd.read_file(io.BytesIO(r.content)) つまり、最初にディスクにデータを保存せずに、メモリにある地理空間データを読み取ることはできますか?

1
フィオナのドライバー
pythonパッケージにfionaはどのドライバーがありますか?マニュアルを確認すると、次のように書かれていますが[...] and the possible formats are enumerated in the fiona.drivers list. 、pythonを入力すると from fiona import drivers print drivers > <function drivers at 0x108763050> どうすればそれを「中」に見ることができますか?
12 python  fiona 

1
QGISのプラグインのプログラミング中にPythonスクリプトを介して印刷コマンドを表示するにはどうすればよいですか?
QGIS用に作成されたカスタムプラグインの実行から、デバッグ画面のように、プラグインの実行時にPython Shellが一緒に表示される方法はありますか?QGISのプラグインをプログラミングしているときに、Pythonスクリプトを介して印刷コマンドを表示する方法があるかどうかを確認してください。


2
Pythonはシェープファイルを読み取れません
Jupyterノートブックでシェープファイルを開こうとしていますが、開くことができません。シェープファイルはワークブックと同じフォルダーにあり、フルパスを使用してもPythonはそれを識別できません。 import shapefile as shp import matplotlib.pyplot as plt sf = shp.Reader(r'C:\Users\Public\Documents\1-11-99n.shp') ShapefileException: Unable to open C:\Users\Public\Documents\1-11-99n.dbf or C:\Users\Public\Documents\1-11-99n.shp. fionaとgeopandasで開くこともできません。 import fiona shape = fiona.open("1-11-99n.shp") そして import geopandas as gp shp = gp.GeoDataFrame.from_file('1-11-99n.shp') print (shp) 両方で終わる CPLE_OpenFailedError: b'Unable to open 1-11-99n.shx or 1-11-99n.SHX.Try --config SHAPE_RESTORE_SHX true to restore or create …
11 python  shapefile 

1
QGISエクスポートコンポーザーをPythonでPDFとしてエクスポート
作曲家を含むQGISプロジェクトがあります。もちろん、GUIに移動すると、pdfなどとしてエクスポートできます。makeスクリプトの場合は、Pythonスクリプトを使用してこれを実行します。ここでオンラインで読むことから私の試みです: #!/usr/bin/env python import sys from qgis.gui import QgsMapCanvas, QgsLayerTreeMapCanvasBridge from PyQt4.QtCore import QFileInfo from PyQt4.QtXml import QDomDocument from qgis.core import * qgs = QgsApplication(sys.argv, True) QgsApplication.setPrefixPath("/usr", True) qgs.initQgis() def make_pdf(): canvas = QgsMapCanvas() bridge = QgsLayerTreeMapCanvasBridge( QgsProject.instance().layerTreeRoot(), canvas) bridge.setCanvasLayers() QgsProject.instance().read(QFileInfo('../board.qgs')) composition = QgsComposition(canvas.mapSettings()) map_item = composition.getComposerItemById('board36x48') map_item.setMapCanvas(canvas) map_item.zoomToExtent(canvas.extent()) composition.refreshItems() …
11 qgis  python  pyqgis  pdf 

3
Pythonで複数のポリゴンの交差点を効率的に取得する
複数のポリゴンの交差点を取得したいです。Pythonのshapelyパッケージを使用すると、intersection関数を使用して2つのポリゴンの交差を見つけることができます。複数のポリゴンの交差を取得するための同様の効率的な機能はありますか? これが私の意味を理解するためのコードスニペットです。 from shapely.geometry import Point coord1 = ( 0,0 ) point1 = Point(coord1) circle1 = point1.buffer(1) coord2 = ( 1,1 ) point2 = Point(coord2) circle2 = point2.buffer(1) coord3 = ( 1,0 ) point3 = Point(coord3) circle3 = point3.buffer(1) 2つの円の交点はで見つけることができますcircle1.intersection(circle2)。で3つすべての円の交差点を見つけることができますcircle1.intersection(circle2).intersection(circle3)。ただし、このアプローチは、より多くのコードを必要とするため、多数のポリゴンに対応できません。任意の数のポリゴンを取り、それらの交差を返す関数が欲しいです。

1
Python:条件に基づいてラインストリングを分割
各頂点/ポイントに関連付けられたいくつかのデータを持つ一連のラインストリングのジオパンダデータフレームがあります。 Point_x = (Lat, Lon, Time, ID, Data1, Data2, Data3) ポイントは、IDに基づいてラインストリングに変換され、時間順に並べられます。 ある条件が満たされた時点で、ラインストリングを分割したい。現在、ポイント間の距離が特定の値よりも大きい場合です。将来的には、データフィールドの機能が何らかの値になる可能性があります。たとえば、速度が5 kphを超えるとラインストリングを分割します。 現在の問題は、トラックの一部が重複したIDを持つポイントから形成されているため、ラインストリングが非常に長い距離で前後にジャンプし、これらのラインを分割するためのしきい値が必要なことです。 これまたはライブラリ/メソッドを構造化する正しい方法に関するアイデアはありますか? データフレームには15,000を超えるトラックがあり、トラックごとに多くのポイントが含まれているため、効率が良いでしょう。 トラックDFの例を次に示します。 ID geometry 204235000 LINESTRING (37.62001 -28.99535, 37.62015 -28.9... 205400000 LINESTRING (3.807816666666666 -18.083181666666... 207138000 LINESTRING (22.73206 -34.97915833333333, 22.73... 209016000 LINESTRING (8.447673333333331 -23.522783333333... これがポイントDFのサンプルです。Datetime、Point(Lon、Lat)、Speed、Sizeなどを含む18列があります。 Index Heading Latitude Longitude ID 20 92.8 -35.946802 13.089695 210725000 21 …

1
virtualenvからQGISモジュールにアクセスする方法
Ubuntu 14.4を実行していて、Python仮想環境をインストールしました。その後、いくつかのPythonライブラリ(gdal、lxml、psycopg2など)をpipインストールしました 私のシステムにもQGIS用のモジュールがあります。したがって、pythonと入力すると、このモジュールを次のようにインポートできます。 import qgis.core しかし、virtualenvで同じことを行おうとすると、「モジュールが見つかりません」というエラーが表示されます。 virtualenvを作成したときに、次のオプションを使用しました。 virtualenv --no-site-packages env これはシステムの環境から私の環境を制限します。問題は、virtualenvでQGISモジュールにアクセスする方法ですか?
11 qgis  python 

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