<?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 to maintain geometry when merging sdfs? in ArcGIS API for Python Questions</title>
    <link>https://community.esri.com/t5/arcgis-api-for-python-questions/how-to-maintain-geometry-when-merging-sdfs/m-p/1064472#M6168</link>
    <description>&lt;P&gt;Based on your code, you're keeping all of the &lt;STRONG&gt;in_sdf&lt;/STRONG&gt; attributes no matter what, whether they're updates to the &lt;STRONG&gt;master_sdf &lt;/STRONG&gt;or new additions. If that's the case, there's really no need to merge any columns besides your &lt;STRONG&gt;key&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;join_sdf = in_sdf.merge(master_sdf[[key]], how=indicator, on=key, indicator=True)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;All the input columns from &lt;STRONG&gt;in_sdf&lt;/STRONG&gt; will be unchanged, including the geometry, and the &lt;STRONG&gt;key&lt;/STRONG&gt;, being used in the join, will not have any suffixes to bother with.&lt;/P&gt;&lt;P&gt;EDIT: I was re-reading your post a bit more carefully. Can you clarify what the ultimate goal for this script is? You mention that the &lt;STRONG&gt;master_sdf&lt;/STRONG&gt; may have data not present in &lt;STRONG&gt;in_sdf&lt;/STRONG&gt;. How does your process preserve the data? The entire dataframe is going to get "some_column_x" and "some_column_y" columns, not just those with duplicates. Removing the "_y" columns will drop those items only in &lt;STRONG&gt;master_sdf&lt;/STRONG&gt; in that situation.&lt;/P&gt;</description>
    <pubDate>Thu, 03 Jun 2021 03:03:32 GMT</pubDate>
    <dc:creator>jcarlson</dc:creator>
    <dc:date>2021-06-03T03:03:32Z</dc:date>
    <item>
      <title>How to maintain geometry when merging sdfs?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/how-to-maintain-geometry-when-merging-sdfs/m-p/780823#M1192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;When&amp;nbsp;I perform a merge on two spatial dataframes, the SHAPE field converts to "object". Is there a way to re-set one of the SHAPE fields as a geometry field after the merge, or is there a way to maintain the SHAPE field as geometry?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;e.g.&amp;nbsp;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;overlapRows&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;in_sdf&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; master_sdf&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; key&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
    &lt;SPAN class="string token"&gt;"""
    Merge new attributes and point location with old attributes that aren't in the new dataset.
    Includes new rows.
    """&lt;/SPAN&gt;
    
    join_sdf &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; pd&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;merge&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;left&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;in_sdf&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; right&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;master_sdf &lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; how&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'outer'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; on&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;key&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; indicator&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token boolean"&gt;True&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;"Number of all records: "&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; len&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;join_sdf&lt;SPAN class="punctuation token"&gt;)&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;"Number of new records: "&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; len&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;join_sdf&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;join_sdf&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'_merge'&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;'left_only'&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="comment token"&gt;# if there's a duplicate, remove old attributes (y) and keep new attributes (x)&lt;/SPAN&gt;
    &lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; fd &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; list&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;join_sdf&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;columns&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;values&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; fd&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;endswith&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"_x"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
            join_sdf&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;rename&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;columns &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;fd &lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; fd&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;"_x"&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; inplace&lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token boolean"&gt;True&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
        &lt;SPAN class="keyword token"&gt;elif&lt;/SPAN&gt; fd&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;endswith&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"_y"&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;del&lt;/SPAN&gt; join_sdf&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;fd&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;

    &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;join_sdf&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

mergeRows &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; overlapRows&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;dwhPt&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; dwhPl&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'prj_id'&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;mergeRows&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'SHAPE'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

Out&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;

&lt;SPAN class="number token"&gt;1331&lt;/SPAN&gt;    &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'x'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;517459.9827999994&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'y'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;1082018.6127000&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;1332&lt;/SPAN&gt;    &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'x'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;524068.436499998&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'y'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;998965.120000000&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;1333&lt;/SPAN&gt;    &lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'x'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;600713.8193000033&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;'y'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;-&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;986437.45459999&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;
Name&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; SHAPE&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; dtype&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt; object

&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;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 08:49:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/how-to-maintain-geometry-when-merging-sdfs/m-p/780823#M1192</guid>
      <dc:creator>JaneSkillman</dc:creator>
      <dc:date>2021-12-12T08:49:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to maintain geometry when merging sdfs?</title>
      <link>https://community.esri.com/t5/arcgis-api-for-python-questions/how-to-maintain-geometry-when-merging-sdfs/m-p/1064472#M6168</link>
      <description>&lt;P&gt;Based on your code, you're keeping all of the &lt;STRONG&gt;in_sdf&lt;/STRONG&gt; attributes no matter what, whether they're updates to the &lt;STRONG&gt;master_sdf &lt;/STRONG&gt;or new additions. If that's the case, there's really no need to merge any columns besides your &lt;STRONG&gt;key&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;join_sdf = in_sdf.merge(master_sdf[[key]], how=indicator, on=key, indicator=True)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;All the input columns from &lt;STRONG&gt;in_sdf&lt;/STRONG&gt; will be unchanged, including the geometry, and the &lt;STRONG&gt;key&lt;/STRONG&gt;, being used in the join, will not have any suffixes to bother with.&lt;/P&gt;&lt;P&gt;EDIT: I was re-reading your post a bit more carefully. Can you clarify what the ultimate goal for this script is? You mention that the &lt;STRONG&gt;master_sdf&lt;/STRONG&gt; may have data not present in &lt;STRONG&gt;in_sdf&lt;/STRONG&gt;. How does your process preserve the data? The entire dataframe is going to get "some_column_x" and "some_column_y" columns, not just those with duplicates. Removing the "_y" columns will drop those items only in &lt;STRONG&gt;master_sdf&lt;/STRONG&gt; in that situation.&lt;/P&gt;</description>
      <pubDate>Thu, 03 Jun 2021 03:03:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-api-for-python-questions/how-to-maintain-geometry-when-merging-sdfs/m-p/1064472#M6168</guid>
      <dc:creator>jcarlson</dc:creator>
      <dc:date>2021-06-03T03:03:32Z</dc:date>
    </item>
  </channel>
</rss>

