JOSM/Plugins/PicLayer

From OpenStreetMap Wiki
< JOSM‎ | Plugins
Jump to: navigation, search
Available languages
English español français русский

This plugin allows to load pictures and display them as JOSM layer.

Quick animated how-to: Piclayer Usage

There is also a german page available : DE:Piclayer/Anleitung

General information

Features

  • supported formats : PNG, JPEG, GIF
  • moving/rotating/scaling the picture with the mouse
  • loading/saving of the picture position on the map (.cal files)

Limitations

  • no support for (Geo)TIFF
  • no georeferencing based on reference points or coordinates (only positioning with the mouse)
  • .cal files are projection-specific (.cal files are specific to the JOSM projection that existed when .cal file was saved. If you change JOSM projection, you should save the .cal file again, otherwise the pic will not load in its position next time.)

Installation

Use the plugin panel in the preferences of JOSM to install this plugin.

Usage

Loading a picture

  • First, you will have to create a map layer
  • select the menu "PicLayer" / "New Picture Layer from File"
  • select one or several files

If calibration files (.cal) are available, then will be loaded automatically. If not, the image center will be placed at the current center of the screen, at a scale where it's reasonably visible.

Geo-referencing

  1. New way (see animation at Piclayer Usage)
    • Activate the layer.
    • Click green arrow button at the left toolbar
    • Select picture checkpoints ( 3 checkpoints needed for processing)
    • Click red arrow button at the left toolbar
    • At this mode you can move checkpoints (you should point exactly in the bubble of the point) and image will transform
  2. Old way
    • Activate the layer (not only select, really activate, this is important)
    • Click on the appropriate icon "Drag to ... the picture" in the toolbar
    • Use the mouse. You can press SHIFT while rotating or scaling the picture for a better precision.

Saving the cal file

Right click on a layer, "Save picture calibration..."

Loading the cal file

It will be loaded automatically when loading the picture based on the file name (picture.png.cal for instance). You can also load a cal file manually with "Load picture calibration..."

Important: the cal file is projection specific, make sure you use the same projection when saving and loading

History

See JOSM/Plugins/PicLayer/ReleaseNotes

Other links

Annexes

New .cal file format

Example:

#JOSM PicLayer plugin calibration data
#Sun Nov 27 22:21:58 CET 2011
POSITION_Y=6708383.375731533
POSITION_X=602463.1049788792
INITIAL_SCALE=673.3630407396365
M12=-714.691403694874
M11=0.508636037014039
M10=6.263463862108147E-5
M02=43.42632371753174
M01=-2.1720970442278513E-4
M00=0.5060984647587284
  • POSITION_X and POSITION_Y: position of the image center in world units (i.e. projection specific) — the same as in old .cal format
  • INITIAL_SCALE: equivalence of 100 pixels in world units
  • M00, M01, M02 and M10, M11, M12: affine transform coefficients

Mathematical background:

[x'      [1 0 PX    [M00 M01  M02    [S/100 0     0    [x
 y'    =  0 1 PY  ×  M10 M11 -M12  ×  0     S/100 0  ×  y
 IGN ]    0 0 1 ]    0   0    1  ]    0     0     1]    1]

(PX,PY)=POSITION_X/Y, S=INITIAL_SCALE, (x,y)=pixel location relative to the image center. (x',y')=projected coordinates. IGN=ignore. Technically, INITIAL_SCALE and POSITION_X, POSITION_Y are redundant because they could be merged into M. Also see http://en.wikipedia.org/wiki/File:2D_affine_transformation_matrix.svg for a graphic help on how M is constituted.

Old .cal file format

Example :

#JOSM PicLayer plugin calibration data
#Mon Nov 15 19:38:35 CET 2010
SCALEX=1.0
SCALEY=1.0
SHEARX=0.0
SHEARY=0.0
INITIAL_SCALE=190.92609423045016
POSITION_Y=292616.03696207993
POSITION_X=490266.6137017577
INITIAL_POS_y=293088.4061731008
INITIAL_POS_X=490909.1888228225
ANGLE=58.77
  • INITIAL_SCALE: world meters / 100 pixels at the time you load the image
  • SCALE_X/Y: additional scaling done by the user
  • SHEAR_X/Y: meaning?
  • INITIAL_POS_X/Y: meaning?
  • POSITION_X/Y: position of the image center in world units
  • ANGLE: 0 means not rotated

About scaling: the size of the image in world meters is: imgsize / 100 * INITIAL_SCALE * SCALE_X/Y

Remember that the cal files are projection specific, but the projection is not stored in the file.

Note: Josm may crash when trying to open a very old cal-file (see ticket 6123 with workaround)

How to convert an old .cal file format to new .cal file format

TODO.

World file

If a world file is present next to an image when opened, it is used to automatically georeference the layer.

The format is a normal .wld file. However the projection (.prj) is not read and need to be set to the same as JOSM (default EPSG:3857).