I've inherited some scripts that (to my mind) "abuse" geocoding to position points based on a
LocationID field. As the name implies, this field is a unique ID that really doesn't need to be "fuzzy matched"; either it matches or it doesn't. Besides that, using the geocoding tools for this process is painfully slow; some 5 minutes or more to geocode less than 100k records.
I've tried using joins, with not much luck:
Joining the tables to the reference points with
"KEEP_ALL"results in all the points, some with no data; with
"KEEP_COMMON"results in only matching points, but loses data where multiple rows have the same
Joining the points to the tables with
AddJoinresults in tables, not point features.
Joining either way with
JoinFieldis even slower than geocoding, and has the same issues as above.
None of these methods produces a new feature class as geocoding does; that takes a
CopyFeatureseither before or after the join. (
SpatialJoindoes, but it's out of the question since one input is a table....)
So, is there any faster way to do this using GP tools – if not, that might explain why it is the way it is – or should I look to a lower-level solution (
arcpy.da or the like)?
(To clarify, the output I'm looking for is a point feature class: each point has data from a row in the input table, but there may be multiple points in a given location.)