আরকিপাইয়ের মাধ্যমে XYZ ASCII ফাইলটিতে টেবিলটি রফতানি করা হচ্ছে?


23

আমি আর্কপাইয়ের মাধ্যমে কোনও পাঠ্য ফাইলে একটি আর্কজিআইএস টেবিল ( নমুনা সরঞ্জাম দিয়ে তৈরি ) রফতানির জন্য উপায় খুঁজছি ।

আমি টেবিলে ডানদিকের ক্লিক করে প্রসঙ্গ মেনু দিয়ে আর্কজিআইএস এ এটি করতে পারি, তবে এটির স্ক্রিপ্টের কোনও উপায় খুঁজে পাইনি।

উত্তর:


31

আপনি আপনার টেবিল থেকে ডেটা ধরতে এবং একটি কমা-বিস্মৃত পাঠ্য ফাইলে লিখতে একটি কার্সার ব্যবহার করে এটি করতে পারেন।

সম্পাদনা: csvপাইথনের মডিউলটি ব্যবহার করে কাজটি সম্পাদনের জন্য আমি কোডের আরও সংক্ষিপ্ত ব্লক যুক্ত করছি

আরকিপি.ডি কার্সার ব্যবহার করে নতুন উত্তর:

import arcpy,csv

table =r'c:\path\to\table'
outfile = r'c:\path\to\output\ascii\text\file'

#--first lets make a list of all of the fields in the table
fields = arcpy.ListFields(table)
field_names = [field.name for field in fields]

with open(outfile,'wb') as f:
    dw = csv.DictWriter(f,field_names)
    #--write all field names to the output file
    dw.writeheader()

    #--now we make the search cursor that will iterate through the rows of the table
    with arcpy.da.SearchCursor(table,field_names) as cursor:
        for row in cursor:
            dw.writerow(dict(zip(field_names,row)))

পুরানো স্টাইলের কার্সার ব্যবহার করে নতুন উত্তর:

import arcpy,csv

table =r'c:\path\to\table'
outfile = r'c:\path\to\output\ascii\text\file'      

#--first lets make a list of all of the fields in the table
fields = arcpy.ListFields(table)
field_names = [field.name for field in fields]

with open(outfile,'wb') as f:
    w = csv.writer(f)
    #--write all field names to the output file
    w.writerow(field_names)

    #--now we make the search cursor that will iterate through the rows of the table
    for row in arcpy.SearchCursor(table):
        field_vals = [row.getValue(field.name) for field in fields]
        w.writerow(field_vals)
    del row

পুরানো উত্তর:

import arcpy

table =r'c:\path\to\table'
outfile = r'c:\path\to\output\ascii\text\file'


#--first lets make a list of all of the fields in the table
fields = arcpy.ListFields(table)

i = 1
f = open(outfile,'w')
for field in fields:
    #--write all field names to the output file
    if i < len(fields):
        f.write('%s,' % field.name)
        i += 1
    else:
        f.write('%s\n' % field.name)

#--now we make the search cursor that will iterate through the rows of the table
rows = arcpy.SearchCursor(table)
for row in rows:
    i = 1
    for field in fields:
        if i < len(fields):
            f.write('%s,' % row.getValue(field.name))
            i += 1
        else:
            f.write('%s\n' % row.getValue(field.name))
del rows
f.close()

খুশি আমি আপনাকে @ টনি
জেসন

1
@ জেসন - ধন্যবাদ, এটি খুব সহায়ক ছিল। আমি নতুন তাই আপনার গৃহীত উত্তরের বিষয়ে মন্তব্য করার মতো খ্যাতি আমার নেই। আমি মনে করি নতুন উত্তরে একটি ছোট্ট ভুল আছে যা একটি আরকিপি.ডি কার্সার ব্যবহার করে। with arcpy.da.SearchCursor(table) as cursor:হওয়া উচিতwith arcpy.da.SearchCursor(table, field_names) as cursor:

টাইলারজি কে ভাল ধরুন, আমি ডেটা অ্যাক্সেস কার্সারের দ্বারা প্রয়োজনীয় ক্ষেত্রের তালিকা অন্তর্ভুক্ত করার জন্য উত্তরটি সম্পাদনা করেছি। ধন্যবাদ।
জেসন

8

আপনি চতুরতার সাথে অর্কিপি নামের "এক্সপোর্ট ফিচার অ্যাট্রিবিউট" চান করতে পারেন E এক্সপোর্টএক্সওয়াইভিস্ট্যাটস

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//005p0000003v000000

import arcpy

feature = "path to feature here"
# fieldnames must be explicitly provided. Note that you will get additional fields based on the feature type (e.g., "XCoord" and "YCoord" for point features)
fieldnames = [X.name for X in arcpy.ListFields(feature)]
# delimiter options "SPACE", "COMMA", or "SEMI-COLON"
# header options "ADD_FIELD_NAMES" or "NO_FIELD_NAMES"
arcpy.ExportXYv_stats(feature, fieldnames, "SPACE", "path to outfile", "ADD_FIELD_NAMES")

হত্যার জন্য +1! এটি ইন্টারেক্টিভভাবে কাজ করে তবে কোনও মডেল বা স্ক্রিপ্টের মতো নয়, কারণ ক্ষেত্রের নামগুলি অবশ্যই নির্দিষ্ট করতে হবে।
ম্যাট উইলকি

1

এখানে আমি ব্যবহার করি কোডের একটি অংশ। এটি আমার সমস্ত আউটপুট ফাইলগুলি 0,100 থেকে পরিসীমা সহ .txt ফাইলটিতে তৈরি করতে সহায়তা করে। আশা করি এটি সাহায্য করবে

for x in xrange(0,100):
    if os.path.isfile(outfolder + "/" + "outputs" + str(x) +".shp" ):
       inFeatures = "selected_features" + str(x) +".shp"
       export_ASCII = "ASCII " + str(x) +".txt"
       arcpy.ExportXYv_stats(inFeatures, ["Cur1_pr2","Cur3_pl1","slp1"],"SPACE", export_ASCII,"ADD_FIELD_NAMES")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.