1

さまざまな単純な (自己交差なし) 独立したポリゴンをすべて同じ領域 (異なる領域で複数回行います) で作成したいと思いますが、周囲の長さは異なります。理想的には、さまざまなエッジ/面積比の 10 ~ 20 個のポリゴン (合計 100 ~ 200 個のポリゴン) を持つ 10 個のエリアを持つ要因計画があると思います。1 つの領域に対して 10 個のポリゴンを生成し、乗数を使用して、10 個の異なる領域の複製のそれぞれの合計サイズを増減できると思います。実際には、形状の側面がまっすぐである必要はありませんが、そのほうが簡単だと思いました。多角形は凸状である必要はなく、角度が大きく変化したり、形状が不規則になったりする可能性がありますが、そうである必要はありません。非常に不規則な多角形の利点 (辺の長さが異なる長方形とは対照的に、

これは、風景とさまざまなサイズと形状の森林収穫量を比較するために行っています (最終的には、ポリゴンごとに野生生物の数を計算する関数を適用します)。実用的なソリューションであれば何でも構いませんが、R、Python、および/または GIS (ArcGIS または QGIS) を使用したソリューションが優先されます。ご意見やご提案をありがとうございます。

4

1 に答える 1

4

GeoPandasモジュールは、まさにあなたが探しているものを実行しているようです。Python 用であり、Python の優れたデータ分析ライブラリを利用し、Gis および fiona マップをサポートし、広範なポリゴンの作成もサポートします。ここでチェックしてください:

https://github.com/kjordahl/geopandas?source=cc

Readme から:

GeoPandas は、地理データのサポートを pandas オブジェクトに追加するプロジェクトです。現在、それぞれ pandas.Series および pandas.DataFrame のサブクラスである GeoSeries および GeoDataFrame タイプを実装しています。GeoPandas オブジェクトは、形の整ったジオメトリ オブジェクトに作用し、ジオメトリ操作を実行できます。

ポリゴン作成の例:

>>> p1 = Polygon([(0, 0), (1, 0), (1, 1)])
>>> p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
>>> p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
>>> g = GeoSeries([p1, p2, p3])
>>> g
0    POLYGON ((0.0000000000000000 0.000000000000000...
1    POLYGON ((0.0000000000000000 0.000000000000000...
2    POLYGON ((2.0000000000000000 0.000000000000000...
dtype: object

最終結果は次のとおりです。多角形

不規則な多角形のより複雑な例:

>>> boros = GeoDataFrame.from_file('nybb.shp')
>>> boros.set_index('BoroCode', inplace=True)
>>> boros.sort()
>>> boros
               BoroName    Shape_Area     Shape_Leng  \
BoroCode
1             Manhattan  6.364422e+08  358532.956418
2                 Bronx  1.186804e+09  464517.890553
3              Brooklyn  1.959432e+09  726568.946340
4                Queens  3.049947e+09  861038.479299
5         Staten Island  1.623853e+09  330385.036974

                                                   geometry
BoroCode
1         (POLYGON ((981219.0557861328125000 188655.3157...
2         (POLYGON ((1012821.8057861328125000 229228.264...
3         (POLYGON ((1021176.4790039062500000 151374.796...
4         (POLYGON ((1029606.0765991210937500 156073.814...
5         (POLYGON ((970217.0223999023437500 145643.3322...

繁雑

于 2013-07-19T14:50:52.253 に答える