ray_path_observersFieldProfilePseudo2D
- Workspace.ray_path_observersFieldProfilePseudo2D(self, ray_path_observers: pyarts.arts.ArrayOfPropagationPathPoint | None = None, atmospheric_field: pyarts.arts.AtmField | None = None, surface_field: pyarts.arts.SurfaceField | None = None, ray_path_observer_agenda: pyarts.arts.Agenda | None = None, latitude: pyarts.arts.Numeric | None = None, longitude: pyarts.arts.Numeric | None = None, azimuth: pyarts.arts.Numeric | None = None, nup: pyarts.arts.Index | None = None, nlimb: pyarts.arts.Index | None = None, ndown: pyarts.arts.Index | None = None) None
Get a list of observer positions and line of sights to represent observing all angles of a profile.
Three observer types are added:
Downward looking. At the top-of-atmosphere, cover [za+e, 180] degrees zenith.
Limb looking. At top of the atmosphere, cover [90, za-e] degrees zenith.
Upward looking. At the surface, cover [0, 90] degrees zenith.
Here za is the surface tangent zenith angle from the top of the atmosphere. e indicates the smallest possible numerical offset from that angle in the signed direction.
Note
Each position has their zenith angle coverage linearly separated in degrees. To avoid the top-of-atmosphere limb singularity and bottom of atmosphere limb overlap, the limb zentih angle grid is divided into nlimb+1 segments. The 90 degree angle is then discarded.
Below is an example using this method to create a
ray_path_field
.import pyarts import numpy as np ws = pyarts.Workspace() ws.atmospheric_fieldRead(toa=100e3, basename="planets/Earth/afgl/tropical/") ws.surface_fieldEarth() ws.ray_path_observer_agendaSetGeometric( add_crossings=True, remove_non_crossings=True ) ws.ray_path_observersFieldProfilePseudo2D(nup=3, nlimb=3, ndown=3) ws.ray_path_fieldFromObserverAgenda() f, a = None, None for x in ws.ray_path_field: f, a = pyarts.plots.ray_path.polar_ray_path( x, draw_za_aa=True, draw_map=False, fig=f, axes=a )
(
Source code
,svg
,pdf
)Author(s): Richard Larsson
- Parameters:
ray_path_observers (ArrayOfPropagationPathPoint, optional) – A list path points making up the observers of a propagation path. See
ray_path_observers
, defaults toself.ray_path_observers
[OUT]atmospheric_field (AtmField, optional) – An atmospheric field in ARTS. See
atmospheric_field
, defaults toself.atmospheric_field
[IN]surface_field (SurfaceField, optional) – The surface field describes the surface properties. See
surface_field
, defaults toself.surface_field
[IN]ray_path_observer_agenda (Agenda, optional) – Get the propagation path as it is obeserved. See
ray_path_observer_agenda
, defaults toself.ray_path_observer_agenda
[IN]latitude (Numeric, optional) – A single latitude. See
latitude
, defaults toself.latitude
[IN]longitude (Numeric, optional) – A single longitude. See
longitude
, defaults toself.longitude
[IN]azimuth (Numeric, optional) – Azimuth angle for the observer. Defaults to
0
[IN]nup (Index) – Number of upward looking observers (min 2). [IN]
nlimb (Index) – Number of limb looking observers (min 2). [IN]
ndown (Index) – Number of downward looking observers (min 2). [IN]