############################################################################## # # # ATOVS and AVHRR Preprocessing Package (AAPP) # # Version 8.10 Release Notes # # 09 August 2022 # # # ############################################################################## 1. Package contents ------------------- NWP SAF software is normally made available to registered users via the "software downloads" section of the NWP SAF web site (linked from the top bar of https://nwp-saf.eumetsat.int/site/). AAPP updates are available in two forms: (i) as an incremental update, for users who are updating an existing installation, or (ii) as a full release. The incremental update comprises the following files: (sizes in bytes): RELEASE_NOTE_AAPP_8_10.txt 16574 This release note AAPP_update_8_10.tgz 13359293 Changed files The full release comprises: AAPP_8.10.tgz 24863434 Source code and data files The IASI level 1 processor (OPS-LRS) is available separately. 2. Main Changes --------------- - Support for "version 2" IASI eigenvector files from EUMETSAT - Support for FY-3E MWHS-2 and MWTS-3, and updates to FY-3C/3D processing - Portability updates for gfortran10 See section 6 for a full list of code changes. Please note that when BUFR encoding FY-3 sounder data using the ecCodes interface, the CMA-defined sequences are now used by default. (In AAPP v8.9 and earlier this had to be invoked by setting an environment variable USE_VASS_SEQUENCE=Y). 2.1 Documentation updates ------------------------- None. 2.2 Test case updates --------------------- New test case fy3e.tgz, available at https://nwp-saf.eumetsat.int/downloads/aapp_data_files/test_cases/ Note that the new IASI eigenvectors may be used in the existing "metopb_test" by setting the following environment variable: export IASI_SPECFILE=iasi_eigenvectors_spec_v2.dat See section 6 for details. Minor updates to bufr_test.tgz and metopb_test_20170725.tgz. 3. Installation --------------- To assist the installation process, it is recommended that you consult the installation script install_aapp8.sh (see https://nwp-saf.eumetsat.int/site/software/aapp/download/). This will guide you through the installation of all the main libraries that are used by AAPP and OPS-LRS (including ecCodes, BUFRDC, xerces, fftw, flex, gettext, kai). 3.1 Updating an existing AAPP installation ------------------------------------------ To update an existing installation: a. Copy the update release tgz file to your AAPP top directory (i.e. the directory containing AAPP, metop-tools and iasi-tools) b. Unpack using the command tar -xvmzf AAPP_update_8_10.tgz or if your system does not support the "-z" option in tar, use gunzip -c AAPP_update_8_10.tgz | tar -xmf - (Note the use of the "m" flag to ensure that newly-unpacked files have today's date and will therefore be processed by make) c. Go to the AAPP_8 top directory and type make clean make and optionally "make install", if you have a separate installation directory. (Note that "make clean" is needed because some of the include files have changed) 3.2 Creating a new installation ------------------------------- If you are creating a new installation, the sequence is: (1) unpack the full 8.10 release (2) run "configure" (see chapter 3.3 of the AAPP Installation Guide), (3) run "make" (4) If you used the --prefix= option in configure, run "make install" (5) If you are using locally-installed hdf5/ecCodes libraries, edit your ATOVS_ENV8 file and define DIR_HDF5 and DIR_ECCODES appropriately, according to the instructions near the bottom of the file. If you want to run MAIA, you should download and unpack the necessary data files that are linked from the AAPP downloads web page (https://nwp-saf.eumetsat.int/site/software/aapp/download/). To test a new installation, it is recommended to run some of the AAPP test cases, see Chapter 4 of the AAPP Installation Guide. The test cases are linked from the AAPP downloads web page. 4. License ---------- To use this software, users need to have registered for AAPP v8 with the NWP SAF (https://nwp-saf.eumetsat.int/site/), and to have agreed to the terms of the license agreement. 5. Version control information ------------------------------ Version control information is stored in a AAPP_version.txt file in the top directory ($AAPP_PREFIX). It is generated automatically at the release preparation stage. AAPP_version.txt contains: 8.10 Last Changed Rev: 720 Last Changed Date: 2022-07-28 10:59:21 +0100 (Thu, 28 Jul 2022) 6. Detailed list of changes from v8.9 (r696) to v8.10 ----------------------------------------------------- Key: M=Modified, A=Added, D=Deleted M AAPP/src/maia4/bin/VIIRS_CRIS_MAIA4_RUN.ksh Add optional environment variables RUN_VIIRS_MAIA and RUN_CRIS_CHANNELS (default "yes") M AAPP/src/tools/bin/prepare_dbnet_bufr_for_gts.ksh Add Porto Velho spv M AAPP/src/tools/bin/iasi_l0_qc.ksh Add an extra check at the end of the iasi_l0_qc script to check that times in the MPHR are reasonable. If they are not, discard the modified L0 file and use the original one. A AAPP/include/mwts31c.h A AAPP/include/mwts31c_c.h A AAPP/include/mwts3_sdr.h A AAPP/include/mwts3chandata.h M AAPP/include/aapp_hdf5.h M AAPP/src/preproc/libatov/Makefile A AAPP/src/preproc/libatov/iomwts31c.F M AAPP/src/tools/bin/Makefile A AAPP/src/tools/bin/mwts31c_from_hdf5.c A AAPP/src/tools/bin/mwts31c_to_hdf5.c A AAPP/src/tools/bin/mwts3_sdr.c A AAPP/src/tools/bin/mwts3_sdr.ksh M AAPP/src/tools/bin/convert_from_hdf5.ksh M AAPP/src/tools/bin/convert_to_hdf5.ksh M AAPP/src/tools/libaapphdf5/Makefile A AAPP/src/tools/libaapphdf5/mwts31c_from_hdf5_read.c A AAPP/src/tools/libaapphdf5/mwts31c_read.c-F A AAPP/src/tools/libaapphdf5/mwts31c_read_f.F A AAPP/src/tools/libaapphdf5/mwts31c_to_hdf5_write.c A AAPP/src/tools/libaapphdf5/mwts31c_write.c-F A AAPP/src/tools/libaapphdf5/mwts31c_write_f.F A AAPP/src/tools/libaapphdf5/mwts3_sdr.intf.c-F A AAPP/src/tools/libaapphdf5/mwts3_sdr_out.F A AAPP/src/tools/libaapphdf5/mwts3_sdr_read.c M AAPP/src/tools/libaapphdf5/mwts_channels.dat M AAPP/src/tools_eccodes/libecbufr/Makefile M AAPP/src/tools_eccodes/libecbufr/eccodes_get_1c_mwts3.F M AAPP/src/tools_eccodes/libecbufr/eccodes_put_1c_mwts3.F M AAPP/src/tools_eccodes/libecbufr/eccodes_put_1d_mwts3.F M AAPP/src/tools_eccodes/bin/eccodes_encodebufr_1c.F M AAPP/src/tools_eccodes/bin/eccodes_encodebufr_1c.ksh M AAPP/src/tools_eccodes/bin/eccodes_decodebufr_1c.F Support for MWTS-3 instrument on FY-3E. When processing FY-3 sounder instruments, the CMA BUFR sequence is now used by default instead of the obsolete AAPP sequence. Note: this is based on pre-operational FY-3E data; CMA may make further changes. M AAPP/include/mwhs21c.h M AAPP/include/mwhs21c_c.h M AAPP/include/mwhs2_sdr.h M AAPP/src/tools/libaapphdf5/mwhs21c_from_hdf5_read.c M AAPP/src/tools/libaapphdf5/mwhs21c_read.c-F M AAPP/src/tools/libaapphdf5/mwhs21c_read_f.F M AAPP/src/tools/libaapphdf5/mwhs21c_to_hdf5_write.c M AAPP/src/tools/libaapphdf5/mwhs21c_write.c-F M AAPP/src/tools/libaapphdf5/mwhs21c_write_f.F M AAPP/src/tools/libaapphdf5/mwhs2_sdr.intf.c-F M AAPP/src/tools/libaapphdf5/mwhs2_sdr_out.F M AAPP/src/tools/libaapphdf5/mwhs2_sdr_read.c M AAPP/src/tools/libaapphdf5/mwhs_channels.dat M AAPP/src/tools_eccodes/libecbufr/eccodes_get_1c_mwhs2.F M AAPP/src/tools_eccodes/libecbufr/eccodes_put_1c_mwhs2.F M AAPP/src/tools_eccodes/libecbufr/eccodes_put_1d_mwhs2.F Support for MWHS-2 on FY-3E. Also, the QA_Score dataset is read and encoded (previously missing). Number of mapped channels in MWHS2 l1c format is increased from 13 to 17. Bug fix in encoding MWHS21D. Please note that the QA_Score dataset for FY-3C is less well developed than for FY-3D and FY-3E. On FY-3C the value is mostly zero and does not vary with pixel. M AAPP/src/preproc/bin/Makefile A AAPP/src/preproc/bin/mwhs2_to_mwts3.F A AAPP/src/preproc/bin/mwhs2_to_mwts3.ksh M AAPP/src/preproc/bin/mwts2_to_mwhs2.F A AAPP/src/preproc/bin/mwts3_beamwidth.F A AAPP/src/preproc/bin/mwts3_beamwidth.ksh A AAPP/src/preproc/bin/mwts3_to_mwhs2.F A AAPP/src/preproc/bin/mwts3_to_mwhs2.ksh M AAPP/src/preproc/libatovpp/Makefile A AAPP/src/preproc/libatovpp/map_mwhs2_to_mwts3.F A AAPP/src/preproc/libatovpp/map_mwts3_to_mwhs2.F A AAPP/src/preproc/libatovpp/mwts3_beamwidth.dat Mapping between MWHS-2 and MWTS-3 M AAPP/include/ama1c_c.h M AAPP/include/ama1d_c.h M AAPP/include/amb1c_c.h M AAPP/include/amb1d_c.h M AAPP/include/atms1c_c.h M AAPP/include/atms_sdr.h M AAPP/include/avh1b_c.h M AAPP/include/avh1c_c.h M AAPP/include/cris1c_c.h M AAPP/include/cris_sdr.h A AAPP/include/global_ama1c_c.h A AAPP/include/global_ama1d_c.h A AAPP/include/global_amb1c_c.h A AAPP/include/global_amb1d_c.h A AAPP/include/global_atms1c_c.h A AAPP/include/global_atms_sdr.h A AAPP/include/global_avh1b_c.h A AAPP/include/global_avh1c_c.h A AAPP/include/global_cris1c_c.h A AAPP/include/global_cris_sdr.h A AAPP/include/global_hiras1c_c.h A AAPP/include/global_hiras_sdr.h A AAPP/include/global_hrs1c_c.h A AAPP/include/global_hrs1d_c.h A AAPP/include/global_iasi1c_c.h A AAPP/include/global_iasi1d_c.h A AAPP/include/global_iasipc_c.h A AAPP/include/global_iras1c_c.h A AAPP/include/global_iras_sdr.h A AAPP/include/global_msu1c_c.h A AAPP/include/global_mwhs21c_c.h A AAPP/include/global_mwhs2_sdr.h A AAPP/include/global_mwhs_sdr.h A AAPP/include/global_mwri1c_c.h A AAPP/include/global_mwri2_sdr.h A AAPP/include/global_mwri_sdr.h A AAPP/include/global_mwts21c_c.h A AAPP/include/global_mwts2_sdr.h A AAPP/include/global_mwts31c_c.h A AAPP/include/global_mwts3_sdr.h A AAPP/include/global_mwts_sdr.h M AAPP/include/hiras1c_c.h M AAPP/include/hiras_sdr.h M AAPP/include/hrs1c_c.h M AAPP/include/hrs1d_c.h M AAPP/include/iasi1c_c.h M AAPP/include/iasi1d_c.h M AAPP/include/iasipc_c.h M AAPP/include/iras1c_c.h M AAPP/include/iras_sdr.h M AAPP/include/msu1c_c.h M AAPP/include/mwhs21c_c.h M AAPP/include/mwhs2_sdr.h M AAPP/include/mwhs_sdr.h M AAPP/include/mwri1c_c.h M AAPP/include/mwri2_sdr.h M AAPP/include/mwri_sdr.h M AAPP/include/mwts21c_c.h M AAPP/include/mwts2_sdr.h M AAPP/include/mwts31c_c.h M AAPP/include/mwts3_sdr.h M AAPP/include/mwts_sdr.h M AAPP/src/calibration/libamsuacl/ama_avg.F M AAPP/src/calibration/libamsuacl/ama_initcl.F M AAPP/src/calibration/libamsuacl/ama_iwttmp.F M AAPP/src/calibration/libamsuacl/ama_status.F M AAPP/src/calibration/libamsuacl/amasetu.F M AAPP/src/calibration/libamsubcl/amb_initcl.F M AAPP/src/calibration/libamsubcl/amb_iwttmp.F M AAPP/src/calibration/libavhrcl/avh_put.F M AAPP/src/calibration/libhirscl/h_scanpos.F M AAPP/src/calibration/libhirscl_algoV4/h_scanpos_algoV4.F M AAPP/src/calibration/libmhscl/mhs_iwttmp.F M AAPP/src/decommutation/libdecom/amast.F M AAPP/src/decommutation/libdecom/ambst.F M AAPP/src/decommutation/libdecom/amsadc.F M AAPP/src/decommutation/libdecom/amsua_linecheck.F M AAPP/src/decommutation/libdecom/hirsdc.F M AAPP/src/decommutation/libdecom/mhsst.F M AAPP/src/decommutation/libdecom/msudc.F M AAPP/src/maia4/libmaia4/maia_Read_Prev.F90 M AAPP/src/maia4/libmaia4IO/maia_read_Avh1c_h5.F90 M AAPP/src/maia4/libmapviirscris/map_viirs_cris_mod.F90 M AAPP/src/tools/bin/ama1c_from_hdf5.c M AAPP/src/tools/bin/ama1c_to_hdf5.c M AAPP/src/tools/bin/ama1d_to_hdf5.c M AAPP/src/tools/bin/amb1c_from_hdf5.c M AAPP/src/tools/bin/amb1c_to_hdf5.c M AAPP/src/tools/bin/amb1d_to_hdf5.c M AAPP/src/tools/bin/atms1c_to_hdf5.c M AAPP/src/tools/bin/atms_sdr.c M AAPP/src/tools/bin/avh1c_to_hdf5.c M AAPP/src/tools/bin/cris1c_to_hdf5.c M AAPP/src/tools/bin/cris_sdr.c M AAPP/src/tools/bin/hiras1c_to_hdf5.c M AAPP/src/tools/bin/hiras_sdr.c M AAPP/src/tools/bin/hrp1b_to_hdf5.c M AAPP/src/tools/bin/hrs1c_from_hdf5.c M AAPP/src/tools/bin/hrs1c_to_hdf5.c M AAPP/src/tools/bin/hrs1d_to_hdf5.c M AAPP/src/tools/bin/iasi1c_from_hdf5.c M AAPP/src/tools/bin/iasi1c_to_hdf5.c M AAPP/src/tools/bin/iasi1d_to_hdf5.c M AAPP/src/tools/bin/iasipc_from_hdf5.c M AAPP/src/tools/bin/iasipc_to_hdf5.c M AAPP/src/tools/bin/iras1c_from_hdf5.c M AAPP/src/tools/bin/iras1c_to_hdf5.c M AAPP/src/tools/bin/iras_sdr.c M AAPP/src/tools/bin/msu1c_to_hdf5.c M AAPP/src/tools/bin/mwhs21c_from_hdf5.c M AAPP/src/tools/bin/mwhs21c_to_hdf5.c M AAPP/src/tools/bin/mwhs2_sdr.c M AAPP/src/tools/bin/mwhs_sdr.c M AAPP/src/tools/bin/mwri1c_to_hdf5.c M AAPP/src/tools/bin/mwri2_sdr.c M AAPP/src/tools/bin/mwri_sdr.c M AAPP/src/tools/bin/mwts21c_from_hdf5.c M AAPP/src/tools/bin/mwts21c_to_hdf5.c M AAPP/src/tools/bin/mwts2_sdr.c M AAPP/src/tools/bin/mwts31c_from_hdf5.c M AAPP/src/tools/bin/mwts31c_to_hdf5.c M AAPP/src/tools/bin/mwts3_sdr.c M AAPP/src/tools/bin/mwts_sdr.c M AAPP/src/tools/libaapphdf5/hrp1b_read.c-F M AAPP/src/tools/libf7gp/gp_gb16.F M AAPP/src/tools/libf7gp/gp_gb32.F M AAPP/src/tools/libf7gp/gp_gb8.F M AAPP/src/tools/libf7gp/gp_x16.F gfortran10 compatibility. Variables in existing C include files are declared "extern", and new include files are provided for global declarations. These are then referenced in the top-level c routines. BOZ constants in Fortran are wrapped with INT. A AAPP/extra A AAPP/extra/iasi_v2_eigenvectors.f90 M AAPP/src/preproc/bin/Makefile M AAPP/src/preproc/bin/iasi_eigenvectors.F M AAPP/src/preproc/bin/iasi_eigenvectors.ksh A AAPP/src/preproc/bin/iasi_ev_readhdf5_v2.c A AAPP/src/preproc/libatovpp/IASI_EV1_xx_Mxx_20200131000000Z A AAPP/src/preproc/libatovpp/IASI_EV1_xx_Mxx_20200131000000Z.loc A AAPP/src/preproc/libatovpp/IASI_EV2_xx_Mxx_20200131000000Z A AAPP/src/preproc/libatovpp/IASI_EV2_xx_Mxx_20200131000000Z.loc A AAPP/src/preproc/libatovpp/IASI_EV3_xx_Mxx_20200131000000Z A AAPP/src/preproc/libatovpp/IASI_EV3_xx_Mxx_20200131000000Z.loc M AAPP/src/preproc/libatovpp/Makefile A AAPP/src/preproc/libatovpp/iasi_eigenvectors_spec_v2.dat M AAPP/src/preproc/libatovpp/iasi_generate_pcs.F M AAPP/src/preproc/libatovpp/ppifdf.F Support for "version 2" eigenvector files from EUMETSAT, see https://www.eumetsat.int/changes-pc-compressed-iasi-l1c-data The EV files supplied by EUMETSAT have a full noise normalisation matrix. For AAPP use, we have created a modified version of these files, retaining the "ReconstructionOperator" dataset and creating a "CompressionOperator" dataset. The bulky noise matrix is not needed. AAPP only uses the global PCs: we have not implemented EUMETSAT's "hybrid" approach as that would be a major change, and is not currently accommodated in BUFR products. Conversion from l1c to lpc can be done using iasi_1c_to_pc, as before. Similarly, reconstructed radiances can be generated with iasi_reconstruct or atovpp. By default, AAPP v8.10 continues to use the old EV files. Users who wish to use the new eigenvector files should set the environment variable: export IASI_SPECFILE=iasi_eigenvectors_spec_v2.dat The program iasi_v2_eigenvectors.f90 is used by developers in creating the EV files, users don't need to run it. It is not part of the standard build process (because it requires LAPACK).