Installing the software

Hardware requirements

Terminal

SourceXtractor++ runs in (ANSI) text-mode from a shell. A graphical environment is not necessary to operate the software.

Memory

Memory requirements depend mostly on the number of images to be analyzed. A rule of thumb is that SourceXtractor++ requires about 100MB of resident memory per input frame. Extra-memory is taken advantage of through caching of pixel data.

CPUs

SourceXtractor++’s measurement pipeline is multithreaded and can take advantage of multiple CPU cores. As of version 0.13, SourceXtractor++ scales reasonably well up to 8 cores.

Obtaining SourceXtractor++

From Fedora or EPEL repositories Fedora package

SourceXtractor++ is available in Fedora 30 and greater, and in EPEL 7 as well. On those platforms, you can use your package manager to install in the usual way:

# dnf install sourcextractor++

From Anaconda Cloud Conda

SourceXtractor++ is also available for Linux and MacOS via Anaconda cloud. You can install it as follows:

$ conda install -c conda-forge -c astrorama sourcextractor

Or you can, of course, add permanently the astrorama channel to your conda configuration:

$ conda config --add channels conda-forge
$ conda config --add channels astrorama
$ conda install sourcextractor

It is recommended to install SourceXtractor++ into its own environment to avoid dependency conflicts.

From Sources GitHub tag (latest SemVer)

The source package may be downloaded from the official GitHub repository. Links to binary packages for a selection of operating systems are also available at the URL above.

SourceXtractor++ relies on the Elements and Alexandria packages, which may be downloaded from Astrorama repositories. They are also available in Fedora and EPEL as elements and elements-alexandria.

It also requires the following packages for installation:

The following packages are optional:

All or most of these packages are available in the main Linux distributions. You will also need the -devel version of the packages if you compile SourceXtractor++ from the source.

If you have installed Elements and Alexandria from your distribution repository (right now, only in Fedora), you can skip the following section.

# dnf install elements-devel elements-alexandria-devel

Elements is a C++ and CMake framework. It is capable of managing the dependencies of the projects that are based on it, as long as it knows where to find them. By convention, this location usually is ~/Work/Projects, but you can choose any other.

$ export CMAKE_PROJECT_PATH=~/Work/Projects
$ export CMAKE_PREFIX_PATH=$CMAKE_PROJECT_PATH/Elements/cmake
$ mkdir -p $CMAKE_PROJECT_PATH

Since Python 2 has been deprecated since the 1st of January 2020, it is recommended to tell Elements and other projects to use Python 3 instead. You can also disable the build of documentation with -DUSE_SPHINX=OFF.

$ export CMAKEFLAGS="-DPYTHON_EXPLICIT_VERSION=3 -DUSE_SPHINX=OFF"

You can always add for convenience these environment variables to your .bashrc, or the one corresponding to your shell.

Elements can handle multiple versions of a given project, or with just one. For the later, it suffices to clone the project into $CMAKE_PROJECT_PATH.

$ cd $CMAKE_PROJECT_PATH
$ git clone https://github.com/astrorama/Elements.git --branch 5.10
$ cd Elements
$ make install -j # -j uses multiple cores

Similarly for Alexandria:

$ cd $CMAKE_PROJECT_PATH
$ git clone https://github.com/astrorama/Alexandria.git --branch 2.15
$ cd Alexandria
$ make install -j

If you have compiled and installed Elements and Alexandria as described on the above section, make sure you are using the proper environment.

$ export CMAKE_PROJECT_PATH=~/Work/Projects
$ export CMAKE_PREFIX_PATH=$CMAKE_PROJECT_PATH/Elements/cmake

For system-wide installs, this step is not necessary.

Configure the project flags if you have not yet done it:

$ export CMAKEFLAGS="-DPYTHON_EXPLICIT_VERSION=3 -DUSE_SPHINX=OFF"

As a reminder, that tells SourceXtractor++ to compile with Python 3, and not to build the documentation. SourceXtractor++ can be built with Python 2, but this is strongly discouraged.

The sources can be obtained either from the releases as a compressed archive, or cloned with git the usual way.

If you download an archived version, you need to uncompress it:

$ unzip SourceXtractorPlusPlus-<version>.zip

A new directory called SourceXtractorPlusPlus-<version> should now appear at the current location on your disk.

If you opt for cloning the repository, make sure you are pointing to the latest commit in the master branch.

$ git pull

Either way, enter the directory you have just created, and build the software.

$ cd SourceXtractorPlusPlus
$ make -j4

After the binaries are now compiled and available, SourceXtractor++ can be run with:

$ ~/Work/Projects/SourceXtractorPlusPlus/build/run sextractor++ --help