<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Dear Even, All,</p>
    <p>I am questioning the current meaning of <i>Central longitude
        & latitude of origin</i> (<i>lat_0</i>, <i>lon_0</i>) in
      the ISEA projection.</p>
    <p>From what I can see in the code, the <i>+lat_0</i> and <i>+lon_0</i>
      are being stored in <i>Q->o_lat</i>, <i>Q->o_lon</i>:</p>
    <p>   
      <a class="moz-txt-link-freetext" href="https://github.com/OSGeo/PROJ/blob/master/src/projections/isea.cpp#L1027">https://github.com/OSGeo/PROJ/blob/master/src/projections/isea.cpp#L1027</a></p>
    <p>However, these values are also used as the coordinates of the
      first icosahedron vertex, when using the <i>+orient</i>
      parameter, which really should have absolutely nothing to do with
      the concepts of central longitude & latitude of origin in my
      opinion:</p>
    <p>   
      <a class="moz-txt-link-freetext" href="https://github.com/OSGeo/PROJ/blob/master/src/projections/isea.cpp#L604">https://github.com/OSGeo/PROJ/blob/master/src/projections/isea.cpp#L604</a></p>
    <p>So it seems like currently, <i>+lat_0</i> and <i>+lon_0</i>
      allow to specify an orientation other than the polar or standard
      orientation that can be selected with <i>+orient</i>.<br>
      Selecting both would have <i>+orient</i> override the <i>+lat_0</i>
      and <i>+lon_0</i> values.<br>
      <br>
      This is really not obvious (I just realized this now), and I would
      think it is a misuse of the central latitude/longitude of origin
      concepts.<br>
      The latitude / longitude of origin are normally associated with
      less distortion, but distortion is worst in ISEA at the
      icosahedron vertices, and it'd definitely not "central" either.<br>
    </p>
    <p>What would make sense to me as the <i>central longitude &
        latitude of origin</i> would be which latitude & longitude
      is projected to the 0, 0 projected coordinates.</p>
    <p>This is currently the point at half the height and half the width
      of the icosahedron triangle containing South Africa, which is
      exactly in the middle of the <a
href="https://maps.gnosis.earth/ogcapi/collections/gebco/map?crs=OGC:1534">projection</a>
      if you exclude the bottom-right rhombus (containing part of New
      Zealand's north island and Hawaii) making the projection
      horizontally symmetrical.</p>
    <p>I think currently the only way to change this is by specifying
      false easting & northing with <i>+x_0</i> and <i>+y_0</i> in
      projected coordinates.</p>
    <p>Would it make sense / be possible to:</p>
    <p>- Introduce new parameters allowing to specify a custom
      coordinate of the first icosahedron vertex e.g, <i>+orient_lat</i>
      and <i>+orient_lon<br>
        - </i>Change the meaning of <i>+lat_0</i> and <i>+lon_0</i>
      to be the geographic latitude corresponding to 0, 0 in projected
      coordinates, documenting that the default value is -30.0945296301°
      N, 11.25 E (authalic latitude)<br>
    </p>
    This would be a breaking change only for cases where <i>+lat_0</i>
    and or <i>+lon_0</i> is currently being used to position the first
    icosahedron vertex.<br>
    Given that the documentation does not hint at that in any way, I
    doubt anyone is using these for that purpose.
    <p>Once the authalic / geodetic conversion is in place when using an
      oblate spheroid ellipsoid, I think <i>+orient_lat</i> and <i>+lat_0</i>
      would be assumed to be in geodetic coordinates (rather than
      authalic).<br>
    </p>
    These changes would also help clarify what is 0,0 with the default <i>+proj=isea</i>,
    which currently is quite a mystery which users need to figure out by
    themselves.
    <p>It would also make it easier to put 0,0 at the vertex West of
      Alaska as we do for the OGC:1534 CRS that we're trying to define.<br>
    </p>
    <p>Thank you!</p>
    <p>Kind regards,</p>
    <p>-Jerome<br>
      <br>
    </p>
  </body>
</html>