Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In geocodable bc maker, handle addresses whose parcel and access points don't fit into the address fabric #224

Open
mraross opened this issue Feb 27, 2021 · 19 comments
Assignees
Labels
data integration enhancement New feature or request estimate needed geocodable bc maker high priority rpng commercial vehicle permitting and routing app for MoTi

Comments

@mraross
Copy link

mraross commented Feb 27, 2021

The current access point generation process is creating access points that are far from their parcel points. If you create access lines which are lines connecting access points to their parcel points, you will see long lines that cross other lines. Such crossing lines strongly suggest that the source address is invalid in some way (e.g., unit number and civic number swapped). Preliminary analysis indicates there could be up to 9,000 such addresses in the geocoder's latest reference address list (see #219) We would like to detect and reject such bad addresses in the future.

@mraross mraross changed the title In geocodable bc maker, reject addresses whose access points don't fit into the address fabric In geocodable bc maker, reject addresses whose parcel and access points don't fit into the address fabric Feb 27, 2021
@mraross
Copy link
Author

mraross commented Feb 28, 2021

An Anti-Unit Address is a unit address with its unit number and civic number interchanged. Anti-unit addresses account for many of the addresses whose access lines cross. A potentially useful way of detecting an anti-unit address during access point generation is to create an anti-unit address from a given reference address, compute its anti-accessPoint, form its anti-access line and compare it to the unit address' access line; is it longer? does it cross other access lines? Example forthcoming.

@mraross
Copy link
Author

mraross commented Feb 28, 2021

Here is an example:

In ADDRESS BC, there are the following reference unit addresses:

2787-101 1ST ST COURTENAY, BC
2787-102 1ST ST COURTENAY, BC
        :
2787-119 1ST ST COURTENAY, BC

The access lines formed by these addresses are 1.5 km long and cross many other access lines in the neighbourhood.
The parcelPoints for each of these unit addresses are all located within the parcel for 2787 1ST ST COURTENAY, BC
If you create anti-unit addresses as follows:

101-2787 1ST ST COURTENAY, BC
102-2787 1ST ST COURTENAY, BC
        :
119-2787 1ST ST COURTENAY, BC

the anti-access lines will likely be much shorter than the access lines and they likely won't cross other lines. This indicates the unit and civic numbers in the original addresses were swapped. If we can confirm these predictions, Geocodable BC Maker could choose to keep the anti-unit addresses and thus fix the original addresses instead of rejecting them.

@mraross
Copy link
Author

mraross commented Mar 1, 2021

In the picture below are all the incorrect unit-addresses from 4787-101 1st St Courtenay to 4787-119 1st St Courtenay. In the parcel that has two parcelPoints, the one on the left is actually the correct supersite address of 4787 1st St Courtenay. The one on the right is the incorrect 109 1st St which should really be at the east end of 1st.

image

@mraross mraross changed the title In geocodable bc maker, reject addresses whose parcel and access points don't fit into the address fabric In geocodable bc maker, handle addresses whose parcel and access points don't fit into the address fabric Mar 1, 2021
@mraross
Copy link
Author

mraross commented Mar 2, 2021

It might be easier to generate access points and assign addresses to blocks in a series of waves:

Wave 1: Civic number addresses; no unit addresses

Wave 2: Unit addresses

Wave 3: Parent civic addresses of orphaned unit addresses

Each wave can have an access line QC step. In the first wave, there are far fewer access line crossings to compute and test since there are no units and most units share the same parcel point as their parents anyways.

@mraross mraross added this to the Geocoder 4.2 milestone Apr 21, 2021
@mraross
Copy link
Author

mraross commented Jun 10, 2021

Brian has created an nice access-line diagram:

access-line-diagram

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

Victoria:
image

A single coordinate at the condo tower shown above (21 Dallas Rd) contains many coincident parcelPoints with lines extending to the associated accessPoints. A random sample of these addresses showed that the accessPoints were located in the expected area however the parcelPoints were not.

For example:

  • Addresses below are not listed in the ABC source data.

1000 Fort St, Victoria

parcelPoint - Coincident point at 21 Dallas road (condo tower).
accessPoint - At the start of the 1000 block of Fort street. Note this is a theoretical minimum address and the anchor point is 1006 Fort St (corner lot).

1700 Bay St, Victoria

parcelPoint - Coincident point at 21 Dallas road (condo tower).
accessPoint - At the start of the 1700 block of Bay street. This is a theoretical minimum address in that block, and the anchor point is 1704 Bay St. The corner lot of this block also has an address on a different street (Shelbourne St)

1480 Dallas Rd, Victoria
parcelPoint - Coincident point at 21 Dallas road (condo tower).
accessPoint - At the start of the 1400 block of Bay street. However, 1480 Dallas Road should be mid-block between 1470 and 1482 Dallas Road.

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

Coquitlam:
image

Unlike the Victoria example above, in this case we have coincident accessPoints that fan out to individual parcelPoints. The accessPoints are located just on Lougheed Hwy just above Como Lake Ave where the highway line changes from a single line to parallel lines.

In this example, addresses were listed as being on the Lougheed Hwy.

  • Addresses below are found in the ABC source data.

925 Lougheed Hwy, Coquitlam, BC
1601 Lougheed Hwy, Coquitlam, BC
1701 Lougheed Hwy, Coquitlam, BC
1851 Lougheed Hwy, Coquitlam, BC

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

North Vancouver - Example #1:
image

The image above shows several accessPoints at the exact same location which extend out to the respective parcelPoints. The accessPoints are placed at the same coordinate at a fork in the road between E 3rd St and 3rd St E.

Examples:
At each of the locations below there are also multiple coincident parcelPoint locations showing the same civic number at both '3rd St E' as well as 'E 3rd St'.

  • Addresses below are only found in the ABC source data with a prefix (419 E 3rd St)

419 3rd St E, North Vancouver, BC
414 3rd St E, North Vancouver, BC

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

North Vancouver - Example #2
image

The accessPoints are placed at the same coordinate at the intersection of E 19th St and Grand Blvd in North Vancouver. From there lines extend to the respective parcelPoints.

In this case the parcelPoints appear to be in the correct location, however the examples below are missing a streetDirection.

  • Addresses below are only found in the ABC source data without a street direction suffix

DRA: "Grand Blvd E"
parcelPoint: 1536 Grand Blvd, North Vancouver, BC

DRA: "Grand Blvd W"
parcelPoint: 1533 Grand Blvd, North Vancouver, BC

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

Courtenay - Example #1:
image

The bulk of the points below are found within a gated community called 'Britannia Place' which has a number '3399' on the road beside the Britannia Place gate.

In a similar pattern to other cases we see coincident accessPoints just south of the intersection of Crown Isle Drive and Malahat Drive from which there are lines to the corresponding parcelPoints.

However, in this case some of the addresses in Britannia Place have both accessPoints and parcelPoints in the correct location, while others are found in the same location.

Examples:

  • Addresses below are found in the ABC source data but with the following format:
  • "3399-390 Crown Isle Dr, Courtenay, BC"

Correct accessPoint location:
381 Crown Isle Dr, Courtenay, BC
241 Crown Isle Dr, Courtenay, BC

Incorrect accessPoint location:
390 Crown Isle Dr, Courtenay, BC
198 Crown Isle Dr, Courtenay, BC

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

Courtenay - Example #2:
image

Several coincident accessPoints at the intersection of 1st St and Urquhart Ave in Courtenay, BC. The corresponding parcelPoints (random sample below) are in the correct geographic locations, however, the homes were built on a private road that branches off of 1st St. A sign by the entrance reads '2787 Riverbend Lane'

  • Addresses below are found in the ABC source data but with the following format:
  • "2787-103 1st St, Courtenay, BC"

For example:

103 1st St, Courtenay, BC
114 1st St, Courtenay, BC
119 1st St, Courtenay, BC

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

Campbell River:
image

Examples:

  • Addresses below are found in the ABC source data.

0 Island Hwy, Campbell River, BC
0 Trask Rd, Campbell River, BC
0 Merecroft Rd, Campbell River, BC
0 Rockland Rd, Campbell River, BC
0 Erickson Rd, Campbell River, BC
0 Arizona Dr, Campbell River, BC

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

Saanich:
image

Several coincident accessPoints at the intersection of Shorncliffe Rd and Jillian Place in Saanich, BC. The corresponding parcelPoints (random sample below) are in the correct locations.

An interesting finding here is that there is a second parcelPoint for each with a "N" suffix as well as a second accessPoint in front of the house with a "N" suffix.

  • Address below is only found in the ABC source data with a street direction suffix.

Expected location:
parcelPoint: 3947 Shorncliffe Rd N, Saanich, BC (location accuracy medium)
accessPoint: 3947 Shorncliffe Rd N, Saanich BC
parcelPoint: 3947 Shorncliffe Rd, Saanich, BC (location accuracy high)

Incorrect location (Shorncliffe Rd & Jillian Place)
accessPoint: 3947 Shorncliffe Rd, Saanich BC

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

Prince George:
image

Several coincident accessPoints at the intersection of 2nd Ave and Moffat St in Prince George, BC. The corresponding parcelPoints (random sample below) are in the correct locations.

An interesting finding here is that there is a second point for each address below with an "N" prefix as well as a second accessPoint in front of the house with a "N" prefix.

Recommend checking in DRA to see where Moffat St turns into N Moffat St

Examples:

  • Addresses below are only found in the ABC source data with a street direction prefix.

385 Moffat St, Prince George, BC
270 Moffat St, Prince George, BC

@BK01
Copy link
Contributor

BK01 commented Jun 10, 2021

Oliver:
image

In this example, a cluster of accessPoints are found at the same coordinate on Green Lake Rd which point to the correct parcelPoint locations. However, the parcelPoints are up to 4km away on Green Lake Rd.

Examples:

  • Addresses below are found in the ABC source data but with the following locality details.
  • Locality: OKANAGAN SIMILKAMEEN RD RURAL
  • Locality name alias: OLIVER

2735 Green Lake Rd, Oliver, BC
2825 Green Lake Rd, Oliver, BC
2629 Green Lake Rd, Oliver, BC

@mraross
Copy link
Author

mraross commented Jun 11, 2021

Chris Hodgson commented on Feb 26, 2021:

OOH, AAAH!

This (access-line diagram -ed) is so useful. I should have done this when I was writing the BAARG. If I do any work on the BAARG in the future I will probably make it output this for comparison and testing.

Do you still want me to try to add these to the OLS-Demo? It shouldn't be two hard, especially if you commit them to the ols-devkit repo gh_pages branch for me. That would probably make analysis easier even without all the changes Graeme requested (but he probably still wants that for analysis outside of the ols-demo app).

Cheers,
Chris

@mraross
Copy link
Author

mraross commented Jun 11, 2021

How about measuring the distance between a unit accessPoint and the unit's superSite accessPoint? Most of the time, the accessPoint of a building will be fine since there is no unit number to accidently get the civicNumber swapped with. By doing the buildings in the first wave, in the second wave this new test should reveal if an address has had its unit swapped with its civic number.

I suggest we call the line between a unit accessPoint and its supersite accessPoint, a super-access-line.

@BK01
Copy link
Contributor

BK01 commented Jun 11, 2021

Further details added to the images above listing examples and findings thus far. Next step will be to examine the source data.

@mraross mraross removed this from the Geocoder 4.2 milestone Jun 29, 2021
@mraross
Copy link
Author

mraross commented Jul 8, 2021

What if we constrain our access line crossing metric to look for crossings involving one or more roads whose road type is at least Residential? In other words, ignore crossings with strata roads, etc.

@mraross mraross added the rpng commercial vehicle permitting and routing app for MoTi label Jul 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data integration enhancement New feature or request estimate needed geocodable bc maker high priority rpng commercial vehicle permitting and routing app for MoTi
Projects
None yet
Development

No branches or pull requests

3 participants