WSL/SLF GitLab Repository

Commit 0fbd1c3b authored by Mathias Bavay's avatar Mathias Bavay
Browse files

New documentation has been added about the coordinate systems support. This is...

New documentation has been added about the coordinate systems support. This is now easily visible to the end user.
parent e1cc4a91
......@@ -26,6 +26,41 @@
using namespace IOUtils;
/**
* @page coords Available coordinate systems
* Geographic coordinates will be transparently and automatically converted to lat/lon and any other coordinate system that
* the client program uses. However, in order to do so, the input coordinate system must be specified. In order to output
* geolocalized data, the desired coordinate system must also be specified for the outputs (in the output section).
* This is done through the use of the COORDIN and COORDPARAM keys (see the documentation for each plugin).
*
* There are two ways of supporting a given coordinate system: through the use of an adhoc implementation
* (that becomes part of MeteoIO) or through the use of an external library, Proj4 [ref: http://trac.osgeo.org/proj/].
* The current internal implementations are the following (given by their keyword):
* - CH1903 for coordinates in the Swiss Grid [ref: http://geomatics.ladetto.ch/ch1903_wgs84_de.pdf]
* - UTM for UTM coordinates (the zone must be specified in the parameters, for example 31T) [ref: http://www.oc.nps.edu/oc2902w/maps/utmups.pdf]
* - LOCAL for local coordinate system (using the horizontal and vertical distance from a reference point, see Coords::geo_distances for the available choice of distance algorithms)
*
* Such an example of use is the following:
* @code
* COORDSYS = UTM
* COORDPARAM = 31T
* @endcode
*
* On the other hand, when using the Proj4 library for handling the coordinate conversion, the proj4 conversion
* string must be specified in the parameters. For example (for UTM zone 10 coordinates):
* @code
* COORDSYS = PROJ4
* COORDPARAM = +proj=utm +ellps=WGS84 +zone=10
* @endcode
* It is also possible to use EPSG codes (such codes can be found at http://spatialreference.org/ref/epsg/?page=1)
* as illustrated below (21781 is the EPSG code for the CH1903 coordinate system):
* @code
* COORDSYS = PROJ4
* COORDPARAM = +init=epsg:21781
* @endcode
*
*/
const struct Coords::ELLIPSOID Coords::ellipsoids[] = {
{ 6378137., 6356752.3142 }, //E_WGS84
{ 6378137., 6356752.3141 }, //E_GRS80
......
......@@ -27,6 +27,17 @@
class Coords; //forward declaration
typedef void(Coords::*convfunc)(double, double, double&, double&) const;
/**
* @class Coords
* @brief A class to handle geographic coordinate systems.
* This class offers an easy way to transparently convert between various coordinate systems. For any
* given object, as soon as a latitude/longitude can be computed/read, it will be used as a reference.
* This means that every subsequent change of projection system or read will be the conversion of this
* reference lat/lon position (until a new "set" is called). See Coords::setProj for the supported coordinate systems.
* @author Mathias Bavay
* @date 2009-01-20
*/
#ifdef _POPC_
class Coords : POPBase {
public:
......
......@@ -35,6 +35,7 @@
* -# End User documentation
* -# \subpage general "General concepts"
* -# \subpage plugins "Available plugins" and usage
* -# \subpage coords "Available coordinate systems" and usage
* -# \subpage filters "Available filters" and usage
* -# \subpage interpol2d "Available spatial interpolations" and usage
* -# Programing using MeteoIO
......@@ -98,8 +99,7 @@
*
* [Output]
* COORDSYS = CH1903
* COORDPARAM = -999
*
*
* GRID2D = ARC #plugin to use for writing 2D grids
*
* [Filters]
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment