<?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: Spatial join - distance from outline in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313122#M10892</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In fact, I already made a tool that extracts the polygon outline and creates a polyline featureclass. Below the code of the tool:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The parameters are:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Input polygon featureclass&lt;/LI&gt;&lt;LI&gt;output polyline featureclass&lt;/LI&gt;&lt;LI&gt;option preserve input attributes (true, false)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;#-------------------------------------------------------------------------------
# Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureToLine.py
# Purpose:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Convertir feature a punto
#
# Author:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xbakker
#
# Created:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14/10/2015
#-------------------------------------------------------------------------------
import arcpy
import os

def main():
&amp;nbsp;&amp;nbsp;&amp;nbsp; # parameters
&amp;nbsp;&amp;nbsp;&amp;nbsp; fc_in = arcpy.GetParameterAsText(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fc_out = arcpy.GetParameterAsText(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; preserve_atts = arcpy.GetParameter(2) # true o false

&amp;nbsp;&amp;nbsp;&amp;nbsp; # geometria de salida
&amp;nbsp;&amp;nbsp;&amp;nbsp; geomtype = "POLYLINE"
&amp;nbsp;&amp;nbsp;&amp;nbsp; sr = arcpy.Describe(fc_in).spatialReference

&amp;nbsp;&amp;nbsp;&amp;nbsp; # recreate fc_out based on fc_lines (in) using template
&amp;nbsp;&amp;nbsp;&amp;nbsp; ws_name, fc_name = os.path.split(fc_out)
&amp;nbsp;&amp;nbsp;&amp;nbsp; if preserve_atts:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; createFeatureClassTemplate(fc_out, fc_in, geomtype, fc_in, sr)
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; createFeatureClass(fc_out, fc_in, geomtype, sr)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # cursors:
&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; if preserve_atts:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds = getAllFieldsWithoutGeometryFields(fc_in)
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds = ('SHAPE@')

&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.InsertCursor(fc_out, flds) as curs_out:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(fc_in, flds) as curs:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in curs:
&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; polygon = row[0]
&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; polyline = polygon.boundary()

&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; if preserve_atts:
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst_row = list(row)
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst_row[0] = polyline
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_out = tuple(lst_row)
&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; else:
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_out = (polyline, )

&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; # store polyline
&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; cnt += 1
&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; if cnt % 100 == 0:
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Procesando feature: {0}".format(cnt))
&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; curs_out.insertRow(row_out)

&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("{0} features procesados...".format(cnt))


def getAllFieldsWithoutGeometryFields(fc):
&amp;nbsp;&amp;nbsp;&amp;nbsp; flds = [fld.name for fld in arcpy.ListFields(fc)]
&amp;nbsp;&amp;nbsp;&amp;nbsp; desc = arcpy.Describe(fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fld_length = desc.lengthFieldName
&amp;nbsp;&amp;nbsp;&amp;nbsp; fld_area = desc.areaFieldName
&amp;nbsp;&amp;nbsp;&amp;nbsp; fld_shape = desc.shapeFieldName
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fld_length in flds:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds.pop(flds.index(fld_length))
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fld_area in flds:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds.pop(flds.index(fld_area))
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fld_shape in flds:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds.pop(flds.index(fld_shape))
&amp;nbsp;&amp;nbsp;&amp;nbsp; flds.insert(0, 'SHAPE@')
&amp;nbsp;&amp;nbsp;&amp;nbsp; return flds

def createFeatureClass(fc_out, fc_in, geomtype, sr):
&amp;nbsp;&amp;nbsp;&amp;nbsp; ws_name, fc_name = os.path.split(fc_out)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(ws_name, fc_name, geomtype, spatial_reference=sr)

def createFeatureClassTemplate(fc_out, fc_in, geomtype, template,&amp;nbsp; sr):
&amp;nbsp;&amp;nbsp;&amp;nbsp; ws_name, fc_name = os.path.split(fc_out)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(ws_name, fc_name, geomtype, template, spatial_reference=sr)


if __name__ == '__main__':
&amp;nbsp;&amp;nbsp;&amp;nbsp; main()&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 14:56:09 GMT</pubDate>
    <dc:creator>XanderBakker</dc:creator>
    <dc:date>2021-12-11T14:56:09Z</dc:date>
    <item>
      <title>Spatial join - distance from outline</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313116#M10886</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;Anyone any ideas how I can do a spatial join that is similar to the "within distance of"&amp;nbsp; but looks at the outline of the initial feature?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So, for example, I have a polygon and some points.&amp;nbsp; I want to join the two layers where the points are within a set distance of the OUTLINE - so if it is 1 m from the outline, either outside the polygon or inside it gets counted.&amp;nbsp; If it is 1 metre away from the outline INSIDE the polygon it gets ignored.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;ACM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edit - as I work around I have used FME to create a polyline version of the feature, retaining the origional object ID, the doing the join, then hoplefully atribute join the original layer back to get the joincount - which is the field I am after.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jan 2016 10:43:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313116#M10886</guid>
      <dc:creator>AdrianMarsden</dc:creator>
      <dc:date>2016-01-12T10:43:41Z</dc:date>
    </item>
    <item>
      <title>Re: Spatial join - distance from outline</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313117#M10887</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Select by Location within a distance of ... &lt;A href="http://desktop.arcgis.com/en/desktop/latest/tools/data-management-toolbox/select-layer-by-location.htm" title="http://desktop.arcgis.com/en/desktop/latest/tools/data-management-toolbox/select-layer-by-location.htm"&gt;Select Layer By Location—Help | ArcGIS for Desktop&lt;/A&gt; &lt;/P&gt;&lt;P&gt;spatial join with the same option &lt;A href="http://desktop.arcgis.com/en/desktop/latest/tools/analysis-toolbox/spatial-join.htm" title="http://desktop.arcgis.com/en/desktop/latest/tools/analysis-toolbox/spatial-join.htm"&gt;Spatial Join—Help | ArcGIS for Desktop&lt;/A&gt; and&lt;/P&gt;&lt;P&gt;near are your options &lt;A href="http://desktop.arcgis.com/en/desktop/latest/tools/analysis-toolbox/near.htm" title="http://desktop.arcgis.com/en/desktop/latest/tools/analysis-toolbox/near.htm"&gt;Near—Help | ArcGIS for Desktop&lt;/A&gt; &lt;/P&gt;&lt;P&gt;if a polygon is used and something is inside, its distance is 0 so a point overlapping a polygon would get selected, however, if the destination feature was converted to a polyline, then it may not be.&amp;nbsp; You have to choose which option you want&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jan 2016 11:53:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313117#M10887</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2016-01-12T11:53:47Z</dc:date>
    </item>
    <item>
      <title>Re: Spatial join - distance from outline</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313118#M10888</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you have already converted the polygon boundaries into a polyline featureclass, you can best you the Select By Location described by Dan. It would be nice to be able to use the polygons directly as input, but the options "&lt;EM&gt;touch the boundary of the source layer&lt;/EM&gt;" and "&lt;EM&gt;are crossed by the outline of the source layer&lt;/EM&gt;" do not allow you to specify a buffer distance. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As an alternative you could also buffer the polygon with 1 m and with -1 m, and erase the area (-1 m) from the other buffer area (1m) and use the Select By Location with the intesect option. This would require Advanced license and contains more steps than the converting the polygon outlines to line features.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jan 2016 12:08:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313118#M10888</guid>
      <dc:creator>XanderBakker</dc:creator>
      <dc:date>2016-01-12T12:08:32Z</dc:date>
    </item>
    <item>
      <title>Re: Spatial join - distance from outline</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313119#M10889</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Cheers - the polyline method seemed to work fine, gave me what I wanted, but a shame I had to use another program to create the polylines - we've only got an ArcEditor license, so the Esri tool wasn't available.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jan 2016 12:11:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313119#M10889</guid>
      <dc:creator>AdrianMarsden</dc:creator>
      <dc:date>2016-01-12T12:11:47Z</dc:date>
    </item>
    <item>
      <title>Re: Spatial join - distance from outline</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313120#M10890</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are right, there are a number of very common features that are only available with the Advanced license level. It is however, quite simple to create a tool (using some Python code) to generate the outlines based on the polygon boundaries. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It you are interested, I can see what I can do.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jan 2016 12:37:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313120#M10890</guid>
      <dc:creator>XanderBakker</dc:creator>
      <dc:date>2016-01-12T12:37:52Z</dc:date>
    </item>
    <item>
      <title>Re: Spatial join - distance from outline</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313121#M10891</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks - but as I have FME as well, it was very simple.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jan 2016 12:39:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313121#M10891</guid>
      <dc:creator>AdrianMarsden</dc:creator>
      <dc:date>2016-01-12T12:39:27Z</dc:date>
    </item>
    <item>
      <title>Re: Spatial join - distance from outline</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313122#M10892</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In fact, I already made a tool that extracts the polygon outline and creates a polyline featureclass. Below the code of the tool:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The parameters are:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Input polygon featureclass&lt;/LI&gt;&lt;LI&gt;output polyline featureclass&lt;/LI&gt;&lt;LI&gt;option preserve input attributes (true, false)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;#-------------------------------------------------------------------------------
# Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FeatureToLine.py
# Purpose:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Convertir feature a punto
#
# Author:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xbakker
#
# Created:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14/10/2015
#-------------------------------------------------------------------------------
import arcpy
import os

def main():
&amp;nbsp;&amp;nbsp;&amp;nbsp; # parameters
&amp;nbsp;&amp;nbsp;&amp;nbsp; fc_in = arcpy.GetParameterAsText(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fc_out = arcpy.GetParameterAsText(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; preserve_atts = arcpy.GetParameter(2) # true o false

&amp;nbsp;&amp;nbsp;&amp;nbsp; # geometria de salida
&amp;nbsp;&amp;nbsp;&amp;nbsp; geomtype = "POLYLINE"
&amp;nbsp;&amp;nbsp;&amp;nbsp; sr = arcpy.Describe(fc_in).spatialReference

&amp;nbsp;&amp;nbsp;&amp;nbsp; # recreate fc_out based on fc_lines (in) using template
&amp;nbsp;&amp;nbsp;&amp;nbsp; ws_name, fc_name = os.path.split(fc_out)
&amp;nbsp;&amp;nbsp;&amp;nbsp; if preserve_atts:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; createFeatureClassTemplate(fc_out, fc_in, geomtype, fc_in, sr)
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; createFeatureClass(fc_out, fc_in, geomtype, sr)

&amp;nbsp;&amp;nbsp;&amp;nbsp; # cursors:
&amp;nbsp;&amp;nbsp;&amp;nbsp; cnt = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; if preserve_atts:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds = getAllFieldsWithoutGeometryFields(fc_in)
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds = ('SHAPE@')

&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.InsertCursor(fc_out, flds) as curs_out:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(fc_in, flds) as curs:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in curs:
&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; polygon = row[0]
&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; polyline = polygon.boundary()

&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; if preserve_atts:
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst_row = list(row)
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lst_row[0] = polyline
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_out = tuple(lst_row)
&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; else:
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row_out = (polyline, )

&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; # store polyline
&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; cnt += 1
&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; if cnt % 100 == 0:
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Procesando feature: {0}".format(cnt))
&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; curs_out.insertRow(row_out)

&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("{0} features procesados...".format(cnt))


def getAllFieldsWithoutGeometryFields(fc):
&amp;nbsp;&amp;nbsp;&amp;nbsp; flds = [fld.name for fld in arcpy.ListFields(fc)]
&amp;nbsp;&amp;nbsp;&amp;nbsp; desc = arcpy.Describe(fc)
&amp;nbsp;&amp;nbsp;&amp;nbsp; fld_length = desc.lengthFieldName
&amp;nbsp;&amp;nbsp;&amp;nbsp; fld_area = desc.areaFieldName
&amp;nbsp;&amp;nbsp;&amp;nbsp; fld_shape = desc.shapeFieldName
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fld_length in flds:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds.pop(flds.index(fld_length))
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fld_area in flds:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds.pop(flds.index(fld_area))
&amp;nbsp;&amp;nbsp;&amp;nbsp; if fld_shape in flds:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; flds.pop(flds.index(fld_shape))
&amp;nbsp;&amp;nbsp;&amp;nbsp; flds.insert(0, 'SHAPE@')
&amp;nbsp;&amp;nbsp;&amp;nbsp; return flds

def createFeatureClass(fc_out, fc_in, geomtype, sr):
&amp;nbsp;&amp;nbsp;&amp;nbsp; ws_name, fc_name = os.path.split(fc_out)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(ws_name, fc_name, geomtype, spatial_reference=sr)

def createFeatureClassTemplate(fc_out, fc_in, geomtype, template,&amp;nbsp; sr):
&amp;nbsp;&amp;nbsp;&amp;nbsp; ws_name, fc_name = os.path.split(fc_out)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateFeatureclass_management(ws_name, fc_name, geomtype, template, spatial_reference=sr)


if __name__ == '__main__':
&amp;nbsp;&amp;nbsp;&amp;nbsp; main()&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:56:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/spatial-join-distance-from-outline/m-p/313122#M10892</guid>
      <dc:creator>XanderBakker</dc:creator>
      <dc:date>2021-12-11T14:56:09Z</dc:date>
    </item>
  </channel>
</rss>

