ORAC-CC / orac

Optimal Retrieval of Aerosol and Cloud
GNU General Public License v3.0
30 stars 19 forks source link

External SEVIRI CMA/CPH neural network implementation in ORAC #37

Closed danielphilipp closed 3 years ago

danielphilipp commented 4 years ago

This PR contains:

  1. Introduction of the external SEVIRI neural network library for cloud detection and phase determination (ORAC-CC/orac/external_ml/seviri). The library's core consists of Python routines doing the actual neural network prediction using Keras and the Theano backend. Also included is a F90 file used as an interface to ORAC and a C file calling the Python scripts via the Python C-API. The Python scripts read a driver file (nn_driver.txt) which contains the configuration (paths to models, thresholds, uncertainty parameters ...).

  2. Modification of ORAC preprocessor files to handle the external SEVIRI neural network library. As this library is optional it is only requested when the preprocessor is compiled with -DINCLUDE_SEVIRI_NEURALNET and the newly introduced optional preprocessor driver file option USE_SEVIRI_ANN is set to True (defaults to False). In case the SEVIRI neural network library is not preferred, the standard AVHRR-like ANNs are used. If the external cloud detction/phase determination is used, it is called once before the cloud typing loop and the AVHRR-like ANNs for CMA and CPH inside the loop are omitted. Also the "mimic NOAA19" correction is not applied in this case.

simonrp84 commented 4 years ago

Thanks for the PR, Daniel! I'll take a look through this next week.