Accompanying code for the paper submission: Automatic Georeferencing of Topographic Raster Maps
Note: This code is not final and may be reformatted or cleaned.
Python >= 3.6 and TensorFlow >= 2.0.0 required for the text recognition part (used keras-ocr), Tensorflow is not required for the geolocation part. Numba required to speed up the geolocation part.
Text recognition:
pip install -r recognition_req.txt
Geolocation:
pip install -r geolocation_req.txt
geolocation.ipynb presents the code used to geolocate the maps and also the results of each step in the process. This code can be directly run after cloning the repository and installing the requirements. Plots of the final predictions are saved in the plots directory. The full geolocation code and results are viewable in an interactive Colab Notebook.
text_recognition_and_geocoding.ipynb presents sample code to perform text recognition with keras-ocr and geocode the found text labels. These were already processed and the results are saved in the json directory. Pretrained detection and recognition models should be downloaded automatically into the pretrained_models directory.
Full dataset can be downloaded here. Following map sheets were used: 31O, 32W, 32O, 38O, 39W, 39O, 44O, 45W, and 45O. The maps are in the GeoTif format, WGS84 coordinates of the corner points were found with the functions described in get_wgs84.ipynb and saved in the json dir.
These 16 maps are subject to copyright and can therefore not be shared publicly. They can be viewed online in Cartesius, you can search for each of the map's titles. Example for Lebbeke-Merchtem and its metadata, you might have to use Internet Explorer.
A full list of the maps used is given below:
- Aalter-Nevele
- Bassevelde-Zelzate
- Dendermonde-Puurs
- Dentergem-Deinze
- Evergem-Lochristi
- Gavere-Oosterzele
- Gent-Melle
- Knesselare-Zomergem
- Langelede-Stekene
- Lebbeke-Merchtem
- Maldegem-Eeklo
- Oordegem-Aalst
- Sint-Gillis-Waas-Beveren
- Sint-Niklaas-Temse
- Wetteren-Zele
- Zeveneken-Lokeren