Python arcpy.AddField_management() Examples
The following are 15
code examples of arcpy.AddField_management().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
arcpy
, or try the search function
.
![](https://www.programcreek.com/common/static/images/search.png)
Example #1
Source File: section_cpu.py From HiSpatialCluster with Apache License 2.0 | 10 votes |
def generate_cls_boundary(cls_input,cntr_id_field,boundary_output,cpu_core): arcpy.env.parallelProcessingFactor=cpu_core arcpy.SetProgressorLabel('Generating Delaunay Triangle...') arrays=arcpy.da.FeatureClassToNumPyArray(cls_input,['SHAPE@XY',cntr_id_field]) cid_field_type=[f.type for f in arcpy.Describe(cls_input).fields if f.name==cntr_id_field][0] delaunay=Delaunay(arrays['SHAPE@XY']).simplices.copy() arcpy.CreateFeatureclass_management('in_memory','boundary_temp','POLYGON',spatial_reference=arcpy.Describe(cls_input).spatialReference) fc=r'in_memory\boundary_temp' arcpy.AddField_management(fc,cntr_id_field,cid_field_type) cursor = arcpy.da.InsertCursor(fc, [cntr_id_field,"SHAPE@"]) arcpy.SetProgressor("step", "Copying Delaunay Triangle to Temp Layer...",0, delaunay.shape[0], 1) for tri in delaunay: arcpy.SetProgressorPosition() cid=arrays[cntr_id_field][tri[0]] if cid == arrays[cntr_id_field][tri[1]] and cid == arrays[cntr_id_field][tri[2]]: cursor.insertRow([cid,arcpy.Polygon(arcpy.Array([arcpy.Point(*arrays['SHAPE@XY'][i]) for i in tri]))]) arcpy.SetProgressor('default','Merging Delaunay Triangle...') if '64 bit' in sys.version: arcpy.PairwiseDissolve_analysis(fc,boundary_output,cntr_id_field) else: arcpy.Dissolve_management(fc,boundary_output,cntr_id_field) arcpy.Delete_management(fc) return
Example #2
Source File: CreateDischargeTable.py From python-toolbox-for-rapid with Apache License 2.0 | 6 votes |
def calculateTimeField(self, out_table, start_datetime, time_interval): """Add & calculate TimeValue field: scripts adapted from TimeTools.pyt developed by N. Noman""" timeIndexFieldName = self.fields_oi[0] timeValueFieldName = self.fields_oi[3] #Add TimeValue field arcpy.AddField_management(out_table, timeValueFieldName, "DATE", "", "", "", timeValueFieldName, "NULLABLE") #Calculate TimeValue field expression = "CalcTimeValue(!" + timeIndexFieldName + "!, '" + start_datetime + "', " + time_interval + ")" codeBlock = """def CalcTimeValue(timestep, sdatestr, dt): if (":" in sdatestr): sdate = datetime.datetime.strptime(sdatestr, '%m/%d/%Y %I:%M:%S %p') else: sdate = datetime.datetime.strptime(sdatestr, '%m/%d/%Y') tv = sdate + datetime.timedelta(hours=(timestep - 1) * dt) return tv""" arcpy.AddMessage("Calculating " + timeValueFieldName + "...") arcpy.CalculateField_management(out_table, timeValueFieldName, expression, "PYTHON_9.3", codeBlock) return
Example #3
Source File: spatial.py From ArcREST with Apache License 2.0 | 6 votes |
def create_feature_class(out_path, out_name, geom_type, wkid, fields, objectIdField): """ creates a feature class in a given gdb or folder """ if arcpyFound == False: raise Exception("ArcPy is required to use this function") arcpy.env.overwriteOutput = True field_names = [] fc =arcpy.CreateFeatureclass_management(out_path=out_path, out_name=out_name, geometry_type=lookUpGeometry(geom_type), spatial_reference=arcpy.SpatialReference(wkid))[0] for field in fields: if field['name'] != objectIdField: field_names.append(field['name']) arcpy.AddField_management(out_path + os.sep + out_name, field['name'], lookUpFieldType(field['type'])) return fc, field_names #----------------------------------------------------------------------
Example #4
Source File: datasetExtentToFeatures.py From sample-gp-tools with Apache License 2.0 | 5 votes |
def execute(in_datasets, out_fc): # use gcs as output sr since all extents will fit in it out_sr = arcpy.SpatialReference("WGS 1984") in_datasets = in_datasets.split(";") arcpy.CreateFeatureclass_management(os.path.dirname(out_fc), os.path.basename(out_fc), "POLYGON", spatial_reference=out_sr) arcpy.AddField_management(out_fc, "dataset", "TEXT", 400) # add each dataset's extent & the dataset's name to the output with arcpy.da.InsertCursor(out_fc, ("SHAPE@", "dataset")) as cur: for i in in_datasets: d = arcpy.Describe(i) ex = d.Extent pts = arcpy.Array([arcpy.Point(ex.XMin, ex.YMin), arcpy.Point(ex.XMin, ex.YMax), arcpy.Point(ex.XMax, ex.YMax), arcpy.Point(ex.XMax, ex.YMin), arcpy.Point(ex.XMin, ex.YMin),]) geom = arcpy.Polygon(pts, d.SpatialReference) if d.SpatialReference != out_sr: geom = geom.projectAs(out_sr) cur.insertRow([geom, d.CatalogPath])
Example #5
Source File: arcapi.py From arcapi with GNU Lesser General Public License v3.0 | 5 votes |
def rename_col(tbl, col, newcol, alias = ''): """Rename column in table tbl and return the new name of the column. This function first adds column newcol, re-calculates values of col into it, and deletes column col. Uses arcpy.ValidateFieldName to adjust newcol if not valid. Raises ArcapiError if col is not found or if newcol already exists. Required: tbl -- table with the column to rename col -- name of the column to rename newcol -- new name of the column Optional: alias -- field alias for newcol, default is '' to use newcol for alias too """ if col != newcol: d = arcpy.Describe(tbl) dcp = d.catalogPath flds = arcpy.ListFields(tbl) fnames = [f.name.lower() for f in flds] newcol = arcpy.ValidateFieldName(newcol, tbl) #os.path.dirname(dcp)) if col.lower() not in fnames: raise ArcapiError("Field %s not found in %s." % (col, dcp)) if newcol.lower() in fnames: raise ArcapiError("Field %s already exists in %s" % (newcol, dcp)) oldF = [f for f in flds if f.name.lower() == col.lower()][0] if alias == "": alias = newcol arcpy.AddField_management(tbl, newcol, oldF.type, oldF.precision, oldF.scale, oldF.length, alias, oldF.isNullable, oldF.required, oldF.domain) arcpy.CalculateField_management(tbl, newcol, "!" + col + "!", "PYTHON_9.3") arcpy.DeleteField_management(tbl, col) return newcol
Example #6
Source File: arcapi.py From arcapi with GNU Lesser General Public License v3.0 | 5 votes |
def add_fields_from_table(in_tab, template, add_fields=[]): """Add fields (schema only) from one table to another Required: in_tab -- input table template -- template table containing fields to add to in_tab add_fields -- fields from template table to add to input table (list) Example: >>> add_fields_from_table(parcels, permits, ['Permit_Num', 'Permit_Date']) """ # fix args if args from script tool if isinstance(add_fields, str): add_fields = add_fields.split(';') # grab field types f_dict = dict((f.name, [get_field_type(f.type), f.length, f.aliasName]) for f in arcpy.ListFields(template)) # Add fields for field in add_fields: if field in f_dict: f_ob = f_dict[field] arcpy.AddField_management(in_tab, field, f_ob[0], field_length=f_ob[1], field_alias=f_ob[2]) msg('Added field: {0}'.format(field)) return
Example #7
Source File: parseVST.py From CTM with Apache License 2.0 | 5 votes |
def check_field(fc_class, field): print("Checking for " + field + " on " + fc_class) field_names = [f.name for f in arcpy.ListFields(fc_class)] if field not in field_names: arcpy.AddMessage("Adding Field to " + str(fc_class)) arcpy.AddField_management(fc_class, field, "Long")
Example #8
Source File: common_types.py From restapi with GNU General Public License v2.0 | 5 votes |
def __getattr__(self, attr): """Recursively raise not implemented error for any calls to arcpy: arcpy.management.AddField(...) or: arcpy.AddField_management(...) """ return Callable()
Example #9
Source File: SDA_JSON_Testing.py From geo-pit with GNU General Public License v2.0 | 5 votes |
def createOutputFC(): # Input theAOI is the original first parameter (usually CLU feature layer) # # Given the path for the new output featureclass, create it as polygon and add required fields # Later it will be populated using a cursor. try: epsgWGS84 = 4326 # EPSG code for: GCS-WGS-1984 outputCS = arcpy.SpatialReference(epsgWGS84) nasisProjectFC = arcpy.CreateScratchName("nasisProject", workspace=arcpy.env.scratchGDB,data_type="FeatureClass") # Create empty polygon featureclass with coordinate system that matches AOI. arcpy.CreateFeatureclass_management(env.scratchGDB, os.path.basename(nasisProjectFC), "POLYGON", "", "DISABLED", "DISABLED", outputCS) arcpy.AddField_management(nasisProjectFC,"mukey", "TEXT", "", "", "30") # for outputShp if not arcpy.Exists(nasisProjectFC): AddMsgAndPrint("\tFailed to create " + nasisProjectFC + " TEMP Layer",2) return False return nasisProjectFC except: errorMsg() return False ## ===================================================================================
Example #10
Source File: spatial.py From ArcREST with Apache License 2.0 | 4 votes |
def insert_rows(fc, features, fields, includeOIDField=False, oidField=None): """ inserts rows based on a list features object """ if arcpyFound == False: raise Exception("ArcPy is required to use this function") icur = None if includeOIDField: arcpy.AddField_management(fc, "FSL_OID", "LONG") fields.append("FSL_OID") if len(features) > 0: fields.append("SHAPE@") workspace = os.path.dirname(fc) with arcpy.da.Editor(workspace) as edit: date_fields = getDateFields(fc) icur = arcpy.da.InsertCursor(fc, fields) for feat in features: row = [""] * len(fields) drow = feat.asRow[0] dfields = feat.fields for field in fields: if field in dfields or \ (includeOIDField and field == "FSL_OID"): if field in date_fields: row[fields.index(field)] = toDateTime(drow[dfields.index(field)]) elif field == "FSL_OID": row[fields.index("FSL_OID")] = drow[dfields.index(oidField)] else: row[fields.index(field)] = drow[dfields.index(field)] del field row[fields.index("SHAPE@")] = feat.geometry icur.insertRow(row) del row del drow del dfields del feat del features icur = None del icur del fields return fc else: return fc #----------------------------------------------------------------------
Example #11
Source File: arcapi.py From arcapi with GNU Lesser General Public License v3.0 | 4 votes |
def concatenate_fields(table, new_field, length, fields=[], delimiter='', number_only=False): """Create a new field in a table and concatenate user defined fields. This can be used in situations such as creating a Section-Township-Range field from 3 different fields. Returns the field name that was added. Required: table -- Input table new_field -- new field name length -- field length fields -- list of fields to concatenate Optional: delimiter -- join value for concatenated fields (example: '-' , all fields will be delimited by dash) number_only -- if True, only numeric values from a text field are extracted. Default is False. Example: >>> sec = r'C:\Temp\Sections.shp' >>> concatenate_fields(sec, 'SEC_TWP_RNG', 15, ['SECTION', 'TOWNSHIP', 'RANGE'], '-') """ # Add field new_field = create_field_name(table, new_field) arcpy.AddField_management(table, new_field, 'TEXT', field_length=length) # Concatenate fields if arcpy.GetInstallInfo()['Version'] != '10.0': # da cursor with arcpy.da.UpdateCursor(table, fields + [new_field]) as rows: for r in rows: r[-1] = concatenate(r[:-1], delimiter, number_only) rows.updateRow(r) else: # 10.0 cursor rows = arcpy.UpdateCursor(table) for r in rows: r.setValue(new_field, concatenate([r.getValue(f) for f in fields], delimiter, number_only)) rows.updateRow(r) del r, rows return new_field
Example #12
Source File: Validate_Mapunit_Slope_Range.py From geo-pit with GNU General Public License v2.0 | 4 votes |
def getZoneField(muLayerPath, analysisType): # This function will return a field name based on the analysis type that # was chosen by the user. If analysis type is MUKEY, then MUKEY is returned if # the field exists, otherwise a newly created field "MLRA_Temp" will be returned. # "MLRA_Temp" will be returned for MLRA analysis type # OID field will be returned for each polygon try: theDesc = arcpy.Describe(muLayerPath) theFields = theDesc.fields theField = theFields[0] idField = theDesc.OIDFieldName if analysisType.find('Mapunit (MUKEY)') > -1: if len(arcpy.ListFields(muLayerPath,"MUKEY")) > 0: return "MUKEY" else: AddMsgAndPrint("\nAnalysis Cannot be done by Mapunit since MUKEY is missing.",1) AddMsgAndPrint("Proceeding with analysis using MLRA ",1) if not len(arcpy.ListFields(muLayerPath, "MLRA_Temp")) > 0: arcpy.AddField_management(muLayer,"MLRA_Temp","TEXT", "", "", 15) arcpy.CalculateField_management(muLayer,"MLRA_Temp", "\"MLRA Mapunit\"", "PYTHON_9.3", "") return "MLRA_Temp" elif analysisType.find('MLRA Mapunit') > -1: if not len(arcpy.ListFields(muLayerPath, "MLRA_Temp")) > 0: arcpy.AddField_management(muLayer,"MLRA_Temp","TEXT", "", "", 15) arcpy.CalculateField_management(muLayer,"MLRA_Temp", "\"MLRA Mapunit\"", "PYTHON_9.3", "") return "MLRA_Temp" # Analysis Type = Polygon else: AddMsgAndPrint("\nWARNING Reporting by polygon might be very verbose") return idField except: errorMsg() return "" ## ===============================================================================================================
Example #13
Source File: Extract_PLU_by_NASIS_Project.py From geo-pit with GNU General Public License v2.0 | 4 votes |
def createOutputFC(dictOfFields,preFix="Temp",shape="POLYGON"): """ This function will creat an empty polygon feature class within the scratch FGDB. The feature class will be in WGS84 and will have have 2 fields created: mukey and mupolygonkey. The feature class name will have a prefix of 'nasisProject.' This feature class is used by the 'requestGeometryByMUKEY' function to write the polygons associated with a NASIS project. fieldDict ={field:(fieldType,fieldLength,alias) fieldDict = {"mukey":("TEXT",30,"Mapunit Key"),"mupolygonkey":("TEXT","",30)} Return the new feature class including the path. Return False if error ocurred.""" try: epsgWGS84 = 4326 # EPSG code for: GCS-WGS-1984 outputCS = arcpy.SpatialReference(epsgWGS84) newFC = arcpy.CreateScratchName(preFix, workspace=arcpy.env.scratchGDB,data_type="FeatureClass") # Create empty polygon featureclass with coordinate system that matches AOI. arcpy.CreateFeatureclass_management(env.scratchGDB, os.path.basename(newFC), shape, "", "DISABLED", "DISABLED", outputCS) for field,params in dictOfFields.iteritems(): try: fldLength = params[1] fldAlias = params[2] except: fldLength = 0 pass arcpy.AddField_management(newFC,field,params[0],"#","#",fldLength,fldAlias) ## if len(params[1]) > 0: ## expression = "\"" + params[1] + "\"" ## arcpy.CalculateField_management(helYesNo,field,expression,"VB") ## arcpy.AddField_management(nasisProjectFC,"mukey", "TEXT", "", "", "30") ## arcpy.AddField_management(nasisProjectFC,"mupolygonkey", "TEXT", "", "", "30") # for outputShp if not arcpy.Exists(newFC): AddMsgAndPrint("\tFailed to create scratch " + newFC + " Feature Class",2) return False return newFC except: errorMsg() AddMsgAndPrint("\tFailed to create scratch " + newFC + " Feature Class",2) return False ## ===================================================================================
Example #14
Source File: Mapunit_Geodata_Breakdown_Description.py From geo-pit with GNU General Public License v2.0 | 4 votes |
def getZoneField(analysisType): # This function will return a field name based on the analysis type that # was chosen by the user. If analysis type is MUKEY, then MUKEY is returned if # it exists, otherwise a newly created field "MLRA_Temp" will be returned. # "MLRA_Temp" will be returned for MLRA analysis type # OID field will be returned for each polygon try: mlraTempFld = "MLRA_Temp" if analysisType.find('Mapunit (MUKEY)') > -1: if len(arcpy.ListFields(muLayerPath,"MUKEY")) > 0: return "MUKEY" else: AddMsgAndPrint("\nAnalysis Cannot be done by Mapunit since MUKEY is missing.",1) AddMsgAndPrint("Proceeding with analysis using MLRA ",1) if not len(arcpy.ListFields(muLayerPath,mlraTempFld)) > 0: arcpy.AddField_management(muLayerPath,mlraTempFld,"TEXT", "", "", 15) # Calculate the new field using an UpdateCursor b/c Calc tool threw an 000728 error with arcpy.da.UpdateCursor(muLayerPath,mlraTempFld) as cursor: for row in cursor: row[0] = "MLRA_Mapunit" cursor.updateRow(row) return mlraTempFld elif analysisType.find('MLRA Mapunit') > -1: if not len(arcpy.ListFields(muLayerPath,mlraTempFld)) > 0: arcpy.AddField_management(muLayerPath,mlraTempFld,"TEXT", "", "", 15) arcpy.RefreshCatalog(outputFolder) # Calculate the new field using an UpdateCursor b/c Calc tool threw an 000728 error with arcpy.da.UpdateCursor(muLayerPath,mlraTempFld) as cursor: for row in cursor: row[0] = "MLRA_Mapunit" cursor.updateRow(row) return mlraTempFld # Analysis Type = Polygon else: AddMsgAndPrint("\nWARNING Reporting by polygon might be very verbose") return idField except: errorMsg() return False # ===================================================================================
Example #15
Source File: Area_Geodata_Breakdown_Description.py From geo-pit with GNU General Public License v2.0 | 4 votes |
def getZoneField(analysisType): # This function will return a field name based on the analysis type that # was chosen by the user. If analysis type is MUKEY, then MUKEY is returned if # it exists, otherwise a newly created field "MLRA_Temp" will be returned. # "MLRA_Temp" will be returned for MLRA analysis type # OID field will be returned for each polygon try: mlraTempFld = "MLRA_Temp" if analysisType.find('Mapunit (MUKEY)') > -1: if len(arcpy.ListFields(muLayer,"MUKEY")) > 0: return "MUKEY" else: AddMsgAndPrint("\nAnalysis Cannot be done by Mapunit since MUKEY is missing.",1) AddMsgAndPrint("Proceeding with analysis using MLRA ",1) if not len(arcpy.ListFields(muLayer,mlraTempFld)) > 0: arcpy.AddField_management(muLayer,mlraTempFld,"TEXT", "", "", 15) # Calculate the new field using an UpdateCursor b/c Calc tool threw an 000728 error with arcpy.da.UpdateCursor(muLayer,mlraTempFld) as cursor: for row in cursor: row[0] = "MLRA_Mapunit" cursor.updateRow(row) return "MLRA_Temp" elif analysisType.find('MLRA Mapunit') > -1: if not len(arcpy.ListFields(muLayer,mlraTempFld)) > 0: arcpy.AddField_management(muLayer,mlraTempFld,"TEXT", "", "", 15) arcpy.RefreshCatalog(outputFolder) # Calculate the new field using an UpdateCursor b/c Calc tool threw an 000728 error with arcpy.da.UpdateCursor(muLayer,mlraTempFld) as cursor: for row in cursor: row[0] = "MLRA_Mapunit" cursor.updateRow(row) return "MLRA_Temp" # Analysis Type = Polygon else: AddMsgAndPrint("\nWARNING Reporting by polygon might be very verbose") return idField except: errorMsg() return False # ===================================================================================