<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: foto hernoemen naar datum waarop de foto is gemaakt (exif) in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335925#M26315</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You might try the exifread module&amp;nbsp;at &lt;A href="https://pypi.org/project/ExifRead/" rel="nofollow noopener noreferrer" target="_blank"&gt;https://pypi.org/project/ExifRead/&lt;/A&gt;.&amp;nbsp; Sample code would be like:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; glob

&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; exifread
&lt;SPAN class="comment token"&gt;&lt;SPAN&gt;# info on exifread at &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fpypi.org%2Fproject%2FExifRead%2F" target="_blank"&gt;https://pypi.org/project/ExifRead/&lt;/A&gt;&lt;/SPAN&gt;

path &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; r&lt;SPAN class="string token"&gt;'C:\Path\to\photo\folder'&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; filename &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; glob&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;glob&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;join&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'*.jpg'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt; filename
&amp;nbsp;&amp;nbsp;&amp;nbsp; f &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; open&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;filename&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'rb'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# open read only, binary&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; tags &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; exifread&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;process_file&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;f&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; f&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;close&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt; tags&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Image DateTime'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; newname &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;join&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'{}.jpg'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;str&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tags&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Image DateTime'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;replace&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;':'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'-'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;replace&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;' '&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'_'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;rename&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;filename&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; newname&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# assumes that all date/times are different, otherwise an error will occur‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You would need to add some code to deal with errors such as missing exif tags and possible duplicate dates.&amp;nbsp; You may also want to adjust the date/time format in your file name, perhaps appending it to the original filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another option to read exif is with the pillow module; information at &lt;A href="https://github.com/python-pillow/Pillow" rel="nofollow noopener noreferrer" target="_blank"&gt;https://github.com/python-pillow/Pillow&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You may also want to look at&amp;nbsp;two arcpy tools at&amp;nbsp;&lt;A href="http://desktop.arcgis.com/en/arcmap/latest/tools/data-management-toolbox/an-overview-of-the-photos-toolset.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;An overview of the Photos toolset.&lt;/A&gt; These tools can assist in matching photos to points or place them on a map using exif data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will try to answer your questions about working with photos that are still online.&amp;nbsp; Are you using your own server portal or are you using AGOL?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 15:55:06 GMT</pubDate>
    <dc:creator>RandyBurton</dc:creator>
    <dc:date>2021-12-11T15:55:06Z</dc:date>
    <item>
      <title>foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335921#M26311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Op Arcgis online worden foto's gemaakt via de collector bij diverse objecten.&lt;/P&gt;&lt;P&gt;Men wil nu de mogelijkheid hebben om de foto's via ArcgisPro te hernoemen naar de datum(en tijd) waarop de foto's zijn gemaakt (info staat in Exif bij de foto)&lt;/P&gt;&lt;P&gt;Is dit via Python te doen?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Aug 2018 20:41:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335921#M26311</guid>
      <dc:creator>G_A_Venhorst</dc:creator>
      <dc:date>2018-08-24T20:41:40Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335922#M26312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Approximate translation via google:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN lang="en"&gt;rename the photo to the date the photo was taken (exif)&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="display: none;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN&gt;On Arcgis online photos are taken via the collector at various objects.&lt;/SPAN&gt; &lt;SPAN&gt;They now want to be able to rename the photos via ArcgisPro to the date (and time) on which the photos were taken (info is in Exif on the photo) Is this possible via Python?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Aug 2018 21:34:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335922#M26312</guid>
      <dc:creator>RandyBurton</dc:creator>
      <dc:date>2018-08-24T21:34:04Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335923#M26313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN&gt;I have read some comments about the removal of exif data by Collector, but that was a while ago.&lt;/SPAN&gt; &lt;SPAN&gt;Can you check whether the exif data is intact when you work with the photo in Pro?&lt;/SPAN&gt; &lt;SPAN&gt;If that is the case, there must be a way to rename the file using python and exif data.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Via google:&lt;/P&gt;&lt;P&gt;Ik heb wat opmerkingen gelezen over het verwijderen van exif-gegevens door Collector, maar dat was een tijdje geleden. Kun je controleren of de exif-gegevens intact zijn als je met de foto in Pro werkt? Als dat het geval is, moet er een manier zijn om het bestand te hernoemen met behulp van python- en exif-gegevens.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Aug 2018 21:40:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335923#M26313</guid>
      <dc:creator>RandyBurton</dc:creator>
      <dc:date>2018-08-24T21:40:41Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335924#M26314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ongeveer 80% van de foto's hebben hun exif data nog beschikbaar.&lt;/P&gt;&lt;P&gt;Kan je de Foto_ATTACH tabel ook bekijken als de data nog online staat?&lt;/P&gt;&lt;P&gt;Of kan je ook een batch edit doen op een selectie objecten waarvan je de foto's wil aanpassen.&lt;/P&gt;&lt;P&gt;Er zijn meer dan 300 objecten, de meesten hebben 6 of meer foto's. Het is een inspectie over meer dan 3 jaar.&lt;/P&gt;&lt;P&gt;Bij elke incpectieronde moeten er nieuwe foto's worden gemaakt.&lt;/P&gt;&lt;P&gt;Echter is er nu niet meer te zien wanneer deze foto's zijn gemaakt.&lt;/P&gt;&lt;P&gt;De database is te groot om eerst locaal te zetten, dan aanpassen en vervolgens weer online te zetten vermoed ik.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Approximately 80% of the photos still have their exif data available.&lt;/P&gt;&lt;P&gt;Can you also view the Foto_ATTACH table if the data is still online?&lt;/P&gt;&lt;P&gt;Or you can also do a batch edit on a selection of objects for which you want to adjust the photos.&lt;/P&gt;&lt;P&gt;There are more than 300 objects, most of them have 6 or more photos. It is an inspection over more than 3 years.&lt;/P&gt;&lt;P&gt;New photographs have to be taken at each round of incidence.&lt;/P&gt;&lt;P&gt;However, it is now no longer possible to see when these photos were taken.&lt;/P&gt;&lt;P&gt;The database is too large to first set up locally, then modify and then put online again I suspect.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Aug 2018 04:18:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335924#M26314</guid>
      <dc:creator>G_A_Venhorst</dc:creator>
      <dc:date>2018-08-25T04:18:50Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335925#M26315</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You might try the exifread module&amp;nbsp;at &lt;A href="https://pypi.org/project/ExifRead/" rel="nofollow noopener noreferrer" target="_blank"&gt;https://pypi.org/project/ExifRead/&lt;/A&gt;.&amp;nbsp; Sample code would be like:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; glob

&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; exifread
&lt;SPAN class="comment token"&gt;&lt;SPAN&gt;# info on exifread at &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fpypi.org%2Fproject%2FExifRead%2F" target="_blank"&gt;https://pypi.org/project/ExifRead/&lt;/A&gt;&lt;/SPAN&gt;

path &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; r&lt;SPAN class="string token"&gt;'C:\Path\to\photo\folder'&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; filename &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; glob&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;glob&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;join&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'*.jpg'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt; filename
&amp;nbsp;&amp;nbsp;&amp;nbsp; f &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; open&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;filename&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'rb'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# open read only, binary&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; tags &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; exifread&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;process_file&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;f&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; f&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;close&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt; tags&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Image DateTime'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; newname &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;join&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'{}.jpg'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;str&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tags&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Image DateTime'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;replace&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;':'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'-'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;replace&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;' '&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'_'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;rename&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;filename&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; newname&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# assumes that all date/times are different, otherwise an error will occur‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;You would need to add some code to deal with errors such as missing exif tags and possible duplicate dates.&amp;nbsp; You may also want to adjust the date/time format in your file name, perhaps appending it to the original filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Another option to read exif is with the pillow module; information at &lt;A href="https://github.com/python-pillow/Pillow" rel="nofollow noopener noreferrer" target="_blank"&gt;https://github.com/python-pillow/Pillow&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You may also want to look at&amp;nbsp;two arcpy tools at&amp;nbsp;&lt;A href="http://desktop.arcgis.com/en/arcmap/latest/tools/data-management-toolbox/an-overview-of-the-photos-toolset.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;An overview of the Photos toolset.&lt;/A&gt; These tools can assist in matching photos to points or place them on a map using exif data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will try to answer your questions about working with photos that are still online.&amp;nbsp; Are you using your own server portal or are you using AGOL?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:55:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335925#M26315</guid>
      <dc:creator>RandyBurton</dc:creator>
      <dc:date>2021-12-11T15:55:06Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335926#M26316</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Yes the photo are online in AGOL.&lt;/P&gt;&lt;P&gt;We do not have a server.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Aug 2018 06:07:33 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335926#M26316</guid>
      <dc:creator>G_A_Venhorst</dc:creator>
      <dc:date>2018-08-25T06:07:33Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335927#M26317</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can see most of (perhaps all of) the information in&amp;nbsp;your attachment table&amp;nbsp;Foto__ATTACH.&amp;nbsp; I have yet to find a way to edit the attachment table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To view the information, log into your AGOL account.&amp;nbsp; At the top of the page select "Content".&amp;nbsp; On the next page, under "Layers", select the layer that has your attachments.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will take you to the REST Services Directory page for your layer.&amp;nbsp; At the bottom of the page, click the link "Query Attachments".&amp;nbsp; (This link is only available if the layer has attachments.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The form will look like the following image. In the box "Definition Expression" enter "OBJECTID &amp;gt; 0".&amp;nbsp; This will basically create a where clause: "where the OBJECTID of the parent table is greater than zero" and select all attachments.&amp;nbsp; You can limit the attachment types to "image/jpeg" if there are other types of attachments you&lt;/P&gt;&lt;P&gt;do not need.&lt;/P&gt;&lt;P&gt;&lt;IMG alt="Query Attachments" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/420545_queryAttachments.png" /&gt;&lt;/P&gt;&lt;P&gt;You should get links for the selected images which you can click and save the target.&amp;nbsp; It appears that all photos are renamed to "attachment##" when Collector&amp;nbsp;attaches them&amp;nbsp;to the parent table. I do&amp;nbsp;not know if this field can be edited.&amp;nbsp; You should see the information in the attachment table for each photo, but it will not be in a table format.&amp;nbsp; ID is the number of each row in the table; and there is a global ID for the attachment.&amp;nbsp; You can also see the parent's ObjectID and GlobalID.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;The above process can be scripted in Python, although I have not done it yet.&amp;nbsp; For additional information see this section in the REST API:&amp;nbsp; &lt;A href="https://developers.arcgis.com/rest/services-reference/query-attachments-feature-service-layer-.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;Query Attachments (Feature Service/Layer)&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are wanting to export all photos and rename them, &amp;nbsp;it may be easier to click "Export Data" option on the feature's page that shows the layers.&amp;nbsp; You can save it as a file geodatabase (zipped) and work with it in&lt;/P&gt;&lt;P&gt;desktop.&amp;nbsp; This way you can work with the Foto_ATTACH table directly.&amp;nbsp; I have used the following script to export and rename jpeg's from the related attachment table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; exifread

masterFC &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; r&lt;SPAN class="string token"&gt;'C:\path\to\file.gdb\parent'&lt;/SPAN&gt;
masterFlds &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'GlobalID'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'OBJECTID'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'Note'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# can grab a short text field for use if needed&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# Use list comprehension to build a dictionary from a da SearchCursor&amp;nbsp; &lt;/SPAN&gt;
masterDict &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;r&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;r&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; r &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;da&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SearchCursor&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;masterFC&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; masterFlds&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# print masterDict&lt;/SPAN&gt;

relatedTbl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; r&lt;SPAN class="string token"&gt;'C:\path\to\file.gdb\photo__ATTACH'&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# note 2 underscores in table name&lt;/SPAN&gt;
relatedFlds &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'REL_GLOBALID'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'ATTACHMENTID'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'DATA'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'CONTENT_TYPE'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;

fileLocation &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; r&lt;SPAN class="string token"&gt;'C:\path\to\attachments\folder'&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;with&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;da&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SearchCursor&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;relatedTbl&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; relatedFlds&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; cursor&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; item &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; cursor&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; item&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;3&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'image/jpeg'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# process only images&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;# item[0] is related GlobalID; take first item in masterDict tuple with that key&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f1 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; masterDict&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;item&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# this is the ObjectID of parent record&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f2 &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; item&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# this is the Attachment ID&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;# make new filename &lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"ATT_{}_{}"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;f1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; f2&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;# print filename&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="comment token"&gt;# we need to write to temporary file for exifread to work&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tempname &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;join&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fileLocation&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'{}.jpg'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;filename&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; open&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tempname&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'wb'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;write&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;item&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;2&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;tobytes&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; open&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tempname&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'rb'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tags &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; exifread&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;process_file&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;f&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# has to be a file to process&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;close&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; tags&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Image DateTime'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="keyword token"&gt;is&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;not&lt;/SPAN&gt; None&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# may need to also check length in case of error&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; theDate &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; str&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tags&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Image DateTime'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;split&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;' '&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;replace&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;':'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;''&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newname &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;join&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fileLocation&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"{}_{}.jpg"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;filename&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; theDate&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"ObjectID: {} \tNotes: {}&amp;nbsp; \tFile: {}"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;f1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; masterDict&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;item&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; newname&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;rename&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;tempname&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; newname&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# should have unique name by using IDs from both parent and child table&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# keep the temporary name&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"ObjectID: {} \tNotes: {}&amp;nbsp; \tFile: {}"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;f1&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; masterDict&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;item&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; tempname&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;del&lt;/SPAN&gt;&amp;nbsp; cursor
&lt;SPAN class="keyword token"&gt;del&lt;/SPAN&gt; item‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;For my test, the results were:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;ObjectID: 263&amp;nbsp;&amp;nbsp; Notes: attachment test&amp;nbsp;&amp;nbsp; File: C:\attachments\ATT_263_1_20170910.jpg
ObjectID: 263&amp;nbsp;&amp;nbsp; Notes: attachment test&amp;nbsp;&amp;nbsp; File: C:\attachments\ATT_263_2_20170910.jpg
ObjectID: 264&amp;nbsp;&amp;nbsp; Notes: attach test&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File: C:\attachments\ATT_264_3_20170627.jpg
&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Please note that I have not worked with missing exif information so I don't know how exifread will respond.&amp;nbsp; It should be possible to include a few lines of code to use the attachment's ID to change the filename in the attachment table.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:55:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335927#M26317</guid>
      <dc:creator>RandyBurton</dc:creator>
      <dc:date>2021-12-11T15:55:09Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335928#M26318</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Randy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for all info.&lt;/P&gt;&lt;P&gt;The problem is that the data and the photos must remain online, the inspection continues.&lt;/P&gt;&lt;P&gt;The idea I have now is to edit the data via a replica and put it back online.&lt;/P&gt;&lt;P&gt;I thought about creating an extra field in the Foto_ATTACH table. (Date, txt field).&lt;/P&gt;&lt;P&gt;Then to be filled via field calculator from the exif info.&lt;/P&gt;&lt;P&gt;If that would work I would have been very helped, so this field could be used to rename the photo.&lt;/P&gt;&lt;P&gt;Then I could put the data back online.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Aug 2018 08:07:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335928#M26318</guid>
      <dc:creator>G_A_Venhorst</dc:creator>
      <dc:date>2018-08-26T08:07:44Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335929#M26319</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hoi Randy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is it possible to use the exif data in the popup info screen of the object?&lt;/P&gt;&lt;P&gt;If the name of the photo is shown in the popup, followed by the year on which it was made, I would have been very helped.&lt;/P&gt;&lt;P&gt;Renaming would then be less important.&lt;/P&gt;&lt;P&gt;Unfortunately, there is no create date in the attachment table.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Aug 2018 11:21:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335929#M26319</guid>
      <dc:creator>G_A_Venhorst</dc:creator>
      <dc:date>2018-08-26T11:21:47Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335930#M26320</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If there is date information in the parent record, it can be used to rename the photo.&amp;nbsp; Is this what you were thinking?&amp;nbsp; Perhaps you can attach a screen shot of a popup so I understand what you want to do. Also, can an individual feature have multiple photos over several years attached to it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have experimented with Collector and found that the current version allows you to rename attached photos: &lt;A href="https://doc.arcgis.com/en/collector/windows/collect-data/work-with-attachments.htm"&gt;Work with attachments&lt;/A&gt;.&amp;nbsp; This seems to work by downloading the photo to Collector, renaming the photo, and then uploading it to the same spot in the attachment file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found the &lt;A href="https://developers.arcgis.com/rest/services-reference/update-attachment.htm"&gt;Update Attachment&lt;/A&gt;&amp;nbsp;page in the REST API reference.&amp;nbsp; When used with the &lt;A href="https://developers.arcgis.com/rest/services-reference/query-attachments-feature-service-layer-.htm"&gt;Query Attachments (Feature Service/Layer)&lt;/A&gt;, it should be possible to develop a script to rename the photos.&amp;nbsp; The workflow would be something like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Log into your account and get a token&lt;/LI&gt;&lt;LI&gt;Verify that the&amp;nbsp;feature is set up for attachments&lt;/LI&gt;&lt;LI&gt;Use query attachments to get a list of all the photos in the feature&lt;/LI&gt;&lt;LI&gt;Working through the list, download each photo, examine the exif data and extract the date&lt;/LI&gt;&lt;LI&gt;If a date is found, use it to rename the photo file and use update attachment&amp;nbsp;to upload&amp;nbsp;the renamed file&amp;nbsp;to AGOL (the attachment name should pick up the new name)&lt;/LI&gt;&lt;LI&gt;If no date is found in the exif data, use data from the parent table if possible to date and rename the photo.&lt;/LI&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 26 Aug 2018 17:57:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335930#M26320</guid>
      <dc:creator>RandyBurton</dc:creator>
      <dc:date>2018-08-26T17:57:15Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335931#M26321</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gerard,&lt;/P&gt;&lt;P&gt;without addressing the issues with keeping the photos online, here is a tip for &lt;STRONG&gt;the best&amp;nbsp;&lt;/STRONG&gt;and versatile exif tool i know: &lt;STRONG&gt;ExifTool&lt;/STRONG&gt;&amp;nbsp;&lt;A class="link-titled" href="http://owl.phy.queensu.ca/~phil/exiftool/" title="http://owl.phy.queensu.ca/~phil/exiftool/"&gt;ExifTool by Phil Harvey&lt;/A&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;With his commandline (perl) tool you can really do anything with the exif information you want.&lt;/P&gt;&lt;P&gt;Hope this helps, Cor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Aug 2018 07:22:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335931#M26321</guid>
      <dc:creator>CorMelse</dc:creator>
      <dc:date>2018-08-29T07:22:37Z</dc:date>
    </item>
    <item>
      <title>Re: foto hernoemen naar datum waarop de foto is gemaakt (exif)</title>
      <link>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335932#M26322</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;Thanks for all comments and info.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN style="-webkit-text-stroke-width: 0px; word-wrap: break-word; z-index: auto; color: #222222; white-space: normal; font-weight: 400; letter-spacing: normal; text-decoration: none; font-size: 16px; min-height: 0px; font-style: normal; background-color: transparent; text-transform: none; word-spacing: 0px; font-variant: normal; text-indent: 0px; font-family: arial,sans-serif; position: static; orphans: 2; text-align: left;"&gt;It turned out that about 25% of the photos do not contain exif info&lt;/SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN style="-webkit-text-stroke-width: 0px; word-wrap: break-word; z-index: auto; color: #222222; white-space: normal; font-weight: 400; letter-spacing: normal; text-decoration: none; font-size: 16px; min-height: 0px; font-style: normal; background-color: transparent; text-transform: none; word-spacing: 0px; font-variant: normal; text-indent: 0px; font-family: arial,sans-serif; position: static; orphans: 2; text-align: left;"&gt;Finally, I used the "Geosetter" program to modify file names in bulk.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Sep 2018 06:09:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/foto-hernoemen-naar-datum-waarop-de-foto-is/m-p/335932#M26322</guid>
      <dc:creator>G_A_Venhorst</dc:creator>
      <dc:date>2018-09-05T06:09:49Z</dc:date>
    </item>
  </channel>
</rss>

