Skip to content

ECCC-ASTD-MRD/GenPhysX

Repository files navigation

GenPhysX Description

GenPhysX is the modern and easy-to-use surface fields generator at the CMC. It processes several geospatial databases, specifically averaging, counting, slope and aspect calculations and more. It supports hundreds of geospatial data file formats, including RPN standard files, and seamlessly manages geographical projections and datum. GenPhysX can generate surface fields at any scale for anywhere in the world. GenPhysX uses SPI at its core.

A set of databases are queried by GenPhysX to create model fields of quantities including:

  • Mean orography
  • Land/sea mask
  • Fraction of various vegetation classes
  • Soil types
  • Subgrid-scale fields (e.g. roughness length, launching height, etc.)

GenPhysX is the next-generation geophysical field generator, and is intended to replace both gengeo and genesis. Updates to both the algorithms and the underlying geospatial databases are intended to enhance GenPhysX results in comparison with its predecessors, particularly for high resolution grids.

Getting the source code

git clone --recursive [email protected]:ECCC_CMOE_APPS/GenPhysX

Building GenPhysX

You will need cmake with a version at least 3.21

. ssmuse-sh -x /fs/ssm/main/opt/cmake-3.21.1

Building GenPhysX

Optional dependencies

  • codetools and compilers
. r.load.dot rpn/code-tools/ENV/cdt-1.6.1/SCIENCE/inteloneapi-2022.1.2
. r.load.dot rpn/libs/20230125
  • External dependencies (GDAL. Within the ECCC/SCIENCE network, a package containing all the dependencies can be loaded
export CMD_EXT_PATH=/fs/ssm/eccc/cmd/cmds/ext/20210211; . ssmuse-sh -x $CMD_EXT_PATH

Environment setup (At CMC)

Source the right file depending on the architecture you need from the env directory. This will load the specified compiler and define the ECCI_DATA_DIR variable for the test datasets

  • Example for PPP6 and icelake specific architecture:
. $ECCI_ENV/latest/ubuntu-18.04-skylake-64/inteloneapi-2022.1.2.sh
  • Example for XC50 on intel-19.0.5
. $ECCI_ENV/latest/sles-15-skylake-64/intel-19.0.5.281.sh
  • Example for CMC network and gnu 7.5:
. $ECCI_ENV/latest/ubuntu-18.04-amd-64/gnu-7.5.0.sh

Build, install and package

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$SSM_DEV/workspace -DeerUtils_ROOT=$SSM_DEV/workspace/eerUtils_4.1.1-inteloneapi-2022.1.2_rhel-8-icelake-64/ ../
make -j 4
make test
make install
make package