# As odinsmr_501.arts but the calculations are here done using a single # measurement block. # # The creation of the sensor response matrix takes here a longer time # and this option is most beneficial if the number of spectra is high # and there is a considerable overlap of the antenna pattern for # different tangent altitudes. # # A small part of an Odin-SMR scan is here considered. The tangent altitude # spacing is 1.5 km for the shortest integration time. # # Author: Patrick Eriksson Arts2 { INCLUDE "general.arts" INCLUDE "odin/odinsmr_501_absorption.arts" # Frequency grid ReadXML( f_grid, "odin/f_mono.SM_AC2ab.xml" ) # # Sensor characteristics # IndexSet( sensor_norm, 1 ) #--- Antenna: ---------------------------------------------------------------- # AntennaSet1D # Number of pencil beam directions and tangent altitudes IndexCreate( n_pbeams ) IndexSet( n_pbeams, 55 ) IndexCreate( n_tan ) IndexSet( n_tan, 5 ) # Final sensor_pos and los will here have length 1. The selection of # sensor_los is arbitrary as long as the sum of sensor_los and # antenna_los gives correct observation directions. It is here selected to # put sensor_los to 0. # The folder contains antenna pattern for different integration times. # The pattern for smallest integration time is selected here. ReadXML( antenna_response, "odin/antenna.SM_AC2ab.875ms.xml" ) # We need sensor_pos as input to *VectorZtanToZa1D* MatrixSetConstant( sensor_pos, n_pbeams, 1, 600e3 ) sensor_posAddRgeoid # Create vector of pencil beam directions VectorCreate( z_pbeams ) VectorNLinSpace( z_pbeams, n_pbeams, 37e3, 9e3 ) VectorZtanToZa1D( mblock_za_grid, sensor_pos, r_geoid, atmosphere_dim, z_pbeams ) # We need sensor_pos as input to *VectorZtanToZa1D* MatrixSetConstant( sensor_pos, n_tan, 1, 600e3 ) sensor_posAddRgeoid # Create vector of zenith angles for selected tangent altitudes VectorCreate( z_tan ) VectorNLinSpace( z_tan, n_tan, 26e3, 20e3 ) VectorCreate( za ) VectorZtanToZa1D( za, sensor_pos, r_geoid, atmosphere_dim, z_tan ) Matrix1ColFromVector( antenna_los, za ) # Set *sensor_pos* MatrixSetConstant( sensor_pos, 1, 1, 600e3 ) sensor_posAddRgeoid # Set *sensor_los* MatrixSetConstant( sensor_los, 1, 1, 0) # ----- End of antenna part -------------------------------------------------- # Mixer: # ReadXML( lo, "odin/lo.SM_AC2ab.xml" ) ReadXML( sideband_response, "odin/sideband.SM_AC2ab.xml" ) StringSet( sideband_mode, "upper" ) # Spectrometer: # ReadXML( f_backend, "odin/f_backend.SM_AC2ab.xml" ) ReadXML( backend_channel_response, "odin/backend_channel_response.xml" ) sensor_responseInit sensor_responseAntenna sensor_responseMixer sensor_responseIF2RF sensor_responseBackend } # End Arts