wxPython for the rttov gui

Viewing 13 posts - 16 through 28 (of 28 total)
  • Author
    Posts
  • #13254
    Amirhossein NikfalAmirhossein Nikfal
    Participant

    Hi James,

    I’m not sure. After activating the virtual environment by conda, I installed the required packages by the following command: conda install package_name

    Amir

    #13255
    James HockingJames Hocking
    Keymaster

    Hi Amir,

    Which website did you download conda from? Anaconda is the full distribution:
    https://www.anaconda.com/distribution/

    While miniconda is a minimal distribution:
    https://docs.conda.io/en/latest/miniconda.html

    Pascale is recommending the second one, miniconda.

    Best wishes,
    James

    #13283
    Amirhossein NikfalAmirhossein Nikfal
    Participant

    Dear James and Pascale,

    I reinstalled the rttov model with a python environment created by miniconda. However, the previous problem during launching rttov-gui persists with the same error messages:

    [ah@localhost gui]$ source rttov_gui.env
    [ah@localhost gui]$ ./rttovgui

    File “rcontroller/controller.py”, line 15, in <module>
    import rmodel
    File “/home/ah/rttov/gui/rmodel/__init__.py”, line 1, in <module>
    from . import project
    File “/home/ah/rttov/gui/rmodel/project.py”, line 29, in <module>
    import rttov
    File “/home/ah/rttov/gui/rttov/__init__.py”, line 22, in <module>
    from . import getcoefval
    File “/home/ah/rttov/gui/rttov/getcoefval.py”, line 7, in <module>
    from rttov_gui_f2py import rttov_gui_get_coef_val_i0, \
    ImportError: /lib64/libssh.so.4: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b

    I have set the RTTOV_GUI_PREFIX variable in the rttov_gui.env file correctly, and have installed all the required python packages, such as wxpython, matplotlib, …

    Anyway, if the problem is not going to be solved, I hope I won’t have much trouble with the rttov model, without its GUI.

    Many thanks for your kind support
    Amir

    #13284
    James HockingJames Hocking
    Keymaster

    Hi Amir,

    Sorry to hear you’re still having problems running the GUI. Googling for the phrase:

    “undefined symbol evp_kdf_ctrl version openssl_1_1_1b”

    taken from the error message you are getting, gives a several results where people see similar errors when installing different bits of software under Fedora. This suggests it is some sort of library version mismatch on your system rather than a problem with the RTTOV GUI.

    If I run ldd on my build of rttov_gui_f2py.so, I cannot see any dependency on libssh:
    $ ldd lib/rttov_gui_f2py.so

    If you do this, do you see libssh appearing in the list? If so, my guess is that your RTTOV build is linking against the conda version of libssh at compile-time, but is dynamically linking to the system version at run-time (or vice versa) and they are different versions, hence the error. But then it isn’t obvious to me why there is a dependency on libssh.

    Please note though that you do not need to run the GUI to use RTTOV: you can call RTTOV directly from Fortran (the usual method). It is also possible to use the RTTOV Python wrapper if you prefer which gives access to much RTTOV functionality in Python: however, it’s not clear to me whether or not the same problem you are encountering with the GUI will cause problems with the Python wrapper. Finally, there is also a C++ wrapper, similar to the Python one, if you prefer C++.

    Best wishes,
    James

    #13285
    Amirhossein NikfalAmirhossein Nikfal
    Participant

    Hi James,

    Thank you for the guidance. I am OK with FORTRAN, since many atmospheric models, particularly WRF, are based on FORTRAN codes.

    Once again, I tried to compile the model. In the previous compilations, I did not have installed the f2py package (python2-numpy-f2py) in the Linux environment, rather by activating the conda environment, build/rttov_compile.sh could find f2py installed.

    This time I compiled it manually by installing python2-numpy-f2py, without using build/rttov_compile.sh and without activating conda environment; but the same errors (… libssh.so.4: undefined symbol …) kept appearing.

    I also compiled the model in another Fedora OS (29, scientific) instead of Fedora-31. It showed similar errors, but this time, the libssh issue was replaced by libcurl:

    Traceback (most recent call last):
    File “rcontroller/controller.py”, line 15, in <module>
    import rmodel
    File “/home/ah/rttov/gui/rmodel/__init__.py”, line 1, in <module>
    from . import project
    File “/home/ah/rttov/gui/rmodel/project.py”, line 29, in <module>
    import rttov
    File “/home/ah/rttov/gui/rttov/__init__.py”, line 22, in <module>
    from . import getcoefval
    File “/home/ah/rttov/gui/rttov/getcoefval.py”, line 7, in <module>
    from rttov_gui_f2py import rttov_gui_get_coef_val_i0, \
    ImportError: /lib64/libcurl.so.4: symbol SSLv3_client_method version OPENSSL_1_1_0 not defined in file libssl.so.1.1 with link time reference

    For this case, rather than libssh or libcurl, it seems that OPENSSL is something which must be handled to get a flawless installation of RTTOV-GUI. Furthermore, libssh appears in the output of ldd lib/rttov_gui_f2py.so for all the installations.

    Best,
    Amir

    #13287
    James HockingJames Hocking
    Keymaster

    Hi Amir,

    Assuming I’m right in thinking that it is a conflict between the miniconda and system library versions, you could try updating your LD_LIBRARY_PATH before running RTTOV.

    Assuming that RTTOV is linking against the miniconda versions of the library, you can do the following:

    $ export LD_LIBRARY_PATH=/your/path/to/miniconda/lib:$LD_LIBRARY_PATH

    where obviously you need to use the path of your miniconda lib/ directory.

    Then if you run RTTOV in the same terminal it should pick up the miniconda libraries rather than the system ones.

    Best wishes,
    James

    #13288
    Amirhossein NikfalAmirhossein Nikfal
    Participant

    Hi James,

    After setting LD_LIBRARY_PATH to the miniconda libraries, the compilation of RTTOV is not successful, with almost the same error about libssh.

    Best wishes,
    Amir

    #13290
    James HockingJames Hocking
    Keymaster

    Hi Amir,

    If you can work with Fortran then I would suggest doing that. If you have more questions do let us know. The GUI only provides access to a subset of RTTOV functionality, and if you are simulating many profiles you would not want to use the GUI anyway.

    I’m not sure what to suggest to get the GUI working: we haven’t seen this problem before, and it would seem that usually the RTTOV libraries do not end up with any dependency on OpenSSL/libssl etc so I don’t know where that is coming from in your case. I am pretty convinced the errors are due to version mismatches between the conda libraries and your system libraries, but I’m not sure how to resolve them. If it is not possible to compile and run RTTOV against either the conda or system libraries, then maybe it’s possible to revert the versions of the conda libraries to the same as your system ones (I assume the conda ones are the more recent), but this is probably not simple, and may not work as it will affect dependencies among the other conda packages/libraries.

    Best wishes,
    James

    #13291
    Amirhossein NikfalAmirhossein Nikfal
    Participant

    Hi James,

    Thank you for all the guidance and support. I prefer to focus on RTTOV, but in the future if I get the GUI working, I will report it here.

    Best wishes,
    Amir

    #13262
    Amirhossein NikfalAmirhossein Nikfal
    Participant

    James,

    I installed conda via the Linux package manager (dnf). The repository channels of conda are:
    https://repo.anaconda.com/pkgs/main/linux-64
    https://repo.anaconda.com/pkgs/main/noarch
    https://repo.anaconda.com/pkgs/r/linux-64
    https://repo.anaconda.com/pkgs/r/noarch

    Amir

    #13268
    Amirhossein NikfalAmirhossein Nikfal
    Participant
    #13264
    Amirhossein NikfalAmirhossein Nikfal
    Participant

    James,

    I installed conda with the Linux package manager (dnf). The repository channels of this installation of conda are:
    https://repo.anaconda.com/pkgs/main/linux-64
    https://repo.anaconda.com/pkgs/main/noarch
    https://repo.anaconda.com/pkgs/r/linux-64
    https://repo.anaconda.com/pkgs/r/noarch

    Amir

    #13263
    Amirhossein NikfalAmirhossein Nikfal
    Participant

    Hi James,

    I installed conda via the Linux package manager (dnf). The repository channels of the conda are:

    https://repo.anaconda.com/pkgs/main/linux-64
    https://repo.anaconda.com/pkgs/main/noarch
    https://repo.anaconda.com/pkgs/r/linux-64
    https://repo.anaconda.com/pkgs/r/noarch

    Amir

Viewing 13 posts - 16 through 28 (of 28 total)
  • You must be logged in to reply to this topic.