Katy, yes, I am having the same issue. Why isn't there a tool for this that doesn't require a coder?
Hello together,It worked well with the provides codes. So, thank you very much again.Very best regrads.
'''---------------------------------------------------------------------------------- Tool Name: WriteFeaturesFromTextFile Source Name: WriteFeaturesFromTextFile.py Version: ArcGIS 9.1 Author: Environmental Systems Research Institute Inc. Required Argumuments: An input feature class An output text file An input decimal separator character that indicates what character should be used to separate the whole number from its decimal. Description: Writes the features of a feature class out to a text file. ----------------------------------------------------------------------------------''' import string, os, sys, locale, arcgisscripting gp = arcgisscripting.create() gp.overwriteoutput = 1 msgNotEnoughParams = "Incorrect number of input parameters." msgUseValidDecimalPointSep = "Please use one of the valid decimal point separators." try: if len(sys.argv) < 4: raise Exception, msgNotEnoughParams inputFC = sys.argv[1] outFile = open(sys.argv[2], "w") arg3poss = ['default python output', 'locale decimal point', 'comma', 'period', '$sep$'] if sys.argv[3].lower() not in arg3poss: raise Exception, msgUseValidDecimalPointSep if sys.argv[3].lower() == arg3poss[1]: locale.setlocale(locale.LC_ALL, '') sepchar = locale.localeconv()['decimal_point'] elif sys.argv[3].lower() == arg3poss[2]: sepchar = ',' elif sys.argv[3].lower() == arg3poss[3]: sepchar = '.' elif sys.argv[3].lower() == arg3poss[4]: sepchar = '$SEP$' elif sys.argv[3].lower() == arg3poss[0]: sepchar = "" inDesc = gp.describe(inputFC) inRows = gp.searchcursor(inputFC) inRow = inRows.next() outFile.write(inDesc.ShapeType + "\n") while inRow: feat = inRow.GetValue(inDesc.ShapeFieldName) if inDesc.ShapeType.lower() == "point": pnt = feat.getpart() outLine = str(inRow.GetValue(inDesc.OIDFieldName)) + " " + str(pnt.x) + " " + str(pnt.y) + " " + str(pnt.z) + " " + str(pnt.m) + "\n" if sepchar == "": outFile.write(outLine) else: outFile.write(outLine.replace(".", sepchar)) elif inDesc.ShapeType.lower() == "multipoint": partnum = 0 partcount = feat.partcount outFile.write(str(inRow.GetValue(inDesc.OIDFieldName)) + " " + str(partnum) + "\n") while partnum < partcount: pnt = feat.getpart(partnum) outLine = str(partnum) + " " + str(pnt.x) + " " + str(pnt.y) + " " + str(pnt.z) + " " + str(pnt.m) + "\n" if sepchar == "": outFile.write(outLine) else: outFile.write(outLine.replace(".", sepchar)) partnum += 1 else: partnum = 0 partcount = feat.partcount while partnum < partcount: outFile.write(str(inRow.GetValue(inDesc.OIDFieldName)) + " " + str(partnum) + "\n") part = feat.getpart(partnum) part.reset() pnt = part.next() pnt_count = 0 while pnt: outLine = str(pnt_count) + " " + str(pnt.x) + " " + str(pnt.y) + " " + str(pnt.z) + " " + str(pnt.m) + "\n" if sepchar == "": outFile.write(outLine) else: outFile.write(outLine.replace(".", sepchar)) pnt = part.next() pnt_count += 1 if not pnt: pnt = part.next() if pnt: outFile.write("InteriorRing\n") partnum += 1 inRow = inRows.next() outFile.write("END") outFile.flush() outFile.close() except Exception, ErrorDesc: gp.AddError(ErrorDesc[0]) if outFile: outFile.close() gp.AddError(gp.getmessages(2))
import arcpy infc = arcpy.GetParameterAsText(0) # Enter for loop for each feature # for row in arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]): # Print the current multipoint's ID # print("Feature {0}:".format(row[0])) partnum = 0 # Step through each part of the feature # for part in row[1]: # Print the part number # print("Part {0}:".format(partnum)) # Step through each vertex in the feature # for pnt in part: if pnt: # Print x,y,z coordinates of current point # print("{0}, {1}, {2}".format(pnt.X, pnt.Y, pnt.Z)) else: # If pnt is None, this represents an interior ring # print("Interior Ring:") partnum += 1
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.