Geovalidation¶
Raster strategy¶
This allows constant-time, random-access lookup of locality.
- expansion of shapefile boundaries so they partially overlap, to create fuzzing when a coordinate lies on or near a boundary
- coordinates within 5 km of the boundary should be considered valid if they are in the locality on either side of the boundary
- According to Brad, "In the past we have toyed with various buffers up to 10 km. But 5 km sounds good, let's go with that." _2
- expansion performed by converting polygon vertices to polar coordinates, increasing the radius coordinate by 5 km, and converting back to rectangular
- coordinates within 5 km of the boundary should be considered valid if they are in the locality on either side of the boundary
- cylindrical projection of spherical Earth onto 2D lat/long rectangle1, for each vector shapefile
- *possible cylindrical projections*:
- *Mercator projection*
- *Lambert cylindrical equal-area projection* (uses a cylinder the same height as the sphere1)
- *equirectangular projection* (y-axis is latitude angle)
- *possible cylindrical projections*:
- rasterization of projected shapefiles to 5 km pixels
- when shapefiles overlap, pixel contains a locality value for both localities
- constant-time, random-access lookup of locality using C++-style 2D array
- lat/long mapped directly to x,y array index, allowing direct access without a log(n) sorted array/binary tree lookup
- if exact point distance from boundary is needed, it can be determined separately using the appropriate vector shapefiles for the matched localit(ies)
- According to Brad, "we would like to be able to determine error distance for points falling outside the boundary. However, quantifying error is much less important than simply knowing if a point is inside the buffer and can therefore be used in analyses. Perhaps quantifying error could be a background task, after all the observations have been classified as in or out." _2
1 Lambert cylindrical equal-area projection from Wikipedia:
2 e-mail from Brad on 2012-10-23