問題タブ [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.
python - ラインとポリゴンの交点 | パイソン格好良い
ラインとポリゴンの交点を見つけるためにシェイプリーを使用しようとしていますが、いくつかの浮動小数点数に問題があります。
コード例:
私が期待するのは、2 つの頂点のリストです。
ポイント 1: ポリゴンの内側にあるポイント、またはこの場合は (4.0, -2.0000000000000004)。
ポイント 2: [(4.0, -2.0000000000000004), (2.0, -1.1102230246251565e-15)] と [(3.0, -3.0), (4.0, -2.0)] の交点。
ただし、私が受け取る結果は次のとおりです。
また、見ているエッジとの交差があるかどうかも確認しました。
(4.0, -2.0000000000000004) を (4.0, -2.000000000000000) に置き換えると、エッジの交差は True と評価されます。
何が起こっているのか、何が欠けているのか、誰にもアイデアがありますか? ありがとう!
編集:
私は格好の良いバージョン 1.12 と 3.3.1、3.3.5、3.3.6、3.3.7 の geo を使用してテストしました。
Windowsでgeosバージョンをどのように更新したかについて誰かが興味を持っている場合:
GEOS Web サイトから geos-[バージョン].tar.bz2 をダウンロードしました。ファイルを抽出し、Visual Studio 10 Win64 ジェネレーターを使用して CMake を実行しました。.sln ファイルを開いてビルドし、生成された geos_c.dll を移動して、geos_c.dll が Python ディレクトリに適切にインストールされた場所に貼り付けました。
python - シェイプリーとのポリゴン交差のより高速な方法
多数のポリゴン (〜 100000) があり、通常のグリッド セルを使用して交差領域を計算するスマートな方法を見つけようとしています。
現在、(コーナー座標に基づいて) shapely を使用してポリゴンとグリッド セルを作成しています。次に、単純な for ループを使用して各ポリゴンを調べ、近くのグリッド セルと比較します。
ポリゴン/グリッド セルを説明するためのほんの一例です。
(ところで: グリッド セルの寸法は 0.25x0.25 で、ポリゴンは最大で 1x1 です)
実際、これは個々のポリゴン/グリッド セルの組み合わせで約 0.003 秒と非常に高速です。ただし、このコードを大量のポリゴン (それぞれが数十のグリッド セルと交差する可能性がある) で実行すると、私のマシンでは約 15 分以上 (交差するグリッド セルの数によっては最大 30 分以上) かかります。残念ながら、ポリゴン交差のコードを記述して重複領域を取得する方法がわかりません。ヒントはありますか?格好良いに代わるものはありますか?
python - Flask と Shapely を使用して heroku でアプリを実行できない
Shapely python ライブラリを必要とする小さなアプリを開発しました。.exe ファイルを介して Windows にインストールしたので、必要な DLL ファイル ( geos.dll 、 geos_c.dll ) が Python27\Lib\site-packages\shapely\DLLs に自動的に配置されます。
私のボックスにvirtualenvを作成しようとしたとき、pip経由で格好よくインストールしましたが、それらのDLLファイルを配置しなかったため、次のエラーが発生しました:
したがって、virtualenv\Lib\site-packages\shapely\DLLs フォルダーにあるこれら 2 つの DLL ファイルを手動で置き換えたところ、機能しました。
今、私はherokuにアプリをデプロイしようとしていますが、次のエラーのために失敗しました:
したがって、これらの2つのDLLファイルが存在しないためにクラッシュすると想定しました。これら2つのファイルを別のフォルダーにコピーし、git経由でプッシュしました
これらの 2 つのファイルを Python 環境にコピーするために、アプリのルートに .profile ファイルを作成しました。
。プロフィール
それでもアプリは同じエラーでクラッシュします。
誰でもこれで私を助けることができますか?
python - 見栄えの良い parallel_offset が見つかりません
Shapely を使用しようとしていますが、見つからparallel_offset
ないようです。例にあるインポートを含めましたが、認識されませんparallel_offset
。
そして私は得る:
私は何を間違っていますか?
python - __eq__ を格好良く実装する方法 (python)
shapelyと operator の使い方について質問があり==
ます。幾何学的オブジェクトの等価性をテストする関数が存在します: .equals()
. ただし==
、機能しません。
True を返します。
でも:
False を返します
==
演算子を使用してPoint
、 a がリストに既に存在するかどうかを確認できるようにしたいと考えています。1 つの使用例は次のとおりです。
私が理解している限り、これは を==
返すため機能しませんFalse
。in
関数を使用する代わりの方法があることは知っていますが、次のキーワードを使用しany()
たいと思います。in
に実装__eq__
するのは大変な作業shapely/geometry/base.py
でしょうか? のこの単純な実装についてどう思います__eq__
か?
また
python - ベースマップとデカルトを使用したプロットで PolygonPatch が表示されない
次のように、Shapely バッファリングされたポイントをいくつかプロットできます。
これにより、次のプロットが得られます。
ただし、Basemap を使用してこれらのポイントをプロットしようとすると、表示されません。
私は何を間違っていますか?