<?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: How can I refresh metadata on geodatabase feature classes including thumbnails in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159603#M12229</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For future coders looking for "one" solution to this problem, I'm placing a short version of my final python solution.&lt;/P&gt;&lt;P&gt;Thanks to Heidi Kristenson for help with setting the thumbnail in the xml.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Problem: Update metadata on a geodatabase feature class from metadata maintained in a separate table. Include a thumbnail from an already created jpeg file.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Solution: Export the metadata from the target feature class to a scratch XML file. Modify the xml file elements with the new metadata values as well as the thumbnail. Import the modified metadata back into the target geodatabase feature class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Of course, our solution iterates through a list of geodatabase feature classes to update the metadata which this sample does not illustrate for simplicity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV&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="keyword token"&gt;import&lt;/SPAN&gt; arcpy
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; xml&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;etree&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ElementTree &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; ET
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; base64
&lt;SPAN class="keyword token"&gt;from&lt;/SPAN&gt; pyodbc &lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; connect &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; odbcconn
&lt;SPAN class="keyword token"&gt;from&lt;/SPAN&gt; pandas &lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; read_sql_query &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; readsqlqry

num_elements &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;
featName &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'your_featureClassName'&lt;/SPAN&gt;
fcPathName &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'Database Connections/your_geodatabase.sde/'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; featName

&lt;SPAN class="comment token"&gt;# set up a connection to read user maintained metadata from a SQL Server table&lt;/SPAN&gt;
metaConnStr &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'DRIVER={SQL Server};SERVER=servername;DATABASE=dbname;Trusted_Connection=yes'&lt;/SPAN&gt;
conn &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; odbcconn&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;metaConnStr&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# your metadata source data will differ from the following&lt;/SPAN&gt;
metaqry &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'SELECT [FULL_NAME],[COVER_NAME],[ABSTRACT],[UPDATEDATE],[OWNERNAME]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[PATH],[METAACCESS],[ONMAINT],[MAINTFREQ],[KNOWNERROR],[LINEAGE]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[DOMAIN],[RECTIFIED],[MAINTORG],[MAINTDESC],[LIBINPUT],[SOURCNAME]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[SOURCCONTACT],[SOURCDOCNAME],[SOURCDATE],[SOURCSCALE],[SOURCFORMAT]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[SOUR2NAME],[SOUR2CONTACT],[SOUR2DOCNAME],[SOUR2DATE],[SOUR2SCALE]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[SOUR2FORMAT],[ONMG],[MGLAYERNAME],[MGSCALELOW],[MGSCALEHIGH] '&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;'FROM [dbo].[metadata] WHERE [COVER_NAME] = \''&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; featName &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'\''&lt;/SPAN&gt;
df_FCMeta &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; readsqlqry&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;metaqry&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; conn&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# load query result to pandas dataframe&lt;/SPAN&gt;
df_row &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; df_FCMeta&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;iloc&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;# get the one row in the dataframe. There is only one row per COVER_NAME&lt;/SPAN&gt;

arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;env&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;overwriteOutput &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token boolean"&gt;True&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# export the ESRI generated metadata from the target feature class&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# install location&lt;/SPAN&gt;
dir &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;GetInstallInfo&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'desktop'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'InstallDir'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# stylesheet to use&lt;/SPAN&gt;
copy_xslt &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; r&lt;SPAN class="string token"&gt;'{0}'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&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;dir&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Metadata\Stylesheets\gpTools\exact copy of.xslt'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# temporary XML file&lt;/SPAN&gt;
xmlfile &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;CreateScratchName&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'.xml'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;workspace&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;env&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;scratchFolder&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# export xml&lt;/SPAN&gt;
arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;XSLTransform_conversion&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fcPathName&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; copy_xslt&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; xmlfile&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="comment token"&gt;# get the tree object and root element from the exported xml file&lt;/SPAN&gt;
tree &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;parse&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;xmlfile&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
root &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; tree&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;getroot&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# get the dataIdInfo element&lt;/SPAN&gt;
dataIdInfoEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; root&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;find&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'dataIdInfo'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# dataIdInfo purpose element&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# Create the needed purpose xml element&lt;/SPAN&gt;
subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;dataIdInfoEl&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'idPurp'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
subEl&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;text &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; df_row&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'FULL_NAME'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
num_elements &lt;SPAN class="operator token"&gt;+=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# dataIdInfo abstract element&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# Create the needed abstract xml element&lt;/SPAN&gt;
subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;dataIdInfoEl&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'idAbs'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
subEl&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;text &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; df_row&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'ABSTRACT'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
num_elements &lt;SPAN class="operator token"&gt;+=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# import the thumbnail image (jpg) from a file folder by name. Thumbnail file must exist (created by a separate process)&lt;/SPAN&gt;
thumbnailsPath &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'c:/thumbnails/'&lt;/SPAN&gt;
jpgFile &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; thumbnailsPath &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; featName &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'.jpg'&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;exists&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;jpgFile&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;with&lt;/SPAN&gt; open&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;jpgFile&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="keyword token"&gt;as&lt;/SPAN&gt; img_file&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
  strEncoded &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; base64&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;b64encode&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;img_file&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;read&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="comment token"&gt;# Create the needed thumbnail xml element&lt;/SPAN&gt;
 attrib &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'EsriPropertyType'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'PictureX'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
 subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;root&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Binary'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;subEl&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Thumbnail'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;subEl&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; attrib&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 subEl&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;text &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; strEncoded
 num_elements &lt;SPAN class="operator token"&gt;+=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; num_elements &lt;SPAN class="operator token"&gt;&amp;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;# save modifications to XML&lt;/SPAN&gt;
 tree&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;write&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;xmlfile&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;MetadataImporter_conversion&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;xmlfile&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; fcPathName&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'No changes to save'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&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;/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;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;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 08:25:03 GMT</pubDate>
    <dc:creator>HarlanMarshall</dc:creator>
    <dc:date>2021-12-11T08:25:03Z</dc:date>
    <item>
      <title>How can I refresh metadata on geodatabase feature classes including thumbnails</title>
      <link>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159598#M12224</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Our environment(in case it matters): Windows Server 2016 Standard, ArcGIS Desktop 10.6.1, SQL Server 2017 Standard, Python 2.7&lt;/DIV&gt;&lt;DIV&gt;We have an enterprise SQL Server geodatabase functioning as a read-only library of GIS data that is refreshed nightly with changes from a versioned geodatabase. When a feature class is updated, the feature class is replaced in the library geodatabase and metadata must be recreated for it there. We have lots of user created metadata for each feature class that is maintained in a SQL Server table. After the feature class is replaced in the library geodatabase we export the auto-generated metadata on the updated library feature class to an xml file, modify the exported xml with values from our metadata table, and import it back into the library feature class.&lt;/DIV&gt;&lt;DIV&gt;I've worked through the python code needed to do all that but I'm stuck on the issue of getting the thumbnail images from a folder of regularly updated jpeg files into the xml file for export to the library feature class metadata.&lt;/DIV&gt;&lt;DIV&gt;Can anyone please help with how this can be done programmatically without manually using the metadata editing tools in ArcCatalog one at a time. We refresh over a hundred feature classes every day.&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Nov 2019 16:39:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159598#M12224</guid>
      <dc:creator>HarlanMarshall</dc:creator>
      <dc:date>2019-11-08T16:39:35Z</dc:date>
    </item>
    <item>
      <title>Re: How can I refresh metadata on geodatabase feature classes including thumbnails</title>
      <link>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159599#M12225</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are no arcpy classes or functions at present, so you might want to jump on these for support&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.esri.com/ideas/4618-arcpy-metadata-editing-functions" target="_blank"&gt;Arcpy metadata editing functions&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.esri.com/ideas/14249" target="_blank"&gt;https://community.esri.com/ideas/14249&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;plus a few others&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Jun 2021 08:22:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159599#M12225</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2021-06-22T08:22:50Z</dc:date>
    </item>
    <item>
      <title>Re: How can I refresh metadata on geodatabase feature classes including thumbnails</title>
      <link>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159600#M12226</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am using &lt;A href="https://github.com/ucd-cws/arcpy_metadata"&gt;Arcpy Metadata Editor&lt;/A&gt;&amp;nbsp;to update our metada in Shape Files and feature classes in Filegeodb format.&lt;/P&gt;&lt;P&gt;I am not sure it will work with &lt;SPAN style="background-color: #ffffff;"&gt;SQL Server&lt;/SPAN&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Nov 2019 10:18:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159600#M12226</guid>
      <dc:creator>irfanlatif</dc:creator>
      <dc:date>2019-11-11T10:18:16Z</dc:date>
    </item>
    <item>
      <title>Re: How can I refresh metadata on geodatabase feature classes including thumbnails</title>
      <link>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159601#M12227</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your answer. I was actually looking for a programmatic way to update metadata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Harlan Marshall&lt;/P&gt;&lt;P&gt;GIS Analyst – Senior&lt;/P&gt;&lt;P&gt;Pima County&lt;/P&gt;&lt;P&gt;(520) 724-6757&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Nov 2019 15:01:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159601#M12227</guid>
      <dc:creator>HarlanMarshall</dc:creator>
      <dc:date>2019-11-12T15:01:05Z</dc:date>
    </item>
    <item>
      <title>Re: How can I refresh metadata on geodatabase feature classes including thumbnails</title>
      <link>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159602#M12228</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the links Dan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found the answer I was looking for here.&lt;/P&gt;&lt;P&gt;https://community.esri.com/message/890233-re-embed-a-thumbnail-in-xml-for-item-description?commentID=890233&amp;amp;et=watches.email.thread#comment-890233&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Harlan Marshall&lt;/P&gt;&lt;P&gt;GIS Analyst – Senior&lt;/P&gt;&lt;P&gt;Pima County&lt;/P&gt;&lt;P&gt;(520) 724-6757&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Nov 2019 15:04:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159602#M12228</guid>
      <dc:creator>HarlanMarshall</dc:creator>
      <dc:date>2019-11-12T15:04:41Z</dc:date>
    </item>
    <item>
      <title>Re: How can I refresh metadata on geodatabase feature classes including thumbnails</title>
      <link>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159603#M12229</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For future coders looking for "one" solution to this problem, I'm placing a short version of my final python solution.&lt;/P&gt;&lt;P&gt;Thanks to Heidi Kristenson for help with setting the thumbnail in the xml.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Problem: Update metadata on a geodatabase feature class from metadata maintained in a separate table. Include a thumbnail from an already created jpeg file.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Solution: Export the metadata from the target feature class to a scratch XML file. Modify the xml file elements with the new metadata values as well as the thumbnail. Import the modified metadata back into the target geodatabase feature class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Of course, our solution iterates through a list of geodatabase feature classes to update the metadata which this sample does not illustrate for simplicity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV&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="keyword token"&gt;import&lt;/SPAN&gt; arcpy
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; xml&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;etree&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ElementTree &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; ET
&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; base64
&lt;SPAN class="keyword token"&gt;from&lt;/SPAN&gt; pyodbc &lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; connect &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; odbcconn
&lt;SPAN class="keyword token"&gt;from&lt;/SPAN&gt; pandas &lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; read_sql_query &lt;SPAN class="keyword token"&gt;as&lt;/SPAN&gt; readsqlqry

num_elements &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;
featName &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'your_featureClassName'&lt;/SPAN&gt;
fcPathName &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'Database Connections/your_geodatabase.sde/'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; featName

&lt;SPAN class="comment token"&gt;# set up a connection to read user maintained metadata from a SQL Server table&lt;/SPAN&gt;
metaConnStr &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'DRIVER={SQL Server};SERVER=servername;DATABASE=dbname;Trusted_Connection=yes'&lt;/SPAN&gt;
conn &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; odbcconn&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;metaConnStr&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# your metadata source data will differ from the following&lt;/SPAN&gt;
metaqry &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'SELECT [FULL_NAME],[COVER_NAME],[ABSTRACT],[UPDATEDATE],[OWNERNAME]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[PATH],[METAACCESS],[ONMAINT],[MAINTFREQ],[KNOWNERROR],[LINEAGE]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[DOMAIN],[RECTIFIED],[MAINTORG],[MAINTDESC],[LIBINPUT],[SOURCNAME]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[SOURCCONTACT],[SOURCDOCNAME],[SOURCDATE],[SOURCSCALE],[SOURCFORMAT]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[SOUR2NAME],[SOUR2CONTACT],[SOUR2DOCNAME],[SOUR2DATE],[SOUR2SCALE]'&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;',[SOUR2FORMAT],[ONMG],[MGLAYERNAME],[MGSCALELOW],[MGSCALEHIGH] '&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt;\
 &lt;SPAN class="string token"&gt;'FROM [dbo].[metadata] WHERE [COVER_NAME] = \''&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; featName &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'\''&lt;/SPAN&gt;
df_FCMeta &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; readsqlqry&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;metaqry&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; conn&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="comment token"&gt;# load query result to pandas dataframe&lt;/SPAN&gt;
df_row &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; df_FCMeta&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;iloc&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;# get the one row in the dataframe. There is only one row per COVER_NAME&lt;/SPAN&gt;

arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;env&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;overwriteOutput &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token boolean"&gt;True&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# export the ESRI generated metadata from the target feature class&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# install location&lt;/SPAN&gt;
dir &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;GetInstallInfo&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'desktop'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'InstallDir'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# stylesheet to use&lt;/SPAN&gt;
copy_xslt &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; r&lt;SPAN class="string token"&gt;'{0}'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;format&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;dir&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Metadata\Stylesheets\gpTools\exact copy of.xslt'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# temporary XML file&lt;/SPAN&gt;
xmlfile &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;CreateScratchName&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'.xml'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;workspace&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;env&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;scratchFolder&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# export xml&lt;/SPAN&gt;
arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;XSLTransform_conversion&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fcPathName&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; copy_xslt&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; xmlfile&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="comment token"&gt;# get the tree object and root element from the exported xml file&lt;/SPAN&gt;
tree &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;parse&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;xmlfile&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
root &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; tree&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;getroot&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# get the dataIdInfo element&lt;/SPAN&gt;
dataIdInfoEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; root&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;find&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'dataIdInfo'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# dataIdInfo purpose element&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# Create the needed purpose xml element&lt;/SPAN&gt;
subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;dataIdInfoEl&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'idPurp'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
subEl&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;text &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; df_row&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'FULL_NAME'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
num_elements &lt;SPAN class="operator token"&gt;+=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# dataIdInfo abstract element&lt;/SPAN&gt;
&lt;SPAN class="comment token"&gt;# Create the needed abstract xml element&lt;/SPAN&gt;
subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;dataIdInfoEl&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'idAbs'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
subEl&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;text &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; df_row&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'ABSTRACT'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
num_elements &lt;SPAN class="operator token"&gt;+=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;# import the thumbnail image (jpg) from a file folder by name. Thumbnail file must exist (created by a separate process)&lt;/SPAN&gt;
thumbnailsPath &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'c:/thumbnails/'&lt;/SPAN&gt;
jpgFile &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; thumbnailsPath &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; featName &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'.jpg'&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; os&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;path&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;exists&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;jpgFile&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;with&lt;/SPAN&gt; open&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;jpgFile&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="keyword token"&gt;as&lt;/SPAN&gt; img_file&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
  strEncoded &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; base64&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;b64encode&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;img_file&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;read&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="comment token"&gt;# Create the needed thumbnail xml element&lt;/SPAN&gt;
 attrib &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'EsriPropertyType'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'PictureX'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;
 subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;root&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Binary'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;subEl&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'Thumbnail'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 subEl &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; ET&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SubElement&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;subEl&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; attrib&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 subEl&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;text &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; strEncoded
 num_elements &lt;SPAN class="operator token"&gt;+=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;1&lt;/SPAN&gt;

&lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; num_elements &lt;SPAN class="operator token"&gt;&amp;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;# save modifications to XML&lt;/SPAN&gt;
 tree&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;write&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;xmlfile&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
 arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;MetadataImporter_conversion&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;xmlfile&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; fcPathName&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
 &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'No changes to save'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&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;/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;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;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:25:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-can-i-refresh-metadata-on-geodatabase-feature/m-p/159603#M12229</guid>
      <dc:creator>HarlanMarshall</dc:creator>
      <dc:date>2021-12-11T08:25:03Z</dc:date>
    </item>
  </channel>
</rss>

