<?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: Batch project using Loop Script - Beginner needs Help! in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/batch-project-using-loop-script-beginner-needs/m-p/688990#M53382</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;just some hints for you. I didn't try it. Just wrote from memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) Leave it hard coded and replace it when your code works&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e.g. TargetProject= "Coordinate Systems/Projected Coordinate Systems/UTM/WGS 1984/Northern Hemisphere/WGS 1984 UTM Zone 18N.prj"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;later you replace it by:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;TargetProject=arcpy.GetParameterAsText(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2/3) try this:&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#for" in_data" use the describe command to ge the name of the current projection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;desc = arcpy.Describe("C:/Data/example.gdb/yourshape")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in_data=desc.name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#for the new shape use the old + some string. I often make mistakes in combining so counter check&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;out_data=str(str(in_data) + "_projected.shp") &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rename_management (in_data, out_data)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;4) Try this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;desc = arcpy.Describe("C:/Data/example.gdb/yourshape")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sr = desc.spatialReference &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if str(sr) ==TargetProject:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; #then do your stuff etc.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; print: "Already correct coordinate System"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;good luck&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;chris&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 10 Oct 2011 07:23:01 GMT</pubDate>
    <dc:creator>chriss_</dc:creator>
    <dc:date>2011-10-10T07:23:01Z</dc:date>
    <item>
      <title>Batch project using Loop Script - Beginner needs Help!</title>
      <link>https://community.esri.com/t5/python-questions/batch-project-using-loop-script-beginner-needs/m-p/688989#M53381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am a beginniner scripter who is having some problems working on a script.&amp;nbsp; I am sure you guys will be able to help me out &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt; Here is what the script must do:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The user opens a GUI window and enters two input parameters:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1) A target folder&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) A target projection dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The script then runs through all the feature classes in the target folder using a loop and re-projects them to the projection of the specified target projection dataset.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I also must:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) Append "_projected" to the end of each projected dataset name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) Skip projecting datasets that equal the target projection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3) Report a geoprocessing message saying what datasets were projected&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here are the problems I'm having (All because I'm a beginner and I'm quite sick right now - I have lyme disease and I'm having trouble with my cognition.&amp;nbsp; Ugh.&amp;nbsp; Please help!):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) I'm confused about how to specify the target folder, target projectoin system, and output coordinate system as relative and not hard coded.&amp;nbsp; Do I use the arcpy.GetParameterAsText method, or is there an alternative method?&amp;nbsp; I'm especially confused about how to not hard code the output .prj coordinate system.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2) I'm not sure how to append "_projected.shp" to the end of the projected shapefiles.&amp;nbsp; I know there's the endswith method whereby you can remove the end characters of a file name, but I'm not sure how to apply that correctly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3) I'm not sure how to correctly construct the output path name&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;4) I'm not sure how to check the input feature class and NOT project it if it has the same projectoin as the target feature class.&amp;nbsp; I know this involves creating a spatial reference object and comparing the two spatial reference objects against one another, but I don't believe my syntax is correct.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Again, any help is much appreciated.&amp;nbsp; I'm quite sick and this is the last class I need to finish in order to graduate.&amp;nbsp; Thank you very much ahead of time!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's my current code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Description: Changes coordinate systems of several datasets based on the input of one feature class dataset&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from arcpy import env&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#Create path variables&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;targetFolder = arcpy.GetParameterAsText(0) #"C:\\GEOG485\\Lesson2\\"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;targetProjection = arcpy.GetParameterAsText(1) #"C:\\GEOG485\\Lesson2\\StateRoutes.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;outCoordinateSystem = "C:\\GEOG485\\Lesson2\\StateRoutes.prj"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#get list of all feature classes in targetFolder&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.env.workspace = targetFolder&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;featureClassList = arcpy.ListFeatureClasses()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Loop through all feature classes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for featureClass in featureClassList&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #temporarily remove .SHP suffix&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rootName = " "&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if featureClass.endswith(".shp"):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rootName = featureClass[:-4]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Construct output path and added _projected suffix&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; outProjectFeatureClass = targetFolder + featureClass + "_projected.shp"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #check if the input feature class has the same projection as the target feature class; if they do, do not project - i'm not sure how to do this&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spatialRef = arcpy.SpatialReference(featureClass)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spatialRef.createFromFile("C:\\GEOG485\\Lesson2\\StateRoutes.prj") #but I need to change this so the path isn't hard-coded&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if spatialRef.Name != targetProjection.Name:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Perform the project and report what happened&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Project_management(featureClass, outProjectFeatureClass, outCoordinateSystem)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(arcpy.GetMessages())&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage("Did not project " + outProjectFeatureClass + "because project is the same as target.") &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;except:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Report if there was an error&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddError("Could not project feature classe")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print "Could not project feature classe"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print arcpy.GetMessages()&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 08 Oct 2011 21:25:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-project-using-loop-script-beginner-needs/m-p/688989#M53381</guid>
      <dc:creator>MatthewBelsky</dc:creator>
      <dc:date>2011-10-08T21:25:02Z</dc:date>
    </item>
    <item>
      <title>Re: Batch project using Loop Script - Beginner needs Help!</title>
      <link>https://community.esri.com/t5/python-questions/batch-project-using-loop-script-beginner-needs/m-p/688990#M53382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;just some hints for you. I didn't try it. Just wrote from memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) Leave it hard coded and replace it when your code works&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e.g. TargetProject= "Coordinate Systems/Projected Coordinate Systems/UTM/WGS 1984/Northern Hemisphere/WGS 1984 UTM Zone 18N.prj"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;later you replace it by:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;TargetProject=arcpy.GetParameterAsText(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2/3) try this:&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#for" in_data" use the describe command to ge the name of the current projection&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;desc = arcpy.Describe("C:/Data/example.gdb/yourshape")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in_data=desc.name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#for the new shape use the old + some string. I often make mistakes in combining so counter check&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;out_data=str(str(in_data) + "_projected.shp") &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rename_management (in_data, out_data)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;4) Try this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;desc = arcpy.Describe("C:/Data/example.gdb/yourshape")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;sr = desc.spatialReference &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if str(sr) ==TargetProject:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; #then do your stuff etc.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; print: "Already correct coordinate System"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;good luck&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;chris&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Oct 2011 07:23:01 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/batch-project-using-loop-script-beginner-needs/m-p/688990#M53382</guid>
      <dc:creator>chriss_</dc:creator>
      <dc:date>2011-10-10T07:23:01Z</dc:date>
    </item>
  </channel>
</rss>

