問題タブ [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 投票する
1 に答える
883 参照

python - 既存の曲線から新しい曲線を作成する - Shapely

GPX ファイルから座標を解析する Python スクリプトを作成しました。座標はタプルのリストとして保存されます: (float lat, float long). Shapely のLineString関数を使用して、GPX ファイルごとに操作できる曲線を作成しました。

いくつかの GPX ファイルを解析した後、いくつかの交差する曲線があり、これらの交差する曲線に基づいていくつかの情報を計算したいと考えました。簡単にするために、3 つの行があるとします (それらを と呼びますline1, line2, line3)。この特定のシナリオでは、 はline1と の両方line2と交差しますline3line2、 とline3は交差しません。またはより視覚的に:

私がやろうとしているのは、これらの既存の曲線から新しい曲線を作成することです。この曲線の始点と終点は交点 (*視覚的表現では で示されます) になり、曲線の中間点はline1これらの交点の間にある点になります。

intersection()Shapelyの方法を使用して交点を取得するのに問題はありませんがline1、これらの交点の間にあるその点を取得する方法がわかりません。

line1東西または南北に走るかどうかを判断することを考えました。その結果に基づいて、交点の緯度または経度を線のすべての点 (line1この場合) と比較し、交点の緯度または経度の内側にある点を見つけたら、新しい線を開始できます。交点によって囲まれた座標を使用します。

ただし、これは途方もない量の作業のようです。もっと簡単な解決策が必要な気がします。特に私は Shapely の非常に基本的な知識を持っているため. どんな助けでも大歓迎です。

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

python - Python を使用してシェープファイルがシェープファイルであることを確認する (fiona、ogr)

fiona 1.5.0 で (なぜさまざまなファイル (.dbf や .gdb など) が私の "Not a Shapefile!" (ファイルが .shp でないことをいつでも望んでいる) 警告を出力しないのか混乱しています)終了する前に。

gdbの場合、フィオナがドライバーをサポートしていないというエラーが表示されます(ogrが私を驚かせたため)-およびprintステートメントはありません:

.dbf の場合、実際にこれを取得します。

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

python - ジオメトリ操作のパフォーマンスを最適化する方法

ジオメトリ操作のパフォーマンスを最適化する方法を探しています。私の目標は、一連のポリゴン (21,562) 内にいくつのポイント (205,779) があるかを数えることです。ArcGISやQGISなどのGISソフトウェアと同様に、pythonとRを使用することをお勧めします。

ここに私が検索して書いた解決策があります。

  1. ArcGIS の使用: 例の 1 つはhttp://support.esri.com/cn/knowledgebase/techarticles/detail/30779にあります。私の以前の経験。

  2. GDAL、OGR を使用: 例を次に示します: http://geoexamples.blogspot.tw/2012/06/density-maps-using-gdalogr-python.html -> ポリゴンごとに 5 ~ 9 秒かかります。

  3. ループで格好よく準備されたジオメトリ操作を使用する: これが私の例で、ポリゴンごとに 2.7 ~ 3.0 秒かかります。(ポイントはリスト内の Point オブジェクトであることに注意してください)

    /li>
  4. Shapely で準備されたジオメトリ操作をフィルターで使用する: これが私の例で、ポリゴンごとに約 3.3 ~ 3.9 秒かかります (ポイントは MultiPoint オブジェクトであることに注意してください)。

    /li>

準備されたジオメトリ操作によってパフォーマンスは向上しましたが、多くのポリゴンを処理するにはまだ時間がかかります。なにか提案を?ありがとう!

0 投票する
4 に答える
26034 参照

python - shapely.geometry.polygon から Polygon をインポート中にエラーが発生しました

Python 3.4.3 を使用した私の Anaconda 2.2 64 ビットでは、次の行がうまく機能します。

しかし、次の行:

次のエラーを返します。

私は何が欠けていますか?

編集

iNotebook、idle.exe、およびEclipseで試しました。それらはすべて Anaconda (私のコンピューターにインストールされている唯一の Python) を使用しており、すべて同じエラーが表示されます。

Eclipseと入力from shapely.geometry import Polygonして をクリックしPolygon、 を押すF3と、Eclipse はモジュールを開くことができますC:\Anaconda3\Lib\site-packages\shapely\geometry\polygon.py。そのため、Eclipse はそれを見つけることができますが、実行は失敗します。

編集2

同様の構成の別のコンピューターで同じインポートを試みたところ、機能しました。2 台のコンピューターの "唯一の" 違いは、1 つは Windows 7 (動作する) で、もう 1 つは Windows 8 (動作しない) であることです。

同じ古いチェックリストに従って、Anaconda といくつかのパッケージを両方のコンピューターにインストールしました。Windows 8 を搭載したコンピューターは、Eclipse からパッケージを表示できますが、インポートできません。

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

python - Pythonでポリゴンのカスケード結合のポイントを見つける

Python でいくつかの形状データ (座標) について、密接に横たわる点を見つけて重複点を削除しようとしています。座標ノードに 1,2,3.. などの名前を付け、shapely パッケージを使用して、ノード ポイント 1,2,3.. の周りにポリゴンを作成しています。

polygons = [Point([nodes[i]).buffer(1) for i in range(len(nodes))]

そして、私が使用するカスケードのものを見つけるために

cascade = cascaded_union(ポリゴン)

返されるカスケードはマルチポリゴンであり、多くの座標がリストされています。ノードのどのポイントがカスケードされているか (バッファー値 1 に基づいて) を正確に知りたいので、それらを新しいノードに置き換えることができます。どうすればこれを知ることができますか??

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

python - LineString の長さ (マイル)

LineString の各 Point が座標である Shapely LineStrings として実行データを表しています。LineString の長さをマイル単位で計算しようとしています。LineString にlengthメソッドがあることは知っていますが、結果の単位がわかりません。

たとえば、0.13 マイルとわかっているランニングがありますが、印刷するruns[0].lengthと 0.00198245721108 になります。LineString がデカルト座標系にあるためだと思いますが、完全にはわかりません。

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

python - Ubuntu、Anaconda: python shapely パッケージをインポートできません

Mac OS X に関連する Shapely Import の問題

を使ってスッキリ取り付けましsudo apt-get install python-shapelyた。

で使用Python 2.7.8 |Anaconda 2.1.0 (64-bit)|していますubuntu 14.04 LTS (64 bit)

インストールが成功した後、そこからインポートしようとするとipython、インポートエラーが発生します。ImportError: No module named shapely

これを修正するにはどうすればよいですか?

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

python - Polygon.contains と Polygon.within の違いは何ですか?

Docstring は次のように述べています。

Polygon.containsジオメトリに他のものが含まれている場合は True を返し、そうでない場合は False を返します

Polygon.withinジオメトリが他の範囲内にある場合は True、そうでない場合は False を返します

それらはどう違いますか?

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

python - Python - Polygon と交差する MultiLineString シェープファイルに含まれる Line から属性を取得する

2 つのシェープファイルがあります。1 つは道路網を構成する多くの線を含み、もう 1 つは多くの GPS ポイントを含みます。

これまでのところ、 https: //gis.stackexchange.com/a/128210/52590 にあるコードを使用して、Shapely と Fiona を使用して両方のシェープファイルを開き、intersection() を実行することができました。

交点を取得するコードのコピーを次に示します。

これは、「intersecciones」を印刷すると次のようになります。

したがって、これは、ライン シェープファイルとポリゴン シェープファイルの最初のポリゴンの間に 3 つの交点があることを意味します。

私が必要なのは、ポリゴンと交差するラインシェープファイルのすべてのラインから、それらが交差する正確なポイントに加えて、2 つの属性 (「Nombre」と「Sentido」) を取得することです。これにより、ポリゴンの中心からの距離を取得できます。ポリゴンから交点まで。

したがって、私の質問は、Shapely またはその他の Python ライブラリを使用して、これらの属性を取得する方法があるかどうかです。また、各ポリゴンを繰り返し処理してデータを保存する最良の方法は何ですか? 交差する線と距離の属性を持つすべてのポリゴンを含む辞書を考えています。最後に、交差点を見つけるためのより効率的な方法はありますか? 1 つのポリゴンを処理するのに約 1 分かかりますが、将来的にはもっと速くする必要があるでしょう。

不足している情報がある場合は、質問を編集できるように教えてください。

よろしくお願いします、フェリペ。

0 投票する
4 に答える
89139 参照

python - 形の良いポイントのリストから形の良いポリゴンを作成するには?

形の良い点から多角形を作成したい。

型エラーが発生するTypeError: object of type 'Point' has no len()

Polygon形の良いPointオブジェクトからを作成するには?