ここで覚えておくべきことの1つは、実際に植物に餌を与えるためにどの地域が使用されているかを正確に表そうとしているのではないということです。たとえば、郡は東半分にトウモロコシ生産のすべてを持っているかもしれません。(そして、植物は隣接する郡からさえ引っ張っていないかもしれません。)
隣接する郡に基づくおおよその相対的な縮尺を示す地図作成規則が必要です。これは私がこれをどうやってやるかです...
エタノールプラントポイントレイヤーには、トウモロコシが必要、平均収量、バッファー半径、および残差という4つの属性があります。必要なトウモロコシは一定のままです。バッファー半径は、現在使用されているバッファー半径です。平均収量はその半径内の平方マイルあたりの平均収量であり、残差は必要なトウモロコシと平均収量* pi *半径^ 2の差です。エタノール植物層にも一意の識別子が必要です(結合の場合)。
残差を最小限に抑えようとしています。残差のカットオフを設定する必要があります(たとえば、計算された量が必要なトウモロコシの100ブッシェル以内にある場合は、半径をさらに調整しません)。
また、2つの属性を持つカウンティレイヤーが必要です。1平方マイルあたりの平均トウモロコシ収量と生産されたトウモロコシの量(これは、面積*平均トウモロコシ収量から取得できます)。最後は実際には後で計算するためのダミー変数です。平方マイルあたりの平均トウモロコシ収量がゼロの郡がある場合は、代わりに任意の小さい数に設定します。そのフィールドのゼロは後で問題を引き起こします。
郡の通常の幅(1マイルなど)よりも小さい初期の任意の半径を選択し、すべての植物の半径の値を設定します。これらの操作をジオデータベースで実行すると、エリア属性が自動的に維持されます。
次のセクションでは、Pythonスクリプトまたはジオプロセシングモデルとして自動化することができます。
- バッファー距離のradius列を使用して、エタノールプラントでバッファーを実行します。
- 結果のバッファーを郡レイヤーと交差させ、すべての属性を保持します。
- 交差出力の場合、各フィーチャについて、平均トウモロコシ収量*フィーチャの新しい領域を使用して生産されたトウモロコシを再計算します。
- エタノールプラントの一意のIDをマージ属性として使用して、交差出力でマージを実行します。マージされたすべての機能から生成されたトウモロコシを合計する要約統計があります。これにより、各植物のバッファ半径内で生産されたトウモロコシが得られます。
- サマリー統計を使用して、生成されたコーンの合計をフィーチャの面積で除算して、マージ出力の平均歩留まり属性を再計算します。
- エタノールプラントの一意のIDを使用して、マージ出力を元のエタノールプラントに結合します。エタノールプラントの平均収量を、対応するマージ機能の平均収量と等しくなるように計算します。結合を削除します。
- 残差を計算します。これは初期半径ではかなり大きいはずですが、新しい半径を計算した後、次のパスでかなり縮小します。
- 残差がカットオフよりも大きいプラントのみについて、バッファー半径を再計算します。新しい半径は(コーンが必要/(pi *平均収量))^ 0.5です
- すべてのフィーチャの残差がカットオフより小さくなるまで、手順1〜8を繰り返します。これが3〜4パス以上かかる場合は、カットオフを増やすことを検討することをお勧めします。これも、これは地図作成の規則にすぎず、エタノールの生産に使用される正確な領域を正確に表したものではないためです。
上記で述べたように、ステップ1から8を数回繰り返すため、ステップ1から8をスクリプト化またはモデル化したい場合があります。すべてを手動で実行するのも同じくらい簡単です。また、オプションで、ステップ8で残差を使用する代わりに、すべてのフィーチャに十分な残差があるステップ7からの出力が得られるまで、すべてのフィーチャの半径を常に再計算することもできます。
残差に満足できるポイントに到達すると、最後のパスのステップ1からのバッファー出力が、マップに使用するバッファーになります。