import arcpy import os, sys from xml.etree import cElementTree as ElementTree def addCoreFields(fc): arcpy.AddField_management(fc, "AssetObjectId", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "AssetId", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "AssetObjectStatus", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "Status", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "Feature", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "SubFeature", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "AssetCode", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "LaneLocation", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "Route", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "FromMilepost", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "FromOffset", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "ToMilepost", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") arcpy.AddField_management(fc, "ToOffset", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED", "") if __name__ == '__main__': scriptPath = sys.path[0] dataGDB = os.path.join(scriptPath, "data.gdb") if arcpy.Exists(dataGDB): arcpy.Delete_management(dataGDB) arcpy.CreateFileGDB_management(scriptPath, "data") sr = "PROJCS['NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet_Intl',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',700000.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-111.9166666666667],PARAMETER['Scale_Factor',0.9999],PARAMETER['Latitude_Of_Origin',31.0],UNIT['Foot',0.3048]];-17746700 -44067300 3048;-100000 10000;-100000 10000;3.28083989501312E-03;0.001;0.001;IsHighPrecision" for name in ['one', 'two', 'three']: fc = os.path.join(dataGDB, name) arcpy.CreateFeatureclass_management(dataGDB, name, "POINT", "", "DISABLED", "DISABLED", sr, "", "0", "0", "0") addCoreFields(fc)
Solved! Go to Solution.
with that extra second of execution time per added per field my geo proc just got a lot slower.
def addfields():
print "Adding fields"
field_name_list = [field.name for field in arcpy.ListFields(calc_table)]
add_fields = [
("TYPE", "TEXT", "#", "#", 40),
("ORIGIN_SITE", "TEXT", "#", "#", 10),
("UTYPE", "TEXT", "#", "#", 40),
("U_ORIGIN_SITE", "TEXT", "#", "#", 10),
("DEC_PER", "SHORT", "#", "#", "#"),
("LEAD_CON", "TEXT", "#", "#", 2),
("COV_GRP", "TEXT", "#", "#", 2),
("STRATA", "SHORT", "#", "#", "#"),
("CON_PIECE", "FLOAT", "#", "#", "#"),
("DEC_PIECE", "FLOAT", "#", "#", "#"),
("CON_VOLHA", "FLOAT", "#", "#", "#"),
("DEC_VOLHA", "FLOAT", "#", "#", "#"),
("UDEC_PER", "SHORT", "#", "#", "#"),
("UCOV_GRP", "TEXT", "#", "#", 2),
("ULEAD_CON", "TEXT", "#", "#", 2),
("TDASTRATUM", "TEXT", "#", "#", 8),
("UTDASTRATUM", "TEXT", "#", "#", 8)]
for field in add_fields:
if field[0] not in field_name_list:
arcpy.AddField_management(
calc_table,
field[0],
field[1],
field[2],
field[3],
field[4])
with that extra second of execution time per added per field my geo proc just got a lot slower.
in_memory workspace -- the Add Fields happen very fast with no file-locking issues
import arcpy
import os, sys
def addCoreFields(fc):
arcpy.AddField_management(fc, "AssetObjectId", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "AssetId", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "AssetObjectStatus", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "Status", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "Feature", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "SubFeature", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "AssetCode", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "LaneLocation", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "Route", "TEXT", "", "", "32", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "FromMilepost", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "FromOffset", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "ToMilepost", "LONG", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.AddField_management(fc, "ToOffset", "DOUBLE", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
if __name__ == '__main__':
scriptPath = sys.path[0]
dataGDB = os.path.join(scriptPath, "data.gdb")
if arcpy.Exists(dataGDB): arcpy.Delete_management(dataGDB)
arcpy.CreateFileGDB_management(scriptPath, "data")
for name in ['one', 'two', 'three']:
fc = arcpy.CreateFeatureclass_management("in_memory", name, "POINT", "", "DISABLED", "DISABLED", "", "", "0", "0", "0")
addCoreFields(fc)
arcpy.CopyFeatures_management(fc, os.path.join(dataGDB, name))
arcpy.Delete_management(fc)