Select to view content in your preferred language

Add possibility to remove all "Match" columns when geocoding from ArcGIS Pro and ArcMap

7454
22
06-08-2017 05:10 AM
Status: Implemented
Labels (1)
LarsElmkær_Chwastek
Frequent Contributor

When geocoding addresses in ArcGIs Pro or ArcMap, the result will comprise of not only your own original data, but also a lot of coloumns that are related to the matching/geocoding process. It would be extremely helpful to be able to choose whether or not you wanted that data in your resulting Feature Class.

The extra data not only clouds the original data but also enhances the size of the file A LOT.

Furthermore when geocoding in ArcGIS Pro, the geocoding process adds "IN_" to some of the matching Field names and "USER_" to the original datas Field names... WHY? The Field names are named as they are for a reason, which is futile if ArcGIS Pro renames them anyway.. This does not happen when geocoding in ArcGIS Maps for Office or directly in ArcGIS Online.

In ArcMap the geocoding process adds "ARC_" to some of the matching Field names.

These functionalities should be remowed or at least made optional.

N.B. This Idea is posted on behalf of a customer!

22 Comments
AZendel

@KoryKramer , I don't see that optional parameters input when geocoding against our in-house/custom locator.

AZendel_1-1643379258661.png

But it does show up when I chose the ESRI World Geocoding service. If I was using the ESRI service, do any of those options remove the annoying "USER_" prefix? I personally don't mind all of the new field that geocoding adds (e.g., match type, match score, standardize addresses). When I append the geocoding output to an existing feature class that doesn't have those fields, they are automatically excluded. But having to rename all of the fields that start with USER_ ain't fun!

 

CotaG
by

You could use a  script to remove "USER_" from the field names: 

fc= r'...\Default.gdb\TEST' # replace the file path

def remove_USER(fc_path):


import arcpy

fc= fc_path

# make a variable for fields
fields= arcpy.ListFields(fc)

# making a dictionary with field names and new field names
keys=[] # current field names
values=[] # new field names

# appending field names to the above two lists
for field in fields:


if field.name[0:5]=='USER_':


keys.append(field.name) # append old field names

split = field.name.split('USER_')
values.append(split[-1]) # append new field names without the 'USER_'

 

else:


continue



# creating the dictionary that will be used to rename fields
namesDict = {keys[i]:values[i] for i in range(len(keys))}

# for loop to rename all fields in the created lists
for f in namesDict:


try:


arcpy.AlterField_management(fc, f, namesDict[f])


except:


print('failed on',f) # will indicate which fields it failed on

remove_USER(fc)