Eu sou muito novo na programação Python e fui encarregado de escrever um programa para exportar um arquivo csv de uma classe de recurso de geodatabase de arquivo. O csv deve conter apenas determinados campos e os registros exportados devem ser baseados na data da última edição. Em outras palavras, o arquivo csv será criado diariamente, contendo apenas os últimos recursos adicionados, com base no "campo da data da última edição".
Eu tenho isso até agora:
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))
No entanto, está exportando tudo.
arcgis-desktop
python
arcpy
csv
user35267
fonte
fonte
Respostas:
Uma solução mais simples seria converter para o formato de arquivo dbf; nesse caso, você pode usar a tabela em tabela pronta para uso (conversão) . Essa ferramenta também permite a liberdade de selecionar quais campos incluir como FieldMappings , além de gerar diretamente um arquivo .dbf.
fonte
This tool can convert input tables to dBASE (.dbf), geodatabase (personal, file, or SDE), or INFO tables
O ArcGIS já possui uma ferramenta para fazer isso chamada " Exportar Atributos de Recursos para ASCII ", que está na caixa de ferramentas Estatísticas Espaciais -> Utilitários.
A vantagem desta ferramenta sobre "Tabela em tabela" é que você pode 1) definir seu delimitador (espaço, vírgula, guia), 2) escolher os campos que deseja exportar e 3) escolher se deseja ou não exportar seus nomes de campos para o arquivo CSV. Também é um script Python, para que você possa copiar esse arquivo e criar sua própria variante com muita facilidade.
Portanto, se você deseja criar um modelo ou script para exportar apenas os recursos mais recentes com base no "campo da data da última edição", basta preceder a ferramenta "Exportar atributos do recurso para ASCII" com a ferramenta "Selecionar camada por atributo" na qual você chama a consulta que você deseja executar.
fonte
Digamos que você tenha um arquivo GDB chamado
treedn.gdb
com uma tabela chamadatrees
e deseje exportar para um CSV chamadotrees.csv
.Você pode fazer algo semelhante a isto:
o artigo inteiro está localizado aqui .
fonte
O ArcGIS 10.3 possui uma nova função ConvertTableToCsvFile_roads para converter uma tabela em um arquivo CSV. Isso é bastante simples de usar:
Veja aqui o documento completo.
Esteja ciente de que você precisa de uma licença da caixa de ferramentas Estradas e Rodovias para usá-la. A partir da versão 10.4, essa função é chamada
ConvertTableToCsvFile_locref
.fonte