sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1815684 - in /sis/site/trunk: book/en/coverage/ book/en/overview/ book/en/referencing/ book/fr/coverage/ book/fr/overview/ book/fr/referencing/ content/book/en/ content/book/fr/
Date Sat, 18 Nov 2017 17:49:42 GMT
Author: desruisseaux
Date: Sat Nov 18 17:49:42 2017
New Revision: 1815684

URL: http://svn.apache.org/viewvc?rev=1815684&view=rev
Log:
Add documentation on CoordinateSystem.

Modified:
    sis/site/trunk/book/en/coverage/index.html
    sis/site/trunk/book/en/overview/GetMetadataElement.html
    sis/site/trunk/book/en/referencing/ComponentsOfCRS.html
    sis/site/trunk/book/fr/coverage/index.html
    sis/site/trunk/book/fr/overview/GetMetadataElement.html
    sis/site/trunk/book/fr/referencing/ComponentsOfCRS.html
    sis/site/trunk/content/book/en/developer-guide.html
    sis/site/trunk/content/book/fr/developer-guide.html

Modified: sis/site/trunk/book/en/coverage/index.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/book/en/coverage/index.html?rev=1815684&r1=1815683&r2=1815684&view=diff
==============================================================================
--- sis/site/trunk/book/en/coverage/index.html [UTF-8] (original)
+++ sis/site/trunk/book/en/coverage/index.html [UTF-8] Sat Nov 18 17:49:42 2017
@@ -35,6 +35,10 @@
       <header>
         <h1 id="Coverage">Data coverages</h1>
       </header>
+      <p style="color:red; font-size:larger; font-weight:bold; text-align:center">
+        This chapter is a draft. Apache <abbr>SIS</abbr> 0.8 does not yet provide
coverage support.
+        This support is work in progress and will be available in a future version.
+      </p>
       <p>
         Images, or <i>rasters</i>, are a particular case of a data structure
called a <i>coverage</i>.
         We could think of this as a “coverage of data.”

Modified: sis/site/trunk/book/en/overview/GetMetadataElement.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/book/en/overview/GetMetadataElement.html?rev=1815684&r1=1815683&r2=1815684&view=diff
==============================================================================
--- sis/site/trunk/book/en/overview/GetMetadataElement.html (original)
+++ sis/site/trunk/book/en/overview/GetMetadataElement.html Sat Nov 18 17:49:42 2017
@@ -81,9 +81,12 @@ for (String name : elements.keySet()) {
         or names used in <abbr>ISO</abbr> 19115 standard <abbr>UML</abbr>
diagrams
         (similar to property names but not always identical).
         Differences in upper cases and lower cases are ignored when this tolerance does not
introduce ambiguities.
+        For more information on metadata views, see
+        <a href="../../apidocs/org/apache/sis/metadata/package-summary.html#package.description"><code>org.apache.sis.metadata</code></a>
+        package javadoc.
       </p><p>
-        Among metadata elements introduced in this chapter,
-        there is one which will be the topic of a dedicated chapter: <code class="OGC">referenceSystemInfo</code>.
+        Among metadata elements introduced in this chapter, there is one which will be the
topic of
+        a <a href="#Referencing">dedicated chapter</a>: <code class="OGC">referenceSystemInfo</code>.
         Its content is essential for accurate data positioning;
         without this element, even positions given by latitudes and longitudes are ambiguous.
         Reference systems have many characteristics that make them apart from other metadata:

Modified: sis/site/trunk/book/en/referencing/ComponentsOfCRS.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/book/en/referencing/ComponentsOfCRS.html?rev=1815684&r1=1815683&r2=1815684&view=diff
==============================================================================
--- sis/site/trunk/book/en/referencing/ComponentsOfCRS.html [UTF-8] (original)
+++ sis/site/trunk/book/en/referencing/ComponentsOfCRS.html [UTF-8] Sat Nov 18 17:49:42 2017
@@ -84,6 +84,21 @@
         This modification aimed to take in account the average state height above mean sea
level.</p>
       </div>
 
+      <p>
+        The main properties that we can get from an ellipsoid are given below.
+        The semi-major axis length is sometime called <cite>equatorial radius</cite>
and
+        the semi-minor axis length the <cite>polar radius</cite>.
+        The inverse flattening factor is apparently superfluous since it can be derived from
other quantities,
+        but many ellipsoid definitions provide this factor instead of semi-minor axis length.
+      </p>
+
+<pre><code>Unit&lt;Length&gt; units = ellipsoid.<code class="GeoAPI">getAxisUnit()</code>;
+double semiMajor   = ellipsoid.<code class="GeoAPI">getSemiMajorAxis()</code>;
         // In units of measurement given above.
+double semiMinor   = ellipsoid.<code class="GeoAPI">getSemiMinorAxis()</code>;
         // In units of measurement given above.
+double ivf         = ellipsoid.<code class="GeoAPI">getInverseFlattening()</code>;
     // = semiMajor / (semiMajor - semiMinor).
+</code></pre>
+
+
       <h3 id="GeodeticDatum">Geodetic datum</h3>
       <p>
         For defining a geodetic system in a country, a national authority selects an ellipsoid
matching closely the country surface.
@@ -124,10 +139,54 @@
         Furthermore many borders were legally defined in legacy datums, for example <abbr>NAD27</abbr>
in <abbr>USA</abbr>.
         Updating data to the new datum would imply transforming some straight lines or simple
geometric shapes
         into more irregular shapes, if the shapes are large enough.
+      </p><p>
+        Contrarily to other kinds of objects introduced in this section,
+        there is not many useful information that we can get from a <code>Datum</code>
instance except its name.
+        It is difficult to translate in programming language how a datum is related to the
Earth.
+        Often, the most we can do is to consider that having two datums with different names
implies that the same location on Earth
+        has different coordinate values when using those different datums, even if the ellipsoid
is identical in both cases.
+        Coordinate transformations between datums require some kind of database.
       </p>
 
       <h3 id="CoordinateSystem">Coordinate systems</h3>
-      <p style="color: red">TODO</p>
+      <p>
+        A Coordinate System (<abbr>CS</abbr>) defines the set of axes that spans
a given coordinate space.
+        Each axis defines an approximative direction (north, south, east, west, up, down,
port, starboard, past, future, <i>etc.</i>),
+        units of measurement, minimal and maximal values, and what happen after reaching
those extremum.
+        For example in longitude case, after +180° the coordinate values continue at −180°.
+        But such loops may also exist in time axis. For example in climatological data defining
normal temperatures,
+        after December the data sequence restarts to January; those months are associated
to no particular year.
+        Axes having such behavior are associated to the <code>RangeMeaning.WRAPAROUND</code>
code.
+      </p><p>
+        Some properties that we can get from a coordinate system and its axes are shown below.
+        Axes are numbered from 0 to <code>cs.getDimension()-1</code> inclusive.
+      </p>
+
+<pre><code>CoordinateSystem cs = crs.getCoordinateSystem();
+CoordinateSystemAxis secondAxis = cs.getAxis(1);                 // For a geographic CRS,
this is usually geodetic longitude.
+String        abbreviation = secondAxis.getAbbreviation();       // For a longitude axis,
this is usually "λ", "L" or "lon".
+AxisDirection direction    = secondAxis.getDirection();          // For a longitude axis,
this is usually EAST. Another occasional value is WEST.
+Unit&lt;?&gt;       units        = secondAxis.getUnit();               // For a longitude
axis, this is usually Units.DEGREE.
+double        minimum      = secondAxis.getMinimumValue();       // For a longitude axis,
this is usually −180°. Another common value is 0°.
+double        maximum      = secondAxis.getMaximumValue();       // For a longitude axis,
this is usually +180°. Another common value is 360°.
+RangeMeaning  atEnds       = secondAxis.getRangeMeaning();       // For a longitude axis,
this is WRAPAROUND.
+</code></pre>
+      <p>
+
+        In addition to axis definitions, another important coordinate system characteristic
is their type
+        (<code>CartesianCS</code>, <code>SphericalCS</code>, <i>etc.</i>).
+        The <abbr>CS</abbr> type implies the set of mathematical rules for calculating
geometric quantities like angles, distances and surfaces.
+        Usually the various <abbr>CS</abbr> subtypes do not define any new Java
methods compared to the parent type,
+        but are nevertheless important for type safety.
+        For example many calculations or associations are legal only when all axes are perpendicular
to each other.
+        In such case the coordinate system type is restricted to <code>CartesianCS</code>
in method signatures.
+      </p><p>
+        Coordinate systems are mathematical concepts; they do <strong>not</strong>
contain any information
+        about where on Earth is located the system origin.
+        Consequently coordinate systems alone are not sufficient for describing a location;
+        they must be combined with a <cite>datum</cite> (or <cite>reference
frame</cite>).
+        Those combinations form the <cite>coordinate reference systems</cite>
described in next sections.
+      </p>
 
       <h4 id="AxisOrder">Axis order</h4>
       <p>

Modified: sis/site/trunk/book/fr/coverage/index.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/book/fr/coverage/index.html?rev=1815684&r1=1815683&r2=1815684&view=diff
==============================================================================
--- sis/site/trunk/book/fr/coverage/index.html [UTF-8] (original)
+++ sis/site/trunk/book/fr/coverage/index.html [UTF-8] Sat Nov 18 17:49:42 2017
@@ -35,6 +35,10 @@
       <header>
         <h1 id="Coverage">Couvertures de données (<i>Coverages</i>)</h1>
       </header>
+      <p style="color:red; font-size:larger; font-weight:bold; text-align:center">
+        Ce chapitre est une ébauche. Apache <abbr>SIS</abbr> 0.8 n’offre pas
encore de support des couvertures de données.
+        L’ajout de ce support est en cours et sera disponible dans une version future.
+      </p>
       <p>
         Les images, souvent nommées <i>rasters</i> en anglais, sont des cas
particuliers
         d’une structure de données appelée <i>coverages</i>.

Modified: sis/site/trunk/book/fr/overview/GetMetadataElement.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/book/fr/overview/GetMetadataElement.html?rev=1815684&r1=1815683&r2=1815684&view=diff
==============================================================================
--- sis/site/trunk/book/fr/overview/GetMetadataElement.html (original)
+++ sis/site/trunk/book/fr/overview/GetMetadataElement.html Sat Nov 18 17:49:42 2017
@@ -87,9 +87,11 @@ for (String name : elements.keySet()) {
         ou le nom utilisé dans les diagrammes <abbr>UML</abbr> de la norme
<abbr>ISO</abbr> 19115
         (assez proche du nom de la propriété mais pas toujours identique).
         Les différences entre majuscules et minuscules sont ignorées si elles ne causent
pas d’ambiguïtés.
+        Pour plus d’information sur ce mécanisme de vues sur les méta-données,
voir la Javadoc du paquet
+        <a href="../../apidocs/org/apache/sis/metadata/package-summary.html#package.description"><code>org.apache.sis.metadata</code></a>.
       </p><p>
-        Parmi les éléments de méta-données présentés dans ce chapitre,
-        il en est un qui fera l’objet d’un chapitre dédié: <code class="OGC">referenceSystemInfo</code>.
+        Parmi les éléments de méta-données présentés dans ce chapitre,
il en est un qui fera l’objet
+        d’un <a href="#Referencing">chapitre dédié</a>: <code class="OGC">referenceSystemInfo</code>.
         Son contenu est essentiel pour positionner précisément les données.
         Sans lui, même les positions exprimées sous forme de latitudes et longitudes
sont ambigües.
         Les systèmes de références ont plusieurs caractéristiques qui les différencient
des autres méta-données:

Modified: sis/site/trunk/book/fr/referencing/ComponentsOfCRS.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/book/fr/referencing/ComponentsOfCRS.html?rev=1815684&r1=1815683&r2=1815684&view=diff
==============================================================================
--- sis/site/trunk/book/fr/referencing/ComponentsOfCRS.html [UTF-8] (original)
+++ sis/site/trunk/book/fr/referencing/ComponentsOfCRS.html [UTF-8] Sat Nov 18 17:49:42 2017
@@ -84,6 +84,21 @@
         sur l’ellipsoïde « Clarke 1866 » mais auquel la longueur des axes a été
allongée de 800 pieds.
         Cette modification visait à tenir compte du niveau moyen de l’état au dessus
du niveau de la mer.</p>
       </div>
+      <p>
+        Les principales propriétés que l’on peut obtenir d’un ellipsoïde sont montrées
ci-dessous.
+        La longueur de l’axe semi-majeur est parfois appelée <cite>rayon équatorial</cite>
+        et la longueur de l’axe semi-mineur <cite>rayon polaire</cite>.
+        Le facteur d’aplatissement inverse (<cite>inverse flattening factor</cite>
en anglais)
+        peut sembler superflu puisqu’il se calcule à partir des autres propriétés,
+        mais plusieurs définitions d’ellipsoïdes fournissent ce facteur plutôt que la
longueur de l’axe semi-mineur.
+      </p>
+
+<pre><code>Unit&lt;Length&gt; units = ellipsoid.<code class="GeoAPI">getAxisUnit()</code>;
+double semiMajor   = ellipsoid.<code class="GeoAPI">getSemiMajorAxis()</code>;
         // In units of measurement given above.
+double semiMinor   = ellipsoid.<code class="GeoAPI">getSemiMinorAxis()</code>;
         // In units of measurement given above.
+double ivf         = ellipsoid.<code class="GeoAPI">getInverseFlattening()</code>;
     // = semiMajor / (semiMajor - semiMinor).
+</code></pre>
+
 
       <h3 id="GeodeticDatum">Référentiel géodésique</h3>
       <p>
@@ -126,10 +141,54 @@
         En outre beaucoups de bordures ont été définies légalement dans des référentiels
plus anciens, par exemple <abbr>NAD27</abbr> aux États-Unis.
         Mettre à jour dans un nouveau référentiel peut obliger à transformer des lignes
droites ou des formes géométriques simples en des formes plus irrégulières
         si on ne veut pas que des parcelles de terrain changent de propriétaire.
+      </p><p>
+        Contrairement aux autres types d’objets introduits dans cette section,
+        il n’y a pas beaucoup d’information utile que l’on peut extraire d’une instance
de <code>Datum</code> à part son nom.
+        Traduire en langage de programmation comment un référentiel est lié à la Terre
est difficile.
+        On se contente en général de considérer que si deux référentiels ont des noms
différents,
+        alors la même position sur la Terre aura des coordonnées différentes selon ces
deux référentiels (même si l’ellipsoïde est identique)
+        et la transformation des coordonnées d’un référentiel à l’autre nécessitera
l’utilisation d’une base de données.
       </p>
 
       <h3 id="CoordinateSystem">Systèmes de coordonnées</h3>
-      <p style="color: red">TODO</p>
+      <p>
+        Un système de coordonnées (<abbr title="Coordinate System">CS</abbr>)
définit l’ensemble des axes couvrant un espace de coordonnées.
+        Chaque axe définit sa direction approximative (nord, sud, est, ouest, haut, bas,
bâbord, tribord, passé, futur, <i>etc.</i>),
+        ses unités de mesures, les valeurs minimales et maximales permises et ce qui se
passe lorsqu’on atteint ces extremums.
+        Par exemple dans le cas de la longitude, après +180° on revient à −180°.
+        Mais de telles boucles peuvent aussi exister dans l’axe du temps.
+        Par exemple dans des données climatologiques de la température normale,
+        après le mois de décembre on revient au mois de janvier. Ces mois ne sont associés
à aucune année en particulier.
+        Les axes ayant ce genre de comportement sont reconnaissables à la propriété <code>RangeMeaning.WRAPAROUND</code>.
+      </p><p>
+        Les principales propriétés que l’on peut obtenir d’un système de coordonnées
sont montrées ci-dessous.
+        Les axes sont numérotés de 0 à <code>cs.getDimension()-1</code> inclusivement:
+      </p>
+
+<pre><code>CoordinateSystem cs = crs.getCoordinateSystem();
+CoordinateSystemAxis secondAxe = cs.getAxis(1);                 // Pour un système géographique,
c’est habituellement la longitude géodétique.
+String        abbreviation = secondAxe.getAbbreviation();       // Pour l’axe des longitudes,
c’est habituellement "λ", "L" ou "lon".
+AxisDirection direction    = secondAxe.getDirection();          // Pour l’axe des longitudes,
c’est habituellement EAST. On trouve aussi parfois WEST.
+Unit&lt;?&gt;       unités       = secondAxe.getUnit();               // Pour l’axe
des longitudes, c’est habituellement Units.DEGREE.
+double        minimum      = secondAxe.getMinimumValue();       // Pour l’axe des longitudes,
c’est habituellement −180°. Une autre valeur courante est 0°.
+double        maximum      = secondAxe.getMaximumValue();       // Pour l’axe des longitudes,
c’est habituellement +180°. Une autre valeur courante est 360°.
+RangeMeaning  auxBouts     = secondAxe.getRangeMeaning();       // Pour l’axe des longitudes,
c’est WRAPAROUND.
+</code></pre>
+      <p>
+        En plus de la définition des axes, une autre caractéristique importante des systèmes
de coordonnées est leur type
+        (<code>CartesianCS</code>, <code>SphericalCS</code>, <i>etc.</i>).
Ce type implique un ensemble de règles mathématiques
+        pour calculer des quantités géométriques telles que les angles, distances et surfaces.
+        Les divers sous-types de <abbr>CS</abbr> ne définissent habituellement
pas de nouvelle méthodes Java comparativement au type parent,
+        mais sont néanmoins importants.
+        Par exemple plusieurs calculs ou associations ne sont valides qu’avec des axes
perpendiculaires entre eux.
+        Dans ce cas, le système de coordonnées sera restreint au type <code>CartesianCS</code>
dans la signature des méthodes.
+      </p><p>
+        Les systèmes de coordonnées sont des concepts mathématiques;
+        ils ne contiennent aucune information indiquant où sur la Terre se trouve leur origine.
+        En conséquence, les systèmes de coordonnées seuls ne permettent pas de décrire
une position terrestre;
+        ils doivent être combinés avec un <cite>référentiel</cite>.
+        Ces combinaisons forment les <cite>systèmes de références des coordonnées</cite>
décrits dans les sections suivantes.
+      </p>
 
       <h4 id="AxisOrder">Ordre des axes</h4>
       <p>

Modified: sis/site/trunk/content/book/en/developer-guide.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/content/book/en/developer-guide.html?rev=1815684&r1=1815683&r2=1815684&view=diff
==============================================================================
--- sis/site/trunk/content/book/en/developer-guide.html [UTF-8] (original)
+++ sis/site/trunk/content/book/en/developer-guide.html [UTF-8] Sat Nov 18 17:49:42 2017
@@ -911,9 +911,12 @@ keys may be property names (<code>"foo"<
 or names used in <abbr title="International Organization for Standardization">ISO</abbr>
19115 standard <abbr title="Unified Modeling Language">UML</abbr> diagrams
 (similar to property names but not always identical).
 Differences in upper cases and lower cases are ignored when this tolerance does not introduce
ambiguities.
+For more information on metadata views, see
+<a href="../../apidocs/org/apache/sis/metadata/package-summary.html#package.description"><code
class="SIS">org.apache.sis.metadata</code></a>
+package javadoc.
 </p><p>
-Among metadata elements introduced in this chapter,
-there is one which will be the topic of a dedicated chapter: <code class="OGC">referenceSystemInfo</code>.
+Among metadata elements introduced in this chapter, there is one which will be the topic
of
+a <a href="#Referencing">dedicated chapter</a>: <code class="OGC">referenceSystemInfo</code>.
 Its content is essential for accurate data positioning;
 without this element, even positions given by latitudes and longitudes are ambiguous.
 Reference systems have many characteristics that make them apart from other metadata:
@@ -931,6 +934,10 @@ performing coordinate transformation fro
 <nav><div class="chapter-links"><div class="previous-chapter">⬅ <a
href="#DataAccess">Previous chapter</a></div><div class="next-chapter"><a
href="#Geometry">Next chapter</a> ➡</div></div></nav>
 </header>
 <nav>In this chapter:<ul class="toc"/></nav>
+<p style="color:red; font-size:larger; font-weight:bold; text-align:center">
+This chapter is a draft. Apache <abbr title="Spatial Information System">SIS</abbr>
0.8 does not yet provide coverage support.
+This support is work in progress and will be available in a future version.
+</p>
 <p>
 Images, or <i>rasters</i>, are a particular case of a data structure called a
<i>coverage</i>.
 We could think of this as a “coverage of data.”
@@ -943,7 +950,7 @@ nicely summarizes the two essential elem
 A coverage is a function which returns an attribute value from an entered coordinate.
 The set of values that may be entered is called the domain, while the set of values that
may be returned is called the range.
 The domain is often the spatio-temporal area covered by the data,
-but nothing in <abbr title="Spatial Information System">SIS</abbr> prevents coverages
from extending to other dimensions.
+but nothing in <abbr>SIS</abbr> prevents coverages from extending to other dimensions.
 For example, thermodynamic studies often use an area where the dimensions are temperature
and pressure.
 </p>
 <div class="example"><p><b>Example:</b>
@@ -1373,6 +1380,21 @@ the Michigan state used an ellipsoid bas
 This modification aimed to take in account the average state height above mean sea level.</p>
 </div>
 
+<p>
+The main properties that we can get from an ellipsoid are given below.
+The semi-major axis length is sometime called <cite>equatorial radius</cite>
and
+the semi-minor axis length the <cite>polar radius</cite>.
+The inverse flattening factor is apparently superfluous since it can be derived from other
quantities,
+but many ellipsoid definitions provide this factor instead of semi-minor axis length.
+</p>
+
+<pre><code>Unit&lt;Length&gt; units = ellipsoid.<code class="GeoAPI">getAxisUnit()</code>;
+<b>double</b> semiMajor   = ellipsoid.<code class="GeoAPI">getSemiMajorAxis()</code>;
         <code class="comment">// In units of measurement given above.
+</code><b>double</b> semiMinor   = ellipsoid.<code class="GeoAPI">getSemiMinorAxis()</code>;
         <code class="comment">// In units of measurement given above.
+</code><b>double</b> ivf         = ellipsoid.<code class="GeoAPI">getInverseFlattening()</code>;
     <code class="comment">// = semiMajor / (semiMajor - semiMinor).
+</code></code></pre>
+
+
 <h3 id="GeodeticDatum"><span class="section-number">5.1.2.</span> Geodetic
datum</h3>
 <p>
 For defining a geodetic system in a country, a national authority selects an ellipsoid matching
closely the country surface.
@@ -1413,10 +1435,54 @@ Today, at least six <abbr>WGS84</abbr> v
 Furthermore many borders were legally defined in legacy datums, for example <abbr>NAD27</abbr>
in <abbr>USA</abbr>.
 Updating data to the new datum would imply transforming some straight lines or simple geometric
shapes
 into more irregular shapes, if the shapes are large enough.
+</p><p>
+Contrarily to other kinds of objects introduced in this section,
+there is not many useful information that we can get from a <code class="GeoAPI">Datum</code>
instance except its name.
+It is difficult to translate in programming language how a datum is related to the Earth.
+Often, the most we can do is to consider that having two datums with different names implies
that the same location on Earth
+has different coordinate values when using those different datums, even if the ellipsoid
is identical in both cases.
+Coordinate transformations between datums require some kind of database.
 </p>
 
 <h3 id="CoordinateSystem"><span class="section-number">5.1.3.</span> Coordinate
systems</h3>
-<p style="color: red">TODO</p>
+<p>
+A Coordinate System (<abbr>CS</abbr>) defines the set of axes that spans a given
coordinate space.
+Each axis defines an approximative direction (north, south, east, west, up, down, port, starboard,
past, future, <i>etc.</i>),
+units of measurement, minimal and maximal values, and what happen after reaching those extremum.
+For example in longitude case, after +180° the coordinate values continue at −180°.
+But such loops may also exist in time axis. For example in climatological data defining normal
temperatures,
+after December the data sequence restarts to January; those months are associated to no particular
year.
+Axes having such behavior are associated to the <code class="GeoAPI">RangeMeaning.WRAPAROUND</code>
code.
+</p><p>
+Some properties that we can get from a coordinate system and its axes are shown below.
+Axes are numbered from 0 to <code>cs.getDimension()-1</code> inclusive.
+</p>
+
+<pre><code><code class="GeoAPI">CoordinateSystem</code> cs = crs.getCoordinateSystem();
+<code class="GeoAPI">CoordinateSystemAxis</code> secondAxis = cs.getAxis(1);
                <code class="comment">// For a geographic CRS, this is usually geodetic
longitude.
+</code>String        abbreviation = secondAxis.getAbbreviation();       <code class="comment">//
For a longitude axis, this is usually "λ", "L" or "lon".
+</code><code class="GeoAPI">AxisDirection</code> direction    = secondAxis.getDirection();
         <code class="comment">// For a longitude axis, this is usually EAST. Another
occasional value is WEST.
+</code>Unit&lt;?&gt;       units        = secondAxis.getUnit();           
   <code class="comment">// For a longitude axis, this is usually Units.DEGREE.
+</code><b>double</b>        minimum      = secondAxis.getMinimumValue();
      <code class="comment">// For a longitude axis, this is usually −180°. Another
common value is 0°.
+</code><b>double</b>        maximum      = secondAxis.getMaximumValue();
      <code class="comment">// For a longitude axis, this is usually +180°. Another
common value is 360°.
+</code><code class="GeoAPI">RangeMeaning</code>  atEnds       = secondAxis.getRangeMeaning();
      <code class="comment">// For a longitude axis, this is WRAPAROUND.
+</code></code></pre>
+<p>
+
+In addition to axis definitions, another important coordinate system characteristic is their
type
+(<code class="GeoAPI">CartesianCS</code>, <code class="GeoAPI">SphericalCS</code>,
<i>etc.</i>).
+The <abbr>CS</abbr> type implies the set of mathematical rules for calculating
geometric quantities like angles, distances and surfaces.
+Usually the various <abbr>CS</abbr> subtypes do not define any new Java methods
compared to the parent type,
+but are nevertheless important for type safety.
+For example many calculations or associations are legal only when all axes are perpendicular
to each other.
+In such case the coordinate system type is restricted to <code class="GeoAPI">CartesianCS</code>
in method signatures.
+</p><p>
+Coordinate systems are mathematical concepts; they do <strong>not</strong> contain
any information
+about where on Earth is located the system origin.
+Consequently coordinate systems alone are not sufficient for describing a location;
+they must be combined with a <cite>datum</cite> (or <cite>reference frame</cite>).
+Those combinations form the <cite>coordinate reference systems</cite> described
in next sections.
+</p>
 
 <h4 id="AxisOrder"><span class="section-number">5.1.3.1.</span> Axis order</h4>
 <p>

Modified: sis/site/trunk/content/book/fr/developer-guide.html
URL: http://svn.apache.org/viewvc/sis/site/trunk/content/book/fr/developer-guide.html?rev=1815684&r1=1815683&r2=1815684&view=diff
==============================================================================
--- sis/site/trunk/content/book/fr/developer-guide.html [UTF-8] (original)
+++ sis/site/trunk/content/book/fr/developer-guide.html [UTF-8] Sat Nov 18 17:49:42 2017
@@ -956,9 +956,11 @@ elles peuvent être le nom de la propri�
 ou le nom utilisé dans les diagrammes <abbr title="Unified Modeling Language">UML</abbr>
de la norme <abbr title="International Organization for Standardization">ISO</abbr>
19115
 (assez proche du nom de la propriété mais pas toujours identique).
 Les différences entre majuscules et minuscules sont ignorées si elles ne causent pas d’ambiguïtés.
+Pour plus d’information sur ce mécanisme de vues sur les méta-données, voir la Javadoc
du paquet
+<a href="../../apidocs/org/apache/sis/metadata/package-summary.html#package.description"><code
class="SIS">org.apache.sis.metadata</code></a>.
 </p><p>
-Parmi les éléments de méta-données présentés dans ce chapitre,
-il en est un qui fera l’objet d’un chapitre dédié: <code class="OGC">referenceSystemInfo</code>.
+Parmi les éléments de méta-données présentés dans ce chapitre, il en est un qui fera
l’objet
+d’un <a href="#Referencing">chapitre dédié</a>: <code class="OGC">referenceSystemInfo</code>.
 Son contenu est essentiel pour positionner précisément les données.
 Sans lui, même les positions exprimées sous forme de latitudes et longitudes sont ambigües.
 Les systèmes de références ont plusieurs caractéristiques qui les différencient des
autres méta-données:
@@ -976,6 +978,10 @@ et sont associés à un mécanisme perme
 <nav><div class="chapter-links"><div class="previous-chapter">⬅ <a
href="#DataAccess">Chapitre précédent</a></div><div class="next-chapter"><a
href="#Geometry">Chapitre suivant</a> ➡</div></div></nav>
 </header>
 <nav>Dans ce chapitre:<ul class="toc"/></nav>
+<p style="color:red; font-size:larger; font-weight:bold; text-align:center">
+Ce chapitre est une ébauche. Apache <abbr title="Spatial Information System">SIS</abbr>
0.8 n’offre pas encore de support des couvertures de données.
+L’ajout de ce support est en cours et sera disponible dans une version future.
+</p>
 <p>
 Les images, souvent nommées <i>rasters</i> en anglais, sont des cas particuliers
 d’une structure de données appelée <i>coverages</i>.
@@ -990,7 +996,7 @@ Un <i>coverage</i> est une fonction qui,
 retourne une valeur d’attribut. L’ensemble des valeurs pouvant être données en entrée
est appelé le domaine
 (<i>domain</i> en anglais), alors que l’ensemble des valeurs pouvant être
retournées est appelé <i>range</i> en anglais.
 Le domaine est souvent l’espace spatio-temporel couvert par les données,
-mais rien dans <abbr title="Spatial Information System">SIS</abbr> n’empêche
les couvertures de s’étendre à d’autres dimensions.
+mais rien dans <abbr>SIS</abbr> n’empêche les couvertures de s’étendre
à d’autres dimensions.
 Par exemple les études en thermodynamique utilisent souvent un espace dont les dimensions
sont la température et la pression.
 </p>
 <div class="example"><p><b>Exemple:</b>
@@ -1422,6 +1428,21 @@ Par exemple au début du XX<sup>e</sup>
 sur l’ellipsoïde « Clarke 1866 » mais auquel la longueur des axes a été allongée
de 800 pieds.
 Cette modification visait à tenir compte du niveau moyen de l’état au dessus du niveau
de la mer.</p>
 </div>
+<p>
+Les principales propriétés que l’on peut obtenir d’un ellipsoïde sont montrées ci-dessous.
+La longueur de l’axe semi-majeur est parfois appelée <cite>rayon équatorial</cite>
+et la longueur de l’axe semi-mineur <cite>rayon polaire</cite>.
+Le facteur d’aplatissement inverse (<cite>inverse flattening factor</cite>
en anglais)
+peut sembler superflu puisqu’il se calcule à partir des autres propriétés,
+mais plusieurs définitions d’ellipsoïdes fournissent ce facteur plutôt que la longueur
de l’axe semi-mineur.
+</p>
+
+<pre><code>Unit&lt;Length&gt; units = ellipsoid.<code class="GeoAPI">getAxisUnit()</code>;
+<b>double</b> semiMajor   = ellipsoid.<code class="GeoAPI">getSemiMajorAxis()</code>;
         <code class="comment">// In units of measurement given above.
+</code><b>double</b> semiMinor   = ellipsoid.<code class="GeoAPI">getSemiMinorAxis()</code>;
         <code class="comment">// In units of measurement given above.
+</code><b>double</b> ivf         = ellipsoid.<code class="GeoAPI">getInverseFlattening()</code>;
     <code class="comment">// = semiMajor / (semiMajor - semiMinor).
+</code></code></pre>
+
 
 <h3 id="GeodeticDatum"><span class="section-number">5.1.2.</span> Référentiel
géodésique</h3>
 <p>
@@ -1464,10 +1485,54 @@ Ainsi il existe aujourd’hui au moins s
 En outre beaucoups de bordures ont été définies légalement dans des référentiels plus
anciens, par exemple <abbr>NAD27</abbr> aux États-Unis.
 Mettre à jour dans un nouveau référentiel peut obliger à transformer des lignes droites
ou des formes géométriques simples en des formes plus irrégulières
 si on ne veut pas que des parcelles de terrain changent de propriétaire.
+</p><p>
+Contrairement aux autres types d’objets introduits dans cette section,
+il n’y a pas beaucoup d’information utile que l’on peut extraire d’une instance de
<code class="GeoAPI">Datum</code> à part son nom.
+Traduire en langage de programmation comment un référentiel est lié à la Terre est difficile.
+On se contente en général de considérer que si deux référentiels ont des noms différents,
+alors la même position sur la Terre aura des coordonnées différentes selon ces deux référentiels
(même si l’ellipsoïde est identique)
+et la transformation des coordonnées d’un référentiel à l’autre nécessitera l’utilisation
d’une base de données.
 </p>
 
 <h3 id="CoordinateSystem"><span class="section-number">5.1.3.</span> Systèmes
de coordonnées</h3>
-<p style="color: red">TODO</p>
+<p>
+Un système de coordonnées (<abbr title="Coordinate System">CS</abbr>) définit
l’ensemble des axes couvrant un espace de coordonnées.
+Chaque axe définit sa direction approximative (nord, sud, est, ouest, haut, bas, bâbord,
tribord, passé, futur, <i>etc.</i>),
+ses unités de mesures, les valeurs minimales et maximales permises et ce qui se passe lorsqu’on
atteint ces extremums.
+Par exemple dans le cas de la longitude, après +180° on revient à −180°.
+Mais de telles boucles peuvent aussi exister dans l’axe du temps.
+Par exemple dans des données climatologiques de la température normale,
+après le mois de décembre on revient au mois de janvier. Ces mois ne sont associés à
aucune année en particulier.
+Les axes ayant ce genre de comportement sont reconnaissables à la propriété <code class="GeoAPI">RangeMeaning.WRAPAROUND</code>.
+</p><p>
+Les principales propriétés que l’on peut obtenir d’un système de coordonnées sont
montrées ci-dessous.
+Les axes sont numérotés de 0 à <code>cs.getDimension()-1</code> inclusivement:
+</p>
+
+<pre><code><code class="GeoAPI">CoordinateSystem</code> cs = crs.getCoordinateSystem();
+<code class="GeoAPI">CoordinateSystemAxis</code> secondAxe = cs.getAxis(1); 
               <code class="comment">// Pour un système géographique, c’est habituellement
la longitude géodétique.
+</code>String        abbreviation = secondAxe.getAbbreviation();       <code class="comment">//
Pour l’axe des longitudes, c’est habituellement "λ", "L" ou "lon".
+</code><code class="GeoAPI">AxisDirection</code> direction    = secondAxe.getDirection();
         <code class="comment">// Pour l’axe des longitudes, c’est habituellement
EAST. On trouve aussi parfois WEST.
+</code>Unit&lt;?&gt;       unités       = secondAxe.getUnit();           
   <code class="comment">// Pour l’axe des longitudes, c’est habituellement Units.DEGREE.
+</code><b>double</b>        minimum      = secondAxe.getMinimumValue();
      <code class="comment">// Pour l’axe des longitudes, c’est habituellement −180°.
Une autre valeur courante est 0°.
+</code><b>double</b>        maximum      = secondAxe.getMaximumValue();
      <code class="comment">// Pour l’axe des longitudes, c’est habituellement +180°.
Une autre valeur courante est 360°.
+</code><code class="GeoAPI">RangeMeaning</code>  auxBouts     = secondAxe.getRangeMeaning();
      <code class="comment">// Pour l’axe des longitudes, c’est WRAPAROUND.
+</code></code></pre>
+<p>
+En plus de la définition des axes, une autre caractéristique importante des systèmes de
coordonnées est leur type
+(<code class="GeoAPI">CartesianCS</code>, <code class="GeoAPI">SphericalCS</code>,
<i>etc.</i>). Ce type implique un ensemble de règles mathématiques
+pour calculer des quantités géométriques telles que les angles, distances et surfaces.
+Les divers sous-types de <abbr>CS</abbr> ne définissent habituellement pas de
nouvelle méthodes Java comparativement au type parent,
+mais sont néanmoins importants.
+Par exemple plusieurs calculs ou associations ne sont valides qu’avec des axes perpendiculaires
entre eux.
+Dans ce cas, le système de coordonnées sera restreint au type <code class="GeoAPI">CartesianCS</code>
dans la signature des méthodes.
+</p><p>
+Les systèmes de coordonnées sont des concepts mathématiques;
+ils ne contiennent aucune information indiquant où sur la Terre se trouve leur origine.
+En conséquence, les systèmes de coordonnées seuls ne permettent pas de décrire une position
terrestre;
+ils doivent être combinés avec un <cite>référentiel</cite>.
+Ces combinaisons forment les <cite>systèmes de références des coordonnées</cite>
décrits dans les sections suivantes.
+</p>
 
 <h4 id="AxisOrder"><span class="section-number">5.1.3.1.</span> Ordre des
axes</h4>
 <p>
@@ -3300,7 +3365,7 @@ au gré des besoins.
 </p>
 <p>
 Le modèle conceptuel représenté par les interfaces est complexe. Mais cette complexité
peut être réduite en combinant certaines interfaces.
-Par exemple plusieurs bibliothèques, même réputées, ne font pas la distinction entre
<cite>Système de coordonnées</cite> (<abbr>CS</abbr>)
+Par exemple plusieurs bibliothèques, même réputées, ne font pas la distinction entre
<cite>Système de coordonnées</cite> (<abbr title="Coordinate System">CS</abbr>)
 et <cite>Système de <u>référence</u> des coordonnées</cite> (<abbr
title="Coordinate Reference System">CRS</abbr>).
 Un développeur qui lui non-plus ne souhaite pas faire cette distinction peut implémenter
ces deux interfaces par la même classe.
 Il peut en résulter une implémentation dont la hiérarchie de classes est plus simple que
la hiérarchie des interfaces de GeoAPI.



Mime
View raw message