Installing pyCRTM

Hi,

I am trying to install pyCRTM using https://github.com/JCSDA/pycrtm. I have CRTM v2.4 already installed (not sure if it was built with ecbuild). The README instructs to modify setup.cfg with CRTM installation path that contains lib/libcrtm.a. But in my installation libcrtm.a is under crtm-master/src/Build/libsrc , which also has all the .o and .mod files. I think this is causing trouble since the installation script is expecting lib/libcrtm.a. Could you please guide me on this?

However, I was able to install pyCRTM for CRTM v2.3 using https://github.com/karpob/pycrtm.git.

My use of pyCRTM is limited to calculating channel transmittance. Is there any difference in results for transmittance calculations using CRTM v2.3 and v2.4?

Thanks a lot,
Dhyey.

Hello @dhyey. No, for most cases there is no difference in the clearsky channel transmittance between v2.3 and v.2.4.

The directory in which libcrtm.a is located shouldn’t cause build issues with pycrtm.

Thanks a lot, @StegmannJCSDA. Since I will only use pyCRTM for calculating transmittance, I have decided to go forward with v2.3.

I have a few questions about setting up the pyCRTM.

  1. Even when I am running the exact same script for pyCRTM, it keeps giving me an invalid FOV index error. It runs perfectly if I close the terminal every time before running the script. Could you please suggest any solution for this?
  2. The definition of geometry was a little confusing. For airmass = 1 (nadir), I have currently set up satellite zenith angle (i.e., profiles.Angles[i,0] = 0) and scan angle (profiles.Angles[i,4] = 1). Is it the right way to set up for airmass = 1?
  3. I expected to get 2 sets of transmittance values, one for ODAS and ODPS. My coefficient file has both. But I am only getting 1 set of values in crtmOb.TauLevels output. Is it for ODAS or ODPS?

Thanks a lot,
Dhyey.

Hello @dhyey ,

Even when I am running the exact same script for pyCRTM, it keeps giving me an invalid FOV index error.

→ This might be a memory issue but I will double check.

The definition of geometry was a little confusing. For airmass = 1 (nadir), I have currently set up satellite zenith angle (i.e., profiles.Angles[i,0] = 0) and scan angle (profiles.Angles[i,4] = 1). Is it the right way to set up for airmass = 1?

→ I’m not sure what you mean by ‘airmass’ but yes, nadir corresponds to 0 degrees satellite zenith angle and the scan angle \theta_S is related to the zenith angle \theta_Z by the following formula:
\frac{sin\ \theta_Z}{R_{earth}+h_{Satellite}}=\frac{sin\ \theta_S}{R}

I expected to get 2 sets of transmittance values, one for ODAS and ODPS. My coefficient file has both. But I am only getting 1 set of values in crtmOb.TauLevels output. Is it for ODAS or ODPS?

→ The selection of ODPS or ODAS algorithm really depends on the type of instruments. MW and IR instruments typically use ODPS, whereas visible and UV instruments use ODAS.