Skip to content

Why is Surface_Reflectivity always zero in RTSolution #322

Description

@chengdang

Why is Surface_Reflectivity always zero in RTSolution

Note that for the data structure RTSolution, Surface Reflectivity is always zero (in most cases) regardless of channels.

This is because in function Assign_Common_Input

FUNCTION Assign_Common_Input( &

  1. The weight of angle "Cosine_Sensor_Zenith" is set as zero:
      SfcOptics%Index_Sat_Ang        = RTV%n_Angles 
      RTV%COS_Angle( RTV%n_Angles )  = GeometryInfo%Cosine_Sensor_Zenith
      RTV%COS_Weight( RTV%n_Angles ) = ZERO
  1. Then the surface reflectivity is weighted by Gaussian weight, with the last angle being Cosine_Sensor_Zenith if Cosine_Sensor_Zenith is not equal to any Gaussian angles:
      DO j = 1, SfcOptics%n_Angles
        SfcOptics%Reflectivity(1:SfcOptics%n_Angles,1,j,1) = SfcOptics%Direct_Reflectivity(j,1)*SfcOptics%Weight(j)
      END DO
  1. The computed reflectivity is later assigned to RT solution as the final output:
...
    RTSolution%Surface_Reflectivity = SfcOptics%Reflectivity( SfcOptics%Index_Sat_Ang, 1, SfcOptics%Index_Sat_Ang, 1 )
...

Because SfcOptics%Weight(SfcOptics%n_Angles) is zero, SfcOptics%Reflectivity( SfcOptics%Index_Sat_Ang, 1, SfcOptics%Index_Sat_Ang, 1 ) is always zero regardless of solvers, channels, and surface type

Exception

The only exception would be if Cosine_Sensor_Zenith is almost equal to COS_Angle from function Double_Gauss_Quadrature. In this case, RTV%COS_Weight( RTV%Index_Sat_Ang ) != ZERO, but in this case, the surface reflectivity value is wrong.

      ! Search for a matching angle
      DO i = 1, RTV%n_Streams
        IF( ABS( RTV%COS_Angle(i) - GeometryInfo%Cosine_Sensor_Zenith ) < ANGLE_THRESHOLD ) THEN
          SfcOptics%Index_Sat_Ang = i         ! Identify the sensor zenith angle
          RTV%n_Angles = RTV%n_Streams
          ! *****FLAW*****
          ! CAN WE REPLACE THIS CONSTRUCT WITH ANOTHER
          GO TO 100
          ! *****FLAW*****
        END IF
      END DO

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions