Estoy tratando de exportar archivos adjuntos de fotos de un conjunto de datos de cruces de ferrocarril tomados con ArcGIS Collector, y me gustaría personalizar la convención de nomenclatura para que el nombre del archivo contenga el número de cruce. Me encontré con un script de @Midavalo que logra esto, sin embargo los archivos exportados ya no tienen formato JPEG . No tengo casi ningún conocimiento de Python.
Tabla de características:
Tabla de anexos:
Escritura modificada:
import arcpy, os
from collections import defaultdict
inFC = r'C:\Users\Desktop\scratch\CustomExportAttachments\CopyFeatures.gdb\Crossings'
inTable = r'C:\Users\Desktop\scratch\CustomExportAttachments\CopyFeatures.gdb\Crossings__ATTACH'
fileLocation = r'C:\Users\Desktop\scratch\CustomExportAttachments\Attachments'
# Get dictionary of ObjectID and associated field value
myFeatures = dict()
with arcpy.da.SearchCursor(inFC, ['OID@', 'CROSSING']) as cursor:
for row in cursor:
myFeatures[row[0]] = row[1]
# Create dictionary to count usage of the field value (to increment files)
valueUsage = defaultdict(int)
# Loop through attachments, incrementing field value usage, and using that
# increment value in the filename
with arcpy.da.SearchCursor(inTable, ['ATTACHMENTID', 'ATT_NAME', 'REL_OBJECTID']) as cursor:
for row in cursor:
if row[3] in myFeatures:
attachment = row[0]
fieldValue = myFeatures[row[3]] # Value of specified field in feature class
valueUsage[fieldValue] += 1 # Increment value
filename = "{0}_{1}".format(fieldValue, valueUsage[fieldValue]) # filename = FieldValue_1
output = os.path.join(fileLocation, filename) # Create output filepath
open(output, 'wb').write(attachment.tobytes()) # Output attachment to file
Carpeta de salida:
¿Por qué las fotos adjuntas se exportan como "Archivo" en lugar de JPEG, y cómo debo cambiar el script para que esto ocurra?