2016-11-02 3 views
0

私はPythonにとってまだまだ新しいです。私は、郡内のビルディング・フットプリントを税マップ上にマッピングするプロジェクトに向かっています。 https://gis.stackexchange.com/questions/6724/creating-line-of-varying-distance-from-origin-point-using-python-in-arcgis-desktArcGISでPythonを使用して原点からポリゴン/ポリラインを作成するには?

私たちのカマシステムが必要な情報と意見/テーブルを生成します。

私はこのプロジェクトのために非常に役立つ可能性が前の質問を発見しました。以下の例である:

PARID LLINE VECT      X_COORD Y_COORD 
1016649 0  R59D26L39U9L20U17  482547  1710874 

        180,59,270,26,0,39,90,9,0,20,90,17 (VECT column converted) 

Iは、カンマで区切られた角度及び距離に距離と方向コールであるVECT列を変換するためのいくつかのPythonの例を、発見しました。

私の質問:ではなく、静的な、ユーザが入力した数字よりもテーブルを利用するには、以下のスクリプトにループを実装するためにそこに方法は何ですか?これは、数千のポリゴンを構築するため、郡にとって非常に貴重です。以下

は、xまでの距離と角度を変更するためのスニペットで、Y点は、任意の提案をいただければ幸いのArcMap 10.2

#Using trig to deflect from a starting point 
import arcpy 
from math import radians, sin, cos 

origin_x, origin_y = (400460.99, 135836.7) 
distance = 800 
angle = 15 # in degrees 

# calculate offsets with light trig 
(disp_x, disp_y) = (distance * sin(radians(angle)),\ 
        distance * cos(radians(angle))) 
(end_x, end_y) = (origin_x + disp_x, origin_y + disp_y) 

output = "offset-line.shp" 
arcpy.CreateFeatureClass_management("c:\workspace", output, "Polyline") 
cur = arcpy.InsertCursor(output) 
lineArray = arcpy.Array() 

# start point 
start = arcpy.Point() 
(start.ID, start.X, start.Y) = (1, origin_x, origin_y) 
lineArray.add(start) 

# end point 
end = arcpy.Point() 
(end.ID, end.X, end.Y) = (2, end_x, end_y) 
lineArray.add(end) 

# write our fancy feature to the shapefile 
feat = cur.newRow() 
feat.shape = lineArray 
cur.insertRow(feat) 

# yes, this shouldn't really be necessary... 
lineArray.removeAll() 
del cur 

に生成されます。

貴重な時間と知識をありがとう。

答えて

1

すべての異なる値を保持する特定のテーブルから辞書を作成することができます。例:

d = {1:{"x":400460.99,"y":135836.7,"distance":800,"angle":15}, 
    2:{"x":"etc","y":"etc","distance":"etc","angle":"etc"}} 


for k in d.keys(): 
    origin_x, d[k]["x"] 
    origin_y = d[k]["y"] 
    distance = d[k]["distance"] 
    angle = d[k]["angle"] 

    #rest of the code 
    #..... 
+0

ありがとうございました。すべてのポリゴンの各行に独自の辞書を作成する必要がありますか?この質問で述べたように、我々は数千のポリゴンを作成する必要があります。 @Daniel –

+0

@MichaelCoreええ、データがテーブルから来ている場合は、ポリゴンIDを割り当てて、その属性を持つダイを作成できます。手動ではなく動的にダイスを作成する必要があります。 –

+0

洞察力に感謝します。私はいくつかの料理本やヘルプファイルをチェックし、私が生成できるものを見ていきます。私は共有するのに役立つものがあるとすぐに私のコードを記入し、あなたの答えに印をつけます。大変ありがとう@ダニエル –

関連する問題