In GIS parcel layers, I find that users tend to assume that APN (assessor parcel number) represents a unique key for each parcel geometry in a County. Nine times out of ten, this assumption is wrong, and results in an inaccurate analysis. Here is why…
APN’s represent property tax accounts (a bit like your local gas and electric utility account number), and parcel geometries represent a piece of geography that is taxed by the County. These are two slightly different things. It is possible, for example, to have a single tax account for two discontinuous (non-touching) pieces of geography. In a GIS parcel database, that will usually mean two separate geometry records that link to a single tax account record in the Assessor system.
This matters because users of GIS data often want to query and/or join data to parcel geometry based on APN. What if you want to know the total assessed value for all parcels within user-defined polygon? If two of those parcel geometries link to the same APN, then the assessed value for that one APN will be counted twice. Not good.
The best solution is to create a parcel layer in which APN is a unique key. This can be accomplished by combining GIS parcel records into multipolygons where there is a shared APN. It is ideal if you are running a spatial DBMS that is capable of constructing a view that does this on the fly (such as Oracle Spatial, PostGIS, or SQL Server Spatial.)
I recently wrote some SQL in PostGIS that did exactly this for the City of Walnut Creek in support of their Enterprise Addressing System. Below is the code:
SELECT apn, assessed_Value, owner_name, owner_address, ST_Multi(ST_Collect(geom)) FROM( select apn, assessed_Value, owner_name, owner_address, (ST_Dump(a.geometry)).geom FROM parcels_apn ) foo GROUP BY apn, assessed_Value, owner_name, owner_address;
This is a nice way to transform parcel data so it’s a little bit more friendly for end-users.
If anybody is interested I will gladly post how to accomplish the same data transformation using Oracle Spatial, SQL Server Spatial, FME, or ArcGIS.