Null value gotcha for Field Calculator in Python

I had a problem trying to do a field calculation with field values that had <Null> ‘s.  You need to convert these to strings first apparently!!  Read below!

When Calculate Field evaluates your expression, it looks for null values and if any are found, the expression is not evaluated. This prevents divide-by-zero errors and other undefined operations.

If your field contains null values, you need to turn it into a string (using str()) in the expression, even if it’s already a string field e.g

str(!FooField!)

Plus, if you want to return a null value back to the cell, then just return “None” – without quotes 🙂

Null value gotcha for Field Calculator in Python

Creating a Convex Hull with Points

Using a point featureclass as the input and a target polygon featureclass as the output to put the convex hull into, just use the following code:

def CreateConvex(inputfc, outputfc):
    pointArray = arcpy.Array()
    totalrows = arcpy.GetCount_management(inputfc)
    print "Points total is {0}".format(int(totalrows.getOutput(0)))

    #Loop through points in FC (points)
    desc = arcpy.Describe(inputfc)
    shapefieldname = desc.ShapeFieldName
    fields = ["SHAPE@"]
    with arcpy.da.SearchCursor(inputfc, fields) as cursor:
        for row in cursor:
        pnt = row[0].getPart()
        pointArray.add(pnt)

    pointMultipoint = arcpy.Multipoint(pointArray)
    pointArray.removeAll() #frees up memory
    convexPolygon = pointMultipoint.convexHull()

    #Insert into output featureclass
    insertCursor = arcpy.da.InsertCursor(outputfc, ("SHAPE@"))
    insertCursor.insertRow((convPolygon))
    del insertCursor #This actually inserts the row - very important!
    print "Inserted convex polygon"
Creating a Convex Hull with Points