নীচে পাইথন ব্যবহার করে ইএসআরআই শেফফাইল অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কগুলি অ্যাক্সেস করার উপায় রয়েছে, যেমন স্থানের উল্লেখ, ক্ষেত্রের বৈশিষ্ট্য, ক্ষেত্রের মান ইত্যাদি information নীচের কোডটি কেবল বহুভুজ এবং পয়েন্টগুলির জন্য কাজ করে (কারণ আমি পলাইনের জন্য কোড লিখতে পারিনি)। আমি আর্কজিআইএস ডেস্কটপ সহায়তা 9.3 এর চারপাশে ছড়িয়ে ছিটিয়ে থাকা কিছু কোডকে মূলত একসাথে আবদ্ধ করেছিলাম, আমার নিজের কিছু যুক্ত করেছি এবং এটি একটি ফাংশনে একসাথে রেখেছি। এটি আরকজিআইএস 9.3 দিয়ে লেখা হয়েছিল। আপনি একটি বহুভুজ শেফফিল বা পয়েন্ট শেফফাইলে পাস করতে সক্ষম হওয়া উচিত এবং যুক্তি অনুসারে এটি পরিচালনা করবে।
def get_shapefile( shape_file ):
# Import native arcgisscripting module
import arcgisscripting
# Create the geoprocessor object
gp = arcgisscripting.create(9.3)
# Identify the geometry field
desc = gp.Describe( shape_file )
shapefieldname = desc.ShapeFieldName
# Get shapefile Name
print
print 'Shapefile Name: ', desc.Name
# Get the spatial reference
spatial_reference = desc.SpatialReference.Name
print 'Spatial Reference: ', spatial_reference
print
# Create search cursor
rows = gp.SearchCursor( shape_file )
row = rows.Next()
# Enter while loop for each feature/row
while row:
# Create the geometry object
feat = row.GetValue(shapefieldname)
print '*' * 30
print
print 'Geometry related Information'
print
# Get Geometry Type
geometry_Type = feat.Type
print 'Geometry Type: ', geometry_Type
# Get the area of the feature
geometry_Area = feat.Area
print 'geometry_Area; ', geometry_Area
# Get the centroid for the feature
geometry_Centroid = feat.Centroid
print 'geometry_Centroid:', geometry_Centroid
# Get the extent for the feature
geometry_Extent = feat.Extent
print 'geometry_extent: ', geometry_Extent
print
print 'Get Attribute Table Information'
# Get all the fields for the feature class
fields = desc.Fields
total_number_of_fields = len( fields )
print 'Total number of fields: ', total_number_of_fields
print
print 'List attribute table related information:'
print
field_num_cntr = 0
# Loop through all the fields in the feature class
for field in fields:
print '*'*5, field_num_cntr, '*'*5
print
print 'field Type: ', field.Type
print 'Scale: ', str(field.Scale)
print 'Precision: ', str(field.Precision)
print field.Name, '=> ', row.GetValue( field.Name )
print
field_num_cntr += 1
if geometry_Type == 'polygon':
# Variable to keep track of how many multipart polygons are in
# featureclass
partnum = 0
# Count the number of points in the current multipart feature
partcount = feat.PartCount
print
print 'Number of polygons in feature class: ', partcount
print
# Enter while loop for each part in the feature (if a singlepart feature
# this will occur only once)
while partnum < partcount:
# Print the part number
print "Part ", str(partnum), "of", partcount, ":"
print
part = feat.GetPart(partnum)
pnt = part.Next()
pntcount = 0
# Enter while loop for each vertex
while pnt:
# Print x,y coordinates of current point
print 'X coord:', pnt.x, 'Y coord:', pnt.y
pnt = part.Next()
pntcount += 1
# If pnt is null, either the part is finished or there is an interior ring
if not pnt:
pnt = part.Next()
if pnt:
print "Interior Ring:"
partnum += 1
print
print 'Number of coordinates in feature class: ', pntcount - 1
print
elif geometry_Type == 'point':
feat = row.GetValue(shapefieldname)
# Get coords
pnt = feat.GetPart()
# Print x,y coordinates of current point object
print 'X coord:', pnt.x, 'Y coord:', pnt.y
row = rows.Next()
your_shapefile = 'Path\To\Your\Shapefile.shp'
get_shapefile( your_shapefile )