2017-11-21 3 views
0

私は座標のjson終点を呼び出すpythonスクリプトを実行しています。機能制限があるので、境界ボックスを縦にいくつかの小さな部分に分割する必要があります。この図のように繰り返し実行したいです。 enter image description herePythonで反復的に関心領域を分割し、緯度のリストを設定する

関心領域全体からは、機能が制限を超えています(この例では10個)。領域は正確に半分に分割され(数学的には簡単なので)、各半分がチェックされます。下半分は10を超えているので、もう一度分割され、最後に第2四半期が最後に分割され、結果として4つの領域が作成されます。

質問:私はこれをどのように実行しますか?

は、私は1次の地域であること、そして第二に、私はその後繰り返すことができ

latitudes = [[16,8],[8,6],[6,4],[4,0]] 

上記の例では、このように、上部と下部のペアであることと、ネストされたリストを使用して考えました。

リストにペアを追加するにはどうすればよいでしょうか。具体的には北から南の正しい順序で追加しますか?

Iは、特徴の正確な数を追加する必要があり、その分布が変化するので、領域の総数は再帰関数を使用して1から約8

+0

再帰を:それは成功した場合、地域を送って、リターンは、それ以外の場合は、半分にそれを分割し、地域を言いました各半分のtry/splitを再帰的に呼び出します。 – Faibbus

答えて

0

間であり、あなたが与えられたサブセット天気をを確認することができそれは10以上の要素を持っています。そうでなければ、サブセットを分割する必要はない。それ以外の場合は、サブセットを半分に分割して同じ操作を実行します。次のように

あなたはこれを実装することができます:救助へ

data_points = [2, 1, 1, 1, 4, 4, 3, 3, 1, 2, 1, 1, 1, 1, 1, 1] 

def compute_cover(points, offset=0): 
    if sum(points) <= 10 or len(points) == 1: 
     return [(offset, offset + len(points))] 
    else: 
     half = len(points) // 2 
     return compute_cover(points[0:half], offset) + compute_cover(points[half:], offset + half) 

print(compute_cover(data_points)) 

意志出力

[(0, 4), (4, 6), (6, 8), (8, 16)] 
関連する問題