Getting caught up on blog posts, for my programming a to z midterm I explored using a bayesian learning mechanism to automatically transform coordinates on a map to another. For a project I am working on, I am placing historical maps onto an accurate grid that can be compared with other sources. I decided to take a very naive approach to this, and set the simulation to constantly tweak the settings ( offset, rotation, scaling ) to best optimize the result to come closest to the desired coordinate result. Once a local valley is found, the settings were reset to randomly try and find a lower valley. The end result did not really work out, but it was a good experiment in algorithm design (probably of what to avoid) . I have experimented with some open source GIS systems like Grass and GDAL, but not being satisfied with the results I have found the ArcGIS facilities at the nyu library that makes the work much more efficient. More to come on the app soon.
The above image is the distance score as the simulation progressed, finding the local valleys.
Here is the source code bayesianmapoptimization