MaRC - Map Reprojections and Conversions - is a program and library designed to produce map projections from digital images or from computed values of incidence, emission or phase angles, and latitudes and longitudes. Multi-plane maps can be created with digital image data in several planes and incidence, emission, phase angles, latitudes and longitudes in other planes. Placement of data in a given plane is completely arbitrary. The user decides in what plane to place a given set of data. Created maps are stored in FITS (Flexible Image Transport System) format.
MaRC may either be built from a source tar
archive or from a clone
of its source repository on GitHub. If you're an end-user that just
wants to run MaRC, building from the self-contained source tar
archive will get you up and running sooner.
The quickest way to get started with MaRC is to download the
self-contained source tar
archive (e.g. marc-0.9.11.tar.gz
) from
the releases page.
Other than required third party programs and libraries it contains
everything needed to build and install MaRC. Once the prerequisites
are installed, simply build MaRC as follows:
tar xf marc-0.9.11.tar.gz
cd marc-0.9.11
./configure
make
The MaRC binary will reside in the "src" subdirectory. Documentation will be in the "doc" subdirectory if your system has the necessary text utilities to build them.
Additional build details and instructions may be found in the
INSTALL
file shipped with the self-contained source tar
archive,
as well as by passing the --help
command line option to the
configure
script.
If you plan on contributing to MaRC or want the latest unreleased code, it is best to clone MaRC from its GitHub repository. However, you will need to satisfy additional build prerequisites. See the Prerequisites section below for additional details. Once all prerequisites have been satisfied, clone and build MaRC as follows:
git clone [email protected]:ossama-othman/MaRC.git
cd MaRC
./bootstrap
./configure
make
MaRC is currently only supported on Unix-like platforms, and has the following build dependencies:
-
C++ compiler
- The C++ compiler should support the C++17 standard or better. MaRC is known to build with g++ and clang++, but it should work with other C++17 conforming compilers.
-
CFITSIO library
- Often available as prepackaged binaries on various platforms. Additional details are available on the CFITSIO homepage.
Additional dependencies exist when building MaRC from Git, when performing maintainer-like modifications to the MaRC package as a whole, or generating a new source distribution:
- GNU Autotools
- Text Parser and Scanner Generators
- Documentation Generators and Converters
- macOS
- The easiest way to get MaRC up and running on macOS is to install the required software listed above through the Homebrew package manager.
MaRC's build infrastructure supports the usual GNU Autotool provided
build and install targets, including the install
target. To install
MaRC, run make
as follows:
make install
For example, on Linux platforms where the default installation prefix
is /usr/local
MaRC file installation locations could be the
following:
File | Location |
---|---|
marc |
/usr/local/bin |
libmarc |
/usr/local/lib |
MaRC headers | /usr/local/include/marc |
documentation | /usr/local/share/marc |
man pages | /usr/local/share/man/ |
Further details are available in the INSTALL
file.
MaRC's test suite may be run from the top-level source directory after
the configure
script has been run like so:
make check
Code coverage results may also be generated by building MaRC and running tests like so:
./configure --enable-code-coverage
make check-code-coverage
This requires gcov
and lcov
to be
installed. HTML formatted code coverage results will be stored in a
folder in the top-level source directory, e.g. MaRC-0.9.11-coverage
.
Note that enabling code coverage instrumentation disables
optimization.
Please ensure you adhere to the MaRC code of conduct when contributing to MaRC.
Please submit bug reports and feature requests through the MaRC issues page.
MaRC is licensed under several open-source licenses:
See the THANKS file for a list of people who contributed significantly to MaRC.