Select to view content in your preferred language

arcpy.FieldMapping problem

329
0
11-28-2011 02:28 AM
DivanVermeulen1
New Contributor
Hi there,
I'm new to scripting and still struggling to figure out how everything works. When a call the FieldMappings function in the script the following error occurs: <type 'exceptions.AttributeError'>: Object: Tool or environment <s> not found
Failed to execute (runAccuracy). I know for a fact it is the at the exact moment when I call the function when the script fails. I'm doing exactly the same than a few examples I found on the internet on setting up FieldMappings for python scripts. The code is provided below:

import arcgisscripting, os, sys, string, math, traceback, shutil, subprocess
from time import localtime, strftime


import arcpy
import os
from arcpy import env
from arcpy.sa import *

arcpy = arcgisscripting.create(10.0)
arcpy.overwriteoutput = 1
arcpy.CheckOutExtension("Spatial")
arcpy.SetProduct("ArcInfo")

class GetOutOfLoop( Exception 😞
    pass

# Version
version = 1

# Directories
fportion_loc = "C:/Divan/FPortion/FPortion/"
points_loc = "C:/Divan/FPortion/Points/"
temp_loc = "c:/Divan/FPortion/temp/"
export_loc = "C:/Divan/FPortion/Exported/"
ws = temp_loc
env.workspace = ws


# Checks the extension of a given file
def checkExtension(fileName, extension):
    length = len(fileName)

    # If the string length is less than 3 character, it can't be a .shp or .tif file
    if length < 3:
        return -1
    else:
        lowercase = fileName.lower()
        found = lowercase.find(extension, length - 4, length)

        if found == -1:
            return -1
        else:
            return 0

try:
    # List all files
    fportionFiles = os.listdir(fportion_loc)
    pointsFiles = os.listdir(points_loc)

    # Loops through all the fportion_loc files
    for fportionfile in fportionFiles:
        if checkExtension(fportionfile, ".shp") != -1:
            index = fportionfile.find("_") # Finds the index of the '_' character
            prefix = fportionfile[:index] # Stores the prefix of the file

            arcpy.AddMessage("Zone(polygon) shapefile found: " + fportionfile)
            arcpy.MakeFeatureLayer(fportion_loc + fportionfile, fportionfile + "_ref_fportion")

            cnt = 0
            # Loops through all the dem_loc files
            for pointsFile in pointsFiles:
                points_lowercase = string.lower(pointsFile)
                if checkExtension(points_lowercase, ".shp") != -1:
                    arcpy.AddMessage("Point shapefile found: " + pointsFile)

                    arcpy.MakeFeatureLayer(points_loc + pointsFile, pointsFile + "_tmp")
                   
                    arcpy.AddMessage("Creating fieldmappings...")
                    fieldmappings = arcpy.FieldMappings() # The error occurs when I call this function
                    arcpy.AddMessage("          bla!!!!")
                    #fieldmappings.addTable(fportion_loc + fportionfile)
                    #fieldmappings.addTable(points_loc + pointsFile)
                   
                    #fieldIndex = fieldmappings.findFieldMapIndex("RASTERVALU")
                    #fieldMap = fieldmappings.getFieldMap(fieldIndex)
                    #fieldProperties = fieldmap.outputField
                    #field.name = "mean_elev"
                    #field.aliasName = "mean_elev"
                    #fieldMap.outputField = field
                    #fieldMap.mergeRule = "mean"
                   
                    #fieldmappings.replaceFieldMap(fieldIndex, fieldMap)

                    #arcpy.AddMessage("Executing spatial join...")
                    #arcpy.SpatialJoin_analysis(fportionfile + "_ref_fportion", pointsFile + "_tmp", export_loc + prefix + "_done.shp", "JOIN_ONE_TO_MANY", "KEEP_ALL", fieldmappings, "CONTAINS")
except GetOutOfLoop:
    pass

The code that has been commented out to determine where the error occurs.

Thanks in advance
Tags (2)
0 Kudos
0 Replies