The city I work for gets its parcel data from the county once a month so we have several years of almost the same data. I want to be able to determine where changes occur between every new month. So what are the changes between September to October, October to November, etc. And by changes I mean any change in geometry (like parcel splits or merges) or changes in attributes (especially changes in ownership).
I've contacted ESRI about this and they weren't able to do a whole lot for me.
Here's what I've tried so far:
I am able to find changes in geometry by using the Select by Location: Identical features and inverting the selection.
This works fine but does not get me changes in attributes.
I would use the Feature Compare tool but this does not work as it requires the same number of rows in both tables - which I don't have.
I also found an old arcgisscripting tool and converted it to arcpy and it worked with point datasets (but at a certain point in time the County changed how they did their parcel data and went to polygons only which the script does not work with).
So I'm at a loss for what to do now.
Does anyone have any advice for me?
Please let me know if there's any info I can give to help you help me.
-Whitney Newcomb
If you need help with Python scripting please shoot me a mail at nahmed@esri.com (also some sample data will be helpful)
This tool wraps the Data Interoperability function in a Python script tool:
https://pm.maps.arcgis.com/home/item.html?id=834e3ba8034e4e7f83d9fc4fcfb5713c
I do this all the time for the City I work for to "true-up" the land base layers. Here's two processes that seem to work well in identifying changes:
Of course, one can do much more complex processing, but that will depend on knowing more of the specifics of the data.
Chris Donohue, GISP
This is a conflation process. I use MSAccess as my database and perform Attribute change detection using the following methodology using the Database SQL (Not using ArcGIS).
There are three kinds of differences:
-New records in tblDataToday
-New records in tblDataYesterday or lost records in tblDataToday
-Changed records that are both present in tblDataToday and tblDataYesterday
1. To browse new records in tblDataToday:
SELECT tblDataToday.*
FROM tblDataToday LEFT JOIN tblDataYesterday ON tblDataToday.ID = tblDataYesterday.ID
WHERE (((tblDataYesterday.ID) Is Null))
2 To browse new records in tblDataYesterday or lost records in tblDataToday:
SELECT tblDataYesterday.*
FROM tblDataToday RIGHT JOIN tblDataYesterday ON tblDataToday.ID = tblDataYesterday.ID
WHERE (((tblDataToday.ID) Is Null))
3 To browse changed records simultaneously in tblDataToday tblDataYesterday:
3.1 Create a query qChangedData:
SELECT tblDataToday.*,"tblDataToday" as ChangedIn
FROM tblDataToday
UNION ALL SELECT tblDataYesterday.*, "tblDataYesterday" as ChangedIn
FROM tblDataYesterday
3.2 Create a query qChangedIDs:
SELECT All_IDs.ID
FROM (SELECT DISTINCT * FROM (SELECT tblDataToday.* FROM tblDataToday union all SELECT tblDataYesterday.* FROM tblDataYesterday ) AS uAll) AS All_IDs
GROUP BY All_IDs.ID
HAVING (((Count(All_IDs.ID))=2));
3.3 Create a query qChangedData:
SELECT qChangedData.*
FROM qChangedIDs INNER JOIN qChangedData ON qChangedIDs.ID = qChangedData_u.ID
ORDER BY qChangedData.ID, qChangedData.ChangedIn
Ted:
Does this process work for you in Pro?
No I do not use pro nor currently willing to migrate. Pro does not recognize an Access personal geodatabase, until it does Pro is a no go for me. I am struggling learning qgis as my fallback.
This is a perfect use case demonstrating the time saving ability of access (even though it performs the geometry operations slow) but the flexibility and ease of use FAR OUTWEIGH any geometry processing.
Hello, please see this blog - which has a link to an updated sample for change detection
Requires ArcGIS Data Interoperability extension.