We are finalising the upcoming PCRaster 4.2 release. Briefly, the main new features are the new multicore module for PCRaster Python, support for Python 3, and enabling large file support on Windows systems.
PCRaster support for Python 3
The lifetime of Python 2 is coming to an end, Python 3 is now widely used and even conservative Linux distributions like RedHat will switch to Python 3 as default version in their upcoming major release. We now support Python 2 or 3 on Linux distributions. Python version 3.6 is now our supported version by default on Windows.
The PCRaster multicore module
The new PCRaster Python multicore module contains alternative implementations of a subset of the PCRaster operations that are capable of distributing their workload across more than one CPU core, therefore improving the runtime performance of those operations. Modifications to existing model scripts are not required. The multicore module can be enabled just by setting an environment variable.
Support for files larger than 2 GB on Windows systems
With previous PCRaster versions it was on Windows systems impossible to generate raster maps larger than 2 GB, this issue is resolved now. We also updated the PCRaster driver in GDAL, version 2.2.4 or later is required to use the new functionality.
Further improvements and Windows package
We unified the documentation of all our projects. We also spent significant efforts in improving our code base as well as the build system for different operating systems. Supporting several platforms should be more straightforward now.
Please check out the release candidate for Windows 64-bit. In case no major bugs are found, we plan to release the final version of PCRaster 4.2 within a few weeks.
Build your own PCRaster
We already mentioned earlier that we will no longer distribute compiled versions of PCRaster for Linux systems. Users will need to build their own package, but we strive to make that process simple. Debian testing users, for example, can try this:
$ sudo apt install cmake gcc g++ git libboost-all-dev libgdal-dev libncurses5-dev libpython-dev libqwt-qt5-dev libxerces-c-dev libxml2 libxml2-utils libxslt1-dev python-numpy qtbase5-dev xsdcxx python-docopt
$ mkdir pcraster42rc1 && cd pcraster42rc1
$ git clone --recursive https://github.com/pcraster/pcraster.git
$ mkdir build
$ cd build && cmake -DFERN_BUILD_ALGORITHM:BOOL=TRUE ../pcraster && cmake --build .
We will provide build instructions for other Linux distributions in another post.