basemap: scale created by drawmapscale seems incorrect
Issue description
Drawing a scale in basemap using ‘drawmapscale’ results in a scale which is not correct. It seems the bar is about 1.6 times to short. So, a scale with the indication 10km above it is actually only about 6.25 km long.
The two attachments show:
- a basemap plot (code below) for a region around Belgium. Belgium is about 230 km width, when measured due east starting from the most southern point of the coastline. As can be seen, the ruler is to small, it does not go from coast till the eastern border.
- a screenshot from google earth showing the same area with a measurement, confirming that the country is indeed 230 km wide.
Code which shows the issue:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
map = Basemap(projection='merc', lat_0 = 50, lon_0 = 4,resolution = 'h', area_thresh = 0.1,
llcrnrlon=1.75, llcrnrlat=49.0,urcrnrlon=7, urcrnrlat=52)
map.drawcoastlines()
map.drawcountries()
map.drawmapboundary(fill_color = 'lightblue')
map.fillcontinents(color = 'white',lake_color = 'lightblue')
map.drawmapscale(4.27,51.11,4.5,50.89,228, barstyle='fancy', units='km', labelstyle='simple',\
fillcolor1='w', fillcolor2='#555555', fontcolor='#555555')
plt.show(block=False)
I tried similar plottings in nautical mile, meters, etc, all with the same problem: the ruler shows the correct numbers, but is 1.6x to small. I also tried with much smaller scales (eg 10 km),other barstyle, etc and referenced them to known distances on a map, and the same issue occurs.
Technical info:
Python version: 2.7.6 matplotlib version: 1.3.1 Basemap 1.0.7 + dfsg-1 OS: linux Mint 17 Qiana (64-bit version) Installation method: all packages installed automatically during Mint installation or via Synaptic package manager using the official repository no customization
About this issue
- Original URL
- State: open
- Created 10 years ago
- Comments: 15 (3 by maintainers)
Another work around is to use the Transverse Mercator Projection http://matplotlib.org/basemap/users/tmerc.html
I the Belgium example that seems to return the expected result.