sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1753380 - in /sis/ip-review: ./ rev/09214/ rev/10796/ rev/11373/ rev/20874/
Date Tue, 19 Jul 2016 12:52:24 GMT
Author: desruisseaux
Date: Tue Jul 19 12:52:24 2016
New Revision: 1753380

URL: http://svn.apache.org/viewvc?rev=1753380&view=rev
Log:
Add IP review for map projection. The AlbersEqualArea one will be need to be rewritten from scratch,
but this rewritting has already been partially done by implementation of CylindricalEqualArea parent class.

Added:
    sis/ip-review/AlbersEqualArea.xhtml   (with props)
    sis/ip-review/LambertAzimuthalEqualArea.xhtml   (with props)
    sis/ip-review/rev/09214/
    sis/ip-review/rev/09214/AlbersEqualArea.xhtml   (with props)
    sis/ip-review/rev/09214/HEADER.html   (with props)
    sis/ip-review/rev/10796/AlbersEqualArea.xhtml   (with props)
    sis/ip-review/rev/11373/
    sis/ip-review/rev/11373/AlbersEqualArea.xhtml   (with props)
    sis/ip-review/rev/11373/HEADER.html   (with props)
    sis/ip-review/rev/20874/AlbersEqualArea.xhtml   (with props)

Added: sis/ip-review/AlbersEqualArea.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/AlbersEqualArea.xhtml?rev=1753380&view=auto
==============================================================================
--- sis/ip-review/AlbersEqualArea.xhtml (added)
+++ sis/ip-review/AlbersEqualArea.xhtml Tue Jul 19 12:52:24 2016
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>AlbersEqualArea history</title>
+    <style type="text/css" media="all">
+      @import url("./reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>AlbersEqualArea history</h1>
+  <p>Click on the commit message for inspecting the <code>diff</code> and how the code has been rewritten.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn log -r31996:1 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/AlbersEqualArea.java</code></blockquote>
+<table>
+  <tr>
+    <th>Rev.</th>
+    <th>Date</th>
+    <th>Author</th>
+    <th class="last">Message</th>
+  </tr>
+<tr><td class="rev">30641</td><td>2008-06-12</td><td>acuster</td><td>Copyright headers: lib/referencing, this time with feeling (and the el in Toolkit)</td></tr>
+<tr><td class="rev">30521</td><td>2008-06-05</td><td>acuster</td><td>Copyright: Update referencing headers</td></tr>
+<tr><td class="rev">30514</td><td>2008-06-04</td><td>acuster</td><td>Header cleanup 3 -- prep for Cedric's script --- modules/library: fix referencing and coverage</td></tr>
+<tr><td class="rev">30258</td><td>2008-05-08</td><td>acuster</td><td>Reshuffle the top level repo: drop uDig, move up trunk, tags, and branches.</td></tr>
+<tr><td class="rev">30257</td><td>2008-05-08</td><td>acuster</td><td>Move trunk/gt/ directory contents up to trunk/ and drop gt</td></tr>
+<tr><td class="rev">29723</td><td>2008-03-27</td><td>desruisseaux</td><td>Added serialVersionIUD in MapProjection with values computed from the 2.4.1 release for cross-version compatibility. NewZealandMapGrid now creates Complex object in method body on the assumption that modern compilers can allocate on stack. Provides a way to reinitialize the warnings for every MapProjections in a JVM. Formatting.</td></tr>
+<tr><td class="rev">29711</td><td>2008-03-25</td><td>desruisseaux</td><td>In MapProjection, provide more information in the logged warning (especially the projection name) in order to compensate for the loss of stack trace. In subclasses, replaced "Math." occurences by a static import for readability (there is a lot of sin(x), cos(x), sqrt(x) etc. calls in those classes). Also replaced sqrt(x*x + y*y) by hypot(x,y) and (exp(x)-exp(-x))/2 by sinh(x) which are new functions in Java 5 (hopefully more accurate and/or faster). Applied some Java 5 language syntax (generic types and @Override annotation).</td></tr>
+<tr><td class="rev">28922</td><td>2008-01-24</td><td>acuster</td><td>Bump the (at)since version to 2.5 since WKTParser was cut from 2.4</td></tr>
+<tr><td class="rev">28540</td><td>2007-12-29</td><td>acuster</td><td>Hide buttons which are not yet used</td></tr>
+<tr><td class="rev">24384</td><td>2007-02-14</td><td>desruisseaux</td><td>GEOT-1160: First working implementation of AbstractAuthorityFactory.find(IdentifiedObject). This includes a package-privated AuthorityFactoryProxy class, together with many fix in the code base in order to get CRS.equalsIgnoreCase to work in the ProjectedCRS case.</td></tr>
+<tr><td class="rev">24333</td><td>2007-02-10</td><td>desruisseaux</td><td>GEOT-786: Rearrange projection constructors and providers, especially in orthographic and stereographic projection.</td></tr>
+<tr><td class="rev">22474</td><td>2006-10-31</td><td>desruisseaux</td><td>Added a test script for Lambert Azimuthal Equal Area (actually Rueben's work). Bug fixes and minor cleaning in the projection package.</td></tr>
+<tr><td class="rev">22327</td><td>2006-10-23</td><td>desruisseaux</td><td>GEOT-982: regroup 'module', 'plugin', 'ext' and 'unsupported' in a common directory.</td></tr>
+<tr><td class="rev">22315</td><td>2006-10-22</td><td>desruisseaux</td><td>Reorganisation of directory tree structure (GEOT-982) phase 1: moved 'src' to 'src/main/java'.</td></tr>
+<tr><td class="rev">22295</td><td>2006-10-20</td><td>desruisseaux</td><td>Added Lambert Azimuthal Equal Area projection. Various minor cleaning in other projection related code.</td></tr>
+<tr><td class="rev">20874</td><td>2006-08-07</td><td class="unav">jgarnett</td><td><a href="rev/20874/AlbersEqualArea.xhtml">ip review</a></td></tr>
+<tr><td class="rev">20539</td><td>2006-07-14</td><td>desruisseaux</td><td>Relicensed the Proj.4 derived work under LGPL as permitted by Frank Warmerdam on geotools-devel mailing list on June 21, 2006.</td></tr>
+<tr><td class="rev">18048</td><td>2006-02-16</td><td>desruisseaux</td><td>Replaced tabulations by spaces.</td></tr>
+<tr><td class="rev">17672</td><td>2006-01-19</td><td>desruisseaux</td><td>Added @source tag.</td></tr>
+<tr><td class="rev">17660</td><td>2006-01-18</td><td>desruisseaux</td><td>Fixed SVN attributes, including the addition of URL attribute.</td></tr>
+<tr><td class="rev">17241</td><td>2005-12-09</td><td>desruisseaux</td><td>Initial round of MapProjection constructors simplification (GEOT-786)</td></tr>
+<tr><td class="rev">17229</td><td>2005-12-08</td><td>desruisseaux</td><td>Refactored New Zealand Map Grid (NZMG) projection as a subclass of MapProjection.</td></tr>
+<tr><td class="rev">16983</td><td>2005-11-25</td><td>desruisseaux</td><td>Replaced references to static fields and methods of CitationImpl.* by Citations.*</td></tr>
+<tr><td class="rev">16205</td><td>2005-10-11</td><td>desruisseaux</td><td>Cleaned javadoc warning. More work done on Maven 2 configuration (GEOT-691)</td></tr>
+<tr><td class="rev">15350</td><td>2005-08-16</td><td>desruisseaux</td><td>Merged the 'split-main' branch to trunk (GEOT-662)</td></tr>
+<tr><td class="rev">15256</td><td>2005-08-09</td><td>desruisseaux</td><td>Extraction of referencing module from main</td></tr>
+<tr><td class="rev">15255</td><td>2005-08-09</td><td>desruisseaux</td><td>Prepare branch for splitting main</td></tr>
+<tr><td class="rev">14834</td><td>2005-07-20</td><td>desruisseaux</td><td>Reorganized I18N resources</td></tr>
+<tr><td class="rev">14581</td><td>2005-06-22</td><td>desruisseaux</td><td>Implemented South-Orientated transverse mercator / more GEOT-589 work</td></tr>
+<tr><td class="rev">13925</td><td>2005-05-30</td><td>desruisseaux</td><td>Added @since javadoc tag</td></tr>
+<tr><td class="rev">13922</td><td>2005-05-29</td><td>desruisseaux</td><td>Renaming of remainding GeoAPI implementations. Renaming is now finished.</td></tr>
+<tr><td class="rev">13853</td><td>2005-05-26</td><td>desruisseaux</td><td>Bug fix: arrays must be NamedIndentifier[], because it implements two interfaces</td></tr>
+<tr><td class="rev">13836</td><td>2005-05-26</td><td>desruisseaux</td><td>Added 'Default' suffix to some CRS implementations: partial work</td></tr>
+<tr><td class="rev">13773</td><td>2005-05-24</td><td>desruisseaux</td><td>Removed old metadata implementations (they are now renamed with 'Impl' suffix) / Use OGC citation instead of OPEN_GIS</td></tr>
+<tr><td class="rev">13752</td><td>2005-05-23</td><td>desruisseaux</td><td>Added the 'Impl' suffix to direct implementations of all metadata interfaces; deprecated the old implementations (not yet deleted).</td></tr>
+<tr><td class="rev">12020</td><td>2005-03-11</td><td>desruisseaux</td><td>First working version of Resampler2D port (side effect: GEOT-390 fix)</td></tr>
+<tr><td class="rev">11373</td><td>2005-02-14</td><td class="unav">rschulz</td><td><a href="rev/11373/AlbersEqualArea.xhtml">small change to how we deal with the case of rho &lt; 0</a></td></tr>
+<tr><td class="rev">11101</td><td>2005-02-04</td><td>desruisseaux</td><td>Renamed MapProjection.Provider as AbstractProvider</td></tr>
+<tr><td class="rev">11074</td><td>2005-02-03</td><td>desruisseaux</td><td>Revisited CRSFactory.createProjectedCRS(...) API</td></tr>
+<tr><td class="rev">11001</td><td>2005-02-02</td><td>desruisseaux</td><td>Fixed wrong encoding in main/src</td></tr>
+<tr><td class="rev">10796</td><td>2005-01-28</td><td class="unav">dzwiers</td><td><a href="rev/10796/AlbersEqualArea.xhtml">imports cleaned</a></td></tr>
+<tr><td class="rev">9356</td><td>2004-11-30</td><td class="unav">rschulz</td><td><a href="rev/10796/AlbersEqualArea.xhtml">made standard_parallel_2 an optional parameter</a></td></tr>
+<tr><td class="rev">9266</td><td>2004-11-23</td><td>desruisseaux</td><td>Last WKT tuning; parsing and formatting should now be functional</td></tr>
+<tr><td class="rev">9220</td><td>2004-11-21</td><td>desruisseaux</td><td>WKT bug fixes</td></tr>
+<tr><td class="rev">9214</td><td>2004-11-20</td><td class="unav">rschulz</td><td><a href="rev/09214/AlbersEqualArea.xhtml">ported to geoapi referencing api</a></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/LambertAzimuthalEqualArea.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/LambertAzimuthalEqualArea.xhtml?rev=1753380&view=auto
==============================================================================
--- sis/ip-review/LambertAzimuthalEqualArea.xhtml (added)
+++ sis/ip-review/LambertAzimuthalEqualArea.xhtml Tue Jul 19 12:52:24 2016
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>LambertAzimuthalEqualArea history</title>
+    <style type="text/css" media="all">
+      @import url("./reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>LambertAzimuthalEqualArea history</h1>
+  <p>Click on the commit message for inspecting the <code>diff</code> and how the code has been rewritten.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn log -r31996:1 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/LambertAzimuthalEqualArea.java</code></blockquote>
+<table>
+  <tr>
+    <th>Rev.</th>
+    <th>Date</th>
+    <th>Author</th>
+    <th class="last">Message</th>
+  </tr>
+<tr><td class="rev">30760</td><td>2008-06-18</td><td>desruisseaux</td><td>Upgrated from JSR-108 to JSR-275 (GEOT-1266). Some opportunist javadoc fixes and @Override annotations in the process.</td></tr>
+<tr><td class="rev">30641</td><td>2008-06-12</td><td>acuster</td><td>Copyright headers: lib/referencing, this time with feeling (and the el in Toolkit)</td></tr>
+<tr><td class="rev">30521</td><td>2008-06-05</td><td>acuster</td><td>Copyright: Update referencing headers</td></tr>
+<tr><td class="rev">30514</td><td>2008-06-04</td><td>acuster</td><td>Header cleanup 3 -- prep for Cedric's script --- modules/library: fix referencing and coverage</td></tr>
+<tr><td class="rev">30395</td><td>2008-05-23</td><td>desruisseaux</td><td>Added aliases for "Lambert Azimuthal Equal Area (Spherical)" for usage with EPSG:3408.</td></tr>
+<tr><td class="rev">30258</td><td>2008-05-08</td><td>acuster</td><td>Reshuffle the top level repo: drop uDig, move up trunk, tags, and branches.</td></tr>
+<tr><td class="rev">30257</td><td>2008-05-08</td><td>acuster</td><td>Move trunk/gt/ directory contents up to trunk/ and drop gt</td></tr>
+<tr><td class="rev">29723</td><td>2008-03-27</td><td>desruisseaux</td><td>Added serialVersionIUD in MapProjection with values computed from the 2.4.1 release for cross-version compatibility. NewZealandMapGrid now creates Complex object in method body on the assumption that modern compilers can allocate on stack. Provides a way to reinitialize the warnings for every MapProjections in a JVM. Formatting.</td></tr>
+<tr><td class="rev">29711</td><td>2008-03-25</td><td>desruisseaux</td><td>In MapProjection, provide more information in the logged warning (especially the projection name) in order to compensate for the loss of stack trace. In subclasses, replaced "Math." occurences by a static import for readability (there is a lot of sin(x), cos(x), sqrt(x) etc. calls in those classes). Also replaced sqrt(x*x + y*y) by hypot(x,y) and (exp(x)-exp(-x))/2 by sinh(x) which are new functions in Java 5 (hopefully more accurate and/or faster). Applied some Java 5 language syntax (generic types and @Override annotation).</td></tr>
+<tr><td class="rev">28922</td><td>2008-01-24</td><td>acuster</td><td>Bump the (at)since version to 2.5 since WKTParser was cut from 2.4</td></tr>
+<tr><td class="rev">28540</td><td>2007-12-29</td><td>acuster</td><td>Hide buttons which are not yet used</td></tr>
+<tr><td class="rev">27983</td><td>2007-11-22</td><td>desruisseaux</td><td>Use more Java 5 constructs for safety.</td></tr>
+<tr><td class="rev">27575</td><td>2007-10-22</td><td>desruisseaux</td><td>Converted Java source files from ISO-LATIN-1 encoding to UTF-8 (GEOT-1516).</td></tr>
+<tr><td class="rev">24333</td><td>2007-02-10</td><td>desruisseaux</td><td>GEOT-786: Rearrange projection constructors and providers, especially in orthographic and stereographic projection.</td></tr>
+<tr><td class="rev">22474</td><td>2006-10-31</td><td>desruisseaux</td><td>Added a test script for Lambert Azimuthal Equal Area (actually Rueben's work). Bug fixes and minor cleaning in the projection package.</td></tr>
+<tr><td class="rev">22327</td><td>2006-10-23</td><td>desruisseaux</td><td>GEOT-982: regroup 'module', 'plugin', 'ext' and 'unsupported' in a common directory.</td></tr>
+<tr><td class="rev">22315</td><td>2006-10-22</td><td>desruisseaux</td><td>Reorganisation of directory tree structure (GEOT-982) phase 1: moved 'src' to 'src/main/java'.</td></tr>
+<tr><td class="rev">22295</td><td>2006-10-20</td><td>desruisseaux</td><td>Added Lambert Azimuthal Equal Area projection. Various minor cleaning in other projection related code.</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/LambertAzimuthalEqualArea.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/LambertAzimuthalEqualArea.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/09214/AlbersEqualArea.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/09214/AlbersEqualArea.xhtml?rev=1753380&view=auto
==============================================================================
--- sis/ip-review/rev/09214/AlbersEqualArea.xhtml (added)
+++ sis/ip-review/rev/09214/AlbersEqualArea.xhtml Tue Jul 19 12:52:24 2016
@@ -0,0 +1,432 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>AlbersEqualArea changes for revisions 9213:9214</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>AlbersEqualArea changes for revisions 9213:9214</h1>
+
+<p>This projection is rewritten from scratch using the formulas published in EPSG guidance notes.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r9213:9214 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/AlbersEqualArea.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 9214</th></tr>
+<tr>
+<td><pre><span class="add">/*</span>
+<span class="add"> * Geotools - OpenSource mapping toolkit</span>
+<span class="add"> * (C) 2003, 2004 Geotools Project Managment Committee (PMC)</span>
+<span class="add"> *</span>
+<span class="add"> *    This library is free software; you can redistribute it and/or</span>
+<span class="add"> *    modify it under the terms of the GNU Lesser General Public</span>
+<span class="add"> *    License as published by the Free Software Foundation; either</span>
+<span class="add"> *    version 2.1 of the License, or (at your option) any later version.</span>
+<span class="add"> *</span>
+<span class="add"> *    This library is distributed in the hope that it will be useful,</span>
+<span class="add"> *    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<span class="add"> *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
+<span class="add"> *    Lesser General Public License for more details.</span>
+<span class="add"> *</span>
+<span class="add"> *    You should have received a copy of the GNU Lesser General Public</span>
+<span class="add"> *    License along with this library; if not, write to the Free Software</span>
+<span class="add"> *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
+<span class="add"> *</span>
+<span class="add"> *</span>
+<span class="add"> *    This package contains formulas from the PROJ package of USGS.</span>
+<span class="add"> *    USGS's work is fully acknowledged here.</span>
+<span class="add"> */</span>
+<span class="add">/*</span>
+<span class="add"> *****************************************************************************</span>
+<span class="add"> * Some parts Copyright (c) 1995, Gerald Evenden</span>
+<span class="add"> *</span>
+<span class="add"> * Permission is hereby granted, free of charge, to any person obtaining a</span>
+<span class="add"> * copy of this software and associated documentation files (the "Software"),</span>
+<span class="add"> * to deal in the Software without restriction, including without limitation</span>
+<span class="add"> * the rights to use, copy, modify, merge, publish, distribute, sublicense,</span>
+<span class="add"> * and/or sell copies of the Software, and to permit persons to whom the</span>
+<span class="add"> * Software is furnished to do so, subject to the following conditions:</span>
+<span class="add"> *</span>
+<span class="add"> * The above copyright notice and this permission notice shall be included</span>
+<span class="add"> * in all copies or substantial portions of the Software.</span>
+<span class="add"> *</span>
+<span class="add"> * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS</span>
+<span class="add"> * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span>
+<span class="add"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL</span>
+<span class="add"> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span>
+<span class="add"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</span>
+<span class="add"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</span>
+<span class="add"> * DEALINGS IN THE SOFTWARE.</span>
+<span class="add"> ******************************************************************************</span>
+<span class="add"> */</span>
+<span class="add">package org.geotools.referencing.operation.projection;</span>
+<span class="add"></span>
+<span class="add">// J2SE dependencies and extensions</span>
+<span class="add">import java.util.Collection;</span>
+<span class="add">import java.awt.geom.Point2D;</span>
+<span class="add">import javax.units.NonSI;</span>
+<span class="add"></span>
+<span class="add">// OpenGIS dependencies</span>
+<span class="add">import org.opengis.parameter.ParameterDescriptor;</span>
+<span class="add">import org.opengis.parameter.ParameterValueGroup;</span>
+<span class="add">import org.opengis.parameter.ParameterDescriptorGroup;</span>
+<span class="add">import org.opengis.parameter.ParameterNotFoundException;</span>
+<span class="add">import org.opengis.referencing.operation.MathTransform;</span>
+<span class="add"></span>
+<span class="add">// Geotools dependencies</span>
+<span class="add">import org.geotools.measure.Latitude;</span>
+<span class="add">import org.geotools.referencing.Identifier;</span>
+<span class="add">import org.geotools.metadata.citation.Citation;</span>
+<span class="add">import org.geotools.resources.cts.ResourceKeys;</span>
+<span class="add">import org.geotools.resources.cts.Resources;</span>
+<span class="add"></span>
+<span class="add">/**</span>
+<span class="add"> * Albers Equal Area Projection (EPSG code 9822). This is a conic projection</span>
+<span class="add"> * with parallels being unequally spaced arcs of concentric circles, more</span>
+<span class="add"> * closely spaced at north and south edges of the map. Merideans</span>
+<span class="add"> * are equally spaced radii of the same circles and intersect parallels at right</span>
+<span class="add"> * angles. As the name implies, this projection minimizes distortion in areas.</span>
+<span class="add"> * &lt;br&gt;&lt;br&gt;</span>
+<span class="add"> *</span>
+<span class="add"> * NOTE: formulae used below are from a port, to java, of the</span>
+<span class="add"> *       'proj4' package of the USGS survey. USGS work is acknowledged here.</span>
+<span class="add"> * &lt;br&gt;&lt;br&gt;</span>
+<span class="add"> *</span>
+<span class="add"> * &lt;strong&gt;References:&lt;/strong&gt;&lt;ul&gt;</span>
+<span class="add"> *   &lt;li&gt; Proj-4.4.7 available at &lt;A HREF="http://www.remotesensing.org/proj"&gt;www.remotesensing.org/proj&lt;/A&gt;&lt;br&gt;</span>
+<span class="add"> *        Relevent files are: PJ_aea.c, pj_fwd.c and pj_inv.c &lt;/li&gt;</span>
+<span class="add"> *   &lt;li&gt; John P. Snyder (Map Projections - A Working Manual,</span>
+<span class="add"> *        U.S. Geological Survey Professional Paper 1395, 1987)&lt;/li&gt;</span>
+<span class="add"> *   &lt;li&gt; "Coordinate Conversions and Transformations including Formulas",</span>
+<span class="add"> *        EPSG Guidence Note Number 7, Version 19.&lt;/li&gt;</span>
+<span class="add"> * &lt;/ul&gt;</span>
+<span class="add"> *</span>
+<span class="add"> * @see &lt;A HREF="http://mathworld.wolfram.com/AlbersEqual-AreaConicProjection.html/"&gt;Albers Equal-Area Conic Projection on MathWorld&lt;/A&gt;</span>
+<span class="add"> * @see &lt;A HREF="http://www.remotesensing.org/geotiff/proj_list/albers_equal_area_conic.html"&gt; "Albers_Conic_Equal_Area" on www.remotesensing.org&lt;/A&gt;</span>
+<span class="add"> * @see &lt;A HREF="http://srmwww.gov.bc.ca/gis/bceprojection.html"&gt;British Columbia Albers Standard Projection&lt;/A&gt;</span>
+<span class="add"> *</span>
+<span class="add"> * @version $Id$</span>
+<span class="add"> * @author Rueben Schulz</span>
+<span class="add"> */</span>
+<span class="add">public class AlbersEqualArea extends MapProjection {</span>
+<span class="add">    /**</span>
+<span class="add">     * Constants used by the spherical and elliptical Albers projection.</span>
+<span class="add">     */</span>
+<span class="add">    private final double n, c, rho0;</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * An error condition indicating itteration will not converge for the</span>
+<span class="add">     * inverse ellipse. See Snyder (14-20)</span>
+<span class="add">     */</span>
+<span class="add">    private final double ec;</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * Standards parallels in radians, for {@link #getParameterValues} implementation.</span>
+<span class="add">     */</span>
+<span class="add">    private final double phi1, phi2;</span>
+<span class="add"></span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * The {@link MathTransformProvider} for a {@link AlbersEqualArea} projection.</span>
+<span class="add">     *</span>
+<span class="add">     * @see MathTransformFactory</span>
+<span class="add">     *</span>
+<span class="add">     * @version $Id$</span>
+<span class="add">     * @author Rueben Schulz</span>
+<span class="add">     */</span>
+<span class="add">    public static final class Provider</span>
+<span class="add">            extends org.geotools.referencing.operation.projection.MapProjection.Provider {</span>
+<span class="add"></span>
+<span class="add">        /**</span>
+<span class="add">         * The operation parameter descriptor for the {@link #phi1 standard parallel 1}</span>
+<span class="add">         * parameter value. Valid values range is from -90 to 90°. Default value is 0.</span>
+<span class="add">         */</span>
+<span class="add">        public static final ParameterDescriptor STANDARD_PARALLEL_1 = createDescriptor(</span>
+<span class="add">                new Identifier[] {</span>
+<span class="add">                    new Identifier(Citation.OPEN_GIS, "standard_parallel_1"),</span>
+<span class="add">                    new Identifier(Citation.EPSG,     "Latitude of 1st standard parallel"),</span>
+<span class="add">                    new Identifier(Citation.GEOTIFF,  "StdParallel1")</span>
+<span class="add">                },</span>
+<span class="add">                0, -90, 90, NonSI.DEGREE_ANGLE);</span>
+<span class="add"></span>
+<span class="add">        /**</span>
+<span class="add">         * The operation parameter descriptor for the {@link #phi2 standard parallel 2}</span>
+<span class="add">         * parameter value. Valid values range is from -90 to 90°. Default value is 0.</span>
+<span class="add">         */</span>
+<span class="add">        public static final ParameterDescriptor STANDARD_PARALLEL_2 = createDescriptor(</span>
+<span class="add">                new Identifier[] {</span>
+<span class="add">                    new Identifier(Citation.OPEN_GIS, "standard_parallel_2"),</span>
+<span class="add">                    new Identifier(Citation.EPSG,     "Latitude of 2nd standard parallel"),</span>
+<span class="add">                    new Identifier(Citation.GEOTIFF,  "StdParallel2")</span>
+<span class="add">                },</span>
+<span class="add">                0, -90, 90, NonSI.DEGREE_ANGLE);</span>
+<span class="add">        /**</span>
+<span class="add">         * The parameters group.</span>
+<span class="add">         */</span>
+<span class="add">        static final ParameterDescriptorGroup PARAMETERS = createDescriptorGroup(new Identifier[] {</span>
+<span class="add">                new Identifier(Citation.OPEN_GIS, "Albers_Conic_Equal_Area"),</span>
+<span class="add">                new Identifier(Citation.EPSG,     "Albers Equal Area"),</span>
+<span class="add">                new Identifier(Citation.EPSG,     "9822"),</span>
+<span class="add">                new Identifier(Citation.GEOTIFF,  "CT_AlbersEqualArea"),</span>
+<span class="add">                new Identifier(Citation.ESRI,     "Albers"),</span>
+<span class="add">                new Identifier(Citation.ESRI,     "Albers Equal Area Conic"),</span>
+<span class="add">                new Identifier(Citation.GEOTOOLS, Resources.formatInternational(</span>
+<span class="add">                                                  ResourceKeys.ALBERS_EQUAL_AREA_PROJECTION))</span>
+<span class="add">            }, new ParameterDescriptor[] {</span>
+<span class="add">                SEMI_MAJOR,          SEMI_MINOR,</span>
+<span class="add">                CENTRAL_MERIDIAN,    LATITUDE_OF_ORIGIN,</span>
+<span class="add">                STANDARD_PARALLEL_1, STANDARD_PARALLEL_2,</span>
+<span class="add">                FALSE_EASTING,       FALSE_NORTHING</span>
+<span class="add">            });</span>
+<span class="add"></span>
+<span class="add">        /**</span>
+<span class="add">         * Construct a new provider.</span>
+<span class="add">         */</span>
+<span class="add">        public Provider() {</span>
+<span class="add">            super(PARAMETERS);</span>
+<span class="add">        }</span>
+<span class="add"></span>
+<span class="add">        /**</span>
+<span class="add">         * Creates a transform from the specified group of parameter values.</span>
+<span class="add">         *</span>
+<span class="add">         * @param  parameters The group of parameter values.</span>
+<span class="add">         * @return The created math transform.</span>
+<span class="add">         * @throws ParameterNotFoundException if a required parameter was not found.</span>
+<span class="add">         */</span>
+<span class="add">        public MathTransform createMathTransform(final ParameterValueGroup parameters)</span>
+<span class="add">                throws ParameterNotFoundException</span>
+<span class="add">        {</span>
+<span class="add">            final Collection descriptors = PARAMETERS.descriptors();</span>
+<span class="add">            return new AlbersEqualArea(parameters, descriptors);</span>
+<span class="add">        }</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * Construct a new map projection from the supplied parameters.</span>
+<span class="add">     *</span>
+<span class="add">     * @param  parameters The parameter values in standard units.</span>
+<span class="add">     * @param  The expected parameter descriptors.</span>
+<span class="add">     * @throws ParameterNotFoundException if a mandatory parameter is missing.</span>
+<span class="add">     *</span>
+<span class="add">     * @task REVISIT: set phi2 = phi1 if no SP2 param is given by user (a 1sp projection)</span>
+<span class="add">     */</span>
+<span class="add">    public AlbersEqualArea(final ParameterValueGroup parameters, final Collection expected) {</span>
+<span class="add">        //Fetch parameters</span>
+<span class="add">        super(parameters, expected);</span>
+<span class="add"></span>
+<span class="add">        phi1 = doubleValue(expected, Provider.STANDARD_PARALLEL_1, parameters);</span>
+<span class="add">        phi2 = doubleValue(expected, Provider.STANDARD_PARALLEL_2, parameters);</span>
+<span class="add"></span>
+<span class="add">    //Compute Constants</span>
+<span class="add">        if (Math.abs(phi1 + phi2) &lt; EPS)</span>
+<span class="add">            throw new IllegalArgumentException(Resources.format(</span>
+<span class="add">                    ResourceKeys.ERROR_ANTIPODE_LATITUDES_$2,</span>
+<span class="add">                    new Latitude(Math.toDegrees(phi1)),</span>
+<span class="add">                    new Latitude(Math.toDegrees(phi2))));</span>
+<span class="add"></span>
+<span class="add">        double  sinphi = Math.sin(phi1);</span>
+<span class="add">        double  cosphi = Math.cos(phi1);</span>
+<span class="add">        double  n      = sinphi;</span>
+<span class="add">        boolean secant = (Math.abs(phi1 - phi2) &gt;= EPS);</span>
+<span class="add">        if (isSpherical) {</span>
+<span class="add">            if (secant) {</span>
+<span class="add">                n = 0.5 * (n + Math.sin(phi2));</span>
+<span class="add">            }</span>
+<span class="add">            c    = cosphi * cosphi + n*2 * sinphi;</span>
+<span class="add">            rho0 = Math.sqrt(c - n*2 * Math.sin(latitudeOfOrigin)) /n;</span>
+<span class="add">            ec   = Double.NaN;</span>
+<span class="add">        } else {</span>
+<span class="add">            double m1 = msfn(sinphi, cosphi);</span>
+<span class="add">            double q1 = qsfn(sinphi);</span>
+<span class="add">            if (secant) { /* secant cone */</span>
+<span class="add">                sinphi    = Math.sin(phi2);</span>
+<span class="add">                cosphi    = Math.cos(phi2);</span>
+<span class="add">                double m2 = msfn(sinphi, cosphi);</span>
+<span class="add">                double q2 = qsfn(sinphi);</span>
+<span class="add">                n = (m1 * m1 - m2 * m2) / (q2 - q1);</span>
+<span class="add">            }</span>
+<span class="add">            c = m1 * m1 + n * q1;</span>
+<span class="add">            rho0 = Math.sqrt(c - n * qsfn(Math.sin(latitudeOfOrigin))) /n;</span>
+<span class="add">            ec = 1.0 - .5 * (1.0-excentricitySquared) *</span>
+<span class="add">                 Math.log((1.0 - excentricity) / (1.0 + excentricity)) / excentricity;</span>
+<span class="add">        }</span>
+<span class="add">        this.n = n;</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * {@inheritDoc}</span>
+<span class="add">     */</span>
+<span class="add">    protected ParameterDescriptorGroup getParameterDescriptors() {</span>
+<span class="add">        return Provider.PARAMETERS;</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * {@inheritDoc}</span>
+<span class="add">     */</span>
+<span class="add">    public ParameterValueGroup getParameterValues() {</span>
+<span class="add">        final ParameterValueGroup values = super.getParameterValues();</span>
+<span class="add">        final Collection expected = getParameterDescriptors().descriptors();</span>
+<span class="add">        set(expected, Provider.STANDARD_PARALLEL_1, values, phi1);</span>
+<span class="add">        set(expected, Provider.STANDARD_PARALLEL_2, values, phi2);</span>
+<span class="add">        return values;</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * Transforms the specified (&lt;var&gt;x&lt;/var&gt;,&lt;var&gt;y&lt;/var&gt;) coordinate (units in radians)</span>
+<span class="add">     * and stores the result in &lt;code&gt;ptDst&lt;/code&gt; (linear distance on a unit sphere).</span>
+<span class="add">     */</span>
+<span class="add">    protected Point2D transformNormalized(double x, double y, Point2D ptDst)</span>
+<span class="add">            throws ProjectionException</span>
+<span class="add">    {</span>
+<span class="add">        x *= n;</span>
+<span class="add">        double rho;</span>
+<span class="add">        if (isSpherical) {</span>
+<span class="add">            rho = c - n*2 * Math.sin(y);</span>
+<span class="add">        } else {</span>
+<span class="add">            rho = c - n * qsfn(Math.sin(y));</span>
+<span class="add">        }</span>
+<span class="add"></span>
+<span class="add">        if (rho &lt; 0.0) {</span>
+<span class="add">            // TODO: fix message (and check when this condition will occur)</span>
+<span class="add">            // this just checks for a tolerence error that may cause rho to be</span>
+<span class="add">            // close to -0.0, may be better to just round up in these cases</span>
+<span class="add">            throw new ProjectionException("Tolerance condition error");</span>
+<span class="add">        }</span>
+<span class="add">        rho = Math.sqrt(rho) / n;</span>
+<span class="add">        y   = rho0 - rho * Math.cos(x);</span>
+<span class="add">        x   =        rho * Math.sin(x);</span>
+<span class="add"></span>
+<span class="add">        if (ptDst != null) {</span>
+<span class="add">            ptDst.setLocation(x,y);</span>
+<span class="add">            return ptDst;</span>
+<span class="add">        }</span>
+<span class="add">        return new Point2D.Double(x,y);</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * Transforms the specified (&lt;var&gt;x&lt;/var&gt;,&lt;var&gt;y&lt;/var&gt;) coordinate</span>
+<span class="add">     * and stores the result in &lt;code&gt;ptDst&lt;/code&gt;.</span>
+<span class="add">     */</span>
+<span class="add">    protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst)</span>
+<span class="add">            throws ProjectionException</span>
+<span class="add">    {</span>
+<span class="add">        y = rho0 - y;</span>
+<span class="add">        double rho = Math.sqrt(x*x + y*y);</span>
+<span class="add">        if (rho &gt; EPS) {</span>
+<span class="add">            if (n &lt; 0.0) {</span>
+<span class="add">                rho = -rho;</span>
+<span class="add">                x   = -x;</span>
+<span class="add">                y   = -y;</span>
+<span class="add">            }</span>
+<span class="add">            x = Math.atan2(x, y) / n;</span>
+<span class="add">            y =  rho*n;</span>
+<span class="add">            if (isSpherical) {</span>
+<span class="add">                y = (c - y * y) / (n*2);</span>
+<span class="add">                if (Math.abs(y) &lt;= 1.0){</span>
+<span class="add">                    y = Math.asin(y);</span>
+<span class="add">                }</span>
+<span class="add">                else {</span>
+<span class="add">                    y = (y &lt; 0.0) ? -Math.PI/2.0 : Math.PI/2.0;</span>
+<span class="add">                }</span>
+<span class="add">            } else {</span>
+<span class="add">                y = (c - y*y) / n;</span>
+<span class="add">                if (Math.abs(ec - Math.abs(y)) &gt; EPS) {</span>
+<span class="add">                    y = phi1(y);</span>
+<span class="add">                } else {</span>
+<span class="add">                    y = (y &lt; 0.0) ? -Math.PI/2.0 : Math.PI/2.0;</span>
+<span class="add">                }</span>
+<span class="add">            }</span>
+<span class="add">        } else {</span>
+<span class="add">            x = 0.0;</span>
+<span class="add">            y = n &gt; 0.0 ? Math.PI/2.0 : - Math.PI/2.0;</span>
+<span class="add">        }</span>
+<span class="add"></span>
+<span class="add">        if (ptDst != null) {</span>
+<span class="add">            ptDst.setLocation(x,y);</span>
+<span class="add">            return ptDst;</span>
+<span class="add">        }</span>
+<span class="add">        return new Point2D.Double(x,y);</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * Iteratively solves equation (3-16) from Snyder.</span>
+<span class="add">     *</span>
+<span class="add">     * @param qs arcsin(q/2), used in the first step of itteration</span>
+<span class="add">     * @return the latitude</span>
+<span class="add">     */</span>
+<span class="add">    private double phi1(double qs) throws ProjectionException {</span>
+<span class="add">        final double tone_es = 1 - excentricitySquared;</span>
+<span class="add">        double phi = Math.asin(0.5 * qs);</span>
+<span class="add">        if (excentricity &lt; EPS) {</span>
+<span class="add">            return phi;</span>
+<span class="add">        }</span>
+<span class="add">        for (int i=0; i&lt;MAX_ITER; i++) {</span>
+<span class="add">            final double sinpi = Math.sin(phi);</span>
+<span class="add">            final double cospi = Math.cos(phi);</span>
+<span class="add">            final double con   = excentricity * sinpi;</span>
+<span class="add">            final double com   = 1.0 - con*con;</span>
+<span class="add">            final double dphi  = 0.5 * com*com / cospi *</span>
+<span class="add">                                 (qs/tone_es - sinpi / com + 0.5/excentricity *</span>
+<span class="add">                                 Math.log((1. - con) / (1. + con)));</span>
+<span class="add">            phi += dphi;</span>
+<span class="add">            if (Math.abs(dphi) &lt;= TOL) {</span>
+<span class="add">                return phi;</span>
+<span class="add">            }</span>
+<span class="add">        }</span>
+<span class="add">        throw new ProjectionException(Resources.format(ResourceKeys.ERROR_NO_CONVERGENCE));</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * Calculates q, Snyder equation (3-12)</span>
+<span class="add">     *</span>
+<span class="add">     * @param sinphi sin of the latitude q is calculated for</span>
+<span class="add">     * @return q from Snyder equation (3-12)</span>
+<span class="add">     */</span>
+<span class="add">    private double qsfn(double sinphi) {</span>
+<span class="add">        final double one_es = 1 - excentricitySquared;</span>
+<span class="add">        if (excentricity &gt;= EPS) {</span>
+<span class="add">            final double con = excentricity * sinphi;</span>
+<span class="add">            return (one_es * (sinphi / (1. - con*con) -</span>
+<span class="add">                   (0.5/excentricity) * Math.log((1.-con) / (1.+con))));</span>
+<span class="add">        } else {</span>
+<span class="add">            return sinphi + sinphi;</span>
+<span class="add">        }</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * Returns a hash value for this projection.</span>
+<span class="add">     */</span>
+<span class="add">    public int hashCode() {</span>
+<span class="add">        final long code = Double.doubleToLongBits(c);</span>
+<span class="add">        return ((int)code ^ (int)(code &gt;&gt;&gt; 32)) + 37*super.hashCode();</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">    /**</span>
+<span class="add">     * Compares the specified object with this map projection for equality.</span>
+<span class="add">     */</span>
+<span class="add">    public boolean equals(final Object object) {</span>
+<span class="add">        if (object == this) {</span>
+<span class="add">            // Slight optimization</span>
+<span class="add">            return true;</span>
+<span class="add">        }</span>
+<span class="add">        if (super.equals(object)) {</span>
+<span class="add">            final AlbersEqualArea that = (AlbersEqualArea) object;</span>
+<span class="add">            return equals(this.n    , that.n   ) &amp;&amp;</span>
+<span class="add">                   equals(this.c    , that.c   ) &amp;&amp;</span>
+<span class="add">                   equals(this.rho0 , that.rho0) &amp;&amp;</span>
+<span class="add">                   equals(this.phi1 , that.phi1) &amp;&amp;</span>
+<span class="add">                   equals(this.phi2 , that.phi2);</span>
+<span class="add">        }</span>
+<span class="add">        return false;</span>
+<span class="add">    }</span>
+<span class="add"></span>
+<span class="add">}</span></pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/09214/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/09214/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/09214/HEADER.html
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/09214/HEADER.html?rev=1753380&view=auto
==============================================================================
--- sis/ip-review/rev/09214/HEADER.html (added)
+++ sis/ip-review/rev/09214/HEADER.html Tue Jul 19 12:52:24 2016
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Revision 9214</title>
+  </head>
+  <body>
+    <div>
+      <h1>Revision 9214</h1>
+<table>
+  <tr><td><b>Author:</b></td><td>rschulz</td></tr>
+  <tr><td><b>Date:</b></td><td>2004-11-20</td></tr>
+  <tr><td><b>Message:</b></td><td>ported to geoapi referencing api</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/09214/HEADER.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/09214/HEADER.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/10796/AlbersEqualArea.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/10796/AlbersEqualArea.xhtml?rev=1753380&view=auto
==============================================================================
--- sis/ip-review/rev/10796/AlbersEqualArea.xhtml (added)
+++ sis/ip-review/rev/10796/AlbersEqualArea.xhtml Tue Jul 19 12:52:24 2016
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>AlbersEqualArea changes for revisions 9355:10796</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>AlbersEqualArea changes for revisions 9355:10796</h1>
+
+<p>This projection is rewritten from scratch using the formulas published in EPSG guidance notes.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r9355:10796 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/AlbersEqualArea.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 9355</th><th>Revision 10796</th></tr>
+<tr><td><pre>package org.geotools.referencing.operation.projection;
+
+// J2SE dependencies and extensions
+import java.util.Collection;
+<span class="del">import java.awt.geom.Point2D;</span>
+import javax.units.NonSI;
+
+<span class="del">// OpenGIS dependencies</span>
+import org.opengis.parameter.ParameterDescriptor;
+<span class="del">import org.opengis.parameter.ParameterValueGroup;</span>
+import org.opengis.parameter.ParameterDescriptorGroup;
+import org.opengis.parameter.ParameterNotFoundException;
+import org.opengis.referencing.operation.MathTransform;
+
+<span class="del">// Geotools dependencies</span>
+<span class="del">import org.geotools.measure.Latitude;</span>
+<span class="del">import org.geotools.referencing.Identifier;</span>
+<span class="del">import org.geotools.metadata.citation.Citation;</span>
+<span class="del">import org.geotools.resources.cts.ResourceKeys;</span>
+<span class="del">import org.geotools.resources.cts.Resources;</span>
+
+<span class="del"></span>
+/**
+ * Albers Equal Area Projection (EPSG code 9822). This is a conic projection
+ * with parallels being unequally spaced arcs of concentric circles, more</pre></td>
+<td><pre>package org.geotools.referencing.operation.projection;
+
+// J2SE dependencies and extensions
+<span class="add">import java.awt.geom.Point2D;</span>
+import java.util.Collection;
+<span class="add"></span>
+import javax.units.NonSI;
+
+<span class="add">import org.geotools.measure.Latitude;</span>
+<span class="add">import org.geotools.metadata.citation.Citation;</span>
+<span class="add">import org.geotools.referencing.Identifier;</span>
+<span class="add">import org.geotools.resources.cts.ResourceKeys;</span>
+<span class="add">import org.geotools.resources.cts.Resources;</span>
+import org.opengis.parameter.ParameterDescriptor;
+import org.opengis.parameter.ParameterDescriptorGroup;
+import org.opengis.parameter.ParameterNotFoundException;
+<span class="add">import org.opengis.parameter.ParameterValueGroup;</span>
+import org.opengis.referencing.operation.MathTransform;
+
+
+/**
+ * Albers Equal Area Projection (EPSG code 9822). This is a conic projection
+ * with parallels being unequally spaced arcs of concentric circles, more</pre></td></tr>
+<tr><td><pre>* angles. As the name implies, this projection minimizes distortion in areas.
+* &lt;br&gt;&lt;br&gt;
+*
+* NOTE: formulae used below are from a port, to java, of the
+*       'proj4' package of the USGS survey. USGS work is acknowledged here.
+* &lt;br&gt;&lt;br&gt;</pre></td>
+<td><pre>* angles. As the name implies, this projection minimizes distortion in areas.
+* &lt;br&gt;&lt;br&gt;
+*
+<span class="add">* The "standard_parallel_2" parameter is optional and will be given the</span>
+<span class="add">* same value as "standard_parallel_1" if not set (creating a 1 standard parallel</span>
+<span class="add">* projection).</span>
+<span class="add">* &lt;br&gt;&lt;br&gt;</span>
+<span class="add">*</span>
+* NOTE: formulae used below are from a port, to java, of the
+*       'proj4' package of the USGS survey. USGS work is acknowledged here.
+* &lt;br&gt;&lt;br&gt;</pre></td></tr>
+<tr><td><pre>private final double ec;
+
+/**
+<span class="del"> * Standards parallels in radians, for {@link #getParameterValues} implementation.</span>
+ */
+<span class="del">private final double phi1, phi2;</span>
+
+
+/**
+ * The {@link org.geotools.referencing.operation.MathTransformProvider}</pre></td>
+<td><pre>private final double ec;
+
+/**
+<span class="add"> * Standards parallel 1 in radians, for {@link #getParameterValues} implementation.</span>
+ */
+<span class="add">private final double phi1;</span>
+
+<span class="add">/**</span>
+<span class="add"> * Standards parallel 2 in radians, for {@link #getParameterValues} implementation.</span>
+<span class="add"> */</span>
+<span class="add">private double phi2;</span>
+
+/**
+ * The {@link org.geotools.referencing.operation.MathTransformProvider}</pre></td></tr>
+<tr><td><pre>/**
+ * The operation parameter descriptor for the {@link #phi1 standard parallel 1}
+<span class="del"> * parameter value. Valid values range is from -90 to 90°. Default value is 0.</span>
+ */
+public static final ParameterDescriptor STANDARD_PARALLEL_1 = createDescriptor(
+        new Identifier[] {</pre></td>
+<td><pre>/**
+ * The operation parameter descriptor for the {@link #phi1 standard parallel 1}
+<span class="add"> * parameter value. Valid values range is from -90 to 90�. Default value is 0.</span>
+ */
+public static final ParameterDescriptor STANDARD_PARALLEL_1 = createDescriptor(
+        new Identifier[] {</pre></td></tr>
+<tr><td><pre>/**
+ * The operation parameter descriptor for the {@link #phi2 standard parallel 2}
+<span class="del"> * parameter value. Valid values range is from -90 to 90°. Default value is 0.</span>
+ */
+public static final ParameterDescriptor STANDARD_PARALLEL_2 = createDescriptor(
+        new Identifier[] {</pre></td>
+<td><pre>/**
+ * The operation parameter descriptor for the {@link #phi2 standard parallel 2}
+<span class="add"> * parameter value. Valid values range is from -90 to 90�. Default value is 0.</span>
+ */
+public static final ParameterDescriptor STANDARD_PARALLEL_2 = createDescriptor(
+        new Identifier[] {</pre></td></tr>
+<tr><td><pre>            new Identifier(Citation.EPSG,     "Latitude of 2nd standard parallel"),
+            new Identifier(Citation.GEOTIFF,  "StdParallel2")
+        },
+<span class="del">        0, -90, 90, NonSI.DEGREE_ANGLE);</span>
+
+/**
+ * The parameters group.</pre></td>
+<td><pre>            new Identifier(Citation.EPSG,     "Latitude of 2nd standard parallel"),
+            new Identifier(Citation.GEOTIFF,  "StdParallel2")
+        },
+<span class="add">        Double.NaN, -90, 90, NonSI.DEGREE_ANGLE);</span>
+
+/**
+ * The parameters group.</pre></td></tr>
+<tr><td><pre> * @param  parameters The parameter values in standard units.
+ * @param  expected The expected parameter descriptors.
+ * @throws ParameterNotFoundException if a mandatory parameter is missing.
+<span class="del"> *</span>
+<span class="del"> * @task REVISIT: set phi2 = phi1 if no SP2 param is given by user (a 1sp projection)</span>
+ */
+<span class="del">public AlbersEqualArea(final ParameterValueGroup parameters, final Collection expected) {</span>
+    //Fetch parameters
+    super(parameters, expected);
+
+    phi1 = doubleValue(expected, Provider.STANDARD_PARALLEL_1, parameters);
+    phi2 = doubleValue(expected, Provider.STANDARD_PARALLEL_2, parameters);
+
+//Compute Constants
+    if (Math.abs(phi1 + phi2) &lt; EPS)</pre></td>
+<td><pre> * @param  parameters The parameter values in standard units.
+ * @param  expected The expected parameter descriptors.
+ * @throws ParameterNotFoundException if a mandatory parameter is missing.
+ */
+<span class="add">AlbersEqualArea(final ParameterValueGroup parameters, final Collection expected)</span>
+<span class="add">        throws ParameterNotFoundException</span>
+<span class="add">{</span>
+    //Fetch parameters
+    super(parameters, expected);
+
+    phi1 = doubleValue(expected, Provider.STANDARD_PARALLEL_1, parameters);
+<span class="add">    ensureLatitudeInRange(Provider.STANDARD_PARALLEL_1, phi1, true);</span>
+    phi2 = doubleValue(expected, Provider.STANDARD_PARALLEL_2, parameters);
+<span class="add">    if (Double.isNaN(phi2)) {</span>
+<span class="add">        phi2 = phi1;</span>
+<span class="add">    }</span>
+<span class="add">    ensureLatitudeInRange(Provider.STANDARD_PARALLEL_2, phi2, true);</span>
+
+//Compute Constants
+    if (Math.abs(phi1 + phi2) &lt; EPS)</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/10796/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/10796/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/11373/AlbersEqualArea.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/11373/AlbersEqualArea.xhtml?rev=1753380&view=auto
==============================================================================
--- sis/ip-review/rev/11373/AlbersEqualArea.xhtml (added)
+++ sis/ip-review/rev/11373/AlbersEqualArea.xhtml Tue Jul 19 12:52:24 2016
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>AlbersEqualArea changes for revisions 11372:11373</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>AlbersEqualArea changes for revisions 11372:11373</h1>
+      <p>This can of check is not applied anymore in Apache SIS.
+      Instead we let the mathematical functions do their "natural" work, which may be to return NaN of infinity.</p>
+
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r11372:11373 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/AlbersEqualArea.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 11372</th><th>Revision 11373</th></tr>
+<tr><td><pre>}
+
+if (rho &lt; 0.0) {
+<span class="del">    // TODO: fix message (and check when this condition will occur)</span>
+<span class="del">    // this just checks for a tolerence error that may cause rho to be</span>
+<span class="del">    // close to -0.0, may be better to just round up in these cases</span>
+    throw new ProjectionException("Tolerance condition error");
+}
+rho = Math.sqrt(rho) / n;
+y   = rho0 - rho * Math.cos(x);
+x   =        rho * Math.sin(x);</pre></td>
+<td><pre>}
+
+if (rho &lt; 0.0) {
+<span class="add">    if (Math.abs(rho) &lt; EPS) {</span>
+<span class="add">        rho = 0.0;</span>
+<span class="add">    } else {</span>
+<span class="add">        //TODO: can remove if someone can prove this condition will never happen</span>
+    throw new ProjectionException("Tolerance condition error");
+}
+<span class="add">}</span>
+rho = Math.sqrt(rho) / n;
+y   = rho0 - rho * Math.cos(x);
+x   =        rho * Math.sin(x);</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/11373/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/11373/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/11373/HEADER.html
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/11373/HEADER.html?rev=1753380&view=auto
==============================================================================
--- sis/ip-review/rev/11373/HEADER.html (added)
+++ sis/ip-review/rev/11373/HEADER.html Tue Jul 19 12:52:24 2016
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>Revision 11373</title>
+  </head>
+  <body>
+    <div>
+      <h1>Revision 11373</h1>
+<table>
+  <tr><td><b>Author:</b></td><td>rschulz</td></tr>
+  <tr><td><b>Date:</b></td><td>2005-02-14</td></tr>
+  <tr><td><b>Message:</b></td><td>small change to how we deal with the case of rho < 0</td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/11373/HEADER.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/11373/HEADER.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: sis/ip-review/rev/20874/AlbersEqualArea.xhtml
URL: http://svn.apache.org/viewvc/sis/ip-review/rev/20874/AlbersEqualArea.xhtml?rev=1753380&view=auto
==============================================================================
--- sis/ip-review/rev/20874/AlbersEqualArea.xhtml (added)
+++ sis/ip-review/rev/20874/AlbersEqualArea.xhtml Tue Jul 19 12:52:24 2016
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta charset="UTF-8"/>
+    <title>AlbersEqualArea changes for revisions 20873:20874</title>
+    <style type="text/css" media="all">
+      @import url("../../reports.css");
+    </style>
+  </head>
+  <body>
+    <div>
+      <h1>AlbersEqualArea changes for revisions 20873:20874</h1>
+<p>Changes in GeoTools header only. The removal of the <cite>"or (at your option) any later version"</cite> clause
+must be keep in Geotk for every classes having contribution from a developer other than those who accepted re-licensing.
+This header does not apply to Apache SIS, since the above-cited contributions are omitted.</p>
+<p><b>Command line:</b></p>
+<blockquote><code>svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r20873:20874 http://svn.osgeo.org/geotools/trunk/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/AlbersEqualArea.java</code></blockquote>
+<table class="changes">
+<tr><th>Revision 20873</th><th>Revision 20874</th></tr>
+<tr><td><pre>/*
+<span class="del"> * Geotools - OpenSource mapping toolkit</span>
+<span class="del"> * (C) 2003, 2004 Geotools Project Managment Committee (PMC)</span>
+ * (C) 2000, Frank Warmerdam
+ * (C) 1999, Fisheries and Oceans Canada
+ * (C) 1995, Gerald Evenden</pre></td>
+<td><pre>/*
+<span class="add"> *    GeoTools - OpenSource mapping toolkit</span>
+<span class="add"> *    http://geotools.org</span>
+<span class="add"> *</span>
+<span class="add"> *   (C) 2003-2006, Geotools Project Managment Committee (PMC)</span>
+ * (C) 2000, Frank Warmerdam
+ * (C) 1999, Fisheries and Oceans Canada
+ * (C) 1995, Gerald Evenden</pre></td></tr>
+<tr><td><pre>*
+*    This library is free software; you can redistribute it and/or
+*    modify it under the terms of the GNU Lesser General Public
+<span class="del">*    License as published by the Free Software Foundation; either</span>
+<span class="del">*    version 2.1 of the License, or (at your option) any later version.</span>
+*
+*    This library is distributed in the hope that it will be useful,
+*    but WITHOUT ANY WARRANTY; without even the implied warranty of</pre></td>
+<td><pre>*
+*    This library is free software; you can redistribute it and/or
+*    modify it under the terms of the GNU Lesser General Public
+<span class="add">*    License as published by the Free Software Foundation;</span>
+<span class="add">*    version 2.1 of the License.</span>
+*
+*    This library is distributed in the hope that it will be useful,
+*    but WITHOUT ANY WARRANTY; without even the implied warranty of</pre></td></tr>
+<tr><td><pre>*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+*    Lesser General Public License for more details.
+*
+<span class="del">*</span>
+*    This package contains formulas from the PROJ package of USGS.
+*    USGS's work is fully acknowledged here. This derived work has
+*    been relicensed under LGPL with Frank Warmerdam's permission.</pre></td>
+<td><pre>*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+*    Lesser General Public License for more details.
+*
+*    This package contains formulas from the PROJ package of USGS.
+*    USGS's work is fully acknowledged here. This derived work has
+*    been relicensed under LGPL with Frank Warmerdam's permission.</pre></td></tr>
+</table>
+    </div>
+  </body>
+</html>

Propchange: sis/ip-review/rev/20874/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/ip-review/rev/20874/AlbersEqualArea.xhtml
------------------------------------------------------------------------------
    svn:mime-type = text/html



Mime
View raw message