問題タブ [shapely]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
9067 参照

python - Python を使用してマルチポリゴン シェープファイルのポイント数をカウントする

属性値として個々の州で構成された米国のポリゴン シェープファイルがあります。さらに、ポイントイベントの緯度と経度の値を格納する配列を持っていますが、これも興味があります。ポイントが入っている)、各状態のポイント数を合計して、「イベント」の数が最も多いのはどの状態かを調べます。

疑似コードは次のようになると思います。

ライブラリや構文は大歓迎です。

私が知る限り、OGR ライブラリが必要ですが、構文に問題があります。

0 投票する
1 に答える
743 参照

python - to_shape() が ParseException で失敗する

私は GeoAlchemy2 を試してきましたが、フィールドの解析に問題がありgeomます。

WKB要素で組み込み関数を使用to_shapeしようとしました:

例は次のとおりです。

利用した:

この GeoAlchemy2 geom フィールドをどのように解析できますか? データベース値は有効です。

0 投票する
1 に答える
3135 参照

python - ラインとポリゴンの交点座標

Python、Shapely、Fiona を使用しています。ライン シェープファイルとポリゴン シェープファイルの 2 つのシェープファイルが利用できることを考慮してください。

交点 (Q マークで示される) とそれぞれの座標で構成される最終結果のシェープファイルを取得する方法は??

ここに画像の説明を入力

0 投票する
1 に答える
2847 参照

python - Shapely で丸め誤差を処理す​​る方法

私は、点を線上に投影し、その上でこの線を分離することに基づくケースを持っています。私のユースケースはもう少し複雑ですが、次のコードで問題を再現できます。

構造上、「pr」は line1 とその交点にもある必要があります。

「True」を 2 回出力します。ただし、入力座標を変更すると、ワークフローがわずかに中断されます。

「偽」を出力します。

この背後にある浮動小数点精度の問題は理解していますが、それは点が線上にあるかどうかをテストできないということですか? 点のリストに基づいて線を作成するとき、少なくともすべての「作成」点が線上にあることを確認できますか?

0 投票する
1 に答える
1940 参照

python - Shapelyでルートの最初から座標の距離を見つける

ルートを表す座標 (lat/lon) のリストがあります。特定の半径と別の座標が与えられた場合、座標がルート内 (任意の点から指定された半径内) にあるかどうか、およびルートの開始点からの距離を確認する必要があります。

私はShapelyを見ましたが、それは良い解決策のようです。

を作成することから始めました。StringLine

次に、ポイントがルートの近くにあるかどうかを確認するために、バッファーを追加して交差点を確認しました

距離の計算に困っています。ルートを で分割してp前半の長さを測ろうと思ったのですが、結果が で、HeterogeneousGeometrySequence何ができるかわかりません。

私は解決策を見つけたと思います:

0 投票する
1 に答える
3993 参照

python - Shapelyで多角形の最大の内接長方形を見つける

半ダースのポリゴン内に何百万ものポイントを見つけようとしています。これが私のコードです:

shapely を使用したポリゴン内のポイント クエリのパフォーマンスの向上に関する他の質問を読みました。彼らは Rtrees を提案します。ただし、これは、多くのポリゴン (ある質問では36,000、別の質問では100,000 ) があり、それらすべてをループすることが望ましくない場合に役立つようです。

ご覧のとおり、既にバウンディング ボックスを設定しています。これが私の形状セットアップコードです:

shape の別の非常に単純化されたバージョン、つまり最大の内接長方形 (または三角形) で作成されたバージョン確認すると便利でしょうか?

見栄えの良いドキュメントを確認すると、これには機能がないようです。多分いくつかの設定simplify()?もちろん、単純化された新しい形状が元の形状の境界を超えないようにする必要があるためcontains()、実際の形状を呼び出す必要はありません。また、新しい単純化された形状は、速度のためにできるだけ単純にしたいと考えています。

他の提案も同様に感謝します。ありがとう!

編集:返信を待っている間、私は私の要件を満たす単純化された形状を作成するためのこのアイデアを思いつきました:

各ポイントをテストするときの使用方法は次のとおりです。

これは完璧ではありません。必要なintersection(). それにもかかわらず、このアプローチにより、処理時間が 60% 短縮されました。私のテストでは、ポイント クエリの 85% で単純なポリゴンが使用されています。

編集 2 : GIS StackExchange に関する別の関連する質問: Python Efficiency — OGR と Shapely をより効率的な方法で使用する方法についての提案が必要です。これは、約 3,000 ポリゴンで 150 万点を処理します。

0 投票する
2 に答える
2688 参照

python - Windows 7 64 ビットでの Shapely モジュールのインストール。

Pythonを使用してプログラムで空間結合を行いたいと思います。https://pypi.python.org/pypi/Shapelyから(Windows 7 64ビット)PCに格好良くインストールしようとしました 。Python シェルで import shapely を実行すると、動作します。しかし、shapely.geometry import Point から実行すると、no module found エラーが発生します。この懸念について誰か私を導いてくれませんか?

0 投票する
1 に答える
2319 参照

gis - shapely/geos がこの「無効な」よく知られているバイナリを解析できるのはなぜですか?

地理情報システム (GIS) で使用されるジオメトリ オブジェクトのバイナリ エンコーディングであるWell Known Binaryを解析しようとしています。私はESRIのこの仕様を使用しています(esriの結果と同じです)。OpenStreetMap データを解析するツールであるOsmosisからデータを入力しました。具体的には、バイナリの 16 進数表現を与えるpgsimp-dump 形式です。

ESRI ドキュメントによると、a には 21 バイトPoint、バイト オーダーには 1 バイト、typeid には uint32 には 4、double x には 8、double y には 8 が必要です。

osmosis の例は、この (16 進数) の例です:0101000020E6100000DB81DF2B5F7822C0DFBB7262B4744A40で、長さは 25 バイトです。

人気のある C ライブラリGEOS に基づく WKB (など) を解析する Python プログラムは、この文字列を解析できます。

Shapely に解析してから WKB に変換するように依頼すると、21 バイトが返されます。

違いは、中間の 4 バイトです。これは、typeif=d の uint32 に 3 バイト表示されます。

無効な WKB の場合、この WKB を shapely/geos で解析できるのはなぜですか? これらのバイトはどういう意味ですか?