স্থানিক বিশ্লেষকের অনুপস্থিতিতে আপনি যা বর্ণনা করেন তার জন্য কার্যনির্বাহী:
arcpy.Buffer_analysis("target","../buffer.shp", "100 Meters")
arcpy.FeatureVerticesToPoints_management("buffer","../points.shp","ALL")
arcpy.AddField_management("points", "PID", "LONG")
arcpy.CalculateField_management("points", "PID", "[FID]")
arcpy.Near_analysis("points", "target","LOCATION")
arcpy.MakeXYEventLayer_management("points","NEAR_X","NEAR_Y","points_Layer")
arcpy.CopyFeatures_management("points_Layer","../from_points.shp")
arcpy.Merge_management("from_points;points","../pairs.shp")
arcpy.PointsToLine_management("pairs","../lines_2D.shp", "PID")
arcpy.InterpolateShape_3d("DEM","lines_2D","../lines_3D.shp")
arcpy.AddField_management("lines_3D", "XY", "TEXT")
এটি নতুন ফিল্ডে চালান (05/02/2018 এ স্থির):
def getPoint(shp):
part=shp.getPart(0)
n=len(part);L=0
for i in xrange(n):
p=part.getObject(i)
x=p.X;y=p.Y;z=p.Z
if i >0:
dX=X-x;dY=Y-y;dZ=Z-z;dL=pow((dX*dX+dY*dY+dZ*dZ),0.5);L+=dL
if L>=100: break
X,Y,Z=x,y,z
xNew=x+dX/dL*(L-100);yNew=y+dY/dL*(L-100)
return '%s %s' %(xNew,yNew)
#-----------------
getPoint( !Shape!)
এক্স এবং ওয়াই ক্ষেত্রগুলি লাইনগুলিতে যুক্ত করুন এবং ডি ব্যবহার করে এগুলিকে স্থাপন করুন:
!XY!.split(" ")[0] and !XY!.split(" ")[1]
উপরে 2 টি ক্ষেত্র থেকে এক্সওয়াই স্তর তৈরি করুন, এটি বৈশিষ্ট্য বর্গে অনুলিপি করুন এবং মূলের ভিতরে বাফার লাইন তৈরি করতে পয়েন্ট টু লাইন ব্যবহার করুন:
আউটপুট:
উপসংহার:
আপনার অঞ্চলটি অত্যন্ত খাড়া না হলে সরল বাফার কাজটি করবে, যদি না আপনি সম্ভবত প্রবাহের দৈর্ঘ্যের বিষয়ে কথা বলছেন। দুর্ভাগ্য, কারণ এর জন্য আপনাকে স্থানিক বিশ্লেষকের কাছ থেকে জলবিদ্যুৎ বিশ্লেষণ টুলবক্স প্রয়োজন