Marble/HistoricalMaps: Difference between revisions

From KDE TechBase
(Replaced by better quality)
(initial instructions - no screenshots)
Line 21: Line 21:


====Preparing Historical Maps for use in Marble====
====Preparing Historical Maps for use in Marble====
Maps for Marble need to get provided in [http://en.wikipedia.org/wiki/Plate_carrée_projection plate carrée projection] (also referred  
Maps for Marble need to get provided in plate carrée projection (also referred to as "Equirectangular projection"):
to as "Equirectangular projection"):


There are morphing tools and HOWTOS on the web that can tell you how to morph  
There are morphing tools that will let you morph ancient maps into the desired projection. It doesn't require too many skills. Just some patience and love to detail.
ancient maps into the desired projection. It doesn't require too many skills. Just some patience and love to detail.


You can have a look at [http://spin3d.com/ Spin3D] for a source of inspiration. Please consider to use Free Software instead of Morph Man (e.g. xmorph).


The "rectangular image" that is the result after half of the tutorial is
You can use xmorph/gtkmorph to morph the images. It is a old piece of software, and is not actively maintained anymore. However it is mature enough for what we need. It likely is in your distribution's repository, if not you can get it on [http://sourceforge.net/projects/xmorph/ sourceforge].
what you need.
 
To load the image you want to choose into gtkmorph, click on the "Load image" button on the "input image" window. You can adjust where the mesh's position and the image size, it will be easier if you roughly align the mesh with map before you start. But before you click "Apply", you must change the resolution on the resulting image, to do this you need to change the "width" and "height" on the bottom of the "resulting image" window - be careful as gtkmorph has a tendency to crop the images, even if the resulting image is the same resolution as the original!!
 
By default you there are only a few mesh lines, to get more right-click on the field and choose "add horizontal line" and "add vertical line" - there appears to be a hotkey, but that don't seem to work. You can also set the minimum amount of lines to ~50 by editing the libmorph/morph.c line 48 & 49, but that may be going too .
 
Once you've got it all setup you are gonna start on the more repetitive task, you're gonna need to place the yellow dots so that the grid aligns with the grid on the map. If you align every second line on the mesh to every line on the map, that will give you some wiggle room if the line between two dots don't really follow the line on the map.
 
Once you have set all the yellow dots you simply click the 'do warp' button and about a half a minute later you'll hopefully have something like this:
Then save the image by clicking on the 'save image' button, the result should be a square map that can be used in Marble. Save the mesh, and export the image, .PPM and .PNG should be a good choice of format.

Revision as of 17:05, 31 October 2008

Historical Maps for Marble

We'd like to add Historical Maps to Marble. Ideally one would later on be able to travel through time using a slider later on. For now we concentrate on a more simple approach:

There are lots of very early world maps that are under the public domain. You'll find several on Wikipedia (please add further ones to the list as you find them) and elsewhere on the internet:

-- Magnus has completed this one already


Licensing

If you find new maps it's always important to check the license. Although ancient maps should usually be under the public domain there are several people who claim copyright on the data due to the image manipulation work they have done as a part of post-processing the scan. No matter whether this is legitimate or not we should respect those claims and look for data that was intended to be published under the public domain (or another free license) and use that.

It's important to note that people like to distribute imagery "free for non-commercial usage". Unfortunately we are not able to use and distribute this data as this would e.g. prohibit most Linux Distributors from distributing our software. So do not use data that is "free for non-commercial use"! It's not suitable for our purposes. If you think that there is a chance that the author might agree to change the license to a less restrictive one then it might be worth to contact him. However pretty often the "non-commercial" wording is provided intentionally this way to allow for a business case of the author.

Preparing Historical Maps for use in Marble

Maps for Marble need to get provided in plate carrée projection (also referred to as "Equirectangular projection"):

There are morphing tools that will let you morph ancient maps into the desired projection. It doesn't require too many skills. Just some patience and love to detail.


You can use xmorph/gtkmorph to morph the images. It is a old piece of software, and is not actively maintained anymore. However it is mature enough for what we need. It likely is in your distribution's repository, if not you can get it on sourceforge.

To load the image you want to choose into gtkmorph, click on the "Load image" button on the "input image" window. You can adjust where the mesh's position and the image size, it will be easier if you roughly align the mesh with map before you start. But before you click "Apply", you must change the resolution on the resulting image, to do this you need to change the "width" and "height" on the bottom of the "resulting image" window - be careful as gtkmorph has a tendency to crop the images, even if the resulting image is the same resolution as the original!!

By default you there are only a few mesh lines, to get more right-click on the field and choose "add horizontal line" and "add vertical line" - there appears to be a hotkey, but that don't seem to work. You can also set the minimum amount of lines to ~50 by editing the libmorph/morph.c line 48 & 49, but that may be going too .

Once you've got it all setup you are gonna start on the more repetitive task, you're gonna need to place the yellow dots so that the grid aligns with the grid on the map. If you align every second line on the mesh to every line on the map, that will give you some wiggle room if the line between two dots don't really follow the line on the map.

Once you have set all the yellow dots you simply click the 'do warp' button and about a half a minute later you'll hopefully have something like this: Then save the image by clicking on the 'save image' button, the result should be a square map that can be used in Marble. Save the mesh, and export the image, .PPM and .PNG should be a good choice of format.