Saya sangat baru dalam pemrograman Python dan telah ditugaskan untuk menulis sebuah program untuk mengekspor file csv dari kelas fitur file geodatabase. CSV hanya boleh berisi bidang tertentu dan catatan yang diekspor harus didasarkan pada tanggal edit terakhir. Dengan kata lain file csv akan dibuat pada basis harian yang hanya berisi fitur terakhir yang ditambahkan berdasarkan "bidang tanggal edit terakhir".
Saya punya ini sejauh ini:
import arcpy
import os
import csv
import domainvalues
def export_to_csv(dataset, output, dialect):
"""Output the data to a CSV file"""
# create the output writer
out_writer = csv.writer(open(output, 'wb'), dialect=dialect)
# return the list of field names and field values
header, rows = domainvalues.header_and_iterator(dataset)
# write the field names and values to the csv file
out_writer.writerow(map(domainvalues._encodeHeader, header))
for row in rows:
out_writer.writerow(map(domainvalues._encode, row))
if __name__ == "__main__":
# Get parameters
dataset_name = arcpy.GetParameterAsText(0)
output_file = arcpy.GetParameterAsText(1)
delim = arcpy.GetParameterAsText(2).lower()
dialect = 'excel'
if delim == 'comma':
pass
else:
dialect = 'excel-tab'
try:
export_to_csv(dataset_name, output_file, dialect)
except Exception as err:
arcpy.AddError('Error: {0}'.format(err))
Namun itu mengekspor segalanya.
arcgis-desktop
python
arcpy
csv
pengguna35267
sumber
sumber
Jawaban:
Solusi yang lebih sederhana adalah mengonversi ke format file dbf, dalam hal ini Anda dapat menggunakan Table to Table (Konversi) yang out-of-the-box . Alat ini juga memberi Anda kebebasan untuk memilih bidang mana yang akan dimasukkan sebagai FieldMappings serta langsung menghasilkan file .dbf.
sumber
This tool can convert input tables to dBASE (.dbf), geodatabase (personal, file, or SDE), or INFO tables
ArcGIS sudah memiliki alat untuk melakukan ini yang disebut " Atribut Fitur Ekspor ke ASCII " yang ada di Statistik Spatial -> Utilities toolbox.
Keuntungan dari alat ini daripada "Table to Table" adalah Anda dapat 1) mendefinisikan pembatas Anda (spasi, koma, tab), 2) memilih bidang yang ingin Anda ekspor dan 3) memilih apakah akan mengekspor nama bidang Anda atau tidak ke file CSV. Ini juga merupakan skrip Python, sehingga Anda dapat menyalin file itu dan membuat varian sendiri dengan sangat mudah.
Jadi, jika Anda ingin membuat model atau skrip untuk mengekspor hanya fitur terbaru berdasarkan pada "bidang edit tanggal terakhir", cukup mendahului alat "Ekspor Atribut Fitur ke ASCII" dengan alat "Pilih Lapisan menurut Atribut" di mana Anda memanggil keluar permintaan yang ingin Anda jalankan.
sumber
Katakanlah Anda memiliki file GDB yang dipanggil
treedn.gdb
dengan tabel yang dipanggiltrees
dan Anda ingin mengekspor ke CSV yang dipanggiltrees.csv
.Anda dapat melakukan sesuatu yang mirip dengan ini:
seluruh artikel ada di sini .
sumber
ArcGIS 10.3 memiliki fungsi baru ConvertTableToCsvFile_roads untuk mengubah tabel menjadi file CSV. Ini cukup mudah digunakan:
Lihat di sini dokumen lengkapnya.
Ketahuilah bahwa Anda memerlukan lisensi Toolbox Jalan dan Jalan Raya untuk menggunakannya. Dari versi 10.4, fungsi ini disebut
ConvertTableToCsvFile_locref
.sumber