A dihedral projection

General discussion of map projections.
dummy_index
Posts: 28
Joined: Sat Dec 21, 2019 12:38 pm

Re: A dihedral projection

Post by dummy_index »

Hi! I was away for a while (busy with work). Wow, new projection w/o elliptic function! It is a surprisingly simple expression...? I'll check it from later.
I'm also thinking about the projection class that the major/minor axes of all indicatrices are aligned for X/Y axis (or r/θ axis), in contrast to the class that the major/minor axes of all indicatrices are alined for graticule (cylindrical, conical, azimuthal, rectangular polyconic, ...). But I had only reached the easy modification:
x(lon,lat)=f(some_conformal_mapping_x(lon,lat))
y(lon,lat)=g(some_conformal_mapping_y(lon,lat))

(outline is broken; actually 2π×2π square.)
SquashedStereo.png
SquashedStereo.png (96.17 KiB) Viewed 11843 times
This can be applied to Guyou for improve the resolution efficiency. (I need the inverse function of Guyou...) But can't use for other than rectangles.
Milo
Posts: 271
Joined: Fri Jan 22, 2021 11:11 am

Re: A dihedral projection

Post by Milo »

dummy_index wrote: Sat Apr 23, 2022 7:36 amHi! I was away for a while (busy with work).
Glad to see you again!

You might've noticed earlier in the thread that I mentioned valuing your insight.
dummy_index wrote: Sat Apr 23, 2022 7:36 amWow, new projection w/o elliptic function! It is a surprisingly simple expression...?
Yeah, I was surprised by that too. It took me a long time to find this projection, and when I finally did, it was actually by a stroke of serendipity while I was actually working on something completely different that I had no reason to expect to be related. But in hindsight it gives a feeling of "huh, was it that easy all along...?".

Both the forward and inverse formulae have closed forms in terms of trigonometric functions.
dummy_index wrote: Sat Apr 23, 2022 7:36 amI'm also thinking about the projection class that the major/minor axes of all indicatrices are aligned for X/Y axis (or r/θ axis), in contrast to the class that the major/minor axes of all indicatrices are alined for graticule (cylindrical, conical, azimuthal, rectangular polyconic, ...). But I had only reached the easy modification:
x(lon,lat)=f(some_conformal_mapping_x(lon,lat))
y(lon,lat)=g(some_conformal_mapping_y(lon,lat))
Hmm. I don't think this projection can be produced through that route, but I'm not entirely certain.

As you point out, the some_conformal_mapping would have to be rectangular in shape, probably the Guyou projection. Even if there exist some f and g that can wrangle the conformal hemisphere-in-a-square projection into the compromise hemisphere-in-a-square projection I present here, that would be a rather roundabout way of doing things, using elliptic functions as an intermediary to compute something that could have been computed in terms of only trigonometric functions.

Worth noting is that I expect any decent equal-area hemisphere-in-a-square projection will not have the "all Tissot axes are aligned with the x/y axes" property.
dummy_index wrote: Sat Apr 23, 2022 7:36 am(I need the inverse function of Guyou...)
The inverses of the Jacobi elliptic functions are the incomplete elliptic integrals of the first kind, and vice versa. Sometimes the Peirce/Adams/Guyou projection is defined in terms of the lemniscate elliptic functions, but these can be easily defined in terms of a special case of the Jacobi elliptic functions.
dummy_index
Posts: 28
Joined: Sat Dec 21, 2019 12:38 pm

Re: A dihedral projection

Post by dummy_index »

Milo wrote: Sat Apr 23, 2022 8:06 am You might've noticed earlier in the thread that I mentioned valuing your insight.
:)

Checking, ... Aha. In square form, I know the terms in parentheses. "distance from left-top point" etc. can be described by the latitude, of ±45° shifted graticule.
X coordinate of daan's lateral equidistant is the great-circle distance from the point same latitude of central meridian, and thinking halves the path, indicates the transverse latitude! I define the projection "latitude-transverse latitude grid" (shortly "LatTLat"):
Y = latitude(P)
X = latitude(transverse(P))
consequently, lateral equidistant is meridian duplication of LatTLat.
And Guyou (45° oblique) aspect of LatTLat is pseudoorthographic.

...I'm worried about the precision near the edge.

lateral equidistant <-(meridian duplication)-- latitude-transverse latitude grid --(Guyou aspect)-> pseudoorthographic --(easy modification)-> Milo dihedral(Guyou aspect)
Attachments
LatTLat.png
LatTLat.png (62.64 KiB) Viewed 11837 times
Milo
Posts: 271
Joined: Fri Jan 22, 2021 11:11 am

Re: A dihedral projection

Post by Milo »

dummy_index wrote: Sun Apr 24, 2022 5:25 amdaan's lateral equidistant
Huh, so that projection already exists. Neat.

I worked it out independently a while back, but never bothered sharing because it didn't seem particularly useful. I think this was before I joined the forum.
dummy_index wrote: Sun Apr 24, 2022 5:25 amAnd Guyou (45° oblique) aspect of LatTLat is pseudoorthographic.
A simpler way to say this is that the Adams aspect of the pseudoorthographic projection is equivalent to LatTLat (rescaled by a factor of √2, anyway). The "meridian duplication" you speak of to produce the lateral equidistant projection from this is the same process that is used to produce the Hammer and Aitoff projections (i.e., halve longitude, project the hemisphere, and then double the x coordinate).

I hadn't expected those projections to be related in that manner! Neat.

A simple formulation for the "transverse latitude" is asin(sin(longitude)*cos(latitude)).

An interesting corollary is that the Adams-aspect pseudoorthographic, like the real orthographic, has straight-line parallels (but is not pseudocylindrical, because it has uneven scale along those parallels).
dummy_index
Posts: 28
Joined: Sat Dec 21, 2019 12:38 pm

Re: A dihedral projection

Post by dummy_index »

I found a projection for Octants (face of regular octahedron) with no kinks over the edges.
It is based on the Chamberlin trimetric, but uses trilinear coordinates in xy-plane. three points are placed on the pole and two points 90° distanced on equatorial. (this method works well only for octant. equatrial is constant distance from pole. sum of distance from other two points is constant on the equatorial.)
Trilinear.png
Trilinear.png (64.87 KiB) Viewed 11754 times
Then how to gain resolution-efficiency... Modulate the distance function with keep some_func(distance from B)+some_func(distance from C)=pi/2. Define the function piecewise to correct the scale near the boundary.
TrilinearC0_ModDist.png
TrilinearC0_ModDist.png (17.59 KiB) Viewed 11754 times
To improve the scale around the center, it would be nice to increase the differentiability class of the function...
In fact, C^2 class is not sufficient. An area of small scale remains on both sides of the perpendicular line.
TrilinearC3.png
TrilinearC3.png (64.93 KiB) Viewed 11754 times
I have found the C^3 class function (parameters were adjusted manually and will need to be reviewed later). It appears that the small scale region is gone, but I am not sure if this is the theoretical goal.
Last edited by dummy_index on Mon Aug 15, 2022 5:18 am, edited 1 time in total.
dummy_index
Posts: 28
Joined: Sat Dec 21, 2019 12:38 pm

Re: A dihedral projection

Post by dummy_index »

TrilinearC0_MinAxis.png
TrilinearC0_MinAxis.png (61.95 KiB) Viewed 11754 times
TrilinearC1_MinAxis.png
TrilinearC1_MinAxis.png (61.03 KiB) Viewed 11754 times
TrilinearC2_MinAxis.png
TrilinearC2_MinAxis.png (61.88 KiB) Viewed 11754 times

Code: Select all

Resolution-efficiency of octant projections:
theoretical: sqrt(pi/6/sqrt(3))/acos(sqrt(2/3))    ~= 0.8933
Trilinear:   ~= 0.7031
TrilinearC0: ~= 0.8148
TrilinearC1: ~= 0.8864
TrilinearC2: ~= 0.8933
TrilinearC3: ~= 0.8933
dummy_index
Posts: 28
Joined: Sat Dec 21, 2019 12:38 pm

Re: A dihedral projection

Post by dummy_index »

Dihedral projection?
As may be well known, it is possible to convert between a hemisphere and a octant without elliptic integrals.

hemisphere -> (Lagrange transform) -> 90° gore -> (rotate) -> (Lagrange transform) -> octant
Three corners of this octant are from 90°-90°-180° points of the great circle. So, in advance, we use a Möbius transform to map 120°-120°-120° points to the 90°-90°-180° points.
Does it become 3-fold symmetry? Maybe yes, I check it in plotting by gnuplot.
TrilinearHT.png
TrilinearHT.png (79.26 KiB) Viewed 11741 times

Code: Select all

Resolution-efficiency of Triangular dihedron projections:
theoretical: sqrt(8/3/pi/sqrt(3))  ~= 0.7001
TrilinearHT: ~= 0.6063
my all projections: https://github.com/dummy-index/gp-mapprojections
Milo
Posts: 271
Joined: Fri Jan 22, 2021 11:11 am

Re: A dihedral projection

Post by Milo »

Looks promising! Good job.

...Should I be worried that the minor axis graph of your C0 projection looks like a radioactive hazard symbol?
dummy_index wrote: Mon Aug 15, 2022 5:01 amI found a projection for Octants (face of regular octahedron) with no kinks over the edges.
It is based on the Chamberlin trimetric, but uses trilinear coordinates in xy-plane. three points are placed on the pole and two points 90° distanced on equatorial. (this method works well only for octant. equatrial is constant distance from pole. sum of distance from other two points is constant on the equatorial.)
Can you explain in more detail what you mean about using trilinear coordinates?

According to my own analysis, I get the following formulae for computing to and from trilinear coordinates:

spherical trilinear coordinates (relative to 0°E 0°N, 90°E 0°N, 90°N):
k*a = latitude
k*b = asin(cos(latitude)*sin(longitude))
k*c = asin(cos(latitude)*cos(longitude))

Euclidean trilinear coordinates (relative to (-sqrt(1/3),0), (+sqrt(1/3),0), (0,1)):
k*a = y
k*b = (1 + sqrt(3)*x - y) / 2
k*c = (1 - sqrt(3)*x - y) / 2
k*(a+b+c) = 1

reverse Euclidean trilinear coordinates:
x = sqrt(1/3)*(b-c)/(a+b+c)
y = a/(a+b+c)

When I have gnuplot compute the spherical-to-trilinear-to-Euclidean transformation, I get the following graticule:
trilinear.png
trilinear.png (6.96 KiB) Viewed 11737 times
This is different from yours, and is not perpendicular to the edges in general.
dummy_index wrote: Mon Aug 15, 2022 5:01 amThen how to gain resolution-efficiency... Modulate the distance function with keep some_func(distance from B)+some_func(distance from C)=pi/2. Define the function piecewise to correct the scale near the boundary.
If it helps, a necessary and sufficient condition for a projection of a tangential polygon to have optimal resolution-efficiency for that polygon is that (A) it has constant scale along the apothems, and (B) at no other point/direction is the scale lower than it is on the apothems. This is how I computed the theoretical optima you reference, in fact. All regular polygons are, of course, tangential polygons.

So perhaps you could accomplish this by determining the behavior on the apothem of your base projection, and then compute the inverse function?

Doesn't really solve the issue that, as an odd-sided polygon, a triangle's apothems don't continue all the way through, though.
dummy_index wrote: Tue Aug 16, 2022 5:59 amhemisphere -> (Lagrange transform) -> 90° gore -> (rotate) -> (Lagrange transform) -> octant
By Lagrange transform, I assume you mean the "halve scale of Mercator projection" process used in the Lagrange projection?

This is a conformal transformation, so it's generally not ideal for designing non-conformal projections. On the plus side, though, I think that preservation of threefold symmetry is guaranteed by the uniqueness theorem of conformal transformations. (It's intuitively obvious that some symmetry-preserving transformation between the two triangles must exist, and therefore if you can devise a projection that gets enough details right to satisfy the uniqueness theorem, it must be the right one.)

However, what's the "Möbius transformation" that you're using to map the 120°-120°-120° points onto the 90°-90°-180° points? From my own understanding, a Möbius transformation of a great circle onto that same great circle will always preserve all points of the great circle as well (or rotate them), even if it shifts things around on the inside. Am I missing something? However, according to my own analysis, you could achieve the intended result by a variant of the Lagrange process where you translate instead of scale the Mercator projection, shifting it northwards by asinh(1/sqrt(3)) (so the previous 30°S parallel is now the equator). (You can't combine the two steps, though, because they use the Mercator projection in different aspects! The translation uses the Mercator projection where the hemisphere of interest lies between the 90°W and 90°E meridians, while the caling uses the Mercator projection where the hemisphere of interest lies north of the equator. Heh, the Mercator projection is pretty useful.)

If nothing else, this could make for a useful way of computing the conformal octant projection. This still requires an elliptic function (for the computation of the conformal hemisphere-in-a-triangle projection, which is then transformed into an octant projection), but probably a simpler one than whatever messy hypergeometric functions are necessary to compute the confomal octant projection directly from the Schwarz triangle function.
dummy_index
Posts: 28
Joined: Sat Dec 21, 2019 12:38 pm

Re: A dihedral projection

Post by dummy_index »

Milo wrote: Tue Aug 16, 2022 7:18 am Looks promising! Good job.

...Should I be worried that the minor axis graph of your C0 projection looks like a radioactive hazard symbol?
Thanks!

I thought it's Mitsubishi... 8-)
Milo wrote: k*(a+b+c) = 1
Ah, if we say trilinear coordinates, it will be interpreted as that kind of normalization. Not a good name...
My intention was Chamberlin's way. The three lines do not intersect at a single point; therefore, find the center of the triangle formed by them.

I am thinking of a new name. ternary plot... Chamberlin... Chamberlinian...
Milo wrote: So perhaps you could accomplish this by determining the behavior on the apothem of your base projection, and then compute the inverse function?

Doesn't really solve the issue that, as an odd-sided polygon, a triangle's apothems don't continue all the way through, though.
Scale (ofcourse on apothem) near the edge between the points B and C are the sum of:
  • Approaching zero as we approach the boundary, like near the edge of LatTLat, by effect of b and c.
  • Constant, by effect of a.
Inverse functions of added things are difficult (recalling Mollweide's equation).
"Huh? Maybe instead of thinking of it as adding everything together, we could just tweak the shape of a to cancel out the effects of b and c!"
Milo wrote: However, what's the "Möbius transformation" that you're using to map the 120°-120°-120° points onto the 90°-90°-180° points? From my own understanding, a Möbius transformation of a great circle onto that same great circle will always preserve all points of the great circle as well (or rotate them), even if it shifts things around on the inside. Am I missing something? However, according to my own analysis, you could achieve the intended result by a variant of the Lagrange process where you translate instead of scale the Mercator projection, shifting it northwards by asinh(1/sqrt(3)) (so the previous 30°S parallel is now the equator). (You can't combine the two steps, though, because they use the Mercator projection in different aspects! The translation uses the Mercator projection where the hemisphere of interest lies between the 90°W and 90°E meridians, while the caling uses the Mercator projection where the hemisphere of interest lies north of the equator. Heh, the Mercator projection is pretty useful.)
  • Stereographic = exp(Mercator), Mercator = log(Stereographic) (where Mercator is directed N as plus, Stereographic is south-polar view). Translating the Mercator projection is equivalent to scaling the Stereographic projection.
  • In stereographic projection, great-circle through the tangent point is projected to a line. scaling the projected image results the line with same appearance, different mapping. Then inverse stereographic results same appearance different scale great-circle.
    quadibloc
    Posts: 292
    Joined: Sun Aug 18, 2019 12:28 am

    Re: A dihedral projection

    Post by quadibloc »

    dummy_index wrote: Tue Aug 16, 2022 5:59 amAs may be well known, it is possible to convert between a hemisphere and a octant without elliptic integrals.
    I didn't know that for a fact, but I'm not at all surprised that it is. What would surprise me greatly was if such a conversion were conformal.
    Post Reply