I have an access mdb that has multiple records that match to single parcels. I would like to create a point for each record that matches to the appropriate parcels. I made the parcels into points and then joined the database but this only got me one point per parcel. Any thought as to how to automate this?
Thanks!
Maddy
Solved! Go to Solution.
Hi Maddy,
You could calculate the centroid of the parcels:
1. Open the attribute table
2. Add a field of type 'Double'
3. Right-click the field > Calculate Geometry > X Coordinate of Centroid
4. Repeat steps for Y Coordinate of Centroid
Next, join the parcels to the access table. Now, each record of the access table will have the XY coordinates. You can then create a point for each row by right-clicking on the table > Display XY Data.
Hi Maddy,
You could calculate the centroid of the parcels:
1. Open the attribute table
2. Add a field of type 'Double'
3. Right-click the field > Calculate Geometry > X Coordinate of Centroid
4. Repeat steps for Y Coordinate of Centroid
Next, join the parcels to the access table. Now, each record of the access table will have the XY coordinates. You can then create a point for each row by right-clicking on the table > Display XY Data.
Jake-
Thanks! Worked like a charm!
Cheers,
Maddy
Okay, now I have all of the points but they are all on top of each other. Can you think of a way that I can offset them a bit? I want my field crews to be able to see how many points there are.
Cheers!
Maddy
After joining the parcels to the table, export the table to a new table. You can then add an offset to the coordinates by iterating through each record using python before displaying the XY Event Layer. Below is an example:
import arcpy
from arcpy import env
#set workspace to geodatabase
env.workspace = r"C:\temp\python\test.gdb"
#specify table
table = "Owners_Export"
dict = {}
#iterate through the table and add the Parcel PIN to a dictionary
with arcpy.da.SearchCursor(table, ["PIN", "CentroidX"]) as cursor:
for row in cursor:
dict[row[0]] = row[1]
del cursor
#for each PIN, add 0.2 to the X coordinate
for PIN in dict.values():
x = 0.2
with arcpy.da.UpdateCursor(table, ["CentroidX"]) as cursor:
for row in cursor:
row[0] = row[0] + x
x += 0.2
cursor.updateRow(row)
del cursor