<feed xmlns='http://www.w3.org/2005/Atom'>
<title>PROJ/src/iso19111/operation, branch 8.0</title>
<subtitle>Forked from https://github.com/OSGeo/PROJ</subtitle>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/'/>
<entry>
<title>DOC: configure and add spelling wordlist; fix typos, apply Sphinx syntax (#2707)</title>
<updated>2021-05-05T22:37:06+00:00</updated>
<author>
<name>Mike Taves</name>
<email>mwtoews@gmail.com</email>
</author>
<published>2021-05-05T22:37:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=22654ce7c0acaab875c9427592a42093ac75e8cd'/>
<id>22654ce7c0acaab875c9427592a42093ac75e8cd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ConcatenatedOperation::fixStepsDirection(): fix potential nullptr dereference</title>
<updated>2021-04-23T08:10:38+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-04-22T20:51:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=ae168e009b237d994bc5f406bdc2f0608330c3a9'/>
<id>ae168e009b237d994bc5f406bdc2f0608330c3a9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2625 from rouault/epsg_10_017</title>
<updated>2021-04-01T19:12:05+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-04-01T19:11:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=f1635cec8db57a3d3aeead8750e01097048be121'/>
<id>f1635cec8db57a3d3aeead8750e01097048be121</id>
<content type='text'>
Database: update to EPSG 10.017</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Database: update to EPSG 10.017</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2611 from rouault/fix_2610</title>
<updated>2021-03-27T18:51:46+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-03-27T18:50:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=08c522c210af1d6cb10e9a36aa274bd5d3a00e21'/>
<id>08c522c210af1d6cb10e9a36aa274bd5d3a00e21</id>
<content type='text'>
Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610)</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2594 from rouault/fix_of_fix_2588</title>
<updated>2021-03-20T23:23:39+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-03-20T23:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=b14fba985726c097a6105ab447f2bc126c06b082'/>
<id>b14fba985726c097a6105ab447f2bc126c06b082</id>
<content type='text'>
createOperations(): fix regression for the fix of #2588</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
createOperations(): fix regression for the fix of #2588</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2592 from rouault/fix_2588</title>
<updated>2021-03-20T11:03:16+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-03-20T11:02:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=7f0d6a0839efc09849235c24f2010baa46d9accf'/>
<id>7f0d6a0839efc09849235c24f2010baa46d9accf</id>
<content type='text'>
createOperations(): fix Compound to Geog3D CRS computations in the ca…</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
createOperations(): fix Compound to Geog3D CRS computations in the ca…</pre>
</div>
</content>
</entry>
<entry>
<title>Fix gcc 11 -Wnonnull warnings</title>
<updated>2021-03-06T21:40:46+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-03-06T21:21:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=4075266be0c074077847e8dfd3de96decfdfae14'/>
<id>4075266be0c074077847e8dfd3de96decfdfae14</id>
<content type='text'>
```
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp: In function 'osgeo::proj::operation::TransformationNNPtr osgeo::proj::operation::createBallparkGeographicOffset(const CRSNNPtr&amp;, const CRSNNPtr&amp;, const DatabaseContextPtr&amp;)':
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1860:36: warning: 'this' pointer is null [-Wnonnull]
 1860 |                 -&gt;coordinateSystem()
      |                                    ^
In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35:
/proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr&amp; osgeo::proj::crs::SingleCRS::coordinateSystem() const'
  196 |     PROJ_DLL const cs::CoordinateSystemNNPtr &amp;coordinateSystem() PROJ_PURE_DECL;
      |                                               ^~~~~~~~~~~~~~~~
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1864:36: warning: 'this' pointer is null [-Wnonnull]
 1864 |                 -&gt;coordinateSystem()
      |                                    ^
In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35:
/proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr&amp; osgeo::proj::crs::SingleCRS::coordinateSystem() const'
  196 |     PROJ_DLL const cs::CoordinateSystemNNPtr &amp;coordinateSystem() PROJ_PURE_DECL;
      |                                               ^~~~~~~~~~~~~~~~
/proj-8.0.0/src/iso19111/factory.cpp: In member function 'std::vector&lt;dropbox::oxygen::nn&lt;std::shared_ptr&lt;osgeo::proj::operation::CoordinateOperation&gt; &gt; &gt; osgeo::proj::io::AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates(const CRSNNPtr&amp;, const string&amp;, const string&amp;, const CRSNNPtr&amp;, const string&amp;, const string&amp;, bool, bool, bool, bool, const std::vector&lt;std::__cxx11::basic_string&lt;char&gt; &gt;&amp;, const ExtentPtr&amp;, const ExtentPtr&amp;) const':
/proj-8.0.0/src/iso19111/factory.cpp:4724:66: warning: 'this' pointer is null [-Wnonnull]
 4724 |         dynamic_cast&lt;crs::GeodeticCRS *&gt;(sourceCRS.get())-&gt;datum();
      |                                                                  ^
In file included from /proj-8.0.0/src/iso19111/factory.cpp:36:
/proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr&amp; osgeo::proj::crs::GeodeticCRS::datum() const'
  254 |     PROJ_DLL const datum::GeodeticReferenceFramePtr &amp;datum() PROJ_PURE_DECL;
      |                                                      ^~~~~
/proj-8.0.0/src/iso19111/factory.cpp:4726:66: warning: 'this' pointer is null [-Wnonnull]
 4726 |         dynamic_cast&lt;crs::GeodeticCRS *&gt;(targetCRS.get())-&gt;datum();
      |                                                                  ^
In file included from /proj-8.0.0/src/iso19111/factory.cpp:36:
/proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr&amp; osgeo::proj::crs::GeodeticCRS::datum() const'
  254 |     PROJ_DLL const datum::GeodeticReferenceFramePtr &amp;datum() PROJ_PURE_DECL;
      |                                                      ^~~~~
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
```
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp: In function 'osgeo::proj::operation::TransformationNNPtr osgeo::proj::operation::createBallparkGeographicOffset(const CRSNNPtr&amp;, const CRSNNPtr&amp;, const DatabaseContextPtr&amp;)':
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1860:36: warning: 'this' pointer is null [-Wnonnull]
 1860 |                 -&gt;coordinateSystem()
      |                                    ^
In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35:
/proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr&amp; osgeo::proj::crs::SingleCRS::coordinateSystem() const'
  196 |     PROJ_DLL const cs::CoordinateSystemNNPtr &amp;coordinateSystem() PROJ_PURE_DECL;
      |                                               ^~~~~~~~~~~~~~~~
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1864:36: warning: 'this' pointer is null [-Wnonnull]
 1864 |                 -&gt;coordinateSystem()
      |                                    ^
In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35:
/proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr&amp; osgeo::proj::crs::SingleCRS::coordinateSystem() const'
  196 |     PROJ_DLL const cs::CoordinateSystemNNPtr &amp;coordinateSystem() PROJ_PURE_DECL;
      |                                               ^~~~~~~~~~~~~~~~
/proj-8.0.0/src/iso19111/factory.cpp: In member function 'std::vector&lt;dropbox::oxygen::nn&lt;std::shared_ptr&lt;osgeo::proj::operation::CoordinateOperation&gt; &gt; &gt; osgeo::proj::io::AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates(const CRSNNPtr&amp;, const string&amp;, const string&amp;, const CRSNNPtr&amp;, const string&amp;, const string&amp;, bool, bool, bool, bool, const std::vector&lt;std::__cxx11::basic_string&lt;char&gt; &gt;&amp;, const ExtentPtr&amp;, const ExtentPtr&amp;) const':
/proj-8.0.0/src/iso19111/factory.cpp:4724:66: warning: 'this' pointer is null [-Wnonnull]
 4724 |         dynamic_cast&lt;crs::GeodeticCRS *&gt;(sourceCRS.get())-&gt;datum();
      |                                                                  ^
In file included from /proj-8.0.0/src/iso19111/factory.cpp:36:
/proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr&amp; osgeo::proj::crs::GeodeticCRS::datum() const'
  254 |     PROJ_DLL const datum::GeodeticReferenceFramePtr &amp;datum() PROJ_PURE_DECL;
      |                                                      ^~~~~
/proj-8.0.0/src/iso19111/factory.cpp:4726:66: warning: 'this' pointer is null [-Wnonnull]
 4726 |         dynamic_cast&lt;crs::GeodeticCRS *&gt;(targetCRS.get())-&gt;datum();
      |                                                                  ^
In file included from /proj-8.0.0/src/iso19111/factory.cpp:36:
/proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr&amp; osgeo::proj::crs::GeodeticCRS::datum() const'
  254 |     PROJ_DLL const datum::GeodeticReferenceFramePtr &amp;datum() PROJ_PURE_DECL;
      |                                                      ^~~~~
```
</pre>
</div>
</content>
</entry>
<entry>
<title>createOperations(): fix incorrect height transformation between 3D promoted RGF93 and CH1903+ (fixes #2541)</title>
<updated>2021-03-05T20:32:09+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-03-05T16:46:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=339b71fa32cce2b9633e6abbb729a942f7f28f70'/>
<id>339b71fa32cce2b9633e6abbb729a942f7f28f70</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Reformat code with clang-format-10 from ubuntu 20.04</title>
<updated>2021-03-03T17:34:50+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-03-03T17:34:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=d5e07c53993d73cdc85c6cbe48694aa9cc3872f4'/>
<id>d5e07c53993d73cdc85c6cbe48694aa9cc3872f4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow a BoundCRS to use a PROJ string transformation</title>
<updated>2021-02-10T14:48:29+00:00</updated>
<author>
<name>Even Rouault</name>
<email>even.rouault@spatialys.com</email>
</author>
<published>2021-02-10T14:46:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.otimperi.dev/PROJ/commit/?id=4b44a55f6f2e60230e56f5431120dd3c3e07603f'/>
<id>4b44a55f6f2e60230e56f5431120dd3c3e07603f</id>
<content type='text'>
Related to https://lists.osgeo.org/pipermail/proj/2021-February/010040.html

Given test.wkt with
```
BOUNDCRS[
    SOURCECRS[
        GEOGCRS["unknown",
            DATUM["Unknown based on GRS80 ellipsoid",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",7019]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8901]],
            CS[ellipsoidal,2],
                AXIS["longitude",east,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433,
                        ID["EPSG",9122]]],
                AXIS["latitude",north,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433,
                        ID["EPSG",9122]]]]],
    TARGETCRS[
        GEOGCRS["WGS 84",
            DATUM["World Geodetic System 1984",
                ELLIPSOID["WGS 84",6378137,298.257223563,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,2],
                AXIS["latitude",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["longitude",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
            ID["EPSG",4326]]],
    ABRIDGEDTRANSFORMATION["Transformation from unknown to WGS84",
        METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=cart +ellps=GRS80 +step +proj=helmert +convention=coordinate_frame +exact +step +inv +proj=cart +ellps=WGS84 +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"]]]
```

``projinfo -s @test.wkt -t "WGS 84" -o PROJ -q``

outputs:
```
+proj=pipeline
  +step +proj=unitconvert +xy_in=deg +xy_out=rad
  +step +proj=axisswap +order=2,1
  +step +proj=cart +ellps=GRS80
  +step +proj=helmert +convention=coordinate_frame +exact
  +step +inv +proj=cart +ellps=WGS84
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=rad +xy_out=deg
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Related to https://lists.osgeo.org/pipermail/proj/2021-February/010040.html

Given test.wkt with
```
BOUNDCRS[
    SOURCECRS[
        GEOGCRS["unknown",
            DATUM["Unknown based on GRS80 ellipsoid",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",7019]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8901]],
            CS[ellipsoidal,2],
                AXIS["longitude",east,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433,
                        ID["EPSG",9122]]],
                AXIS["latitude",north,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433,
                        ID["EPSG",9122]]]]],
    TARGETCRS[
        GEOGCRS["WGS 84",
            DATUM["World Geodetic System 1984",
                ELLIPSOID["WGS 84",6378137,298.257223563,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,2],
                AXIS["latitude",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["longitude",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
            ID["EPSG",4326]]],
    ABRIDGEDTRANSFORMATION["Transformation from unknown to WGS84",
        METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=cart +ellps=GRS80 +step +proj=helmert +convention=coordinate_frame +exact +step +inv +proj=cart +ellps=WGS84 +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"]]]
```

``projinfo -s @test.wkt -t "WGS 84" -o PROJ -q``

outputs:
```
+proj=pipeline
  +step +proj=unitconvert +xy_in=deg +xy_out=rad
  +step +proj=axisswap +order=2,1
  +step +proj=cart +ellps=GRS80
  +step +proj=helmert +convention=coordinate_frame +exact
  +step +inv +proj=cart +ellps=WGS84
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=rad +xy_out=deg
```
</pre>
</div>
</content>
</entry>
</feed>
