Evan Mason wrote:

Hi, I am having some problems using the oblique mercator projection in basemap. I want to define a rectangular orthogonal grid, rotated clockwise by about 13 degrees. I want to define grid cells of size, say, about 20x20 km. The script I have so far is below. The problem is that at some point (the makegrid step) I lose the rotation, as seen in the plot.

I'd appreciate any help with this, thanks, Evan

from matplotlib.toolkits.basemap import Basemap

M = Basemap(projection = 'omerc', \

resolution = None, \

llcrnrlon = -43.7, \

llcrnrlat = 14.7, \

urcrnrlon = -4.0, \

urcrnrlat = 41.9, \

lat_2 = 11.0, \

lat_1 = 45.5, \

lon_2 = -27.8, \

lon_1 = -19.9)

dl = 20000.

nx = int((M.xmax - M.xmin) / dl) + 1

ny = int((M.ymax - M.ymin) / dl) + 1

lonr, latr = M.makegrid(nx, ny)

plot(lonr, latr, 'c.')

show()

Evan: I have to admit, I'm not too familiar with the Oblique Mercator projection. What exactly should it look like?

If I plot

M = Basemap(projection = 'omerc', \

resolution = 'l', \

llcrnrlon = -43.7, \

llcrnrlat = 14.7, \

urcrnrlon = -4.0, \

urcrnrlat = 41.9, \

lat_2 = 11.0, \

lat_1 = 45.5, \

lon_2 = -27.8, \

lon_1 = -19.9)

M.drawcoastlines()

M.drawparallels(arange(10,51,10))

M.drawmeridians(arange(-50,1,10))

M.show()

I see a reasonable looking map, but then I don't really know exactly what to expect.

It seems that there are two ways to specify oblique mercator in proj4

1) by specifying 2 points (lon1,lat1), (lon2,lat2) along the central line

2) by specifying a central point and an azimuth that passes through the central point.

Basemap uses (1), but every example on the web I've seen uses (2). It could be there are bugs in (1), and (2) would produce more reasonable results in your case. If you can give me an example of what your map *should* look like, it would help a lot.

-Jeff

## ···

--

Jeffrey S. Whitaker Phone : (303)497-6313

NOAA/OAR/CDC R/PSD1 FAX : (303)497-6449

325 Broadway Boulder, CO, USA 80305-3328