<?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: Opening a python toolbox causes ArcGIS Pro to crash in ArcGIS Pro Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-questions/opening-a-python-toolbox-causes-arcgis-pro-to/m-p/1150499#M52345</link>
    <description>&lt;P&gt;A bit of a guess, but I think that this is the problem:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;# This allows the script to be run independently of ArcGIS Pro or ArcGIS for Desktop to leverage debugging tools
def main():
    # tbx = Toolbox()
    tool = Backfill_Data()
    tool.execute(tool.getParameterInfo(), None)


if __name__ == '__main__':
    main()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You're mixing the ways that Pro expects to get input from a Python toolbox, and you're polluting the namespace that Pro is relying on to convert code into GUI. Perhaps I haven't found the right docs to explain it, but the way ArcMap and Pro execute Python under the hood always seems to have unexpected consequences.&lt;BR /&gt;&lt;BR /&gt;I'd delete this code block and then conform your code to ESRI's template (which you're already using otherwise).&lt;/P&gt;</description>
    <pubDate>Fri, 04 Mar 2022 00:35:07 GMT</pubDate>
    <dc:creator>Anonymous User</dc:creator>
    <dc:date>2022-03-04T00:35:07Z</dc:date>
    <item>
      <title>Opening a python toolbox causes ArcGIS Pro to crash</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/opening-a-python-toolbox-causes-arcgis-pro-to/m-p/1150425#M52326</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I've written a python toolbox that can take several formats of inputs from various GPS Collars and then conforms everything so it can easily be appended to the main database. Everything in the script seems to be working correctly when I run it in the IDE. However I recently started to do my last round of testing and the toolbox has started freaking out. Yesterday it started asking to be repaired over and over. I moved all the code to a new one and the same thing was happening. Then today it started working initially, but eventually when I click on the carrot to expand the toolbox and show the tools it causes the entire program to crash without providing an error.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;So that has me a little confused because the program works just fine when run independently but then it is obviously something in the code that it is causing the issue with ArcGIS Pro.&lt;/P&gt;&lt;P&gt;I've included the whole code with a couple very long code blocks removed for length. Any thoughts?&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;# -*- coding: utf-8 -*-&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;datetime&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;os&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;arcpy&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;dbfread&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;pandas &lt;SPAN&gt;as &lt;/SPAN&gt;pd&lt;BR /&gt;&lt;BR /&gt;arcpy.env.overwriteOutput &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;class &lt;/SPAN&gt;&lt;SPAN&gt;Toolbox&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;object&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;__init__&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""Define the toolbox (the name of the toolbox is the name of the&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        .pyt file)."""&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;self&lt;/SPAN&gt;.label &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"Backfill Data Toolbox"&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;self&lt;/SPAN&gt;.alias &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"Backfill Data Toolbox"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# List of tool classes associated with this toolbox&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;self&lt;/SPAN&gt;.tools &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;Backfill_Data&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;class &lt;/SPAN&gt;&lt;SPAN&gt;Backfill_Data&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;object&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;__init__&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""Define the tool (tool name is the name of the class)."""&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;self&lt;/SPAN&gt;.label &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"Backfill Data Tool"&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;self&lt;/SPAN&gt;.description &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;"Script to process collars data and add it to the Locations Database."&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;self&lt;/SPAN&gt;.canRunInBackground &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    def &lt;/SPAN&gt;&lt;SPAN&gt;getParameterInfo&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""Define parameter definitions"""&lt;BR /&gt;&lt;/SPAN&gt;        in_table &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Parameter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'in_table'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;displayName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Dbase or Excel Input'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DEFile'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;direction&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Input'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;parameterType&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Required'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        in_table.filter.list &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'dbf'&lt;/SPAN&gt;, &lt;SPAN&gt;'xlsx'&lt;/SPAN&gt;, &lt;SPAN&gt;'xsl'&lt;/SPAN&gt;, &lt;SPAN&gt;'csv'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        out_gdb &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Parameter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'out_gdb'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;displayName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Output to GDB'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DEWorkspace'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;direction&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Output'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;parameterType&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Required'&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        )&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        animal_species &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Parameter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'animal_species'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;displayName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Animal Species'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'GPString'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;direction&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Input'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;parameterType&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Required'&lt;/SPAN&gt;,&lt;BR /&gt;        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        animal_species.value &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Wolf'&lt;BR /&gt;&lt;/SPAN&gt;        animal_species.filter.type &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'ValueList'&lt;BR /&gt;&lt;/SPAN&gt;        animal_species.filter.list &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'Mule Deer'&lt;/SPAN&gt;, &lt;SPAN&gt;'Elk'&lt;/SPAN&gt;, &lt;SPAN&gt;'Pronghorn'&lt;/SPAN&gt;, &lt;SPAN&gt;'Big Horn Sheep'&lt;/SPAN&gt;, &lt;SPAN&gt;'Wolf'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        collar_manufacturer &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Parameter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'collar_manufacturer'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;displayName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Collar Manufacturer'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'GPString'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;direction&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Input'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;parameterType&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Required'&lt;/SPAN&gt;,&lt;BR /&gt;        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        collar_manufacturer.value &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Lotek'&lt;BR /&gt;&lt;/SPAN&gt;        collar_manufacturer.filter.type &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'ValueList'&lt;BR /&gt;&lt;/SPAN&gt;        collar_manufacturer.filter.list &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'Vectronix'&lt;/SPAN&gt;, &lt;SPAN&gt;'Telonics'&lt;/SPAN&gt;, &lt;SPAN&gt;'Sirtrack'&lt;/SPAN&gt;, &lt;SPAN&gt;'Lotek'&lt;/SPAN&gt;, &lt;SPAN&gt;'Manual Entry'&lt;/SPAN&gt;, &lt;SPAN&gt;'Wufoo'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        pack &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Parameter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'pack'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;displayName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f'Pack'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'GPString'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;direction&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Input'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;parameterType&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Optional'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;enabled&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        pack.filter.type &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'ValueList'&lt;BR /&gt;&lt;/SPAN&gt;        pack_list &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;['a', 'list', 'of', 'strings'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        &lt;BR /&gt;&lt;/SPAN&gt;        pack_list.&lt;SPAN&gt;sort&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;/SPAN&gt;        pack.filter.list &lt;SPAN&gt;= &lt;/SPAN&gt;pack_list&lt;BR /&gt;&lt;BR /&gt;        entry_staff &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Parameter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'entry_staff'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;displayName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Entry Staff'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'GPString'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;direction&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Input'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;parameterType&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Optional'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;enabled&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        add_adm_location &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Parameter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'add_adm_location'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;displayName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Add Administrative Locations (County, WMU, and Ownership)'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'GPBoolean'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;direction&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Input'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;parameterType&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Optional'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;enabled&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        add_adm_location.value &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        status_table &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Parameter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'status_table'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;displayName&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Status Inputs'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'GPGAValueTable'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;direction&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Input'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;parameterType&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'Optional'&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;enabled&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        status_table.columns &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;[[&lt;/SPAN&gt;&lt;SPAN&gt;'GPString'&lt;/SPAN&gt;, &lt;SPAN&gt;'Status'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;, &lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'GPDate'&lt;/SPAN&gt;, &lt;SPAN&gt;'Start'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;, &lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'GPDate'&lt;/SPAN&gt;, &lt;SPAN&gt;'End'&lt;/SPAN&gt;&lt;SPAN&gt;]]&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        status_table.filters&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.type &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'ValueList'&lt;BR /&gt;&lt;/SPAN&gt;        status_table.filters&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.list &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'InPack'&lt;/SPAN&gt;, &lt;SPAN&gt;'Dispersed'&lt;/SPAN&gt;, &lt;SPAN&gt;'Roaming'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        params &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;in_table, out_gdb, animal_species, collar_manufacturer, pack, entry_staff, add_adm_location,&lt;BR /&gt;                  status_table&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;return &lt;/SPAN&gt;params&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;isLicensed&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""Set whether tool is licensed to execute."""&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;return True&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    def &lt;/SPAN&gt;&lt;SPAN&gt;updateParameters&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""Modify the values and properties of parameters before internal&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        validation is performed.  This method is called whenever a parameter&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        has been changed."""&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Wolf'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.enabled &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.enabled &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.enabled &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;7&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.enabled &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;True&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.enabled &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.enabled &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.enabled &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;7&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.enabled &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;return&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    def &lt;/SPAN&gt;&lt;SPAN&gt;updateMessages&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;"""Modify the messages created by internal validation for each tool&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        parameter.  This method is called after internal validation."""&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;return&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    def &lt;/SPAN&gt;&lt;SPAN&gt;xy_to_fc&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;parameters&lt;/SPAN&gt;, &lt;SPAN&gt;table_for_xy&lt;/SPAN&gt;, &lt;SPAN&gt;output_name&lt;/SPAN&gt;, &lt;SPAN&gt;input_format&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        collar_manufacturer &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;BR /&gt;        output_path &lt;SPAN&gt;= &lt;/SPAN&gt;os.path.&lt;SPAN&gt;join&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText, &lt;SPAN&gt;output_name&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# If output exists delete it, sometimes not deleting caused errors when processing it again&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Exists&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;f'Deleting old feature class: &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;output_path&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;Delete&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Vectronix'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            in_x_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'LONGITUDE'&lt;BR /&gt;&lt;/SPAN&gt;            in_y_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'LATITUDE'&lt;BR /&gt;&lt;/SPAN&gt;            in_z_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'HEIGHT'&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Sirtrack' &lt;/SPAN&gt;&lt;SPAN&gt;or &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Telonics'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;input_format &lt;/SPAN&gt;&lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'csv'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                in_x_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Longitude'&lt;BR /&gt;&lt;/SPAN&gt;                in_y_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Latitude'&lt;BR /&gt;&lt;/SPAN&gt;                in_z_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;None&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                in_x_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Longitude_'&lt;BR /&gt;&lt;/SPAN&gt;                in_y_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Latitude_d'&lt;BR /&gt;&lt;/SPAN&gt;                in_z_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;None&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Lotek'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            in_x_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Longitude'&lt;BR /&gt;&lt;/SPAN&gt;            in_y_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Latitude'&lt;BR /&gt;&lt;/SPAN&gt;            in_z_field &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'Altitude'&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;raise &lt;/SPAN&gt;&lt;SPAN&gt;Exception&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Error in collar_manufacturer parameter.'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Process: Make XY Event Layer (Make XY Event Layer) (management)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Making XY Event Layer...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        xy_event_layer &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'memory/xy_event_layer'&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;MakeXYEventLayer&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;table&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;table_for_xy&lt;/SPAN&gt;,&lt;BR /&gt;                                          &lt;SPAN&gt;in_x_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;in_x_field,&lt;BR /&gt;                                          &lt;SPAN&gt;in_y_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;in_y_field,&lt;BR /&gt;                                          &lt;SPAN&gt;out_layer&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;xy_event_layer,&lt;BR /&gt;                                          &lt;SPAN&gt;spatial_reference&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;arcpy.&lt;SPAN&gt;SpatialReference&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;4269&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;,&lt;BR /&gt;                                          &lt;SPAN&gt;in_z_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;in_z_field&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Generate GDB if it doesn't exist&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if not &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;Exists&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;os.path.&lt;SPAN&gt;join&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            full_path &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;BR /&gt;            full_path_list &lt;SPAN&gt;= &lt;/SPAN&gt;full_path.&lt;SPAN&gt;split&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;\\&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            out_folder_path &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;\\&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;.&lt;SPAN&gt;join&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;full_path_list&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;:-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            out_name &lt;SPAN&gt;= &lt;/SPAN&gt;full_path_list&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;out_folder_path&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;out_name&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CreateFileGDB&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;out_folder_path, out_name&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Process: Feature Class To Feature Class (Feature Class To Feature Class) (conversion)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Copying event layer to a feature class...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.conversion.&lt;SPAN&gt;FeatureClassToFeatureClass&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;in_features&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;xy_event_layer,&lt;BR /&gt;                                                    &lt;SPAN&gt;out_path&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;os.path.&lt;SPAN&gt;join&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;SPAN&gt;)&lt;/SPAN&gt;,&lt;BR /&gt;                                                    &lt;SPAN&gt;out_name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;output_name&lt;/SPAN&gt;,&lt;BR /&gt;                                                    &lt;SPAN&gt;where_clause&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;,&lt;BR /&gt;                                                    &lt;SPAN&gt;config_keyword&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Grab original fields to delete later&lt;BR /&gt;&lt;/SPAN&gt;        original_fields &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;ListFields&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;os.path.&lt;SPAN&gt;join&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText, &lt;SPAN&gt;output_name&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Calculate Fields:&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Collar_ID field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Vectronix'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Collar_ID'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f'!CollarID!'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Sirtrack'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Collar_ID'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f'!Tag_ID!'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Lotek'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Collar_ID'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'!Device_ID!'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Lat_DDeg field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Lat_DDeg'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f'!&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;in_y_field&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;!'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DOUBLE'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Long_DDeg field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Long_DDeg'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f'!&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;in_x_field&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;!'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DOUBLE'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the LL_Datum field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'LL_Datum'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""'WGS84'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Accuracy field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Vectronix' &lt;/SPAN&gt;&lt;SPAN&gt;or &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Lotek'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Accuracy'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'dop(!DOP!)'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def dop(dop):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            if dop &amp;lt;= 6:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return "&amp;lt; 20 yds"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            elif dop &amp;gt;= 20:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return "250 yds - 1/2 mile"   &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                             &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            else:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return "20 - 250 yds"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                        """&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Species field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Species'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f"""'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Type field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Type'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""'Collar data'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Source field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Source'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f"""'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_manufacturer&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt; collar'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Entry_Staff field from the Entry_Staff parameter...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Entry_Staff'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f"""'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;5&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Entry_Date field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Entry_Date'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f"""'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;datetime.datetime.&lt;SPAN&gt;now&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%d/%m/%Y'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DATE'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Visual field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Visual'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""'No'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Wolf'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Adding the Pack field from the Pack parameter...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Pack'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f"""'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;4&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Vectronix'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Adding the Wolf_Name field from the CollarID field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Wolf_Name'&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f"""'name(!CollarID!)'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def name(collar_id):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                really long if statement that didnt need to be included&lt;/SPAN&gt;&lt;SPAN&gt;"""&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                                &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Adding the Wolf ID field from the Wolf_Name field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Wolf_ID'&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f"""'id(!Wolf_Name!)'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def id(wolf_name):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                really long if statement that didnt need to be included&lt;/SPAN&gt;&lt;SPAN&gt;"""&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                                &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Sirtracks'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Wolf_Name and Wolf_ID are null for Sirtracks data, please add manually.'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Adding the Pack field from the Pack parameter...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Wolf_Name'&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;f'!IndividualName!'&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                                &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;BR /&gt;&lt;/SPAN&gt;                                                &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Calculate all Date Fields:&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the UTC field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Vectronix'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'UTC'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'uct(!UTC_DATE!, "!UTC_TIME!")'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def uct(date, time):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            date_str = date.strftime('%m/%d/%Y')&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            datetime_str = date_str + ' ' + time&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            dt = datetime.datetime.strptime(datetime_str, '%m/%d/%Y %H:%M:%S')&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            return dt&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                        """&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DATE'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;elif &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Sirtrack'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'UTC'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'utc(!UTC_Date!, "!UTC_Time!")'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def utc(date, time):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            date_str = date.strftime('%m/%d/%Y')&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            datetime_str = date_str + ' ' + time&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            dt = datetime.datetime.strptime(datetime_str, '%m/%d/%Y %H:%M:%S')&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            return dt&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                        """&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DATE'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;elif &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Telonics'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'UTC'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'utc(!ObservationDateTimePST!)'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def utc(pst):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            import pytz&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            pst.replace(tzinfo=pytz.timezone('America/Los_Angeles'))&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            utc = pst.astimezone(pytz.timezone('Europe/London'))&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            return utc&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                        """&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DATE'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;elif &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Lotek'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'UTC'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'!Date___Tim!'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""""""&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DATE'&lt;BR /&gt;&lt;/SPAN&gt;                                            &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the PST and PDT fields from the UTC field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;ConvertTimeZone&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'UTC'&lt;/SPAN&gt;, &lt;SPAN&gt;'UTC'&lt;/SPAN&gt;, &lt;SPAN&gt;'PST'&lt;/SPAN&gt;, &lt;SPAN&gt;'Pacific_Standard_Time'&lt;/SPAN&gt;, &lt;SPAN&gt;False&lt;/SPAN&gt;, &lt;SPAN&gt;False&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;ConvertTimeZone&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'UTC'&lt;/SPAN&gt;, &lt;SPAN&gt;'UTC'&lt;/SPAN&gt;, &lt;SPAN&gt;'PDT'&lt;/SPAN&gt;, &lt;SPAN&gt;'Pacific_Standard_Time'&lt;/SPAN&gt;, &lt;SPAN&gt;False&lt;/SPAN&gt;, &lt;SPAN&gt;True&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the Start_Time field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Start_Time'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'!PST!'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'DATE'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the End_Time field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;AddField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'End_Time'&lt;/SPAN&gt;, &lt;SPAN&gt;'DATE'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateEndTime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'Start_Time'&lt;/SPAN&gt;, &lt;SPAN&gt;'End_Time'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating the TimeInt field...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, &lt;SPAN&gt;'TimeInt'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'time_diff(!Start_Time!, !End_Time!)'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON 3'&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def time_diff(start, end):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                        diff = end - start&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                        return diff.seconds//60&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                    """&lt;/SPAN&gt;,&lt;BR /&gt;                                        &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'LONG'&lt;BR /&gt;&lt;/SPAN&gt;                                        &lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Switch output to target now that the ultimate feature class has been created.&lt;BR /&gt;&lt;/SPAN&gt;        target_features &lt;SPAN&gt;= &lt;/SPAN&gt;output_path&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;# Spatially join administrative boundaries: WMU, County, and Ownership&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;6&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.value &lt;SPAN&gt;and &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Wolf'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            ownership_input &lt;SPAN&gt;= r'some network path'&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            ownership_ouput &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;r'memory\OwnershipIntermediate'&lt;BR /&gt;&lt;/SPAN&gt;            wmu_input &lt;SPAN&gt;= r'some network path'&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            wmu_output &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;r'memory\WMUIntermediate'&lt;BR /&gt;&lt;/SPAN&gt;            county_input &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;r'some network path'&lt;BR /&gt;&lt;/SPAN&gt;            county_output &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;r'memory\CountiesIntermediate'&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating Ownership...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.analysis.&lt;SPAN&gt;SpatialJoin&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;target_features&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;join_features&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;ownership_input,&lt;BR /&gt;                                       &lt;SPAN&gt;out_feature_class&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;ownership_ouput, &lt;SPAN&gt;join_operation&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"JOIN_ONE_TO_ONE"&lt;/SPAN&gt;,&lt;BR /&gt;                                       &lt;SPAN&gt;join_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"KEEP_ALL"&lt;/SPAN&gt;, &lt;SPAN&gt;field_mapping&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;, &lt;SPAN&gt;match_option&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"INTERSECT"&lt;/SPAN&gt;,&lt;BR /&gt;                                       &lt;SPAN&gt;search_radius&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;, &lt;SPAN&gt;distance_field_name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;JoinField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;in_data&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;in_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"OBJECTID"&lt;/SPAN&gt;, &lt;SPAN&gt;join_table&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;ownership_ouput,&lt;BR /&gt;                                       &lt;SPAN&gt;join_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"TARGET_FID"&lt;/SPAN&gt;, &lt;SPAN&gt;fields&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;"OWN_TYPE"&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;in_table&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"Ownership"&lt;/SPAN&gt;, &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'func(!OWN_TYPE!)'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"PYTHON3"&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def func(own):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            if own:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return own&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            else:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return 'Outside Oregon'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"TEXT"&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;enforce_domains&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"NO_ENFORCE_DOMAINS"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating County...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.analysis.&lt;SPAN&gt;SpatialJoin&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;target_features&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;join_features&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;county_input,&lt;BR /&gt;                                       &lt;SPAN&gt;out_feature_class&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;county_output, &lt;SPAN&gt;join_operation&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"JOIN_ONE_TO_ONE"&lt;/SPAN&gt;,&lt;BR /&gt;                                       &lt;SPAN&gt;join_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"KEEP_ALL"&lt;/SPAN&gt;, &lt;SPAN&gt;field_mapping&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;, &lt;SPAN&gt;match_option&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"INTERSECT"&lt;/SPAN&gt;,&lt;BR /&gt;                                       &lt;SPAN&gt;search_radius&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;, &lt;SPAN&gt;distance_field_name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;""&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;JoinField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;in_data&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;in_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"OBJECTID"&lt;/SPAN&gt;, &lt;SPAN&gt;join_table&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;county_output,&lt;BR /&gt;                                       &lt;SPAN&gt;join_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"TARGET_FID"&lt;/SPAN&gt;, &lt;SPAN&gt;fields&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;"Name"&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;in_table&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'County'&lt;/SPAN&gt;, &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'func(!Name!)'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON3'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def func(county):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            if county:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return county&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            else:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return 'Outside Oregon'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;enforce_domains&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'NO_ENFORCE_DOMAINS'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating WMU...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.analysis.&lt;SPAN&gt;SpatialJoin&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;target_features&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;join_features&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;wmu_input,&lt;BR /&gt;                                       &lt;SPAN&gt;out_feature_class&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;wmu_output, &lt;SPAN&gt;join_operation&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'JOIN_ONE_TO_ONE'&lt;/SPAN&gt;,&lt;BR /&gt;                                       &lt;SPAN&gt;join_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'KEEP_ALL'&lt;/SPAN&gt;, &lt;SPAN&gt;field_mapping&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;''&lt;/SPAN&gt;, &lt;SPAN&gt;match_option&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'INTERSECT'&lt;/SPAN&gt;,&lt;BR /&gt;                                       &lt;SPAN&gt;search_radius&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;''&lt;/SPAN&gt;, &lt;SPAN&gt;distance_field_name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;''&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;JoinField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;in_data&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;in_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'OBJECTID'&lt;/SPAN&gt;, &lt;SPAN&gt;join_table&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;wmu_output,&lt;BR /&gt;                                       &lt;SPAN&gt;join_field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TARGET_FID'&lt;/SPAN&gt;, &lt;SPAN&gt;fields&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'UNIT_NAME'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;CalculateField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;in_table&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;target_features, &lt;SPAN&gt;field&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'WMU'&lt;/SPAN&gt;, &lt;SPAN&gt;expression&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'func(!UNIT_NAME!)'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;expression_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'PYTHON3'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;code_block&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;"""def func(wmu):&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            if wmu:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return wmu&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                            else:&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;                                                                return 'Outside Oregon'"""&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;field_type&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'TEXT'&lt;/SPAN&gt;,&lt;BR /&gt;                                            &lt;SPAN&gt;enforce_domains&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'NO_ENFORCE_DOMAINS'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;DeleteField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;target_features, &lt;SPAN&gt;'OWN_TYPE'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;DeleteField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;target_features, &lt;SPAN&gt;'NAME'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.management.&lt;SPAN&gt;DeleteField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;target_features, &lt;SPAN&gt;'UNIT_NAME'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;7&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.value&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;# Adding Status field based on input from the Status Table parameter.&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Calculating Status field from the Status Table parameter...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                fields_list &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.&lt;SPAN&gt;ListFields&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;target_features&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;for &lt;/SPAN&gt;field &lt;SPAN&gt;in &lt;/SPAN&gt;fields_list&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;'Status' &lt;/SPAN&gt;&lt;SPAN&gt;not in &lt;/SPAN&gt;field.name&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                        arcpy.management.&lt;SPAN&gt;AddField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;target_features, &lt;SPAN&gt;"Status"&lt;/SPAN&gt;, &lt;SPAN&gt;"TEXT"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                st &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;7&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;BR /&gt;                arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;st&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                st_split &lt;SPAN&gt;= &lt;/SPAN&gt;st.&lt;SPAN&gt;split&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;";"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                fields &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;"Status"&lt;/SPAN&gt;, &lt;SPAN&gt;"Start_Time"&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;for &lt;/SPAN&gt;entry &lt;SPAN&gt;in &lt;/SPAN&gt;st_split&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                    entry_split &lt;SPAN&gt;= &lt;/SPAN&gt;entry.&lt;SPAN&gt;split&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;" "&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                    status &lt;SPAN&gt;= &lt;/SPAN&gt;entry_split&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;                    start_time &lt;SPAN&gt;= &lt;/SPAN&gt;entry_split&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;                    end_time &lt;SPAN&gt;= &lt;/SPAN&gt;entry_split&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    sql &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;f"Start_Time &amp;gt;= date '&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;start_time&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;' AND Start_Time &amp;lt;= date '&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;end_time&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;with &lt;/SPAN&gt;arcpy.da.&lt;SPAN&gt;UpdateCursor&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;target_features, fields, sql&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;as &lt;/SPAN&gt;cursor&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                        &lt;SPAN&gt;for &lt;/SPAN&gt;row &lt;SPAN&gt;in &lt;/SPAN&gt;cursor&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                            row&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;status&lt;BR /&gt;                            cursor.&lt;SPAN&gt;updateRow&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;row&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Add Administrative Boundaries not selected...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# Delete unused fields:&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Deleting unused fields...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;for &lt;/SPAN&gt;field &lt;SPAN&gt;in &lt;/SPAN&gt;original_fields&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if not &lt;/SPAN&gt;field.required&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                arcpy.management.&lt;SPAN&gt;DeleteField&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;output_path, field.name&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;execute&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;, &lt;SPAN&gt;parameters&lt;/SPAN&gt;, &lt;SPAN&gt;messages&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;# """The source code of the tool."""&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        input_format &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText.&lt;SPAN&gt;split&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'.'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.&lt;SPAN&gt;lower&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;/SPAN&gt;        collar_manufacturer &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;BR /&gt;&lt;BR /&gt;        scratch &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.env.scratchFolder&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;input_format &lt;SPAN&gt;in &lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'xlsx'&lt;/SPAN&gt;, &lt;SPAN&gt;'xls'&lt;/SPAN&gt;, &lt;SPAN&gt;'csv'&lt;/SPAN&gt;, &lt;SPAN&gt;'dbf'&lt;/SPAN&gt;, &lt;SPAN&gt;'txt'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;f'File detected as &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;input_format&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;, Converting &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;input_format&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt; to Table'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            input_path &lt;SPAN&gt;= &lt;/SPAN&gt;os.path.&lt;SPAN&gt;join&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;input_format &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'dbf'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                dbf &lt;SPAN&gt;= &lt;/SPAN&gt;dbfread.&lt;SPAN&gt;DBF&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;input_path&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                df &lt;SPAN&gt;= &lt;/SPAN&gt;pd.&lt;SPAN&gt;DataFrame&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;iter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;dbf&lt;SPAN&gt;))&lt;BR /&gt;&lt;/SPAN&gt;                table_for_xy &lt;SPAN&gt;= &lt;/SPAN&gt;os.path.&lt;SPAN&gt;join&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;elif &lt;/SPAN&gt;input_format &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'csv'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                excel_path &lt;SPAN&gt;= &lt;/SPAN&gt;os.path.&lt;SPAN&gt;join&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.valueAsText&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;:-&lt;/SPAN&gt;&lt;SPAN&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;+ &lt;/SPAN&gt;&lt;SPAN&gt;'xlsx'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                df &lt;SPAN&gt;= &lt;/SPAN&gt;pd.&lt;SPAN&gt;read_csv&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;input_path&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                df &lt;SPAN&gt;= &lt;/SPAN&gt;df.&lt;SPAN&gt;rename&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;columns&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;df.columns&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;'Device_ID'&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                df.&lt;SPAN&gt;to_excel&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;excel_path, &lt;SPAN&gt;index&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;False&lt;/SPAN&gt;, &lt;SPAN&gt;columns&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'Device_ID'&lt;/SPAN&gt;, &lt;SPAN&gt;'Date &amp;amp; Time [GMT]'&lt;/SPAN&gt;, &lt;SPAN&gt;'Latitude'&lt;/SPAN&gt;, &lt;SPAN&gt;'Longitude'&lt;/SPAN&gt;,&lt;BR /&gt;                                                              &lt;SPAN&gt;'Altitude'&lt;/SPAN&gt;, &lt;SPAN&gt;'DOP'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                table_for_xy &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.conversion.&lt;SPAN&gt;ExcelToTable&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;excel_path, scratch&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;elif &lt;/SPAN&gt;input_format &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'txt'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                df &lt;SPAN&gt;= &lt;/SPAN&gt;pd.&lt;SPAN&gt;read_table&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;input_path&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                table_for_xy &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.conversion.&lt;SPAN&gt;TableToTable&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;input_path, scratch, &lt;SPAN&gt;'TempTxtTable'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;elif &lt;/SPAN&gt;input_format &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'xlsx' &lt;/SPAN&gt;&lt;SPAN&gt;or &lt;/SPAN&gt;input_format &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'xls'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                df &lt;SPAN&gt;= &lt;/SPAN&gt;pd.&lt;SPAN&gt;read_excel&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;input_path&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                table_for_xy &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.conversion.&lt;SPAN&gt;ExcelToTable&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;input_path, scratch&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;raise &lt;/SPAN&gt;&lt;SPAN&gt;Exception&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Incorrect format of input file.'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;# Build list of all unique Collar ID values that will be used to make a selection so all the data is&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            # processed at the same time&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Vectronix' &lt;/SPAN&gt;&lt;SPAN&gt;or &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Telonics'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                collar_list &lt;SPAN&gt;= &lt;/SPAN&gt;df.CollarID.&lt;SPAN&gt;unique&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Sirtrack'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                collar_list &lt;SPAN&gt;= &lt;/SPAN&gt;df.Tag_ID.&lt;SPAN&gt;unique&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Lotek'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                collar_list &lt;SPAN&gt;= &lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'Device_ID'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.&lt;SPAN&gt;unique&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;raise &lt;/SPAN&gt;&lt;SPAN&gt;Exception&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Collar Manufacturer doesnt match.'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;collar_list&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;!= &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                counter &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;for &lt;/SPAN&gt;collar_id &lt;SPAN&gt;in &lt;/SPAN&gt;collar_list&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                    counter &lt;SPAN&gt;= &lt;/SPAN&gt;counter &lt;SPAN&gt;+ &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;                    arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;f'Processing &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;counter&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt; of &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;SPAN&gt;len&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;collar_list&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;...'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;if &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Vectronix'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                        subframe &lt;SPAN&gt;= &lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;f'CollarID'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;== &lt;/SPAN&gt;collar_id&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;                        min_date &lt;SPAN&gt;= &lt;/SPAN&gt;subframe.UTC_DATE.&lt;SPAN&gt;min&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%y%m%d'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                        max_date &lt;SPAN&gt;= &lt;/SPAN&gt;subframe.UTC_DATE.&lt;SPAN&gt;max&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%y%m%d'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                        output_name &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;f'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_manufacturer&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.&lt;SPAN&gt;upper&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;min_date&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;max_date&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;BR /&gt;&lt;/SPAN&gt;                        selection &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.management.&lt;SPAN&gt;SelectLayerByAttribute&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;table_for_xy, &lt;SPAN&gt;'NEW_SELECTION'&lt;/SPAN&gt;,&lt;BR /&gt;                                                                            &lt;SPAN&gt;f"""CollarID = &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;"""&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Sirtrack'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                        df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'UTC'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;df&lt;SPAN&gt;[[&lt;/SPAN&gt;&lt;SPAN&gt;'UTC_Date'&lt;/SPAN&gt;, &lt;SPAN&gt;'UTC_Time'&lt;/SPAN&gt;&lt;SPAN&gt;]]&lt;/SPAN&gt;.&lt;SPAN&gt;agg&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;' '&lt;/SPAN&gt;.join, &lt;SPAN&gt;axis&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                        df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'UTC'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;pd.&lt;SPAN&gt;to_datetime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'UTC'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;, &lt;SPAN&gt;format&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'%m/%d/%Y %H:%M:%S'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                        subframe &lt;SPAN&gt;= &lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;f'Tag_ID'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;== &lt;/SPAN&gt;collar_id&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;                        min_date &lt;SPAN&gt;= &lt;/SPAN&gt;subframe.UTC.&lt;SPAN&gt;min&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%y%m%d'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                        max_date &lt;SPAN&gt;= &lt;/SPAN&gt;subframe.UTC.&lt;SPAN&gt;max&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%y%m%d'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                        output_name &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;f'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_manufacturer&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.&lt;SPAN&gt;upper&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;min_date&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;max_date&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;BR /&gt;&lt;/SPAN&gt;                        selection &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.management.&lt;SPAN&gt;SelectLayerByAttribute&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;table_for_xy, &lt;SPAN&gt;'NEW_SELECTION'&lt;/SPAN&gt;, &lt;SPAN&gt;f"""Tag_ID = '&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt; And Latitude &amp;lt;&amp;gt; 0 And Longitude &amp;lt;&amp;gt; 0'"""&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Telonics'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                        subframe &lt;SPAN&gt;= &lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;f'CollarID'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;== &lt;/SPAN&gt;collar_id&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;                        min_date &lt;SPAN&gt;= &lt;/SPAN&gt;subframe.ObservationDateTimePST.&lt;SPAN&gt;min&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%y%m%d'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                        max_date &lt;SPAN&gt;= &lt;/SPAN&gt;subframe.ObservationDateTimePST.&lt;SPAN&gt;max&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%y%m%d'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                        output_name &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;f'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_manufacturer&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.&lt;SPAN&gt;upper&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;min_date&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;max_date&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;BR /&gt;&lt;/SPAN&gt;                        selection &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.management.&lt;SPAN&gt;SelectLayerByAttribute&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;table_for_xy, &lt;SPAN&gt;'NEW_SELECTION'&lt;/SPAN&gt;, &lt;SPAN&gt;f"""Tag_ID = '&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;' And Latitude &amp;lt;&amp;gt; 0 And Longitude &amp;lt;&amp;gt; 0"""&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;elif &lt;/SPAN&gt;collar_manufacturer &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'Lotek'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                        &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;'UTC' &lt;/SPAN&gt;&lt;SPAN&gt;not in &lt;/SPAN&gt;df.columns&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                            df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'UTC'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;pd.&lt;SPAN&gt;to_datetime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'Date &amp;amp; Time [GMT]'&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;, &lt;SPAN&gt;format&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'%Y-%m-%d %H:%M:%S'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                        subframe &lt;SPAN&gt;= &lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;df&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;'Device_ID'&lt;/SPAN&gt;&lt;SPAN&gt;] &lt;/SPAN&gt;&lt;SPAN&gt;== &lt;/SPAN&gt;collar_id&lt;SPAN&gt;]&lt;BR /&gt;&lt;/SPAN&gt;                        min_date &lt;SPAN&gt;= &lt;/SPAN&gt;subframe.UTC.&lt;SPAN&gt;min&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%y%m%d'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;                        max_date &lt;SPAN&gt;= &lt;/SPAN&gt;subframe.UTC.&lt;SPAN&gt;max&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;.&lt;SPAN&gt;strftime&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'%y%m%d'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                        output_name &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;f'&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_manufacturer&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;.&lt;SPAN&gt;upper&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;min_date&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;_&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;max_date&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                        selection &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.management.&lt;SPAN&gt;SelectLayerByAttribute&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;table_for_xy, &lt;SPAN&gt;'NEW_SELECTION'&lt;/SPAN&gt;, &lt;SPAN&gt;f"""Device_ID = &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;collar_id&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt; And Latitude &amp;lt;&amp;gt; 0 And Longitude &amp;lt;&amp;gt; 0"""&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                        selection &lt;SPAN&gt;= &lt;/SPAN&gt;arcpy.conversion.&lt;SPAN&gt;TableToTable&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;selection, &lt;SPAN&gt;'memory'&lt;/SPAN&gt;, output_name&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                        &lt;SPAN&gt;raise &lt;/SPAN&gt;&lt;SPAN&gt;Exception&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Collar Manufacturer doesnt match.'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;self&lt;/SPAN&gt;.&lt;SPAN&gt;xy_to_fc&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;parameters&lt;/SPAN&gt;, &lt;SPAN&gt;table_for_xy&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;selection, &lt;SPAN&gt;output_name&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;output_name,&lt;BR /&gt;                                  &lt;SPAN&gt;input_format&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;input_format&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;raise &lt;/SPAN&gt;&lt;SPAN&gt;Exception&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'No Collar ID in Table.'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;else&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;            arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;f'File detected as &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;input_format&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;SPAN&gt;, this format is unsupported. Please use dbf, xlsx or xls'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;raise &lt;/SPAN&gt;&lt;SPAN&gt;Exception&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Invalid input table format!'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        arcpy.&lt;SPAN&gt;AddMessage&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;'Data processing is complete!'&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;# This allows the script to be run independently of ArcGIS Pro or ArcGIS for Desktop to leverage debugging tools&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;main&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;# tbx = Toolbox()&lt;BR /&gt;&lt;/SPAN&gt;    tool &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;Backfill_Data&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;/SPAN&gt;    tool.&lt;SPAN&gt;execute&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;tool.&lt;SPAN&gt;getParameterInfo&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;/SPAN&gt;, &lt;SPAN&gt;None&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;__name__ &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'__main__'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;main&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Mar 2022 21:40:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/opening-a-python-toolbox-causes-arcgis-pro-to/m-p/1150425#M52326</guid>
      <dc:creator>ccowin_odfw</dc:creator>
      <dc:date>2022-03-03T21:40:48Z</dc:date>
    </item>
    <item>
      <title>Re: Opening a python toolbox causes ArcGIS Pro to crash</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/opening-a-python-toolbox-causes-arcgis-pro-to/m-p/1150499#M52345</link>
      <description>&lt;P&gt;A bit of a guess, but I think that this is the problem:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;# This allows the script to be run independently of ArcGIS Pro or ArcGIS for Desktop to leverage debugging tools
def main():
    # tbx = Toolbox()
    tool = Backfill_Data()
    tool.execute(tool.getParameterInfo(), None)


if __name__ == '__main__':
    main()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You're mixing the ways that Pro expects to get input from a Python toolbox, and you're polluting the namespace that Pro is relying on to convert code into GUI. Perhaps I haven't found the right docs to explain it, but the way ArcMap and Pro execute Python under the hood always seems to have unexpected consequences.&lt;BR /&gt;&lt;BR /&gt;I'd delete this code block and then conform your code to ESRI's template (which you're already using otherwise).&lt;/P&gt;</description>
      <pubDate>Fri, 04 Mar 2022 00:35:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/opening-a-python-toolbox-causes-arcgis-pro-to/m-p/1150499#M52345</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2022-03-04T00:35:07Z</dc:date>
    </item>
    <item>
      <title>Re: Opening a python toolbox causes ArcGIS Pro to crash</title>
      <link>https://community.esri.com/t5/arcgis-pro-questions/opening-a-python-toolbox-causes-arcgis-pro-to/m-p/1150680#M52373</link>
      <description>&lt;P&gt;Your python script has sistanxis and semantic problems in the Python_Toolbox.pyt, it can alter your script, open and run in ArcGIS Pro 2.9.2 see image. I recommend you to create a new New_Python_Toolbox.pyt, correct the problem with the dbfread module and use the modified attached scripts as reference.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Reinaldo_Cartagena_0-1646407444662.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/35607i7369A4B871203F6A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Reinaldo_Cartagena_0-1646407444662.png" alt="Reinaldo_Cartagena_0-1646407444662.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;# -*- coding: utf-8 -*-
import datetime
import os
import arcpy
import pandas as pd
#import dbfread

arcpy.env.overwriteOutput = True


class Toolbox(object):
    def __init__(self):
        """Define the toolbox (the name of the toolbox is the name of the
        .pyt file)."""

        self.label = "Backfill Data Toolbox"
        self.alias = "Backfill Data Toolbox"

        # List of tool classes associated with this toolbox
        self.tools = [Tool]


class Tool(object):
    def __init__(self):
        """Define the tool (tool name is the name of the class)."""
        self.label = "Backfill Data Toolbox"
        self.description = "Script to process collars data and add it to the Locations Database."
        self.canRunInBackground = False

    def getParameterInfo(self):
        """Define parameter definitions"""
        in_table = arcpy.Parameter(
            name='in_table',
            displayName='Dbase or Excel Input',
            datatype='DEFile',
            direction='Input',
            parameterType='Required')

        in_table.filter.list = ['dbf', 'xlsx', 'xsl', 'csv']

        out_gdb = arcpy.Parameter(
            name='out_gdb',
            displayName='Output to GDB',
            datatype='DEWorkspace',
            direction='Output',
            parameterType='Required'
        )

        animal_species = arcpy.Parameter(
            name='animal_species',
            displayName='Animal Species',
            datatype='GPString',
            direction='Input',
            parameterType='Required'
        )

        animal_species.value = 'Wolf'
        animal_species.filter.type = 'ValueList'
        animal_species.filter.list = ['Mule Deer', 'Elk', 'Pronghorn', 'Big Horn Sheep', 'Wolf']

        collar_manufacturer = arcpy.Parameter(
            name='collar_manufacturer',
            displayName='Collar Manufacturer',
            datatype='GPString',
            direction='Input',
            parameterType='Required'
        )

        collar_manufacturer.value = 'Lotek'
        collar_manufacturer.filter.type = 'ValueList'
        collar_manufacturer.filter.list = ['Vectronix', 'Telonics', 'Sirtrack', 'Lotek', 'Manual Entry', 'Wufoo']

        pack = arcpy.Parameter(
            name='pack',
            displayName=f'Pack',
            datatype='GPString',
            direction='Input',
            parameterType='Optional',
            enabled=False)

        pack.filter.type = 'ValueList'
        pack_list = ['a', 'list', 'of', 'strings']
        
        pack_list.sort()
        pack.filter.list = pack_list

        entry_staff = arcpy.Parameter(
            name='entry_staff',
            displayName='Entry Staff',
            datatype='GPString',
            direction='Input',
            parameterType='Optional',
            enabled=False)

        add_adm_location = arcpy.Parameter(
            name='add_adm_location',
            displayName='Add Administrative Locations (County, WMU, and Ownership)',
            datatype='GPBoolean',
            direction='Input',
            parameterType='Optional',
            enabled=False)

        add_adm_location.value = True

        status_table = arcpy.Parameter(
            name='status_table',
            displayName='Status Inputs',
            datatype='GPGAValueTable',
            direction='Input',
            parameterType='Optional',
            enabled=False)

        status_table.columns = ([['GPString', 'Status'], ['GPDate', 'Start'], ['GPDate', 'End']])
        status_table.filters[0].type = 'ValueList'
        status_table.filters[0].list = ['InPack', 'Dispersed', 'Roaming']

        params = [in_table, out_gdb, animal_species, collar_manufacturer, pack, entry_staff, add_adm_location,
                  status_table]

        return params

    def isLicensed(self):
        """Set whether tool is licensed to execute."""
        return True

    def updateParameters(self, parameters):
        """Modify the values and properties of parameters before internal
        validation is performed.  This method is called whenever a parameter
        has been changed."""

        if parameters[2].valueAsText == 'Wolf':
            parameters[4].enabled = True
            parameters[5].enabled = True
            parameters[6].enabled = True
            parameters[7].enabled = True

        else:
            parameters[4].enabled = False
            parameters[5].enabled = False
            parameters[6].enabled = False
            parameters[7].enabled = False
       
        return

    def updateMessages(self, parameters):
        """Modify the messages created by internal validation for each tool
        parameter.  This method is called after internal validation."""
        return

    """The source code of the tool."""
    def xy_to_fc(self, parameters, table_for_xy, output_name, input_format):
        collar_manufacturer = parameters[3].valueAsText
        output_path = os.path.join(parameters[1].valueAsText, output_name)

        # If output exists delete it, sometimes not deleting caused errors when processing it again
        if arcpy.Exists(output_path):
            arcpy.AddMessage(f'Deleting old feature class: {output_path}...')
            arcpy.management.Delete(output_path)

        if collar_manufacturer == 'Vectronix':
            in_x_field = 'LONGITUDE'
            in_y_field = 'LATITUDE'
            in_z_field = 'HEIGHT'

        elif collar_manufacturer == 'Sirtrack' or collar_manufacturer == 'Telonics':
            if input_format == 'csv':
                in_x_field = 'Longitude'
                in_y_field = 'Latitude'
                in_z_field = None
            else:
                in_x_field = 'Longitude_'
                in_y_field = 'Latitude_d'
                in_z_field = None

        elif collar_manufacturer == 'Lotek':
            in_x_field = 'Longitude'
            in_y_field = 'Latitude'
            in_z_field = 'Altitude'

        else:
            raise Exception('Error in collar_manufacturer parameter.')

        # Process: Make XY Event Layer (Make XY Event Layer) (management)
        arcpy.AddMessage('Making XY Event Layer...')
        xy_event_layer = 'memory/xy_event_layer'
        arcpy.management.MakeXYEventLayer(table=table_for_xy,
                                          in_x_field=in_x_field,
                                          in_y_field=in_y_field,
                                          out_layer=xy_event_layer,
                                          spatial_reference=arcpy.SpatialReference(4269),
                                          in_z_field=in_z_field)

        # Generate GDB if it doesn't exist
        if not arcpy.Exists(os.path.join(parameters[1].valueAsText)):
            full_path = parameters[1].valueAsText
            full_path_list = full_path.split('\\')
            out_folder_path = '\\'.join(full_path_list[:-1])
            out_name = full_path_list[-1]
            arcpy.AddMessage(out_folder_path)
            arcpy.AddMessage(out_name)

            arcpy.management.CreateFileGDB(out_folder_path, out_name)

        # Process: Feature Class To Feature Class (Feature Class To Feature Class) (conversion)
        arcpy.AddMessage('Copying event layer to a feature class...')
        arcpy.conversion.FeatureClassToFeatureClass(in_features=xy_event_layer,
                                                    out_path=os.path.join(parameters[1].valueAsText),
                                                    out_name=output_name,
                                                    where_clause="",
                                                    config_keyword="")

        # Grab original fields to delete later
        original_fields = arcpy.ListFields(os.path.join(parameters[1].valueAsText, output_name))

        # Calculate Fields:
        arcpy.AddMessage('Calculating the Collar_ID field...')
        if collar_manufacturer == 'Vectronix':
            arcpy.management.CalculateField(output_path, 'Collar_ID',
                                            expression=f'!CollarID!',
                                            field_type='TEXT'
                                            )

        elif collar_manufacturer == 'Sirtrack':
            arcpy.management.CalculateField(output_path, 'Collar_ID',
                                            expression=f'!Tag_ID!',
                                            field_type='TEXT'
                                            )

        elif collar_manufacturer == 'Lotek':
            arcpy.management.CalculateField(output_path, 'Collar_ID',
                                            expression='!Device_ID!',
                                            field_type='TEXT'
                                            )

        arcpy.AddMessage('Calculating the Lat_DDeg field...')
        arcpy.management.CalculateField(output_path, 'Lat_DDeg',
                                        expression=f'!{in_y_field}!',
                                        field_type='DOUBLE'
                                        )

        arcpy.AddMessage('Calculating the Long_DDeg field...')
        arcpy.management.CalculateField(output_path, 'Long_DDeg',
                                        expression=f'!{in_x_field}!',
                                        field_type='DOUBLE'
                                        )

        arcpy.AddMessage('Calculating the LL_Datum field...')
        arcpy.management.CalculateField(output_path, 'LL_Datum',
                                        expression="""'WGS84'""",
                                        field_type='TEXT'
                                        )

        arcpy.AddMessage('Calculating the Accuracy field...')
        if collar_manufacturer == 'Vectronix' or collar_manufacturer == 'Lotek':
            arcpy.management.CalculateField(output_path, 'Accuracy',
                                            expression='dop(!DOP!)',
                                            expression_type='PYTHON 3',
                                            code_block="""def dop(dop):
                                                            if dop &amp;lt;= 6:
                                                                return "&amp;lt; 20 yds"
                                                                
                                                            elif dop &amp;gt;= 20:
                                                                return "250 yds - 1/2 mile"   
                                                             
                                                            else:
                                                                return "20 - 250 yds"
                                                        """,
                                            field_type='TEXT'
                                            )

        arcpy.AddMessage('Calculating the Species field...')
        arcpy.management.CalculateField(output_path, 'Species',
                                        expression=f"""'{parameters[2].valueAsText}'""",
                                        field_type='TEXT'
                                        )

        arcpy.AddMessage('Calculating the Type field...')
        arcpy.management.CalculateField(output_path, 'Type',
                                        expression="""'Collar data'""",
                                        field_type='TEXT'
                                        )

        arcpy.AddMessage('Calculating the Source field...')
        arcpy.management.CalculateField(output_path, 'Source',
                                        expression=f"""'{collar_manufacturer} collar'""",
                                        field_type='TEXT'
                                        )

        arcpy.AddMessage('Calculating the Entry_Staff field from the Entry_Staff parameter...')
        arcpy.management.CalculateField(output_path, 'Entry_Staff',
                                        expression=f"""'{parameters[5].valueAsText}'""",
                                        field_type='TEXT'
                                        )

        arcpy.AddMessage('Calculating the Entry_Date field...')
        arcpy.management.CalculateField(output_path, 'Entry_Date',
                                        expression=f"""'{datetime.datetime.now().strftime('%d/%m/%Y')}'""",
                                        field_type='DATE'
                                        )

        arcpy.AddMessage('Calculating the Visual field...')
        arcpy.management.CalculateField(output_path, 'Visual',
                                        expression="""'No'""",
                                        field_type='TEXT'
                                        )

        if parameters[2].valueAsText == 'Wolf':
            arcpy.AddMessage('Adding the Pack field from the Pack parameter...')
            arcpy.management.CalculateField(output_path, 'Pack',
                                            expression=f"""'{parameters[4].valueAsText}'""",
                                            field_type='TEXT'
                                            )

            if parameters[3].valueAsText == 'Vectronix':
                arcpy.AddMessage('Adding the Wolf_Name field from the CollarID field...')
                arcpy.management.CalculateField(output_path, 'Wolf_Name',
                                                expression=f"""'name(!CollarID!)'""",
                                                expression_type='PYTHON 3',
                                                code_block="""def name(collar_id):
                                                                really long if statement that didnt need to be included""",
                                                field_type='TEXT'
                                                )

                arcpy.AddMessage('Adding the Wolf ID field from the Wolf_Name field...')
                arcpy.management.CalculateField(output_path, 'Wolf_ID',
                                                expression=f"""'id(!Wolf_Name!)'""",
                                                expression_type='PYTHON 3',
                                                code_block="""def id(wolf_name):
                                                                really long if statement that didnt need to be included""",
                                                field_type='TEXT'
                                                )

            elif collar_manufacturer == 'Sirtracks':
                arcpy.AddMessage('Wolf_Name and Wolf_ID are null for Sirtracks data, please add manually.')
                arcpy.AddMessage('Adding the Pack field from the Pack parameter...')
                arcpy.management.CalculateField(output_path, 'Wolf_Name',
                                                expression=f'!IndividualName!',
                                                expression_type='PYTHON 3',
                                                field_type='TEXT'
                                                )

        # Calculate all Date Fields:
        arcpy.AddMessage('Calculating the UTC field...')
        if parameters[3].valueAsText == 'Vectronix':
            arcpy.management.CalculateField(output_path, 'UTC',
                                            expression='uct(!UTC_DATE!, "!UTC_TIME!")',
                                            expression_type='PYTHON 3',
                                            code_block="""def uct(date, time):
                                                            date_str = date.strftime('%m/%d/%Y')
                                                            datetime_str = date_str + ' ' + time
                                                            dt = datetime.datetime.strptime(datetime_str, '%m/%d/%Y %H:%M:%S')
                                                            return dt
                                                        """,
                                            field_type='DATE'
                                            )

        elif parameters[3].valueAsText == 'Sirtrack':
            arcpy.management.CalculateField(output_path, 'UTC',
                                            expression='utc(!UTC_Date!, "!UTC_Time!")',
                                            expression_type='PYTHON 3',
                                            code_block="""def utc(date, time):
                                                            date_str = date.strftime('%m/%d/%Y')
                                                            datetime_str = date_str + ' ' + time
                                                            dt = datetime.datetime.strptime(datetime_str, '%m/%d/%Y %H:%M:%S')
                                                            return dt
                                                        """,
                                            field_type='DATE'
                                            )

        elif parameters[3].valueAsText == 'Telonics':
            arcpy.management.CalculateField(output_path, 'UTC',
                                            expression='utc(!ObservationDateTimePST!)',
                                            expression_type='PYTHON 3',
                                            code_block="""def utc(pst):
                                                            import pytz
                                                            pst.replace(tzinfo=pytz.timezone('America/Los_Angeles'))
                                                            utc = pst.astimezone(pytz.timezone('Europe/London'))
                                                            return utc
                                                        """,
                                            field_type='DATE'
                                            )

        elif parameters[3].valueAsText == 'Lotek':
            arcpy.management.CalculateField(output_path, 'UTC',
                                            expression='!Date___Tim!',
                                            expression_type='PYTHON 3',
                                            code_block="""""",
                                            field_type='DATE'
                                            )

        arcpy.AddMessage('Calculating the PST and PDT fields from the UTC field...')
        arcpy.management.ConvertTimeZone(output_path, 'UTC', 'UTC', 'PST', 'Pacific_Standard_Time', False, False)
        arcpy.management.ConvertTimeZone(output_path, 'UTC', 'UTC', 'PDT', 'Pacific_Standard_Time', False, True)

        arcpy.AddMessage('Calculating the Start_Time field...')
        arcpy.management.CalculateField(output_path, 'Start_Time',
                                        expression='!PST!',
                                        field_type='DATE'
                                        )

        arcpy.AddMessage('Calculating the End_Time field...')
        arcpy.management.AddField(output_path, 'End_Time', 'DATE')
        arcpy.management.CalculateEndTime(output_path, 'Start_Time', 'End_Time')

        arcpy.AddMessage('Calculating the TimeInt field...')
        arcpy.management.CalculateField(output_path, 'TimeInt',
                                        expression='time_diff(!Start_Time!, !End_Time!)',
                                        expression_type='PYTHON 3',
                                        code_block="""def time_diff(start, end):
                                                        diff = end - start
                                                        return diff.seconds//60
                                                    """,
                                        field_type='LONG'
                                        )

        # Switch output to target now that the ultimate feature class has been created.
        target_features = output_path

        # Spatially join administrative boundaries: WMU, County, and Ownership
        if parameters[6].value and parameters[2].valueAsText == 'Wolf':
            ownership_input = r'some network path'
            ownership_ouput = r'memory\OwnershipIntermediate'
            wmu_input = r'some network path'
            wmu_output = r'memory\WMUIntermediate'
            county_input = r'some network path'
            county_output = r'memory\CountiesIntermediate'

            arcpy.AddMessage('Calculating Ownership...')
            arcpy.analysis.SpatialJoin(target_features=target_features, join_features=ownership_input,
                                       out_feature_class=ownership_ouput, join_operation="JOIN_ONE_TO_ONE",
                                       join_type="KEEP_ALL", field_mapping="", match_option="INTERSECT",
                                       search_radius="", distance_field_name="")

            arcpy.management.JoinField(in_data=target_features, in_field="OBJECTID", join_table=ownership_ouput,
                                       join_field="TARGET_FID", fields=["OWN_TYPE"])

            arcpy.management.CalculateField(in_table=target_features, field="Ownership", expression='func(!OWN_TYPE!)',
                                            expression_type="PYTHON3",
                                            code_block="""def func(own):
                                                            if own:
                                                                return own
                                                            else:
                                                                return 'Outside Oregon'""",
                                            field_type="TEXT",
                                            enforce_domains="NO_ENFORCE_DOMAINS")

            arcpy.AddMessage('Calculating County...')
            arcpy.analysis.SpatialJoin(target_features=target_features, join_features=county_input,
                                       out_feature_class=county_output, join_operation="JOIN_ONE_TO_ONE",
                                       join_type="KEEP_ALL", field_mapping="", match_option="INTERSECT",
                                       search_radius="", distance_field_name="")

            arcpy.management.JoinField(in_data=target_features, in_field="OBJECTID", join_table=county_output,
                                       join_field="TARGET_FID", fields=["Name"])

            arcpy.management.CalculateField(in_table=target_features, field='County', expression='func(!Name!)',
                                            expression_type='PYTHON3',
                                            code_block="""def func(county):
                                                            if county:
                                                                return county
                                                            else:
                                                                return 'Outside Oregon'""",
                                            field_type='TEXT',
                                            enforce_domains='NO_ENFORCE_DOMAINS')

            arcpy.AddMessage('Calculating WMU...')
            arcpy.analysis.SpatialJoin(target_features=target_features, join_features=wmu_input,
                                       out_feature_class=wmu_output, join_operation='JOIN_ONE_TO_ONE',
                                       join_type='KEEP_ALL', field_mapping='', match_option='INTERSECT',
                                       search_radius='', distance_field_name='')

            arcpy.management.JoinField(in_data=target_features, in_field='OBJECTID', join_table=wmu_output,
                                       join_field='TARGET_FID', fields=['UNIT_NAME'])

            arcpy.management.CalculateField(in_table=target_features, field='WMU', expression='func(!UNIT_NAME!)',
                                            expression_type='PYTHON3',
                                            code_block="""def func(wmu):
                                                            if wmu:
                                                                return wmu
                                                            else:
                                                                return 'Outside Oregon'""",
                                            field_type='TEXT',
                                            enforce_domains='NO_ENFORCE_DOMAINS')

            arcpy.management.DeleteField(target_features, 'OWN_TYPE')
            arcpy.management.DeleteField(target_features, 'NAME')
            arcpy.management.DeleteField(target_features, 'UNIT_NAME')

            if parameters[7].value:
                # Adding Status field based on input from the Status Table parameter.
                arcpy.AddMessage('Calculating Status field from the Status Table parameter...')

                fields_list = arcpy.ListFields(target_features)

                for field in fields_list:
                    if 'Status' not in field.name:
                        arcpy.management.AddField(target_features, "Status", "TEXT")

                st = parameters[7].valueAsText
                arcpy.AddMessage(st)
                st_split = st.split(";")

                fields = ["Status", "Start_Time"]

                for entry in st_split:
                    entry_split = entry.split(" ")
                    status = entry_split[0]
                    start_time = entry_split[1]
                    end_time = entry_split[2]

                    sql = f"Start_Time &amp;gt;= date '{start_time}' AND Start_Time &amp;lt;= date '{end_time}'"

                    with arcpy.da.UpdateCursor(target_features, fields, sql) as cursor:
                        for row in cursor:
                            row[0] = status
                            cursor.updateRow(row)

        else:
            arcpy.AddMessage('Add Administrative Boundaries not selected...')

        # Delete unused fields:
        arcpy.AddMessage('Deleting unused fields...')
        for field in original_fields:
            if not field.required:
                arcpy.management.DeleteField(output_path, field.name)

    def execute(self, parameters, messages):
        # """The source code of the tool."""

        input_format = parameters[0].valueAsText.split('.')[-1].lower()
        collar_manufacturer = parameters[3].valueAsText

        scratch = arcpy.env.scratchFolder

        if input_format in ['xlsx', 'xls', 'csv', 'dbf', 'txt']:
            arcpy.AddMessage(f'File detected as {input_format}, Converting {input_format} to Table')
            input_path = os.path.join(parameters[0].valueAsText)

            if input_format == 'dbf':
                dbf = dbfread.DBF(input_path)
                df = pd.DataFrame(iter(dbf))
                table_for_xy = os.path.join(parameters[0].valueAsText)
            elif input_format == 'csv':
                excel_path = os.path.join(parameters[0].valueAsText[:-3] + 'xlsx')
                df = pd.read_csv(input_path)
                df = df.rename(columns={df.columns[0]: 'Device_ID'})
                df.to_excel(excel_path, index=False, columns=['Device_ID', 'Date &amp;amp; Time [GMT]', 'Latitude', 'Longitude',
                                                              'Altitude', 'DOP'])
                table_for_xy = arcpy.conversion.ExcelToTable(excel_path, scratch)
            elif input_format == 'txt':
                df = pd.read_table(input_path)
                table_for_xy = arcpy.conversion.TableToTable(input_path, scratch, 'TempTxtTable')
            elif input_format == 'xlsx' or input_format == 'xls':
                df = pd.read_excel(input_path)
                table_for_xy = arcpy.conversion.ExcelToTable(input_path, scratch)
            else:
                raise Exception('Incorrect format of input file.')

            # Build list of all unique Collar ID values that will be used to make a selection so all the data is
            # processed at the same time
            if collar_manufacturer == 'Vectronix' or collar_manufacturer == 'Telonics':
                collar_list = df.CollarID.unique()
            elif collar_manufacturer == 'Sirtrack':
                collar_list = df.Tag_ID.unique()
            elif collar_manufacturer == 'Lotek':
                collar_list = df['Device_ID'].unique()
            else:
                raise Exception('Collar Manufacturer doesnt match.')

            if len(collar_list) != 0:
                counter = 0
                for collar_id in collar_list:
                    counter = counter + 1
                    arcpy.AddMessage(f'Processing {collar_id}, {counter} of {len(collar_list)}...')

                    if collar_manufacturer == 'Vectronix':
                        subframe = df[df[f'CollarID'] == collar_id]
                        min_date = subframe.UTC_DATE.min().strftime('%y%m%d')
                        max_date = subframe.UTC_DATE.max().strftime('%y%m%d')

                        output_name = f'{collar_manufacturer[0].upper()}_{collar_id}_{min_date}_{max_date}'
                        selection = arcpy.management.SelectLayerByAttribute(table_for_xy, 'NEW_SELECTION',
                                                                            f"""CollarID = {collar_id}""")

                    elif collar_manufacturer == 'Sirtrack':
                        df['UTC'] = df[['UTC_Date', 'UTC_Time']].agg(' '.join, axis=1)
                        df['UTC'] = pd.to_datetime(df['UTC'], format='%m/%d/%Y %H:%M:%S')
                        subframe = df[df[f'Tag_ID'] == collar_id]
                        min_date = subframe.UTC.min().strftime('%y%m%d')
                        max_date = subframe.UTC.max().strftime('%y%m%d')

                        output_name = f'{collar_manufacturer[0].upper()}_{collar_id}_{min_date}_{max_date}'
                        selection = arcpy.management.SelectLayerByAttribute(table_for_xy, 'NEW_SELECTION', f"""Tag_ID = '{collar_id} And Latitude &amp;lt;&amp;gt; 0 And Longitude &amp;lt;&amp;gt; 0'""")

                    elif collar_manufacturer == 'Telonics':
                        subframe = df[df[f'CollarID'] == collar_id]
                        min_date = subframe.ObservationDateTimePST.min().strftime('%y%m%d')
                        max_date = subframe.ObservationDateTimePST.max().strftime('%y%m%d')

                        output_name = f'{collar_manufacturer[0].upper()}_{collar_id}_{min_date}_{max_date}'
                        selection = arcpy.management.SelectLayerByAttribute(table_for_xy, 'NEW_SELECTION', f"""Tag_ID = '{collar_id}' And Latitude &amp;lt;&amp;gt; 0 And Longitude &amp;lt;&amp;gt; 0""")

                    elif collar_manufacturer == 'Lotek':
                        if 'UTC' not in df.columns:
                            df['UTC'] = pd.to_datetime(df['Date &amp;amp; Time [GMT]'], format='%Y-%m-%d %H:%M:%S')

                        subframe = df[df['Device_ID'] == collar_id]
                        min_date = subframe.UTC.min().strftime('%y%m%d')
                        max_date = subframe.UTC.max().strftime('%y%m%d')

                        output_name = f'{collar_manufacturer[0].upper()}_{collar_id}_{min_date}_{max_date}'

                        selection = arcpy.management.SelectLayerByAttribute(table_for_xy, 'NEW_SELECTION', f"""Device_ID = {collar_id} And Latitude &amp;lt;&amp;gt; 0 And Longitude &amp;lt;&amp;gt; 0""")

                        selection = arcpy.conversion.TableToTable(selection, 'memory', output_name)

                    else:
                        raise Exception('Collar Manufacturer doesnt match.')

                    self.xy_to_fc(parameters=parameters, table_for_xy=selection, output_name=output_name,
                                  input_format=input_format)

            else:
                raise Exception('No Collar ID in Table.')

        else:
            arcpy.AddMessage(
                f'File detected as {input_format}, this format is unsupported. Please use dbf, xlsx or xls')
            raise Exception('Invalid input table format!')

        arcpy.AddMessage('Data processing is complete!')
        
        return&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 05 Mar 2022 16:37:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-questions/opening-a-python-toolbox-causes-arcgis-pro-to/m-p/1150680#M52373</guid>
      <dc:creator>Reinaldo_Cartagena</dc:creator>
      <dc:date>2022-03-05T16:37:19Z</dc:date>
    </item>
  </channel>
</rss>

