ETHZ_Logo RAMSES_Logo_Right   RAMSES   RAMSES_Logo_Left Systems Ecology  
Start    search button      Modules:   A-Z   Function   Layer        QuickRefs:   DM   AuxLib   AuxLibE   SciLib   EasyMW   MW   ISIS   RMSLib

DEFINITION MODULE CHCoord;

  (*******************************************************************

    Module  CHCoord     (Version 1.0)

      Copyright (c) 1996-2006 by Dimitrios Gyalistras and ETH Zurich.

    Purpose   Conversion between Swiss coordinate system and
              longitude-latitude coordinates.

    Remarks   Used is an oblique conformal cylindrical projection
              (angles are preserved but areas are distorted).

              Precision is for Switzerland in the order of 10-50 cm, for
	          other regions of the globe (different reference coordinates)
	          in the order of 50-100 m.  Precision is always highest close
	          to the reference coordinates.  Errors may become relatively
	          large at a distance of more than 300-500 km from the reference.
	
	          The module was based on the program "invchall1.p" provided
              in Oct. 96 by Dr. Christoph Brandenberger, Kartographie/
	          Geodaetische Wissenschaften, ETH Zuerich.

              Reference:
                Bolliger, E. (1967). "Die Projektionen der Schweizerischen
                Plan- und Kartenwerke", Verlag Druckerei Winterthur AG,
                Winterthur.


    Programming

      o Design
        Dimitrios Gyalistras      30/10/1996

      o Implementation
        Dimitrios Gyalistras      30/10/1996


    ETH Zurich
    Systems Ecology
    CHN E 35.1
    Universitaetstrasse 16
    8092 Zurich
    SWITZERLAND

    URLs:
        <mailto:RAMSES@env.ethz.ch>
        <http://www.sysecol.ethz.ch>
        <http://www.sysecol.ethz.ch/SimSoftware/RAMSES>


    Last revision of definition:  31/10/1996  DG

  *******************************************************************)


  PROCEDURE GetRefCoordinates( VAR refLong, refLat       : LONGREAL;
                               VAR scaleFctr, refX, refY : LONGREAL );

  PROCEDURE SetRefCoordinates( refLong, refLat       : LONGREAL;
                               scaleFctr, refX, refY : LONGREAL;
                               VAR errTxt            : ARRAY OF CHAR ):BOOLEAN;
  (*
    Get/set reference coordinates of projection algorithm.
    Expected units for refX/refY are [m].  To use a different unit
    speficy "scaleFctr"<>1.0 (e.g. scaleFctr = 1000.0 for [km]).
    For Swiss maps use:
         refLong / refLat = 7.439537500 / 46.95219167
         scaleF           = 1.0
         refX    / refY   = 600000.0    / 200000.0
    For geodetical calculations in the Swiss  territory use:
         refLong / refLat = 7.439583333 / 46.95240556
         scaleF           = 1.0
         refX    / refY   = 600000.0    / 200000.0
    The first variant is the default.
  *)


  PROCEDURE LongLatToChCoord( long, lat : LONGREAL;
                              VAR x, y  : LONGREAL );


  PROCEDURE ChCoordToLongLat( x, y          : LONGREAL;
                              VAR long, lat : LONGREAL );


END CHCoord.

  Contact RAMSES@env.ethz.ch Last updated: 25-Jul-2011 [Top of page]