#DEFINITIONS: -*-sh-*- Arts2 { ## This script converts the xml output of 'extract_arts_l137.f90' to ARTS compatible data format ArrayOfGriddedField4 ## Call this script by running ## ./arts/build/src/arts arts-xml-data/planets/Earth/ECMWF/IFS/Eresmaa_137L/ConvertCompactAtm_ArrayOfMatrix-to-ArrayOfGriddedField4.arts StringCreate( datapath ) StringSet( datapath, "./" ) ArrayOfStringCreate( filenames ) ArrayOfStringCreate( fieldnames ) ArrayOfStringCreate( filenames_extra ) ArrayOfStringCreate( fieldnames_extra ) # ECMWF data (Eresmaa and similar) ArrayOfStringSet( filenames, [ "eresmaal137_all_ccol.xml", "eresmaal137_all_oz.xml", "eresmaal137_all_q.xml", "eresmaal137_all_rcol.xml", "eresmaal137_all_t.xml" ] ) ArrayOfStringSet( fieldnames, [ "T", "z", "scat_species-LWC-mass_density", "scat_species-IWC-mass_density", "scat_species-RR-mass_flux", "scat_species-SR-mass_flux", "abs_species-H2O", "abs_species-O3" ] ) ArrayOfStringSet( filenames_extra, [ "eresmaal137_all_ccol_extra.xml", "eresmaal137_all_oz_extra.xml", "eresmaal137_all_q_extra.xml", "eresmaal137_all_rcol_extra.xml", "eresmaal137_all_t_extra.xml" ] ) ArrayOfStringSet( fieldnames_extra, [ "cloud cover", "vertical velocity" ] ) ########################################### StringCreate( fileloc ) StringCreate( filename_output ) StringCreate( filename_input ) Copy( filename_output, datapath ) IndexCreate( ncases ) nelemGet( ncases, filenames ) # Some prep settings #------------------- output_file_formatSetZippedAscii #output_file_formatSetAscii IndexSet (atmosphere_dim, 1) ArrayOfMatrixCreate( arrayofmatrix_1 ) ## atmospheric fields (required by ARTS) AgendaSet( forloop_agenda ){ Extract( fileloc, filenames, forloop_index ) Append( filename_output, fileloc ) # the temporary files of the fortran program are named 'FILENAME.xml.temp' StringCompose( filename_input, filename_output, ".temp" ) # Read ArrayOfMatrix batch data #------------------------------ ReadXML( arrayofmatrix_1, filename_input ) # Convert to batch_atm_fields_compact # ----------------------------------- batch_atm_fields_compactFromArrayOfMatrix( atmospheres_fields=arrayofmatrix_1, field_names=fieldnames ) WriteXML( in=batch_atm_fields_compact, filename=filename_output ) } IndexStepDown( ncases, ncases ) ForLoop( forloop_agenda, 0, ncases, 1 ) ## additional atmospheric fields (cannot processed by ARTS directly) nelemGet( ncases, filenames_extra ) AgendaSet( forloop_agenda){ Extract( fileloc, filenames_extra, forloop_index ) Append( filename_output, fileloc ) # the temporary files of the fortran program are named 'FILENAME.xml.temp' StringCompose( filename_input, filename_output, ".temp" ) # Read ArrayOfMatrix batch data #------------------------------ ReadXML( arrayofmatrix_1, filename_input ) # Convert to batch_atm_fields_compact # ----------------------------------- batch_atm_fields_compactFromArrayOfMatrix( atmospheres_fields=arrayofmatrix_1, field_names=fieldnames_extra ) WriteXML( in=batch_atm_fields_compact, filename=filename_output ) } IndexStepDown( ncases, ncases ) ForLoop( forloop_agenda, 0, ncases, 1 ) } # End of Main