Project

General

Profile

Geovalidation

Raster strategy

This allows constant-time, random-access lookup of locality.

  1. 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
  2. cylindrical projection of spherical Earth onto 2D lat/long rectangle1, for each vector shapefile
  3. rasterization of projected shapefiles to 5 km pixels
    • when shapefiles overlap, pixel contains a locality value for both localities
  4. 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
  5. 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