JOSM/Plugins/Scanaerial

JOSM screenshot showing unmapped tundra with Bing Imagery
JOSM screenshot showing tundra with mapped lakes and Bing Imagery
JOSM screenshot showing tundra with mapped lakes, data only

Scanaerial is a package with python code to scan aerial pictures.

Requirements

Setup

Windows

  1. Install Python 3 (in our example 3.13.0):
  2. Install Scanaerial dependencies (Pillow, PyProj & future):
    • use this command to install: C:\Users\user\AppData\Local\Programs\Python\Python313\Scripts\pip.exe install pillow pyproj future
  3. Install ext_tools Plugin in JOSM (more information on JOSM/Plugins#Installation) & Restart JOSM.
  4. Extract the Scanaerial archive and put it's files to %APPDATA%\JOSM\plugins\ext_tools\scanaerial directory.
  5. In JOSM press F12 and go to Ext_Tools configuration.
  6. Add a new tool by clicking the button saying so. Give the tool a good name (scanaerial would be an idea) and paste this as commandline:
C:\Users\user\AppData\Local\Programs\Python\Python313\python.exe scanaerial/scanaerial.py {lat} {lon} {TZoom}

To always use Config-File setting fixedzoomlevel, use it without {TZoom}:

C:\Users\user\AppData\Local\Programs\Python\Python313\python.exe scanaerial/scanaerial.py  {lat} {lon}

It will create a new menu item in the tools menu.

Verbose installation guide for Windows (outdated).

Linux

  • Unzip the contents of the downloaded archive to the JOSM Plugin directory. Put it to: ~/.josm/plugins/ext_tools/scanaerial
  • Install Python + needed libraries:
    • Fedora: yum install pyproj python-pillow
    • Ubuntu: sudo apt-get install python-pyproj python-pil
  • Install Ext_tools-Plugin in JOSM (more information on JOSM/Plugins#Installation) & Restart JOSM
  • In JOSM press F12 and go to Ext_tools configuration
  • Add a new tool by clicking the button saying so. Give the tool a good name (scanaerial would be an idea) and paste this as command line:
/home/<username>/.josm/plugins/ext_tools/scanaerial/scanaerial.py {lat} {lon} {TZoom}

It will create a new menu item in the tools menu. (NB: Syntax may change soon. Due to a bug in Ext_tools you can not write “~” instead of “home”).

Using Scanaerial

  • To invoke scanaerial press Ctrl+K or select the new menu item. Now point the cursor on the area you want to trace and left-click.
  • For best result you may finetune the values in scanaerial.cfg

Multiple configurations

It is possible to configure Scanaerial to work with several distinct config files. To do so create a separate tool with distinct names for each configuration. The name of the configuration file is passed as the fourth argument to scanaerial.py

Example commandline:

/home/<username>/.josm/plugins/ext_tools/scanaerial/scanaerial.py {lat} {lon} {TZoom} myconfig1.cfg

Finetuning Config-File

Key Default value Function
fixedzoomlevel 11 use this zoomlevel, if Ext_tools did not tell via TZoom
server_api bing access method of map server: wms, tms or bing
server_name Bing name of the map server (only for the tag string)
server_url http://dev.virtualearth.net/... half-link for WMS, JOSM-like address for TMS
empty_tile_bytes 1033 size of empty tile (in bytes) for current map server
empty_tile_checksum -332268601 checksum of empty tile file (algorithm: CRC32)
projection EPSG:3857 projection that is used on the map server
tile_sizex 256 leave it to 256 unless you know what you do
tile_sizey 256 leave it to 256 unless you know what you do
douglas_peucker_epsilon 0.60 maximum roughness for smoothening the line
deactivate_simplifying 0 deactivate Douglas-Peucker algorithm (only for debugging)
colour_str 30 colour sensitivity (depends on contrast of images)
maxfilter_setting 3 median filter size (noise reduction strength)
size_limit 400 maximum size of produced object

Available servers

server_api = wms

server_name = Landsat
server_url = http://irs.gis-lab.info/?layers=landsat&

server_api = wms

server_name = OSM
server_url = http://ows.terrestris.de/osm/service?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=OSM-WMS&STYLES=&

server_api = tms

server_name = MapBox
server_url = http://{switch:a,b,c}.tiles.mapbox.com/v4/openstreetmap.map-inh7ifmo/{zoom}/{x}/{y}.png?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcCIsImEiOiJncjlmd0t3In0.DmZsIeOW-3x-C5eX-wAqTw
empty_tile_bytes = 1882
empty_tile_checksum = -1893505042

server_api = tms

server_name = MapQuest
server_url = http://oatile{switch:1,2,3,4}.mqcdn.com/tiles/1.0.0/sat/{zoom}/{x}/{y}.png
empty_tile_bytes = 2935
empty_tile_checksum = 839257317

server_api = bing

server_name = Bing
server_url = http://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?include=ImageryProviders&output=xml&key=Arzdiw4nlOJzRwOz__qailc8NiR31Tt51dN2D7cm57NrnceZnCpgOkmJhNpGoppU
empty_tile_bytes = 1033
empty_tile_checksum = -332268601

server_api = tms

server_name = DigitalGlobe
server_url = http://{switch:a,b,c}.tiles.mapbox.com/v4/digitalglobe.0a8e44ba/{zoom}/{x}/{y}.png?access_token=pk.eyJ1IjoiZGlnaXRhbGdsb2JlIiwiYSI6ImNqMmFxcGJ2MjAwOHEzMm9nZmF2c3luZWkifQ.HsF19zOlj8PeOxo5BhNqyQ

server_api = tms

server_name = ESRIWorld
server_url = https://{switch:services,server}.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{zoom}/{y}/{x}
empty_tile_bytes = 1882
empty_tile_checksum = -1893505042

Fun stuff

if you like scanaerial you can show others that you use it by putting

[[Category:Scanaerial User]]

in your Userpage.

See Also