Georeference Validator

From Filtered Push Wiki
Jump to: navigation, search
Flow chart design of Advanced GeoRefValidator

Description

The original GeoRefValidator will get the coordinates information from GeoLocate, if the coordinates in the record is relatively far away from the found coordinates, then it will curate the record with the found coordinates. However, the coordinates in the record may contain some issues that can be fixed in a relatively easy way, e.g. the sign of the value is reversed or the latitude and longitude are transposed. And most importantly, the coordinates in the record without issues mentioned earlier could be much more accurate than the one found in GeoLocate.

So in this actor, we're trying to fix the issues first and check whether the coordinates is close enough to the reference coordinates found in GeoLocate.

Also, we take the more conservative approach that if we find inconsistency among different data fields, we’ll claim we found some issue with the data but we don’t know how to curate that. E.g. If state X is not in country Y, we know and we will only report one of them is wrong.

Data source

Land surface data: "Land" vector data from Natural Earth http://www.naturalearthdata.com/downloads/10m-physical-vectors/

Country boundary data: "World political map" from GeoCommunity http://data.geocomm.com/editorspicks/data_world11.html

Country name normalization

In the data set we're working on, the same could have different names, e.g. USA, United States etc. Before the actor finds the boundary polygon of certain country, a country name normalization step is performed. Currently, it's hard coded, will change to a more systematic way in future.

Evidence

  • Coordinates valid?
    • No: Coordinates invalid.
  • Coordinates with sign changed valid?
    • Yes: Changing sign of coordinates.
  • Coordinates on earth surface?
    • No: Coordinates not on earth surface.
  • Transposed coordinates on earth surface?
    • Yes: Transposing coordinates to place on earth surface.
  • Coordinates in country?
    • No: Coordinates not inside country
  • Transpose/change sign
  • Coordinates in country?
    • Yes: Transposing/changing sign to place inside country.
  • Coordinates near georeference?
  • Yes: Transposed/sign changed coordinates are near georeference of locality from geolocate.


Version 2

I. Check validity

Orinigal coordinates valid?

  • Yes: None
  • No: (one of the following)
    • "Both original latitude \""+ originalLat + "\" and longitude \"" + originalLng + "\" are out of range."
    • "The original latitude \"" + originalLat + "\" is out of range. "
    • "The original longitude \"" + originalLng + "\" is out of range. "


if ( (90 < latitude < 180 or -180 < latitude < -90) and -90 <longitude < 90 )

  • The original latitude is out of range. Transposing longitude and latitude.


II. Check with earth surface data

Orinigal coordinates on earth surface?

  • Yes: None
  • No: Coordinates not on earth surface
    • Continue the next step


Transposed/sign changed coordinates on earth surface?

  • Yes: Transposed/sign changed coordinates are on the Earth's surface
  • No: Can't transpose/sign change coordinates to place them on the Earth's surface
    • return Unable_Curate


III. Check with country boundary data

Orinigal coordinates inside country?

  • Yes: None
  • No: Coordinates not inside country
    • Continue the next step


Transposed/sign changed coordinates on earth surface?

  • Yes: Transposed/sign changed coordinates to place inside country.
  • No: Can't transpose/sign change coordinates to place inside country
    • return Unable_Curate


IV. Compare with coordinates returned from GeoLocate

Coordinates near georeference?

  • Yes: (one of the following)
    • Original coordinates are near georeference of locality from Geolocate.
    • Transposed/sign changed coordinates are near georeference of locality from Geolocate.
  • No: Coordinates are not near georeference of locality from geolocate with certainty \" + certainty +\"