Subscribe to this thread
Home - General / All posts - Oblique Mercator in 9 (rotating maps)
tjhb
10,094 post(s)
#25-Feb-19 20:51

Two things.

(1) Oblique Mercator in Manifold 9 is astonishingly fast. I have an RGBA image 14401 x 18001 pixels in New Zealand Transverse Mercator (north up) which I am reprojecting on the fly to a custom Oblique Mercator projection (locally centred, east up) in a map.

Display is instantaneous. Zooming and panning feel just as fast in the map, with quite heavy reprojection, as when viewing the image in its own window in its native projection.

I don't know how this is even possible! Amazing stuff.

(2) There is a small glitch (as of 9.0.168.9) when setting a custom Oblique Mercator projection in the GUI.

Briefly, here is the workflow using my example:

Create > New Map 

  Coord System: [press button] 

    Edit Coodinate system... 

      Coordinate System dialog 

        Custom tab 

          Name: ...

          Type: Hotine Oblique Mercator (B) 

          Base: New Zealand Geodetic 2000 

          Center Latitude: ...

          Center Longitude: ...

          Center line azimuth: 90 

          Rectified grid: 0 

          Scale X: 1 

          Scale Y: 1 

          False easting: 0 

          False northing: 0 

          Force XY axes: yes 

          [Metrics left as defaults: XY 1m, Z 1m] 

        OK 

  Create Map 

The glitch is that the RectifiedGrid parameter is not recorded in the projection string, and the resulting map is initially displayed without rectification (that is, it is north up).

To fix that we just need to add the "RectifiedGrid": 0 parameter manually (by editing the map's CoordSystem property string. Alternatively, the projection can be defined or adjusted using SQL. Then we get rectification to the expected east-up orientation.

I have filed a report.

adamw


10,447 post(s)
#01-Mar-19 13:56

We found it. We don't write the values of parameters that are left at trivial default values, to avoid cluttering coordinate system definitions with uninteresting boilerplate. The implementation of Hotine oblique Mercator was using two different defaults for the value of the rectified grid parameter - one for when it is not provided and one for when it is provided (but might be invalid). That's a bug, it shouldn't have been doing that.

Fixed.

tjhb
10,094 post(s)
#01-Mar-19 22:26

Thanks for explaining Adam.

By the way I think Oblique Mercator should be much more widely used and loved. It is just about the most versatile projection that exists.

People often think we can't create rotated maps with standard tools. We can, and it's not hard. Flexibility of orientation is great for cartography.

There are advantages in having north (more often: approximate north) oriented up by default. But maps adapted to the local AOI, landcover and terrain should be just as common.

tjhb
10,094 post(s)
#02-Mar-19 23:17

Having said that, I should give basic instructions for use, since I think many people do find this projection mysterious or difficult.

These examples all use "Hotine Oblique Mercator (B)" in Manifold 9, equivalent to "Oblique Mercator (B, centered)" in Manifold 8. Other versions are equally usable, but this form is usually simplest.

Start with your AOI, in any standard north-up projection.

(a)

Pick a local centre for your custom projection. Set center longitude and center latitude accordingly.

(b)

Determine the most important data axis. Usually this means the maximum extent of the data. For example: if you have a short, wide rectangle, pick 90°. If you have a tall, narrow rectangle, pick 0°.

This axis is with respect to north. It is only important for scale, and doesn't usually matter very much, especially for a local projection.

It can be varied. E.g. use -90° or 270° instead of 90° (equivalent), or 180° instead of 0° (equivalent). Or use an oblique axis, if your data follows an oblique extent, and for some reason you need to privilege measurement on that oblique axis. But normally, don't worry about this very much.

This axis is specified as center line azimuth.

(c)

Now decide how you want the data to be displayed--its orientation on screen or page.

This parameter is the rectified grid angle.

If you specify the same angle as the center line azimuth, you get standard north-up orientation. If different, you get a rotated map. Then the relationship is as follows:

  • "up" = center line azimuth - rectified grid angle

For example, if center line azimuth is 90° (east), and rectified grid angle is 0°, then "up" is 90 - 0°: east.

Similarly, if center line azimuth is 0° (north), and rectified grid angle is -90°, then "up" is 0 - (-90)°: again east. (You can also use 0 - 270° here, same result.)

The difference between the two examples is that, while final orientation is the same (east-up), the line of constant scale is different: in the first case west-east, in the second case north-south. Again, for local maps of small extent, that difference is usually small to negligible. Be more careful with maps having a large extent.

(d)

Normally use scale X and scale Y = 1, and false easting and false northing = 0, unless you know you need to do something else.

KlausDE

6,410 post(s)
#03-Mar-19 16:41

Thx for this. I missed (a) and found myself in the middle of nowhere with no 'zoom to selection' showing any results and gave up.


Do you really want to ruin economy only to save the planet?

tjhb
10,094 post(s)
#03-Mar-19 18:51

That might be my fault Klaus, I think I added (a) last.

KlausDE

6,410 post(s)
#04-Mar-19 09:08

I didn't expect wms datasources to work with this rotated coordinate system but they do and speed is absolutely astonishing.

Center Latitude and Center Longitude default to the corrosponding values taken from the source coordinate system. As this may be not applicable for the rotated data it might be better to take the default from a previous central location of an active window in case the coordinate system modifies a previous coordinate system. This way you could avoid the situation, that you may start with Parameters that don't show any objects. So step (a) could be sensible simplified. I don't know if that is covered by Adam's replay.


Do you really want to ruin economy only to save the planet?

hphillips31 post(s)
#04-Mar-19 01:51

So if I understand the application of oblique mercator as you describe it might be used for a river corridor or a shoreline map - say the river trended NE to SW I might want to pick a data axis of 45 or 225 degrees? How does data axis and rectified grid angle together affect label direction? Thanks

tjhb
10,094 post(s)
#04-Mar-19 02:07

That is exactly right, yes. A center line axis of 45 or 225 degrees would be equally correct. After that, the rectified grid parameter gives you a free choice about map orientation. (They are independent.)

Label orientation is determined by the displayed map frame, after application of all projection parameters (including the above).

dchall8
1,008 post(s)
#07-Mar-19 22:52

Here's my application. The small town where I work was built on a grid set at a 45 degree angle to nestle into the geology formed by rocks and rivers. The very first maps of the area were drawn at the 45 degree angle to maximize the information on a sheet of paper and show all the lots. The official maps of the area have been drawn like this since 1853, so when I get a request from the city, they expect to see the map in the same historical view. Rotating with the Hotine projection makes every part of this easier.

Dimitri


7,413 post(s)
#04-Mar-19 17:59

OK, I'll admit it: I've never heard anybody say the name of this projection. "oblique" and "mercator" I think I can fake my way into, but how do people pronounce "Hotine" in English? Is it like "hoe" as in hoeing a row in the garden plus "tine" as in the single spike of a fork? What is the stress?

tjhb
10,094 post(s)
#04-Mar-19 23:41

I don't know either. Snyder doesn't say. I've always said Hot-'een in my head, as if he were a brand of cocoa not a brigadier. From his moustache I would guess 'Hot-in.

tjhb
10,094 post(s)
#05-Mar-19 02:15

Or exactly like Houghton (‘Hoe-tin).

Dimitri


7,413 post(s)
#05-Mar-19 09:23

OK... A solution! According to the BBC's "Map Man" TV series, the correct pronunciation is "Haugh teen" with the stress on the first syllable. The "Haugh" syllable is pronounced like the "ho" portion of "hot" with a British accent, or, perhaps, the first syllable of "haughty," and "teen" is pronounced as the word meaning a person between the ages of 13 and 18, inclusive.

The BBC's Map Man series is not easy to find online. Series One, Episode 8 is at https://www.dailymotion.com/video/x2f0lr5 - although you have to wait five minutes and 45 seconds into the show to finally hear Martin Hotine's name spoken.

This is a really great series for GIS people. I've attached an .mxb with all sixteen episodes and the URLs to online viewing.

Attachments:
BBC_Map_Man_Episodes.mxb

Dimitri


7,413 post(s)
#05-Mar-19 12:54

Thanks for the instructions! I just love using this to rotate maps. Here's an example:

Here is a rotated image of the Richat Structure (aka "Eye of the Sahara") I did using Hotine Oblique Mercator that clearly shows how winds flow from right to left of the image, carrying sand from the Sahara desert (the diagonal ripples at right) and how mountains and the plateau around the "eye" divide the wind-blown sands.

This is a 1 GB SRTM terrain elevation data set, blended using partial opacity with a Bing Satellite layer that is contrast-enhanced on the fly, which is blended in turn with a 1 GB 7x7 matrix profile Curvature surface. The SRTM and profile Curvature surfaces are in Lat/Lon projection, and the Bing satellite raster is in Pseudo-Mercator. Despite reprojecting on the fly all three layers, over 3 GB of data, into a custom Hotine Oblique Mercator projection to rotate the display, you can see the result in real time and pan and zoom with the mouse.

The "North Arrow" is just a line with a label at the end.

mdsumner


4,260 post(s)
#04-Mar-19 12:51

I agree, it's perfect for shearwater tracks - in longlat they look like they are "flying west" in Antarctica, but the whole performance is as straight a line as possible. (I made this awful figure ages ago, it's not a great example but you remind me how appropriate and little known this projection family is!)

Attachments:
oblique.png


https://github.com/mdsumner

Dimitri


7,413 post(s)
#04-Mar-19 18:47

Beautiful maps! Clear, and instantly tell the tale.

Manifold User Community Use Agreement Copyright (C) 2007-2021 Manifold Software Limited. All rights reserved.