Hi, We have a field data collection workflow focused on static points. At each point one or more photos will be taken each field season. The photos need to be easily extracted from ArcGIS for other purposes. To do this effectively, the photos must have an identifiable name. Photo1, Photo2, etc., don't work for us. I need to be able to calculate the photo name, such as:
SITE1_2021_03_31_Num_01
This allows the photos to be useful in other work environments.
Is there a way to do this? With Arcade possibly? I would rather not shift to Survey123 if I can avoid it.
Thanks, Mike Koutnik
Looks like this has been submitted as an Idea:
Vote it up and add some detail of your specific workflow.
Hi Mike,
I don't know of any native functions to do what you're asking. I also upvoted @AndrewBowne's suggested post. I don't know if this is a possibility for you, but you could write a short python script to rename the photos. You would just pull down the hosted feature layer into memory, download the attachments for each record (each record you haven't already processed), then rename the files using the attributes of that record, and re-upload them to that same record. There may be a faster way even in python, but I didn't see one after a quick search.
Hi Travis,
We've thought about that option. And that is what we may need to try as a workaround. But the existing photos are full-res on relatively new devices. So they are around 5MB each. This week I downloaded the feature class (with attachments) to an fGDB from a group layer in Online. Then I republished the feature class into its own layer in Online. For 897 point features with a total of about 2,000 photos. It took about 6.5 hours to republish the service from Pro. I'd prefer not to do through that again with the Python script. But if there was a way to reduce the resolution of the photo as I was renaming it and reinserting it, then it might be worth it. 😉
Thanks, Mike K
Hi, I noticed that ArcGIS Pro exposes the actually attachments table. And the photo names appear to be an editable columns. So a simple geoprocessing task MAY be one way to accomplish what I need. But I haven't tried that approach yet.