#DEFINITIONS: -*-sh-*- # -------------------------------------------------------------------- # This is the part of the TestMHS control files that is the same for # MHS and MHS. # # DO NOT RUN THIS FILE DIRECTLY, RUN TestMHS.arts! # -------------------------------------------------------------------- Arts2 { # Set up absorption # ================= # (standard) emission calculation Copy( iy_main_agenda, iy_main_agenda__Emission ) # cosmic background radiation Copy( iy_space_agenda, iy_space_agenda__CosmicBackground ) # standard surface agenda (i.e., make use of surface_rtprop_agenda) Copy( iy_surface_agenda, iy_surface_agenda__UseSurfaceRtprop ) # sensor-only path Copy( ppath_agenda, ppath_agenda__FollowSensorLosPath ) # no refraction Copy( ppath_step_agenda, ppath_step_agenda__GeometricPath ) # Atmospheric profiles # --- # Atmospheric profiles are stored in an ArrayOfGriddedField4. # It contains one GriddedField4 for each atmospheric state. # ReadXML( batch_atm_fields_compact, "chevallierl91_clear_q_extract.xml" ) # add constant profiles for O2 and N2 batch_atm_fields_compactAddConstant( name="abs_species-O2", value=0.2095 ) batch_atm_fields_compactAddConstant( name="abs_species-N2", value=0.7808 ) # Set parameters for lookup table # --- # Arguments omitted for better maintainability of this test file. #abs_lookupSetupWide abs_lookupSetupBatch # Optional manual override of T and VMR perturbations # --- # If your input data contains extreme outliers, the lookup table will # get unreasonably large. It is suggested that you instead set them # manually here. The Chevallier 91L data (humidity set) contains # temperature variations from -70 to +55 (°C) and humidity variations from # 0 to 6 (fractional units). This should be the reasonable range of # atmospheric variability. You will get failures from individual jobs in # the batch, that are outside this range. #VectorLinSpace( abs_t_pert, -70, 55, 5 ) #VectorLinSpace( abs_nls_pert, 0, 6, 0.5 ) # Create the lookup table # --- abs_xsec_agenda_checkedCalc jacobianOff abs_lookupCalc # Test (and print) lookup table accuracy # --- # This method is not necessary, it just tests and prints the lookup # table accuracy. Comment it out if you do not want this # information. The test should take approximately as much time as the # lookup table generation, perhaps even more. So, it is not cheap! #abs_lookupTestAccuracy # Set propmat_clearsky_agenda to use lookup table # --- Copy( propmat_clearsky_agenda, propmat_clearsky_agenda__LookUpTable ) # Set up RT calculation # ===================== # Set surface reflectivity (=1-emissivity) # --- # Here we take a value representative for the sea surface. VectorSetConstant( surface_scalar_reflectivity, 1, 0.4 ) # Definition of sensor position and LOS # --- # Optionally set sensor_pos # --- # The sensor altitude is predefined in mhs.arts to 850 km above the geoid. # Comment out the next two lines if you want to set it to something else. MatrixSetConstant( sensor_pos, 1, 1, 850e3 ) # Optionally set sensor_los # --- # The sensor viewing directions for MHS are predefined in mhs.arts. # There are 45 different angles, corresponding to one side of the MHS # Scan. You can instead set it here to a single value if you want to # calculate only for one viewing angle. MatrixSetConstant( sensor_los, 1, 1, 180 ) # Set the agenda for batch calculations: # --- # AgendaSet( ybatch_calc_agenda ){ # Extract the atmospheric profiles for this case: Extract( atm_fields_compact, batch_atm_fields_compact, ybatch_index ) # Split up *atm_fields_compact* to # generate p_grid, t_field, z_field, vmr_field: AtmFieldsFromCompact # Optionally set Jacobian parameters. # uncomment this for NO jacobian calculations jacobianOff # Uncomment this block if you want Jacobians. Attention, it slows down the # computation a lot. # Also, you can add other Jacobians here, for example for temperature. # jacobianInit # jacobianAddAbsSpecies( jacobian_quantities, jacobian_agenda, # atmosphere_dim, # p_grid, lat_grid, lon_grid, # p_grid, lat_grid, lon_grid, # "H2O-PWR98", # "analytical", # "rel", # 0.01 ) # jacobianClose # No scattering cloudboxOff # get some surface properties from corresponding atmospheric fields Extract( z_surface, z_field, 0 ) Extract( t_surface, t_field, 0 ) # Perform RT calculations # --- atmfields_checkedCalc atmgeom_checkedCalc cloudbox_checkedCalc sensor_checkedCalc yCalc } # Set number of batch cases: nelemGet( ybatch_n, batch_atm_fields_compact ) #IndexSet(ybatch_start, 2) #IndexSet(ybatch_n, 2) # Execute the batch calculations: # --- propmat_clearsky_agenda_checkedCalc ybatchCalc }