JaredOSM / vermont-address-import

1 stars 1 forks source link

Some addresses may have postal cities different from their municipality #15

Open adamfranco opened 1 year ago

adamfranco commented 1 year ago

I believe that this is relatively rare, but there are some locations in Vermont that have postal cities that are different from their municipality. One example I'm aware of are a cluster of houses in South Starksboro that are very close to the Bristol line and much closer to the Bristol village than the Starksboro village. These locations use postal-city "Bristol" even though they pay taxes to Starksboro (which also has its own post office and is used as a postal city for other addresses).

This is related to, but slightly different from the Town/City distinction in #14 as these cases are not town/city-wide and are related more to current/historic postal routes than municipal boundaries.

Example -- 183 BLACK BEAR WAY:

E911 Data:

{
  "type": "Feature",
  "properties": {
    "OBJECTID": 252584,
    "SEGMENTID": 30006,
    "ESITEID": 248791,
    "GEONAMEID": 32950,
    "PD": " ",
    "PT": " ",
    "SN": "BLACK BEAR",
    "ST": "WAY",
    "SD": " ",
    "PRIMARYNAME": "BLACK BEAR WAY  ",
    "ALIAS1": null,
    "ALIAS2": null,
    "ALIAS3": null,
    "ALIAS4": null,
    "ALIAS5": null,
    "GFADDRESS": 0,
    "PRIMARYADDRESS": "183 BLACK BEAR WAY",
    "SITETYPE": "SINGLE FAMILY DWELLING",
    "LR": "L",
    "TOWNNAME": "STARKSBORO",
    "MCODE": 693,
    "ESN": 287,
    "ZIP": "05443",
    "PARCELNUM": " ",
    "GPSFLG": "N",
    "GPSX": -73.00216369,
    "GPSY": 44.16798449,
    "MAPYEAR": "1998-01-01T00:00:00Z",
    "UPDATEDATE": "2016-02-26T11:01:07Z",
    "STATE": "VT",
    "FIPS8": 5001,
    "SPAN": null,
    "SUBTYPE": null,
    "GlobalID_1": "{E78137B9-90AC-4876-B5A1-F4C449C593D1}",
    "UNITCOUNT": 1,
    "PRIMARYADD1": "183 BLACK BEAR WAY STARKSBORO",
    "PRIMARYADD2": "183 BLACK BEAR WAY STARKSBORO VT 05443",
    "SITETYPE_MULTI1": null,
    "SITETYPE_MULTI2": null,
    "SITETYPE_MULTI3": null,
    "SITETYPE_MULTI4": null,
    "SITETYPE_MULTI5": null,
    "COUNTY": "ADDISON",
    "COUNTRY": "US",
    "SOURCEOFDATA": "Vermont Enhanced 911 Board",
    "DRIVEWAYID": null,
    "ESZ": "00287",
    "HOUSE_NUMBER": 183,
    "HOUSE_NUMBERSUFFIX": null,
    "HOUSE_NUMBERPREFIX": null,
    "FIPS": "5001"
  },
  "geometry": {
    "type": "Point",
    "coordinates": [
      -73.002165037999987,
      44.16799343200006
    ]
  }
}

No result from USPS lookup tool when town is Starksboro: Screen Shot 2023-03-16 at 10 30 31 AM Results when town is Bristol: Screen Shot 2023-03-16 at 10 30 51 AM

adamfranco commented 1 year ago

Another example is nearby in Buel's Gore where Starksboro is used as the postal city:

Example: 930 GORE RD, BUEL'S GORE, VT Screen Shot 2023-03-16 at 10 52 00 AM (Though there are few enough of these that they could be all mapped to Starksboro manually)

Unlike the BLACK BEAR WAY case, in this instance the USPS seems to understand the mapping from BUEL'S GORE to STARKSBORO so it is possible that no change is needed.

adamfranco commented 1 year ago

I think I might have found a way to at least audit these cases if not make a rigorous determination -- The VT Data - Statewide Standardized Parcel Data - parcel polygons data set includes "Owner" addresses in the following fields:

Field value
... ...
OWNER1 xxxx
OWNER2 xxxx
ADDRGL1 183 BLACK BEAR WAY
ADDRGL2
CITYGL BRISTOL
STATEGL VT
ZIPGL 05443
... ...
E911ADDR 183 BLACK BEAR WAY
TOWN STARKSBORO
... ...

These addresses are likely updated by town listers/clerks to send property taxes bills and so are likely to be pretty carefully maintained. While many properties may be owned by non-resident owners (either at an adjacent parcel or one elsewhere in the world) and thereby not have the actual properties' address in these fields, we could query this data set by E911ADDR and TOWN and then report a result if ADDRGL1 == E911ADDR && STATEGL == "VT" && CITYGL != TOWN. Such a report would at least give us a sense of the scope of the problem for both this issue and #14.

This may also provide a way to find valid postal codes for at least addresses with resident owners.

adamfranco commented 1 year ago

Here's a rendering (in QGIS) of Parcel Data filtered by "ADDRGL1" = "E911ADDR" AND "CITYGL" != "TOWN" AND "STGL" = 'VT' (and displayed on top of the VT Data - Boundaries, All Lines data for reference. Screen Shot 2023-03-16 at 1 09 15 PM

After filtering out a bunch of likely full-town postal city renamings # (For example: Town: Royalton --> Postal City: South Royalton; Town: Morristown --> Postal City: Morrisville) with this filter:

"ADDRGL1" = "E911ADDR" AND "CITYGL" != "TOWN" AND "STGL" = 'VT' 
AND NOT ("TOWN" IN ('RUTLAND CITY', 'RUTLAND TOWN') AND "CITYGL" = 'RUTLAND' )
AND NOT ("TOWN" IN ('BARRE CITY', 'BARRE TOWN') AND "CITYGL" = 'BARRE')
AND NOT ("TOWN" IN ('SAINT ALBANS CITY', 'SAINT ALBANS TOWN') AND "CITYGL" = 'ST ALBANS')
AND NOT ("TOWN" IN ('ESSEX', 'ESSEX JUNCTION') AND "CITYGL" = 'ESSEX JCT')
AND NOT ("TOWN" = 'ROYALTON' AND "CITYGL" = 'SOUTH ROYALTON')
AND NOT ("TOWN" = 'HIGHGATE' AND "CITYGL" = 'HIGHGATE CENTER')
AND NOT ("TOWN" = 'MORRISTOWN' AND "CITYGL" = 'MORRISVILLE')
AND NOT ("TOWN" = 'ENOSBURGH' AND "CITYGL" = 'ENOSBURG FALLS')
AND NOT ( "TOWN" = 'MONTGOMERY' AND "CITYGL" = 'MONTGOMERY CTR')
AND NOT ("TOWN" = 'ISLE LA MOTTE' AND "CITYGL" = 'ISLE LAMOTTE')
AND NOT ("TOWN" = 'LYNDON' AND "CITYGL" = 'LYNDONVILLE')
AND NOT ("TOWN" = 'NEWPORT TOWN' AND "CITYGL" IN ('NEWPORT CTR', 'NEWPORT CENTER'))
AND NOT ("TOWN" = 'NEWPORT CITY' AND "CITYGL" = 'NEWPORT')

AND NOT ("TOWN" = 'SAINT JOHNSBURY' AND "CITYGL" = 'ST JOHNSBURY')
AND NOT ("TOWN" = 'SOUTH BURLINGTON' AND "CITYGL" = 'S BURLINGTON')
AND NOT ("TOWN" = 'SOUTH HERO' AND "CITYGL" = 'SO HERO')

we're still left with 21,172 cases of mismatched municipality/postal-city where there appears to be a resident owner in the parcel data. This is an error rate of 6% (of 349,810 E911 address points) and doesn't include any parcels with non-resident owners. I've identified a few stand-alone parcels that are likely data errors in the parcel data set, but this seems less likely in cases where there is a large cluster of parcels all with a shared village as the postal city.

Filtered for the above city renamings

There are a few town like Hartford, Fletcher, and Ryegate that have a large variety of postal cities in their resident-owner addresses. While there might be a few more full-town postal-city renamings we could do, this is still a quite large error rate.

adamfranco commented 1 year ago

I looked into the National Address Database as potential alternate data set for postal city info as it's schema defines both the Municipality or unincorporated area that contains the address as well as a "Postal Community Name": Screen Shot 2023-03-22 at 5 05 07 PM

Unfortunately, after filtering the NAD data to just Vermont to make it manageable to open in QGIS I see that Vermont Enhanced 911 Board is listed as the source and the Post_Comm listed is the municipality name while Inc_Muni is left empty: Screen Shot 2023-03-22 at 5 07 39 PM

I'll contact VCGI to report this data error so that hopefully they can correct the fields being fed to NAD in the future so that others don't encounter these same errors.