# An example ARTS controlfile that calculates absorption # coefficients. # SAB 16.06.2000 # --------------------< A specific method >-------------------- # ------------------- # Read the spectroscopic line data from the HITRAN catalogue and # create the workspace variable `lines': #linesReadFromHitran { # filename = "../../data/spectroscopy/hitran96/hitran96_lowfreq.par" # fmin = 200e9 # fmax = 205e9 #} # Optionally write the line list to a file: #linesWriteToFile{""} # This defines the list of tag groups (`tag_groups'). Absorption # coefficients will be calculated separately for each tag group. This # is necessary in order to calculate weighting functions later on. # The lines are assigned to the tag groups in the order as the groups # are specified here. That means if you do ["H2O-181","H2O"], the last # group H2O gets assigned all the H2O lines that do not fit in the # first group. # # The continuum tags are special, since continua are not added by # default. Thus, just selecting "H2O" will give you no continuum. tgsDefine{ [ "H2O-161, H2O-181, H2O-171, H2O-162, H2O-182, H2O-262", "H2O-HITRAN96Self, H2O-HITRAN96Foreign", "O3", "N2O" ] } # define the tag groups for which weighting functions will be calculated # must be a subgroup of tgsDefine tag groups wfs_tgsDefine{ [ "H2O-161, H2O-181, H2O-171, H2O-162, H2O-182, H2O-262", "H2O-HITRAN96Self, H2O-HITRAN96Foreign"] } # This separates the lines into the different tag groups and creates # the workspace variable `lines_per_tg': #lines_per_tgCreateFromLines{} # read the different defined tag groups from individual catalogues # these are the tgsDefine tag groups lines_per_tgReadFromCatalogues{ filenames = ["../../data/spectroscopy/jpl00/jpl00.cat", "../../data/spectroscopy/hitran96/hitran96_lowfreq.par"] formats = [ "JPL", "HITRAN96" ] fmin = [ 0, 0 ] fmax = [ 200e9, 200e9 ] } lines_per_tgWriteToFile{""} # --------------------< A generic method >-------------------- # ------------------ # Read the pressure, temperature, and altitude profiles and create # the workspace variable `raw_ptz_1d': MatrixReadAscii (raw_ptz_1d) {"../../data/atmosphere/fascod/midlatitude-summer.tz.am"} # The same for the input VMR profiles: raw_vmrs_1dReadFromScenario {"../../data/atmosphere/fascod/midlatitude-summer"} # Optionally write this to a file: #ArrayOfMatrixWriteAscii (raw_vmrs_1d) {""} # Create the pressure grid `p_abs': VectorNLogSpace(p_abs){ start = 100000 stop = 10 n = 140 } VectorWriteAscii(p_abs){""} # Now interpolate all the raw atmospheric input onto the pressure # grid and create the atmospheric variables `t_abs', `z_abs', `vmrs' AtmFromRaw1D{} # Set the physical H2O profile from the H2O profile in vmrs: VectorCopyFromArrayOfVector(h2o_abs,vmrs){0} # Optionally write these to files: VectorWriteAscii (t_abs) {""} VectorWriteAscii (z_abs) {""} ArrayOfVectorWriteAscii (vmrs) {""} # Create the frequency grid `f_mono': VectorNLinSpace(f_mono){ start = 1e9 stop = 200e9 n = 200 } # Write frequency grid to file: VectorWriteAscii (f_mono) {""} # set the lineshape function for all calculated tags # lineshapeDefine{ # shape = "Voigt_Kuntz6" # normalizationfactor = "linear" # cutoff = -1 # } # or set it separately for each tag lineshape_per_tgDefine{ shape = ["Voigt_Kuntz6","no_shape","Voigt_Kuntz6","Voigt_Kuntz6"] normalizationfactor = ["quadratic","no_norm","linear","linear"] cutoff = [-1,-1,-1,-1] } # Calculate absorption coefficients, both total (`abs') and # separately for each tag group (`abs_per_tg'): absCalc{} # Write to binary file: MatrixWriteBinary(abs){""} # reduce the abs_per_tg variable (dimension number of tag groups) to the # tag groups for which we want to calculate weighting functions (new # dimension number of wfs tag groups) abs_per_tgReduce{} # These we definitely want to write to files! MatrixWriteAscii (abs) {""} ArrayOfMatrixWriteAscii (abs_per_tg) {""}