From 8edc558322dc94601005829091d1e3eda33c6dc0 Mon Sep 17 00:00:00 2001 From: jmmuller Date: Thu, 16 May 2024 17:28:52 +0200 Subject: [PATCH] sysco: update doc and readme --- MMVII/Doc/CommandReferences/SysCo.tex | 26 ++++++++++++++------------ MMVII/Readme.md | 18 +++++++++--------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/MMVII/Doc/CommandReferences/SysCo.tex b/MMVII/Doc/CommandReferences/SysCo.tex index 20efb22ad3..ef8da0c371 100644 --- a/MMVII/Doc/CommandReferences/SysCo.tex +++ b/MMVII/Doc/CommandReferences/SysCo.tex @@ -8,9 +8,7 @@ \chapter{SysCo manipulation} \section{SysCo introduction} -{\tt MMVII} can import and export data from many coordinate systems (SysCo). - -SysCo types supported by {\tt MMVII} are: +Coordinate systems (SysCo) types supported by {\tt MMVII} are: \begin{itemize} \item \textbf{Local}: any euclidian frame, without any geolocalization or vertical knowledge. \item \textbf{GeoC}: geocentric coordinates. @@ -22,29 +20,33 @@ \section{SysCo introduction} When the SysCo is known or declared for an Ori or Measures folder, a file named {\tt CurSysCo.xml} is created to record it. +This file can be copied into {\tt MMVII-PhgrProj/SysCo/} with a short name to be used in next commands. +Example: copy {\tt CurSysCo.xml} as {\tt MMVII-PhgrProj/SysCo/MyCRS.xml}, to be able to use {\tt MyCRS} +as a SysCo name. + \section{Setting SysCo} \subsection{MMVII Commands} To inform {\tt MMVII} of the SysCo of some data, there are several methods: \begin{itemize} -\item Some importations have an implicit SysCo, E.G. {\tt ImportInitExtSens} that suppose that RPC are always in WGS geographical coordinates in degrees. -\item {\tt ImportOri} let you give the SysCo with {\tt SysCo} option. -\item {\tt ImportGCP}: let you transform ground coordinates on-the-fly with {\tt ChSys} option. -\item {\tt OriChSysCo} and {\tt GCPChSysCo}: let you transform Ori and ground points from one SysCo into an other. +\item Some importation commands have an implicit SysCo, e.g. {\tt ImportInitExtSens} that suppose that RPC are always in WGS geographical coordinates in degrees. +\item {\tt ImportOri} let you tell the SysCo with {\tt SysCo} option. +\item {\tt ImportGCP} let you transform ground coordinates on-the-fly with {\tt ChSys} option. +\item {\tt OriChSysCo} and {\tt GCPChSysCo} let you transform Ori and ground points from one SysCo into an other. \end{itemize} \subsection{SysCo definition} The SysCo definitions to give to {\tt MMVII} commands can be: \begin{itemize} -\item The name of a file in source sub-folder {\tt MMVII/MMVII-RessourceDir/SysCo} or in project sub-folder {MMVII-PhgrProj/SysCo}, without its extension. -\item Any {\tt libproj} definition (such as {\tt IGNF:LAMB93} or {\tt EPSG:4326}) +\item The name of a file in source sub-folder {\tt MMVII/MMVII-RessourceDir/SysCo} or in project sub-folder {\tt MMVII-PhgrProj/SysCo}, without its extension. +\item Any {\tt libproj} definition (such as {\tt IGNF:LAMB93}, {\tt EPSG:4326} or {\tt '+proj=merc +lat\_ts=56.5 +ellps=GRS80'}) \item Any string starting with {\tt Local} for a local frame \item Any string starting with {\tt GeoC} for geocentric -\item A string starting with {\tt LGeo} following the pattern: +\item A string starting with {\tt LGeo}, with the pattern: {\tt LGeo*TX*TY*TZ*Omega*Phi*Kappa}, where the transformation is given in geocentric, the angles are in rad. -\item A string starting with {\tt RTL} following the pattern: {\tt RTL*X0*Y0*Z0*Def} +\item A string starting with {\tt RTL}, with the pattern: {\tt RTL*X0*Y0*Z0*Def} (such as {\tt RTL*0.67451979*45.18899334*0.00000000*EPSG:4326}), where you give the coordinates in a certain system of the tengance point of the local frame. Tip: use {\tt SysCoCreateRTL} command to make it automatically (see ~\ref{SysCoRTL}). @@ -59,7 +61,7 @@ \subsection{Examples} \item {\tt SysCo=LocalPanel} will set the SysCo to a local system definied as "LocalPanel", that will not be convertible into any other SysCo. \item {\tt SysCo=IGNF:LAMB93} will set the SysCo to Lambert93. \item {\tt SysCo=RTL*0.67451979*45.18899334*0*EPSG:4326} will set the SysCo to a tangent local euclidian frame where origin is $0.67451979, 45.18899334, 0$ in EPSG:4326. -\item {\tt SysCo=Toto} will use a project-defined SysCo if {MMVII-PhgrProj/SysCo/Toto.xml} exists. If not, "Toto" will be used as a libproj definition, and an error will occur. +\item {\tt SysCo=Toto} will use a project-defined SysCo if {\tt MMVII-PhgrProj/SysCo/Toto.xml} exists. If not, "Toto" will be used as a libproj definition, and an error will occur. \item {\tt SysCo=GeoC} will set the SysCo to geocentric coordinates. \end{itemize} diff --git a/MMVII/Readme.md b/MMVII/Readme.md index e19dc2bdc3..aa0f125f01 100755 --- a/MMVII/Readme.md +++ b/MMVII/Readme.md @@ -4,13 +4,13 @@ Dependencies - Optional: OpenMP, ccache - Ubuntu 20.04: - - `sudo apt install ccache cmake libproj-dev proj-data` + - `sudo apt install ccache cmake pkg-config libproj-dev proj-data` - If using CLang version XX and want OpenMP: `sudo apt install libomp-XX-dev` - MacOs: - Install/check XCode is installed (xcode-select --version) - - Install brew : `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` - - Install libX11,qt : + - Install brew: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` + - Install libX11, qt and proj: - `brew install libX11` - `brew install qt` - `brew install proj` @@ -20,10 +20,10 @@ Dependencies - `export CPPFLAGS="-I/usr/local/opt/llvm/include"` -Compilation (short) : --------------------- +Compilation (short) +------------------- - Compile MicMac V1, then (replace N with the number of processor threads) : + Compile MicMac V1, then (replace N with the number of processor threads): cd MMVII mkdir -p build @@ -36,12 +36,12 @@ Compilation (short) : make -j N - Tests : + Tests: ../bin/MMVII Bench 1 - Compilation targets : + Compilation targets: all|(none) : build MMVII full : re-generate files for symbolic calculus and build MMVII @@ -56,7 +56,7 @@ Compilation (short) : make full -Compilation (detail): +Compilation (detail) -------------------- - You can use `cmake -G Ninja ..` to use Ninja build system instead of the native one. (`sudo apt install ninja-build`) - Use `cmake --build . -j 8 [--target TARGET]` or `cmake --build . -j 8 -v [--target TARGET]` instead of make (works with all build systems)