問題タブ [fiona]
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.
geopandas - フィオナ読み取りデータ
geopandas を使用したデータの読み取りに関する問題がありますが、この投稿によると、エラーは fiona が原因のようです。 fiona を 1.1.6 バージョンに再インストールしようとしましたが、それでも機能しません。
src として fiona.open('taz.shp') を指定して fiona をインポートします: for feature in src: print feature
しかし、他の同様のスクリプトを書くと、うまくいくようです
python - Centos への Fiona のインストール
この質問は、私の前の 2 つの質問に関連しています。
Python 2.6 に geopandas をインストールする
システム全体をアップグレードすることで、ジオパンダが機能するようになりました。フィオナを機能させることができません。以下は、試したときに表示されるエラーです
python - 地理空間分析 (シェープファイルの緯度経度)
これは、 Python での地理空間分析へのフォローアップの質問です。
質問はhttps://gis.stackexchange.com/questions/84114/shapely-unable-to-tell-if-polygon-contains-pointに似ていますが、緯度を逆にすると問題は解決したようですが、そうではありません私を助けて。
Uber のデータは緯度/経度で与えられますが、これは非常に簡単です。geopandas で使用すると、逆ルックアップで住所が得られます。
ただし、問題は、シェープファイルで緯度/経度を検索することです。Uber のデータは次のようになります。
形状ファイルのポリゴン境界は次のようになります
したがって、 polygon/polygon.contains(point) のポイントが機能していません。データを見ると、緯度経度は形の整ったファイルと比較して非常に小さく、ある単位を別の単位に変換する必要があるかどうかわかりません。まったく異なるメートル法に見えます:) 以下はコードです:
Uber データと SFO シェープファイルへのリンクはこちらhttp://hortonworks.com/blog/magellan-geospatial-analytics-in-spark/#comment-606532
python - Python を使用してポリライン シェープファイルをラスター データに転送する方法
これが私の質問です。次のようなポリラインショーがたくさんあります。
http://i4.tietuku.com/bc378d1cd2c24142.png
1 つのグリッドに線の長さを含むポリラインに基づいてラスター データを生成したいと考えています。
例えば:
http://i4.tietuku.com/a09ba42a122f561a.png
===== 追加 ====
これからArcGISを使用して答えを見つけました
これからRを使って
私の目標は、いくつかのオープンソースモジュール(gdal、fionaなど)でPythonを使用してポリラインをラスターに変換することです
python - ポイントを陸上に保持し、水上にドロップする
実際にはポイントの結合であるポリゴンがいくつかあります。土地ではないポイント (ただし、川、湖、海など) を合理的に迅速に削除する方法が必要です。
だから私はこれまでのところ、左の写真から右の写真に移動する以下の方法を思いつきました:
次に、ループでポイントをテストします。
私の目的には問題ない 3 つのシェープ ファイルを使用します (湖のファイルは少し粗いです): coast、lakes、small lakes。
ただし、10,000 ポイントの場合、コードは少し遅くなります (約 30 個のファイルがあるため、300,000 ポイントを調べる必要があります)。
次のいずれかが可能かどうか疑問に思っていました。
1) ポイントをループして point.within(shape) をチェックする代わりに、シェイプをループして shape.contains(point) をチェックしています -> 改善があるかどうかわかりませんでしたか?
2)空間インデックスを使用するとおそらくこれが高速化されますが、RTree は Python 3.4 では動作しないと思います
3) おそらく、境界をチェックするだけのより高速な関数 (ラフを含む) があり、それをステップ 1 として使用し、次にステップ 2 として含むことができます。
4) ポイントをループする代わりに、ベクトル化して一度に渡す方法はありますか?
5) matpotlib の path.contains_point を使用できるように、形状の良いポリゴンをパスに変換する方が速いのではないでしょうか?
6) 最後に、ポイント イン ポリゴン テストにメルカトル図法を使用する必要があることに気付きましたが、私にはラフ カットで問題ありません (いずれにせよ、水のシェープファイルが非常に正確であるとは言えません)。
ありがとうございました
python - シェープファイルのパッチのサブセットのマップ境界を見つける (Python)
Python でシェープファイルにいくつかの地域のマップを描画しようとしています。私の基本的なアプローチはこれです:
これに関する私の問題は、シェープファイルがより広い地理的領域をカバーしていることですが、この領域のサブセットのみをプロットしたいということです (たとえば、英国のシェープファイルを持っているが、ウェールズのすべての地域の地図をプロットしたいと考えています)。これで、正しい領域を識別し、上記の例のようにそれらのパッチのみを追加できますが、matplotlib は引き続きシェープファイル内のすべての領域の境界をプロットし、フィオナのbounds
方法によって識別された境界は明らかにパッチのサブセットから独立しています。選ばれました。
これに関連して 2 つの質問があります。
シェープファイルで定義されたパッチのサブセットの境界のみを描画するように matplotlib を取得するにはどうすればよいですか?
bound
フィオナのメソッドがシェープファイル全体に対して行うのと同様に、パッチのサブセットの境界を取得するにはどうすればよいですか?
python - Python fiona 読み取りポリゴンの使用
今のところ、fionaを使用して 1 つの特定のポリゴンを読み取り、次のようにプロット できます。
次のような出力:
http://i13.tietuku.com/65d7d9d6a423a5d3.png
しかし、シェープファイルが次のように複数のシェープファイルで構成されている場合:
http://i13.tietuku.com/a331edcbeec29d5e.png
上記の同様のコードを使用して、4 つの異なる領域を表す 4 つのポリゴンを取得することはできません。
私の質問
fiona を使用して読み取り、複数の fiona.polygon に変換する方法 (私の例では、4 つのポリゴンを取得したい)。そして、各ポリゴンを使用してさらに多くの操作を行うことができます。