basemap
basemap copied to clipboard
Basemap does not respects False Easting or False Northing
While creating a basemap from an EPSG code with the x_0 or y_0 (False Easting and False Northing), the Basemap instance does not respect those values. I tried with 'tmerc' projections only because it's of my interest. I leave an example:
Suppose I want to use this EPSG basemap:
# POSGAR 94 / Argentina 1
<22181> +proj=tmerc +lat_0=-90 +lon_0=-72 +k=1 +x_0=1500000 +y_0=0 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <>
It can be found in "basemap/data/epsg" file.
Then I create the basemap and print its parameters:
from mpl_toolkits.basemap import Basemap
lon_min, lat_min = -75, -45
lon_max, lat_max = -70, -40
bm = Basemap(epsg=22181,
llcrnrlon=lon_min, llcrnrlat=lat_min,
urcrnrlon=lon_max, urcrnrlat=lat_max)
print bm.proj4string
I get the following output:
+a=6378137.0 +b=6356752.31425 +k_0=1.0 +y_0=-5012640.49452 +lon_0=-72.0 +proj=tmerc +x_0=236540.642361 +units=m +lat_0=-90.0
As we can see, the Basemap overrides the false easting and false northing information:
+x_0=236540.642361 +y_0=-5012640.49452
It would be great that the Basemap respect those values and even better if they can be passed as arguments while initializing it in the usual way (without using EPSG codes), for example:
bm = Basemap(projection='tmerc',
lon_0=lon_0, lat_0=lat_0,
x_0=x_0, y_0=y_0
llcrnrlon=lon_min, llcrnrlat=lat_min,
urcrnrlon=lon_max, urcrnrlat=lat_max)
This might be a duplicate of issue #192?
Hi @WeatherGod, I don't think so. What I'm saying is that the basemap ignores the false easting and false northing properties of the EPSG codes (what gives a different projection type than the desired one). And I propose to make the Basemap class to accept false northing and false easting as inputs in the initialization, because many projections are defined by these parameters.