diff --git a/parm/aero/variational/3dvar_fgat_gfs_aero.yaml.j2 b/parm/aero/variational/3dvar_fgat_gfs_aero.yaml.j2 index 95d27872c..751cbdf53 100644 --- a/parm/aero/variational/3dvar_fgat_gfs_aero.yaml.j2 +++ b/parm/aero/variational/3dvar_fgat_gfs_aero.yaml.j2 @@ -96,6 +96,8 @@ variational: final: diagnostics: departures: anlmob + prints: + frequency: PT3H increment: geometry: fms initialization: diff --git a/parm/aero/variational/3dvar_gfs_aero.yaml.j2 b/parm/aero/variational/3dvar_gfs_aero.yaml.j2 index 47e005960..905d991e3 100644 --- a/parm/aero/variational/3dvar_gfs_aero.yaml.j2 +++ b/parm/aero/variational/3dvar_gfs_aero.yaml.j2 @@ -87,6 +87,8 @@ variational: final: diagnostics: departures: anlmob + prints: + frequency: PT3H increment: geometry: fms initialization: diff --git a/parm/atm/jcb-base.yaml.j2 b/parm/atm/jcb-base.yaml.j2 index ee2caa3ae..6387fffbb 100644 --- a/parm/atm/jcb-base.yaml.j2 +++ b/parm/atm/jcb-base.yaml.j2 @@ -23,6 +23,7 @@ window_length: "{{ ATM_WINDOW_LENGTH }}" bound_to_include: begin minimizer: DRPCG final_diagnostics_departures: anlmob +final_prints_frequency: PT3H number_of_outer_loops: 2 analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] diff --git a/parm/ioda/bufr2ioda/bufr2ioda_satwnd_amv_ahi.json b/parm/ioda/bufr2ioda/bufr2ioda_satwnd_amv_ahi.json index 964175368..269d45258 100644 --- a/parm/ioda/bufr2ioda/bufr2ioda_satwnd_amv_ahi.json +++ b/parm/ioda/bufr2ioda/bufr2ioda_satwnd_amv_ahi.json @@ -6,10 +6,11 @@ "dump_directory" : "{{ DMPDIR }}", "ioda_directory" : "{{ COM_OBS }}", "subsets" : [ "NC005044", "NC005045", "NC005046" ], - "data_description" : "NC005044 JMA SATWIND, AHI HIM8 IR(LW)/VIS/WV-CT/WV-CS; NC005045 JMA SATWIND, HIMAWARI-8 IR(LW)/VIS/WV-CT/WV-CS; NC005046 JMA SATWIND, HIMAWARI-8 IR(LW)/VIS/WV-CT/WV-CS", + "data_description" : "NC005044 JMA SATWIND, AHI HIMAWARI IR(LW)/VIS/WV-CT/WV-CS; NC005045 JMA SATWIND, AHI HIMAWARI IR(LW)/VIS/WV-CT/WV-CS; NC005046 JMA SATWIND, AHI HIMAWARI IR(LW)/VIS/WV-CT/WV-CS", "data_provider" : "JMA", "sensor_info" : { "sensor_name": "AHI", "sensor_full_name": "Advanced Himawari Imager", "sensor_id": 999 }, "satellite_info" : [ { "satellite_name": "H8", "satellite_full_name": "Himawari-8", "satellite_id": 173, "launch time": "YYYYMMDD" }, - ] + { "satellite_name": "H9", "satellite_full_name": "Himawari-9", "satellite_id": 174, "launch time": "YYYYMMDD" }, + ] } diff --git a/parm/ioda/bufr2ioda/bufr2ioda_satwnd_amv_seviri.json b/parm/ioda/bufr2ioda/bufr2ioda_satwnd_amv_seviri.json index 3fad3c258..6166f0b4b 100644 --- a/parm/ioda/bufr2ioda/bufr2ioda_satwnd_amv_seviri.json +++ b/parm/ioda/bufr2ioda/bufr2ioda_satwnd_amv_seviri.json @@ -11,6 +11,8 @@ "sensor_info" : { "sensor_name": "SEVIRI", "sensor_full_name": "Spinning Enhanced Visible and InfraRed Imager", "sensor_id": 999 }, "satellite_info" : [ { "satellite_name": "M8", "satellite_full_name": "METEOSAT-8", "satellite_id": 55, "launch time": "YYYYMMDD" }, + { "satellite_name": "M9", "satellite_full_name": "METEOSAT-9", "satellite_id": 56, "launch time": "YYYYMMDD" }, + { "satellite_name": "M10", "satellite_full_name": "METEOSAT-10", "satellite_id": 57, "launch time": "YYYYMMDD" }, { "satellite_name": "M11", "satellite_full_name": "METEOSAT-11", "satellite_id": 70, "launch time": "YYYYMMDD" }, ] } diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 50a46a046..661b51b3d 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 50a46a046d761da17997aa2901fa4af19fc388bf +Subproject commit 661b51b3d4eeed88f3157daeda37aca3cb3d963f diff --git a/parm/snow/jcb-base.yaml.j2 b/parm/snow/jcb-base.yaml.j2 index 8928d59e4..672b1bf8f 100644 --- a/parm/snow/jcb-base.yaml.j2 +++ b/parm/snow/jcb-base.yaml.j2 @@ -40,7 +40,7 @@ snow_increment_time_fv3: "{{ bkg_time_fv3 }}" analysis_variables: [ua,va,t,ps,sphum,ice_wat,liq_wat,o3mr] minimizer: DRPCG final_diagnostics_departures: anlmob - +final_prints_frequency: PT3H cost_type: 3D-Var number_of_outer_loops: 2 diff --git a/parm/soca/marine-jcb-base.yaml b/parm/soca/marine-jcb-base.yaml index b7cec2422..fd14f0dbb 100644 --- a/parm/soca/marine-jcb-base.yaml +++ b/parm/soca/marine-jcb-base.yaml @@ -22,6 +22,7 @@ window_length: '{{ATM_WINDOW_LENGTH}}' bound_to_include: begin minimizer: RPCG final_diagnostics_departures: oman +final_prints_frequency: PT3H number_of_outer_loops: 1 analysis_variables: [cicen, hicen, hsnon, socn, tocn, uocn, vocn, ssh] diff --git a/parm/soca/soca_fix_stage_100.yaml.j2 b/parm/soca/soca_fix_stage_100.yaml.j2 new file mode 100644 index 000000000..0869f7d34 --- /dev/null +++ b/parm/soca/soca_fix_stage_100.yaml.j2 @@ -0,0 +1,25 @@ +# TODO(AFE): make resolution dependent +mkdir: +- "{{ DATA }}/INPUT" +###################################### +# fix files to copy +###################################### +copy: +- ["{{ SOCA_INPUT_FIX_DIR }}/rossrad.nc", "{{ DATA }}/rossrad.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/field_table", "{{ DATA }}/field_table"] +- ["{{ SOCA_INPUT_FIX_DIR }}/diag_table", "{{ DATA }}/diag_table"] +- ["{{ SOCA_INPUT_FIX_DIR }}/MOM_input", "{{ DATA }}/MOM_input"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/grid_spec.nc", "{{ DATA }}/INPUT/grid_spec.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/hycom1_75_800m.nc", "{{ DATA }}/INPUT/hycom1_75_800m.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/layer_coord.nc", "{{ DATA }}/INPUT/layer_coord.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/ocean_hgrid.nc", "{{ DATA }}/INPUT/ocean_hgrid.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/ocean_mosaic.nc", "{{ DATA }}/INPUT/ocean_mosaic.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/topog.nc", "{{ DATA }}/INPUT/topog.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/vgrid_75_2m.nc", "{{ DATA }}/INPUT/vgrid_75_2m.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/KH_background_2d.nc", "{{ DATA }}/INPUT/KH_background_2d.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/tidal_amplitude.nc", "{{ DATA }}/INPUT/tidal_amplitude.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/interpolate_zgrid_40L.nc", "{{ DATA }}/INPUT/interpolate_zgrid_40L.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/interpolate_zgrid_46L.nc", "{{ DATA }}/INPUT/interpolate_zgrid_46L.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/topo_edits_011818.nc", "{{ DATA }}/INPUT/topo_edits_011818.nc"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/MOM_channels_SPEAR", "{{ DATA }}/INPUT/MOM_channels_SPEAR"] +- ["{{ SOCA_INPUT_FIX_DIR }}/INPUT/seawifs_1998-2006_smoothed_2X.nc", "{{ DATA }}/INPUT/seawifs_1998-2006_smoothed_2X.nc"] diff --git a/parm/soca/variational/3dvarfgat.yaml b/parm/soca/variational/3dvarfgat.yaml index 344962f21..75af98617 100644 --- a/parm/soca/variational/3dvarfgat.yaml +++ b/parm/soca/variational/3dvarfgat.yaml @@ -51,6 +51,8 @@ output: final: diagnostics: departures: oman + prints: + frequency: PT3H increment: output: state component: diff --git a/test/atm/global-workflow/3dvar.ref b/test/atm/global-workflow/3dvar.ref index e84134433..33f4f60f6 100644 --- a/test/atm/global-workflow/3dvar.ref +++ b/test/atm/global-workflow/3dvar.ref @@ -88,3 +88,7 @@ sensorScanAngle_order_2: Min= -5.1097259522434877, Max= 2.8632600312042698, N --------------------------------------------------------------- +CostJb : Nonlinear Jb = 0.0000033199535370 +CostJo : Nonlinear Jo(AMSUA N19) = 39476.8510817764617968, nobs = 73667, Jo/n = 0.5358824315063252, err = 6.2697697603632934 +CostJo : Nonlinear Jo(sondes) = 10639.2476170353256748, nobs = 4255, Jo/n = 2.5004107208073623, err = 10.9811231401273197 +CostFunction: Nonlinear J = 50116.0987021317414474 diff --git a/test/atm/global-workflow/CMakeLists.txt b/test/atm/global-workflow/CMakeLists.txt index e9e4e1f19..925a73677 100644 --- a/test/atm/global-workflow/CMakeLists.txt +++ b/test/atm/global-workflow/CMakeLists.txt @@ -36,6 +36,11 @@ add_test(NAME test_gdasapp_atm_jjob_ens_letkf ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) +add_test(NAME test_gdasapp_atm_jjob_ens_init_split + COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_init_split.sh + ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test/atm/global-workflow/testrun) + add_test(NAME test_gdasapp_atm_jjob_ens_obs COMMAND ${PROJECT_SOURCE_DIR}/test/atm/global-workflow/jjob_ens_obs.sh ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR} diff --git a/test/atm/global-workflow/config.yaml b/test/atm/global-workflow/config.yaml index 9d896736d..c06019628 100644 --- a/test/atm/global-workflow/config.yaml +++ b/test/atm/global-workflow/config.yaml @@ -17,7 +17,8 @@ atmanl: LAYOUT_Y_ATMANL: 1 atmensanl: - JCB_ALGO_YAML: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2" + JCB_ALGO_YAML_LETKF: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf.yaml.j2" + JCB_ALGO_YAML_OBS: "@srcdir@/test/atm/global-workflow/jcb-prototype_lgetkf_observer.yaml.j2" LAYOUT_X_ATMENSANL: 1 LAYOUT_Y_ATMENSANL: 1 diff --git a/test/atm/global-workflow/jjob_ens_init.sh b/test/atm/global-workflow/jjob_ens_init.sh index 1e4ae1f97..9aa1265be 100755 --- a/test/atm/global-workflow/jjob_ens_init.sh +++ b/test/atm/global-workflow/jjob_ens_init.sh @@ -110,6 +110,10 @@ for imem in $(seq 1 $NMEM_ENS); do done done +# Set lobsdiag_forenkf=.false. to run letkf as single observer and solver job +# NOTE: atmensanlinit creates input yaml for atmensanlletkf job +cp $EXPDIR/config.base_lobsdiag_forenkf_false $EXPDIR/config.base + # Execute j-job if [[ $machine = 'HERA' || $machine = 'ORION' || $machine = 'HERCULES' ]]; then sbatch --ntasks=1 --account=$ACCOUNT --qos=batch --time=00:10:00 --export=ALL --wait --output=atmensanlinit-%j.out ${HOMEgfs}/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE diff --git a/test/atm/global-workflow/jjob_ens_init_split.sh b/test/atm/global-workflow/jjob_ens_init_split.sh new file mode 100755 index 000000000..4128ac01c --- /dev/null +++ b/test/atm/global-workflow/jjob_ens_init_split.sh @@ -0,0 +1,122 @@ +#! /usr/bin/env bash + +set -x +bindir=$1 +srcdir=$2 + +# Set g-w HOMEgfs +topdir=$(cd "$(dirname "$(readlink -f -n "${bindir}" )" )/../../.." && pwd -P) +export HOMEgfs=$topdir + +# Set variables for ctest +export PSLOT=gdas_test +export EXPDIR=$bindir/test/atm/global-workflow/testrun/experiments/$PSLOT +export PDY=20210323 +export cyc=18 +export CDATE=${PDY}${cyc} +export ROTDIR=$bindir/test/atm/global-workflow/testrun/ROTDIRS/$PSLOT +export RUN=enkfgdas +export CDUMP=enkfgdas +export DATAROOT=$bindir/test/atm/global-workflow/testrun/RUNDIRS/$PSLOT +export COMIN_GES=${bindir}/test/atm/bkg +export pid=${pid:-$$} +export jobid=$pid +export COMROOT=$DATAROOT +export NMEM_ENS=3 +export ACCOUNT=da-cpu +export COM_TOP=$ROTDIR + +# Set GFS COM paths +source "${HOMEgfs}/ush/preamble.sh" +source "${HOMEgfs}/parm/config/gfs/config.com" + +# Set python path for workflow utilities and tasks +wxflowPATH="${HOMEgfs}/ush/python" +PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}${wxflowPATH}" +export PYTHONPATH + +# Detemine machine from config.base +machine=$(echo `grep 'machine=' $EXPDIR/config.base | cut -d"=" -f2` | tr -d '"') + +# Set NETCDF and UTILROOT variables (used in config.base) +if [[ $machine = 'HERA' ]]; then + NETCDF=$( which ncdump ) + export NETCDF + export UTILROOT="/scratch2/NCEPDEV/ensemble/save/Walter.Kolczynski/hpc-stack/intel-18.0.5.274/prod_util/1.2.2" +elif [[ $machine = 'ORION' || $machine = 'HERCULES' ]]; then + ncdump=$( which ncdump ) + NETCDF=$( echo "${ncdump}" | cut -d " " -f 3 ) + export NETCDF + export UTILROOT=/work2/noaa/da/python/opt/intel-2022.1.2/prod_util/1.2.2 +fi + +# Set date variables for previous cycle +GDATE=`date +%Y%m%d%H -d "${CDATE:0:8} ${CDATE:8:2} - 6 hours"` +gPDY=$(echo $GDATE | cut -c1-8) +gcyc=$(echo $GDATE | cut -c9-10) +GDUMP="gdas" + +# Set file prefixes +gprefix=$GDUMP.t${gcyc}z +oprefix=$GDUMP.t${cyc}z + +# Generate COM variables from templates +RUN=${GDUMP} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx COM_OBS +RUN=${GDUMP} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -rx \ + COM_ATMOS_ANALYSIS_PREV:COM_ATMOS_ANALYSIS_TMPL \ + +# Link observations +dpath=gdas.$PDY/$cyc/obs +mkdir -p $COM_OBS +flist="amsua_n19.$CDATE sondes.$CDATE" +for file in $flist; do + ln -fs $GDASAPP_TESTDATA/lowres/$dpath/${oprefix}.${file}.nc4 $COM_OBS/${oprefix}.${file}.nc +done + +# Link radiance bias correction files +dpath=gdas.$gPDY/$gcyc/analysis/atmos +mkdir -p $COM_ATMOS_ANALYSIS_PREV +flist="amsua_n19.satbias amsua_n19.satbias_cov" +for file in $flist; do + ln -fs $GDASAPP_TESTDATA/lowres/$dpath/$gprefix.${file}.nc4 $COM_ATMOS_ANALYSIS_PREV/$gprefix.${file}.nc +done +flist="amsua_n19.tlapse.txt" +for file in $flist; do + ln -fs $GDASAPP_TESTDATA/lowres/$dpath/$gprefix.$file $COM_ATMOS_ANALYSIS_PREV/$gprefix.$file +done + +# Link member atmospheric background on tiles and atmf006 +dpath=enkfgdas.$gPDY/$gcyc +for imem in $(seq 1 $NMEM_ENS); do + memchar="mem"$(printf %03i $imem) + + MEMDIR=${memchar} RUN=${RUN} YMD=${gPDY} HH=${gcyc} declare_from_tmpl -x \ + COM_ATMOS_HISTORY_PREV_ENS:COM_ATMOS_HISTORY_TMPL \ + COM_ATMOS_RESTART_PREV_ENS:COM_ATMOS_RESTART_TMPL + COM_ATMOS_RESTART_PREV_DIRNAME_ENS=$(dirname $COM_ATMOS_RESTART_PREV_ENS) + + source=$GDASAPP_TESTDATA/lowres/$dpath/$memchar/model/atmos/history + target=$COM_ATMOS_HISTORY_PREV_ENS + mkdir -p $target + rm -rf $target/enkfgdas.t${gcyc}z.atmf006.nc + ln -fs $source/enkfgdas.t${gcyc}z.atmf006.nc $target/ + + source=$GDASAPP_TESTDATA/lowres/$dpath/$memchar/model/atmos/history + target=$COM_ATMOS_HISTORY_PREV_ENS + flist=("cubed_sphere_grid_atmf006.nc" "cubed_sphere_grid_sfcf006.nc") + for file in "${flist[@]}"; do + rm -rf $target/enkf${gprefix}.${file} + ln -fs $source/enkf${gprefix}.${file} $target/ + done +done + +# Set lobsdiag_forenkf=.true. to run letkf as separate observer and solver jobs +# NOTE: atmensanlinit creates input yaml for atmensanlobs and atmensanlsol jobs +cp $EXPDIR/config.base_lobsdiag_forenkf_true $EXPDIR/config.base + +# Execute j-job +if [[ $machine = 'HERA' || $machine = 'ORION' || $machine = 'HERCULES' ]]; then + sbatch --ntasks=1 --account=$ACCOUNT --qos=batch --time=00:10:00 --export=ALL --wait --output=atmensanlinit-%j.out ${HOMEgfs}/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE +else + ${HOMEgfs}/jobs/JGLOBAL_ATMENS_ANALYSIS_INITIALIZE +fi diff --git a/test/atm/global-workflow/jjob_ens_letkf.sh b/test/atm/global-workflow/jjob_ens_letkf.sh index 69c22ad6d..93715541d 100755 --- a/test/atm/global-workflow/jjob_ens_letkf.sh +++ b/test/atm/global-workflow/jjob_ens_letkf.sh @@ -48,6 +48,9 @@ elif [[ $machine = 'ORION' || $machine = 'HERCULES' ]]; then export UTILROOT=/work2/noaa/da/python/opt/intel-2022.1.2/prod_util/1.2.2 fi +# Set lobsdiag_forenkf=.false. to run letkf as combined observer and solver job +cp $EXPDIR/config.base_lobsdiag_forenkf_false $EXPDIR/config.base + # Execute j-job if [[ $machine = 'HERA' || $machine = 'ORION' || $machine = 'HERCULES' ]]; then sbatch --nodes=1 --ntasks=36 --account=$ACCOUNT --qos=batch --time=00:30:00 --export=ALL --wait --output=atmensanlletkf-%j.out ${HOMEgfs}/jobs/JGLOBAL_ATMENS_ANALYSIS_LETKF diff --git a/test/atm/global-workflow/jjob_ens_obs.sh b/test/atm/global-workflow/jjob_ens_obs.sh index e96c30a0a..5118e52e8 100755 --- a/test/atm/global-workflow/jjob_ens_obs.sh +++ b/test/atm/global-workflow/jjob_ens_obs.sh @@ -48,6 +48,9 @@ elif [[ $machine = 'ORION' || $machine = 'HERCULES' ]]; then export UTILROOT=/work2/noaa/da/python/opt/intel-2022.1.2/prod_util/1.2.2 fi +# Set lobsdiag_forenkf=.true. to run letkf as stand-alone observer job +cp $EXPDIR/config.base_lobsdiag_forenkf_true $EXPDIR/config.base + # Execute j-job if [[ $machine = 'HERA' || $machine = 'ORION' || $machine = 'HERCULES' ]]; then sbatch --nodes=1 --ntasks=36 --account=$ACCOUNT --qos=debug --time=00:30:00 --export=ALL --wait --output=atmensanlobs-%j.out ${HOMEgfs}/jobs/JGLOBAL_ATMENS_ANALYSIS_OBS diff --git a/test/atm/global-workflow/jjob_ens_sol.sh b/test/atm/global-workflow/jjob_ens_sol.sh index 53cfb87d4..cd1c40094 100755 --- a/test/atm/global-workflow/jjob_ens_sol.sh +++ b/test/atm/global-workflow/jjob_ens_sol.sh @@ -48,6 +48,9 @@ elif [[ $machine = 'ORION' || $machine = 'HERCULES' ]]; then export UTILROOT=/work2/noaa/da/python/opt/intel-2022.1.2/prod_util/1.2.2 fi +# Set lobsdiag_forenkf=.true. to run letkf as stand-alone solver job +cp $EXPDIR/config.base_lobsdiag_forenkf_true $EXPDIR/config.base + # Execute j-job if [[ $machine = 'HERA' || $machine = 'ORION' || $machine = 'HERCULES' ]]; then sbatch --nodes=1 --ntasks=36 --account=$ACCOUNT --qos=debug --time=00:30:00 --export=ALL --wait --output=atmensanlsol-%j.out ${HOMEgfs}/jobs/JGLOBAL_ATMENS_ANALYSIS_SOL diff --git a/test/atm/global-workflow/setup_workflow_exp.sh b/test/atm/global-workflow/setup_workflow_exp.sh index c8165a2f1..d793733ae 100755 --- a/test/atm/global-workflow/setup_workflow_exp.sh +++ b/test/atm/global-workflow/setup_workflow_exp.sh @@ -51,4 +51,9 @@ echo " " echo "$expdir/../config.yaml is" cat $expdir/../config.yaml +# config.base contains with lobsdiag_forenkf=.true. Create config.base with lobsdiag_forenkf=.false. for jjob_ens_letkf.sh +EXPDIR=$expdir/$pslot +cp $EXPDIR/config.base $EXPDIR/config.base_lobsdiag_forenkf_true +sed 's/export lobsdiag_forenkf=".true."/export lobsdiag_forenkf=".false."/' $EXPDIR/config.base > $EXPDIR/config.base_lobsdiag_forenkf_false + exit $? diff --git a/utils/obsproc/IcecJpssrr2Ioda.h b/utils/obsproc/IcecJpssrr2Ioda.h new file mode 100644 index 000000000..49a378a2d --- /dev/null +++ b/utils/obsproc/IcecJpssrr2Ioda.h @@ -0,0 +1,125 @@ +#pragma once + +#include +#include +#include +#include +#include // NOLINT (using C API) +#include +#include +#include + +#include "eckit/config/LocalConfiguration.h" + +#include // NOLINT + +#include "ioda/../../../../core/IodaUtils.h" +#include "ioda/Group.h" +#include "ioda/ObsGroup.h" + +#include "oops/util/dateFunctions.h" + +#include "NetCDFToIodaConverter.h" + +namespace gdasapp { + + class IcecJpssrr2Ioda : public NetCDFToIodaConverter { + public: + explicit IcecJpssrr2Ioda(const eckit::Configuration & fullConfig, const eckit::mpi::Comm & comm) + : NetCDFToIodaConverter(fullConfig, comm) { + variable_ = "seaIceFraction"; + } + + // Read netcdf file and populate iodaVars + gdasapp::obsproc::iodavars::IodaVars providerToIodaVars(const std::string fileName) final { + oops::Log::info() << "Processing files provided by the JPSSRR" << std::endl; + + // Open the NetCDF file in read-only mode + netCDF::NcFile ncFile(fileName, netCDF::NcFile::read); + oops::Log::info() << "Reading... " << fileName << std::endl; + + // Get the number of obs in the file + int dimxSize = ncFile.getDim("Columns").getSize(); + int dimySize = ncFile.getDim("Rows").getSize(); + int nobs = dimxSize * dimySize; + + // Set the int metadata names + std::vector intMetadataNames = {"oceanBasin"}; + + // Set the float metadata name + std::vector floatMetadataNames = {}; + + // Create instance of iodaVars object + gdasapp::obsproc::iodavars::IodaVars iodaVars(nobs, floatMetadataNames, intMetadataNames); + + oops::Log::debug() << "--- iodaVars.location_: " << iodaVars.location_ << std::endl; + + // Read non-optional metadata: longitude and latitude + std::vector oneDimLatVal(iodaVars.location_); + ncFile.getVar("Latitude").getVar(oneDimLatVal.data()); + + std::vector oneDimLonVal(iodaVars.location_); + ncFile.getVar("Longitude").getVar(oneDimLonVal.data()); + + // Create a vector to hold the Summary Qc variable + // User-level summary QC: 0=Normal, 1=Uncertain + std::vector oneDimFlagsVal(iodaVars.location_); + ncFile.getVar("SummaryQC_Ice_Concentration").getVar(oneDimFlagsVal.data()); + + // Get Ice_Concentration obs values + std::vector oneDimObsVal(iodaVars.location_); + ncFile.getVar("IceConc").getVar(oneDimObsVal.data()); + + // Read and process the starting and ending of dateTime + auto timeStartAttr = ncFile.getAtt("time_coverage_start"); + auto timeEndAttr = ncFile.getAtt("time_coverage_end"); + + // Extract attribute values as strings + std::string timeStartStr, timeEndStr; + timeStartAttr.getValues(timeStartStr); + timeEndAttr.getValues(timeEndStr); + + // Convert the extracted strings to util::DateTime objects + util::DateTime timeStartDtime(timeStartStr); + util::DateTime timeEndDtime(timeEndStr); + + // Create vectors of util::DateTime + std::vector timeStartVector = {timeStartDtime}; + std::vector timeEndVector = {timeEndDtime}; + + // Set epoch time for JPSSRR ICEC + util::DateTime epochDtime("1970-01-01T00:00:00Z"); + + // Convert Obs DateTime objects to epoch time offsets in seconds + int64_t timeStartOffsets + = ioda::convertDtimeToTimeOffsets(epochDtime, timeStartVector)[0]; + int64_t timeEndOffsets + = ioda::convertDtimeToTimeOffsets(epochDtime, timeEndVector)[0]; + + iodaVars.referenceDate_ = "seconds since 1970-01-01T00:00:00Z"; + + // Update non-optional Eigen arrays + for (int i = 0; i < iodaVars.location_; i++) { + iodaVars.longitude_(i) = oneDimLonVal[i]; + iodaVars.latitude_(i) = oneDimLatVal[i]; + iodaVars.obsVal_(i) = static_cast(oneDimObsVal[i]*0.01); + iodaVars.obsError_(i) = 0.1; // Do something for obs error + iodaVars.preQc_(i) = oneDimFlagsVal[i]; + iodaVars.datetime_(i) = + timeStartOffsets + (timeEndOffsets - timeStartOffsets) * 0.5; + // Store optional metadata, set ocean basins to -999 for now + iodaVars.intMetadata_.row(i) << -999; + } + + // basic test for iodaVars.trim + Eigen::Array mask = + ((iodaVars.obsVal_ >= 0.0 && iodaVars.obsVal_ <= 1.0) && + iodaVars.datetime_ > 0.0 && + (iodaVars.latitude_ <= -40.0 || iodaVars.latitude_ >= 40.0)); + iodaVars.trim(mask); + + return iodaVars; + }; + }; // class IcecMirs2Ioda +} // namespace gdasapp + diff --git a/utils/obsproc/applications/gdas_obsprovider2ioda.h b/utils/obsproc/applications/gdas_obsprovider2ioda.h index fe15a00f4..a1a6fe6e3 100644 --- a/utils/obsproc/applications/gdas_obsprovider2ioda.h +++ b/utils/obsproc/applications/gdas_obsprovider2ioda.h @@ -8,6 +8,7 @@ #include "../Ghrsst2Ioda.h" #include "../IcecAmsr2Ioda.h" +#include "../IcecJpssrr2Ioda.h" #include "../IcecMirs2Ioda.h" #include "../Rads2Ioda.h" #include "../RTOFSSalinity.h" @@ -54,6 +55,9 @@ namespace gdasapp { } else if (provider == "MIRS") { IcecMirs2Ioda conv2ioda(fullConfig, this->getComm()); conv2ioda.writeToIoda(); + } else if (provider == "JPSSRR") { + IcecJpssrr2Ioda conv2ioda(fullConfig, this->getComm()); + conv2ioda.writeToIoda(); } else if (provider == "VIIRSAOD") { Viirsaod2Ioda conv2ioda(fullConfig, this->getComm()); conv2ioda.writeToIoda(); diff --git a/utils/soca/gdassoca_obsstats.h b/utils/soca/gdassoca_obsstats.h index 5f95574a1..010fe9ac0 100644 --- a/utils/soca/gdassoca_obsstats.h +++ b/utils/soca/gdassoca_obsstats.h @@ -81,6 +81,11 @@ namespace gdasapp { // ocean basin partitioning std::vector oceanBasins(nlocs); + if (!ospace.has("MetaData", "oceanBasin")) { + oops::Log::warning() << "Skipping obsspace" << obsFile + << ": oceanBasin does not exist." << std::endl; + continue; + } ospace.get_db("MetaData", "oceanBasin", oceanBasins); // Open an ofstream for output and write header diff --git a/utils/test/CMakeLists.txt b/utils/test/CMakeLists.txt index 7cc1a2223..3be6cd1c4 100644 --- a/utils/test/CMakeLists.txt +++ b/utils/test/CMakeLists.txt @@ -9,6 +9,7 @@ list( APPEND utils_test_input testinput/gdas_smos2ioda.yaml testinput/gdas_icecamsr2ioda.yaml testinput/gdas_icecmirs2ioda.yaml + testinput/gdas_icecjpssrr2ioda.yaml testinput/gdas_viirsaod2ioda.yaml ) @@ -21,6 +22,7 @@ set( gdas_utils_test_ref testref/smos2ioda.test testref/icecamsr2ioda.test testref/icecmirs2ioda.test + testref/icecjpssrr2ioda.test testref/viirsaod2ioda.test ) @@ -154,3 +156,10 @@ ecbuild_add_test( TARGET test_gdasapp_util_icecmirs2ioda ARGS "../testinput/gdas_icecmirs2ioda.yaml" LIBS gdas-utils WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/obsproc) + + # Test the JPSSRR to IODA converter +ecbuild_add_test( TARGET test_gdasapp_util_icecjpssrr2ioda + COMMAND ${CMAKE_BINARY_DIR}/bin/gdas_obsprovider2ioda.x + ARGS "../testinput/gdas_icecjpssrr2ioda.yaml" + LIBS gdas-utils + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/obsproc) diff --git a/utils/test/prepdata.sh b/utils/test/prepdata.sh index 665f91aa1..4cb5b31a9 100755 --- a/utils/test/prepdata.sh +++ b/utils/test/prepdata.sh @@ -25,6 +25,8 @@ cdl2nc4 icec_amsr2_south_1.nc4 ${project_source_dir}/testdata/icec_amsr2_south_1 cdl2nc4 icec_amsr2_south_2.nc4 ${project_source_dir}/testdata/icec_amsr2_south_2.cdl cdl2nc4 icec_mirs_snpp_1.nc4 ${project_source_dir}/testdata/icec_mirs_snpp_1.cdl cdl2nc4 icec_mirs_snpp_2.nc4 ${project_source_dir}/testdata/icec_mirs_snpp_2.cdl +cdl2nc4 icec_jrr_n20_1.nc4 ${project_source_dir}/testdata/icec_jrr_n20_1.cdl +cdl2nc4 icec_jrr_n20_2.nc4 ${project_source_dir}/testdata/icec_jrr_n20_2.cdl cdl2nc4 sss_smap_1.nc4 ${project_source_dir}/testdata/sss_smap_1.cdl cdl2nc4 sss_smap_2.nc4 ${project_source_dir}/testdata/sss_smap_2.cdl cdl2nc4 sss_smos_1.nc4 ${project_source_dir}/testdata/sss_smos_1.cdl diff --git a/utils/test/testdata/icec_jrr_n20_1.cdl b/utils/test/testdata/icec_jrr_n20_1.cdl new file mode 100644 index 000000000..2aaf0393c --- /dev/null +++ b/utils/test/testdata/icec_jrr_n20_1.cdl @@ -0,0 +1,724 @@ +netcdf output_1 { +dimensions: + Rows = 15 ; + Columns = 45 ; +variables: + float IceConc(Rows, Columns) ; + IceConc:_FillValue = -999.f ; + IceConc:coordinates = "Longitude Latitude" ; + IceConc:long_name = "Ice Concentration" ; + IceConc:units = "%" ; + IceConc:valid_range = 0.f, 100.f ; + byte IceMap(Rows, Columns) ; + IceMap:_FillValue = -3b ; + IceMap:coordinates = "Longitude Latitude" ; + IceMap:long_name = "Ice Cover map codes" ; + IceMap:units = "1" ; + IceMap:valid_range = -2b, 2b ; + float IceRetrPct ; + IceRetrPct:long_name = "% of valid ice cover and concentration retrievals of all water pixels" ; + IceRetrPct:units = "%" ; + IceRetrPct:_FillValue = 0.f ; + IceRetrPct:valid_range = 0.f, 100.f ; + float IceSrfTemp(Rows, Columns) ; + IceSrfTemp:_FillValue = -999.f ; + IceSrfTemp:coordinates = "Longitude Latitude" ; + IceSrfTemp:long_name = "Ice Surface Temp" ; + IceSrfTemp:units = "Kelvin(K)" ; + IceSrfTemp:valid_range = 100.f, 390.f ; + float IceTermntPct ; + IceTermntPct:long_name = "% of terminated ice cover and concentration retrievals of all processed pixels" ; + IceTermntPct:units = "%" ; + IceTermntPct:_FillValue = 0.f ; + IceTermntPct:valid_range = 0.f, 100.f ; + float Latitude(Rows, Columns) ; + Latitude:long_name = "Latitude" ; + Latitude:_FillValue = -999.f ; + Latitude:units = "degrees_north" ; + Latitude:valid_range = -90.f, 90.f ; + Latitude:comments = "Pixel latitude in field Latitude (degree)" ; + float Longitude(Rows, Columns) ; + Longitude:long_name = "Longitude" ; + Longitude:_FillValue = -999.f ; + Longitude:units = "degrees_east" ; + Longitude:valid_range = -180.f, 180.f ; + Longitude:comments = "Pixel longitude in field Longitude (degree)" ; + float MaxIceConc ; + MaxIceConc:long_name = "Max ice concentration retrieval" ; + MaxIceConc:_FillValue = -999.f ; + MaxIceConc:units = "%" ; + float MeanIceConc ; + MeanIceConc:long_name = "Mean ice concentration retrieval" ; + MeanIceConc:_FillValue = -999.f ; + MeanIceConc:units = "%" ; + float MinIceConc ; + MinIceConc:long_name = "Min ice concentration retrieval" ; + MinIceConc:_FillValue = -999.f ; + MinIceConc:units = "%" ; + byte NumOfQACategories ; + NumOfQACategories:long_name = "Number of QA flag values" ; + NumOfQACategories:_FillValue = -128b ; + NumOfQACategories:units = "1" ; + int QCFlags(Rows, Columns) ; + QCFlags:_FillValue = -1 ; + QCFlags:coordinates = "Longitude Latitude" ; + QCFlags:long_name = "QCFlags" ; + QCFlags:units = "1" ; + float STDIceConc ; + STDIceConc:long_name = "Standard deviation of ice concentration retrievals" ; + STDIceConc:_FillValue = -999.f ; + STDIceConc:units = "%" ; + byte SearchWindowSize ; + SearchWindowSize:long_name = "Pixel size of search window to determine tie-point" ; + SearchWindowSize:_FillValue = -128b ; + SearchWindowSize:units = "1" ; + int StartColumn ; + StartColumn:long_name = "Start column index" ; + StartColumn:units = "1" ; + int StartRow ; + StartRow:long_name = "Start row index" ; + StartRow:units = "1" ; + byte SummaryQC_Ice_Concentration(Rows, Columns) ; + SummaryQC_Ice_Concentration:_FillValue = -128b ; + SummaryQC_Ice_Concentration:coordinates = "Longitude Latitude" ; + SummaryQC_Ice_Concentration:long_name = "User-level summary QC: 0=Normal, 1=Uncertain, 2=Non-Retrievable, 3=Bad" ; + SummaryQC_Ice_Concentration:units = "1" ; + SummaryQC_Ice_Concentration:valid_range = 0b, 3b ; + int TotDaytimePixs ; + TotDaytimePixs:long_name = "Total number of daytime valid retrievals" ; + TotDaytimePixs:_FillValue = 0 ; + TotDaytimePixs:units = "1" ; + int TotIceRetrvls ; + TotIceRetrvls:long_name = "Total number of valid ice cover and concentration retrievals" ; + TotIceRetrvls:_FillValue = 0 ; + TotIceRetrvls:units = "1" ; + int TotIceTermnt ; + TotIceTermnt:long_name = "Total number of terminated ice cover and concentration retrievals" ; + TotIceTermnt:_FillValue = 0 ; + TotIceTermnt:units = "1" ; + int TotNighttimePixs ; + TotNighttimePixs:long_name = "Total number of nighttime valid retrievals" ; + TotNighttimePixs:_FillValue = 0 ; + TotNighttimePixs:units = "1" ; + int TotWaterPixs ; + TotWaterPixs:long_name = "Total number of pixels w. water surface" ; + TotWaterPixs:_FillValue = 0 ; + TotWaterPixs:units = "1" ; + int Tot_QA_BadData ; + Tot_QA_BadData:long_name = "Total number of pixels with QA category 4 (Bad data)" ; + Tot_QA_BadData:_FillValue = 0 ; + Tot_QA_BadData:units = "1" ; + int Tot_QA_Nonretrievable ; + Tot_QA_Nonretrievable:long_name = "Total number of pixels with QA category 3 (Non-retrievable)" ; + Tot_QA_Nonretrievable:_FillValue = 0 ; + Tot_QA_Nonretrievable:units = "1" ; + int Tot_QA_Normal ; + Tot_QA_Normal:long_name = "Total number of pixels with QA category 1 (Normal of optimal)" ; + Tot_QA_Normal:_FillValue = 0 ; + Tot_QA_Normal:units = "1" ; + int Tot_QA_Uncertain ; + Tot_QA_Uncertain:long_name = "Total number of pixels with QA category 2 (Uncertain or suboptimal)" ; + Tot_QA_Uncertain:_FillValue = 0 ; + Tot_QA_Uncertain:units = "1" ; + +// global attributes: + :Conventions = "CF-1.6,ACDD 1.3" ; + :Metadata_Conventions = "CF-1.6, Unidata Dataset Discovery v1.0" ; + :standard_name_vocabulary = "CF Standard Name Table v76" ; + :institution = "DOC/NOAA/NESDIS/OSPO > Office of Satellite and Product Operations, NESDIS, NOAA, U.S. Department of Commerce." ; + :naming_authority = "gov.noaa.nesdis.ncei." ; + :processing_level = "NOAA Level 2" ; + :production_site = "NCCF" ; + :production_environment = "prod" ; + :sensor_band_identifier = "M3,M5,M7,M10,M15,M16" ; + :sensor_band_central_radiation_wavelength = "0.488um,0.672um,0.865um,1.61um,10.763um,12.013um" ; + :satellite_name = "NOAA-20" ; + :instrument = "VIIRS" ; + :project = "NESDIS Common Cloud Framework" ; + :summary = "Enterprise Ice Concentration/ Ice Mask/ Ice Surface Temperature Products" ; + :history = "Tue Aug 20 14:14:39 2024: ncks -d Columns,1,90,2 -d Rows,1,30,2 JRR-IceConcentration_v3r3_j01_s202406181055311_e202406181056538_c202406181202563.nc output_1.ncn\nEnterprise Ice Concentration Algorithm v1.1.0" ; + :references = "N/A" ; + :resolution = "750M" ; + :time_coverage_start = "2024-06-18T10:55:31Z" ; + :time_coverage_end = "2024-06-18T10:56:53Z" ; + :date_created = "2024-06-18T12:02:56Z" ; + :geospatial_lat_units = "degrees_north" ; + :geospatial_lon_units = "degrees_east" ; + :publisher_name = "DOC/NOAA/NESDIS/OSPO > Office of Satellite and Product Operations, NESDIS, NOAA, U.S. Department of Commerce." ; + :publisher_email = "espcoperations@noaa.gov" ; + :publisher_url = "http://www.ospo.noaa.gov" ; + :creator_email = "jkey@ssec.wisc.edu" ; + :creator_name = "DOC/NOAA/NESDIS/STAR > Cryosphere Team, Center for Satellite Applications and Research, NESDIS, NOAA, U.S. Department of Commerce" ; + :creator_url = "http://www.star.nesdis.noaa.gov" ; + :source = "L1b data, JRR-CloudMask, JRR-CloudHeight" ; + :keywords = "EARTH SCIENCE, CRYOSPHERE, SEA ICE, SEA ICE CONCENTRATION, ICE FRACTION, ICE EXTENT, ICE EDGES" ; + :cdm_data_type = "Swath" ; + :platform = "NOAA-20" ; + :title = "JRR_IceConcentration" ; + :metadata_link = "JRR-IceConcentration_v3r3_j01_s202406181055311_e202406181056538_c202406181202563.nc" ; + :history_package = "Delivery Package v3r3" ; + :product_version = "v3r3" ; + :keywords_vocabulary = "NASA Global Change Master Directory (GCMD) Science Keywords" ; + :geospatial_lat_max = 90.f ; + :geospatial_lat_min = -90.f ; + :geospatial_lat_resolution = "750 meters" ; + :geospatial_lon_max = 180.f ; + :geospatial_lon_min = -180.f ; + :geospatial_lon_resolution = "750 meters" ; + :id = "7c38eaa1-7e82-49dc-a00d-96fc30f77f4d" ; + :geospatial_bounds = "POLYGON((92.3739319 -62.2583618, 17.40835 -73.4811554, 20.670002 -68.7148819, 84.2927856 -59.1303825, 92.3739319 -62.2583618))" ; + :day_night_data_flag = "night" ; + :start_orbit_number = 34108 ; + :end_orbit_number = 34108 ; + :ascend_descend_data_flag = 0 ; + :geospatial_first_scanline_first_fov_lat = -62.25836f ; + :geospatial_first_scanline_last_fov_lat = -59.13038f ; + :geospatial_last_scanline_first_fov_lat = -73.48116f ; + :geospatial_last_scanline_last_fov_lat = -68.71488f ; + :geospatial_first_scanline_first_fov_lon = 92.37393f ; + :geospatial_first_scanline_last_fov_lon = 84.29279f ; + :geospatial_last_scanline_first_fov_lon = 17.40835f ; + :geospatial_last_scanline_last_fov_lon = 20.67f ; + :NCO = "netCDF Operators version 5.0.6 (Homepage = http://nco.sf.net, Code = http://github.com/nco/nco)" ; +data: + + IceConc = + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, 67.32343, 84.27617, 69.62304, 58.03904, _, + 75.2986, _, 93.43942, 89.14372, 90.32429, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, 69.33148, _, _, _, _, _, 92.32764, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 100, 100, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, 77.16252, _, 89.43716, _, + 96.34447, 100, 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, 93.09033, _, 68.65797, 72.14285, 72.15576, _, _, _, _, _, + 93.74178, _, 100, 100, 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 95.81432, _, _, _, + _, _, _, _, _, _, _, 83.46582, _, _, 70.99985, _, _, _, _, _, _, _, + 90.44588, _, 100, 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 100, _, _, + _, _, 100, 100, _, _, _, _, _, _, _, _, _, _, _, _, 98.98752, 100, _, _, + 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 87.24126, _, 100, _, + _, _, _, _, _, _, _, 88.74048, 91.04077, _, 73.66028, 77.14046, 72.86072, + _, 96.87101, _, 65.08202, _, 89.43575, _, 100, 100, 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, 69.14838, 74.81149, _, _, _, _, _, _, 92.22154, _, + 100, 100, 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 100, _, _, + _, _, 100, _, _, _, _, _, _, _, _, _, _, _, _, _, 99.45397, _, _, 100, 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 100, _, _, + 100, _, _, 100, 100, 90.56665, _, _, _, _, _, 87.64484, _, _, 91.27245, + _, 100, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 100, 100, _, _, _, 95.01587, _, 98.09937, 89.29044, _, _, _, 87.08566, + 96.69353, 94.27303, _, _, 100, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 100, _, + _, _, _, 100, 98.30614, 94.49585, _, 95.56421, _, _, 91.44451, 94.2695, + 93.61901, _, _, _, _, 100, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 100, 100, _, _, 100, _, _, 97.12012, _, _, _, _, 96.67687, _, 91.58325, + _, _, _, _, _, _ ; + + IceMap = + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 0, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, + 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 2, 2, 2, 0, 2, 0, 0, 2, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0 ; + + IceRetrPct = 92.00418 ; + + IceSrfTemp = + _, _, _, _, _, _, _, _, _, _, _, _, _, _, 262.912, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, 262.748, 260.5441, 262.449, 263.9549, + _, 261.7112, _, 259.3529, 259.9113, 259.7578, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, 262.4869, _, _, _, _, _, 259.4974, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 258.0082, 258.4478, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, 261.4689, _, 259.8732, _, + 258.9752, 258.0523, 257.7929, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, 259.8637, _, 262.5745, 262.1214, 262.1198, _, _, _, _, _, + 259.3136, _, 258.0438, 257.6424, 257.6123, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 260.4814, _, _, _, + _, _, _, _, _, _, _, 261.0668, _, _, 262.27, _, _, _, _, _, _, _, + 259.742, _, 257.781, 257.7041, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 259.4695, _, + _, _, _, 258.8402, 258.6626, _, _, _, _, _, _, _, _, _, _, _, _, + 258.6316, 258.2289, _, _, 257.6414, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 257.6414, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 261.4673, _, + 259.9039, _, _, _, _, _, _, _, _, 260.4074, 260.1199, _, 261.9242, + 261.4717, 262.0281, _, 258.9068, _, 263.0393, _, 259.8734, _, 258.0083, + 257.6029, 257.8393, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, 262.5107, 261.7745, _, _, _, _, _, _, 259.5112, _, + 257.9245, 257.633, 257.3847, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 259.6055, _, + _, _, _, 258.671, _, _, _, _, _, _, _, _, _, _, _, _, _, 258.571, _, _, + 257.6851, 257.6045, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 259.8718, _, + _, 259.1182, _, _, 259.2526, 259.4372, 260.1792, _, _, _, _, _, 260.1062, + _, _, 259.6346, _, 258.4996, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 259.1245, 259.1255, _, _, _, 259.623, _, 259.2376, 259.8922, _, _, _, + 260.1789, 258.9298, 259.2445, _, _, 258.3249, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, 259.6207, + _, _, _, _, 259.3116, 260.1948, 259.688, _, 259.5545, _, _, 259.6122, + 259.245, 259.3295, _, _, _, _, 258.3306, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 259.3393, 259.3635, _, _, 259.6414, _, _, 259.36, _, _, _, _, 258.932, _, + 259.5942, _, _, _, _, _, _ ; + + IceTermntPct = 96.45524 ; + + Latitude = + -62.26201, -62.28693, -62.31173, -62.33637, -62.36088, -62.38528, + -62.40954, -62.43367, -62.45765, -62.48153, -62.50529, -62.52892, + -62.55244, -62.57583, -62.59911, -62.62225, -62.64531, -62.66823, + -62.69104, -62.71375, -62.73633, -62.7588, -62.78117, -62.80342, + -62.82558, -62.84762, -62.86955, -62.89139, -62.91312, -62.93473, + -62.95624, -62.97764, -62.99895, -63.02018, -63.04131, -63.06235, + -63.08331, -63.10412, -63.12487, -63.1455, -63.16606, -63.1865, + -63.20688, -63.22714, -63.24732, + -62.24429, -62.26923, -62.29401, -62.31867, -62.34322, -62.36762, -62.3919, + -62.41604, -62.44005, -62.46393, -62.48772, -62.51137, -62.53489, + -62.5583, -62.5816, -62.60479, -62.62783, -62.65078, -62.6736, -62.69632, + -62.71892, -62.7414, -62.76378, -62.78606, -62.80823, -62.83027, + -62.85222, -62.87408, -62.89582, -62.91745, -62.93898, -62.96041, + -62.98171, -63.00295, -63.02411, -63.04518, -63.06613, -63.08697, + -63.10772, -63.12837, -63.14893, -63.1694, -63.18978, -63.21006, -63.23025, + -62.22651, -62.25145, -62.27627, -62.30095, -62.32549, -62.34993, -62.3742, + -62.39836, -62.42241, -62.44631, -62.47009, -62.49377, -62.51731, + -62.54074, -62.56406, -62.58723, -62.61031, -62.63326, -62.65611, + -62.67884, -62.70145, -62.72396, -62.74635, -62.76864, -62.79083, + -62.81289, -62.83486, -62.85672, -62.87847, -62.90014, -62.92169, + -62.94311, -62.96445, -62.98568, -63.00685, -63.02795, -63.04889, + -63.06976, -63.09053, -63.11119, -63.13177, -63.15226, -63.17266, + -63.19294, -63.21315, + -62.20868, -62.23362, -62.25846, -62.28316, -62.30772, -62.33216, + -62.35647, -62.38065, -62.40471, -62.42862, -62.45242, -62.4761, + -62.49968, -62.52313, -62.54646, -62.56966, -62.59274, -62.6157, + -62.63857, -62.66131, -62.68395, -62.70645, -62.72887, -62.75117, + -62.77337, -62.79546, -62.81743, -62.83931, -62.86109, -62.88277, + -62.90434, -62.92577, -62.94712, -62.96838, -62.98954, -63.01065, + -63.03164, -63.05252, -63.07329, -63.09396, -63.11456, -63.13505, + -63.15548, -63.17579, -63.196, + -62.19078, -62.21574, -62.2406, -62.2653, -62.28989, -62.31435, -62.33867, + -62.36287, -62.38693, -62.41087, -62.4347, -62.45842, -62.48199, + -62.50544, -62.52879, -62.55201, -62.57511, -62.5981, -62.62097, + -62.64373, -62.66639, -62.68891, -62.71133, -62.73365, -62.75586, + -62.77798, -62.79998, -62.82188, -62.84368, -62.86536, -62.88693, + -62.90839, -62.92974, -62.95101, -62.97221, -62.99332, -63.01432, + -63.03521, -63.05601, -63.0767, -63.09731, -63.11782, -63.13824, + -63.15857, -63.17879, + -62.17282, -62.19782, -62.22268, -62.2474, -62.272, -62.29648, -62.32082, + -62.34503, -62.36912, -62.39308, -62.41693, -62.44065, -62.46425, + -62.48772, -62.51107, -62.5343, -62.55743, -62.58043, -62.60332, + -62.6261, -62.64875, -62.67131, -62.69375, -62.71609, -62.73832, + -62.76044, -62.78246, -62.80437, -62.8262, -62.8479, -62.86947, + -62.89095, -62.91233, -62.9336, -62.95482, -62.97595, -62.99697, + -63.01787, -63.03868, -63.05939, -63.08001, -63.10055, -63.12098, + -63.14132, -63.16157, + -62.15481, -62.17982, -62.20471, -62.22945, -62.25407, -62.27857, + -62.30292, -62.32715, -62.35126, -62.37523, -62.39909, -62.42284, + -62.44645, -62.46994, -62.4933, -62.51656, -62.5397, -62.56272, + -62.58563, -62.60842, -62.6311, -62.65367, -62.67613, -62.69849, + -62.72072, -62.74287, -62.76492, -62.78683, -62.80865, -62.83037, + -62.85198, -62.87346, -62.89486, -62.91616, -62.93738, -62.95853, + -62.97956, -63.00048, -63.02131, -63.04203, -63.06266, -63.08321, + -63.10367, -63.12402, -63.14428, + -62.13674, -62.16177, -62.18667, -62.21144, -62.23608, -62.26059, + -62.28497, -62.30923, -62.33334, -62.35735, -62.38122, -62.40496, + -62.4286, -62.4521, -62.47549, -62.49877, -62.52193, -62.54496, + -62.56787, -62.59069, -62.61338, -62.63597, -62.65845, -62.68083, + -62.70309, -62.72525, -62.7473, -62.76923, -62.79108, -62.81281, + -62.83443, -62.85594, -62.87734, -62.89866, -62.9199, -62.94106, + -62.9621, -62.98305, -63.00388, -63.02463, -63.04528, -63.06583, + -63.0863, -63.10668, -63.12696, + -62.20229, -62.22714, -62.25185, -62.27643, -62.3009, -62.32522, -62.34944, + -62.3735, -62.39744, -62.42127, -62.44497, -62.46856, -62.49202, + -62.51536, -62.53855, -62.56163, -62.58459, -62.60746, -62.63023, + -62.65292, -62.67546, -62.69792, -62.72024, -62.74243, -62.76454, + -62.78652, -62.80841, -62.83018, -62.85189, -62.87347, -62.89493, + -62.9163, -62.93758, -62.95876, -62.97982, -63.0008, -63.02162, + -63.04238, -63.06308, -63.08369, -63.1042, -63.1246, -63.14489, + -63.16511, -63.18526, + -62.18449, -62.20935, -62.23409, -62.25868, -62.28314, -62.30751, + -62.33173, -62.35582, -62.37976, -62.4036, -62.42735, -62.45093, + -62.47441, -62.49775, -62.52097, -62.54407, -62.56704, -62.58994, + -62.61273, -62.6354, -62.65798, -62.68045, -62.70278, -62.725, -62.7471, + -62.76911, -62.79102, -62.81282, -62.83453, -62.85612, -62.8776, + -62.89899, -62.92028, -62.94146, -62.96255, -62.98352, -63.00439, + -63.02516, -63.04585, -63.06648, -63.08701, -63.10742, -63.12773, + -63.14795, -63.16812, + -62.16662, -62.19151, -62.21626, -62.24088, -62.26535, -62.28973, + -62.31395, -62.33807, -62.36204, -62.38591, -62.40965, -62.43325, + -62.45674, -62.48012, -62.50335, -62.52645, -62.54944, -62.57235, + -62.59515, -62.61784, -62.64044, -62.66291, -62.68528, -62.7075, + -62.72963, -62.75167, -62.77359, -62.79539, -62.81711, -62.83872, + -62.86021, -62.88162, -62.90292, -62.92412, -62.94522, -62.96622, + -62.9871, -63.00787, -63.02859, -63.04924, -63.06976, -63.09018, + -63.11052, -63.13077, -63.15094, + -62.1487, -62.17361, -62.19837, -62.22301, -62.2475, -62.27188, -62.29613, + -62.32028, -62.34426, -62.36814, -62.39189, -62.41552, -62.43902, + -62.46241, -62.48566, -62.50877, -62.5318, -62.55471, -62.57752, + -62.60024, -62.62286, -62.64535, -62.66772, -62.68998, -62.71213, + -62.73416, -62.75609, -62.77792, -62.79966, -62.82127, -62.84279, + -62.86421, -62.88552, -62.90673, -62.92785, -62.94887, -62.96976, + -62.99055, -63.01128, -63.03194, -63.05248, -63.07293, -63.09328, + -63.11353, -63.13371, + -62.13073, -62.15564, -62.18042, -62.20507, -62.2296, -62.254, -62.27827, + -62.30242, -62.32643, -62.35032, -62.37409, -62.39773, -62.42126, + -62.44466, -62.46794, -62.49105, -62.51408, -62.53703, -62.55986, + -62.5826, -62.60523, -62.62773, -62.65012, -62.6724, -62.69455, + -62.71659, -62.73857, -62.7604, -62.78214, -62.80377, -62.82531, + -62.84675, -62.86807, -62.88932, -62.91044, -62.93147, -62.95238, + -62.97319, -62.99393, -63.01461, -63.03518, -63.05562, -63.07598, + -63.09626, -63.11648, + -62.1127, -62.13765, -62.16243, -62.1871, -62.21166, -62.23609, -62.26037, + -62.28451, -62.30855, -62.33246, -62.35624, -62.3799, -62.40345, + -62.42686, -62.45015, -62.4733, -62.49633, -62.51929, -62.54214, + -62.56489, -62.58754, -62.61006, -62.63247, -62.65477, -62.67694, + -62.69901, -62.72098, -62.74283, -62.76459, -62.78625, -62.80779, + -62.82923, -62.85059, -62.87182, -62.89297, -62.91403, -62.93495, + -62.95576, -62.97654, -62.99721, -63.0178, -63.03827, -63.05866, + -63.07895, -63.09917, + -62.0946, -62.11958, -62.1444, -62.16909, -62.19365, -62.21809, -62.24238, + -62.26656, -62.29061, -62.31452, -62.33832, -62.36201, -62.38557, + -62.40901, -62.43231, -62.45547, -62.47853, -62.5015, -62.52438, + -62.54714, -62.56981, -62.59236, -62.61476, -62.63708, -62.65927, + -62.68135, -62.70333, -62.7252, -62.74699, -62.76866, -62.79021, + -62.81168, -62.83305, -62.85431, -62.87547, -62.89653, -62.91748, + -62.93832, -62.95908, -62.97978, -63.00042, -63.0209, -63.04129, + -63.06158, -63.08181 ; + + Longitude = + 92.32836, 92.28934, 92.25043, 92.21167, 92.17303, 92.1345, 92.09612, + 92.05786, 92.01971, 91.9817, 91.9438, 91.906, 91.86833, 91.83078, + 91.79333, 91.75603, 91.7188, 91.68171, 91.64473, 91.60786, 91.57111, + 91.53446, 91.4979, 91.46147, 91.42513, 91.38892, 91.35278, 91.31676, + 91.28085, 91.24503, 91.20936, 91.17381, 91.13828, 91.10289, 91.06756, + 91.0323, 90.99715, 90.96214, 90.92722, 90.8924, 90.85765, 90.82302, + 90.78848, 90.75401, 90.71967, + 92.27644, 92.23746, 92.19865, 92.15996, 92.12137, 92.08293, 92.04461, + 92.0064, 91.96834, 91.93037, 91.89256, 91.85484, 91.81721, 91.77973, + 91.74236, 91.70508, 91.66795, 91.63094, 91.594, 91.5572, 91.52051, + 91.48391, 91.44743, 91.41106, 91.37479, 91.33862, 91.30257, 91.26662, + 91.23075, 91.19501, 91.15939, 91.12386, 91.08844, 91.05311, 91.01783, + 90.98264, 90.94756, 90.9126, 90.87774, 90.84296, 90.80829, 90.77373, + 90.73923, 90.70483, 90.67053, + 92.22459, 92.18573, 92.14696, 92.10833, 92.06983, 92.03144, 91.9932, + 91.95507, 91.91708, 91.87918, 91.84142, 91.80374, 91.7662, 91.72879, + 91.69146, 91.65427, 91.61721, 91.58024, 91.54339, 91.50665, 91.47001, + 91.43347, 91.39709, 91.36076, 91.32457, 91.28845, 91.25244, 91.21656, + 91.18079, 91.14509, 91.1095, 91.07404, 91.03868, 91.00343, 90.96821, + 90.93306, 90.89806, 90.86316, 90.82837, 90.79366, 90.75903, 90.7245, + 90.69007, 90.65573, 90.62152, + 92.17288, 92.13409, 92.09541, 92.05685, 92.01839, 91.98009, 91.9419, + 91.90384, 91.8659, 91.82809, 91.79037, 91.75279, 91.71529, 91.67793, + 91.64069, 91.60357, 91.56655, 91.52966, 91.49287, 91.45618, 91.41963, + 91.38317, 91.34682, 91.31057, 91.27442, 91.23837, 91.20243, 91.16661, + 91.13089, 91.09524, 91.05972, 91.02435, 90.98907, 90.95384, 90.91871, + 90.88361, 90.84867, 90.81384, 90.77909, 90.74442, 90.70988, 90.67542, + 90.64106, 90.60677, 90.5726, + 92.12129, 92.08257, 92.04397, 92.00547, 91.9671, 91.92885, 91.89072, + 91.85273, 91.81487, 91.77711, 91.73946, 91.70191, 91.6645, 91.62721, + 91.59003, 91.55297, 91.51604, 91.47919, 91.44247, 91.40585, 91.36934, + 91.33295, 91.29668, 91.26048, 91.22441, 91.18842, 91.15255, 91.11676, + 91.08108, 91.04552, 91.01008, 90.97475, 90.93951, 90.90437, 90.86929, + 90.83427, 90.79936, 90.76458, 90.72989, 90.69531, 90.66081, 90.62642, + 90.5921, 90.55789, 90.52377, + 92.06983, 92.03118, 91.99264, 91.95422, 91.91589, 91.87771, 91.83965, + 91.80173, 91.76392, 91.72619, 91.68861, 91.65117, 91.61382, 91.57659, + 91.53949, 91.5025, 91.46561, 91.42886, 91.39217, 91.35561, 91.31918, + 91.28284, 91.24663, 91.21049, 91.17448, 91.13857, 91.10273, 91.06703, + 91.03141, 90.9959, 90.96053, 90.92525, 90.89008, 90.855, 90.81996, + 90.785, 90.75018, 90.71545, 90.68082, 90.64629, 90.61185, 90.57751, + 90.54325, 90.50909, 90.47505, + 92.01849, 91.97987, 91.94141, 91.90305, 91.8648, 91.82668, 91.78869, + 91.75083, 91.71306, 91.67544, 91.63794, 91.60052, 91.56325, 91.52608, + 91.48905, 91.45212, 91.41531, 91.37858, 91.34199, 91.30551, 91.26913, + 91.23284, 91.19669, 91.16062, 91.12466, 91.08879, 91.05303, 91.01737, + 90.98183, 90.9464, 90.91106, 90.87588, 90.84076, 90.80573, 90.77076, + 90.73586, 90.70107, 90.66644, 90.63184, 90.59737, 90.56301, 90.52871, + 90.49451, 90.46043, 90.42643, + 91.96724, 91.92871, 91.8903, 91.85201, 91.81382, 91.77579, 91.73785, + 91.70002, 91.66235, 91.62477, 91.58734, 91.55, 91.51279, 91.47569, + 91.4387, 91.40185, 91.36508, 91.32845, 91.29192, 91.25548, 91.21917, + 91.18296, 91.14687, 91.11082, 91.07494, 91.03915, 91.00345, 90.96786, + 90.93236, 90.897, 90.86172, 90.82659, 90.79153, 90.75655, 90.72166, + 90.68684, 90.6521, 90.6175, 90.583, 90.54856, 90.51425, 90.48003, + 90.44591, 90.41185, 90.3779, + 92.14404, 92.10492, 92.06598, 92.02713, 91.98841, 91.94981, 91.91131, + 91.87297, 91.83474, 91.79664, 91.75866, 91.72073, 91.68298, 91.64534, + 91.60785, 91.5705, 91.53324, 91.49606, 91.45898, 91.42199, 91.3851, + 91.34834, 91.31168, 91.27516, 91.23875, 91.20244, 91.16624, 91.13013, + 91.0941, 91.05822, 91.02245, 90.98676, 90.95116, 90.91568, 90.88029, + 90.84501, 90.80988, 90.77483, 90.73982, 90.70487, 90.67006, 90.63535, + 90.60075, 90.56625, 90.5318, + 92.09234, 92.05331, 92.0144, 91.97564, 91.93698, 91.89843, 91.86002, + 91.82175, 91.78358, 91.74553, 91.70758, 91.66977, 91.63207, 91.59453, + 91.5571, 91.51981, 91.48261, 91.44552, 91.40848, 91.37154, 91.33472, + 91.29803, 91.26144, 91.22499, 91.18864, 91.15239, 91.11625, 91.08018, + 91.04424, 91.00842, 90.97269, 90.93704, 90.90154, 90.8661, 90.83077, + 90.79557, 90.76048, 90.7255, 90.69056, 90.65569, 90.62093, 90.58629, + 90.55173, 90.5173, 90.4829, + 92.04076, 92.00178, 91.96294, 91.92425, 91.88567, 91.8472, 91.80884, + 91.77063, 91.73253, 91.69452, 91.65667, 91.61892, 91.58129, 91.54379, + 91.50644, 91.46921, 91.4321, 91.39506, 91.35809, 91.32122, 91.28448, + 91.24783, 91.2113, 91.17491, 91.13863, 91.10241, 91.06633, 91.03037, + 90.99448, 90.9587, 90.92306, 90.88749, 90.85201, 90.81665, 90.78139, + 90.74622, 90.71122, 90.67628, 90.64142, 90.60658, 90.57188, 90.53731, + 90.50283, 90.46841, 90.43409, + 91.98926, 91.95037, 91.9116, 91.87297, 91.83447, 91.79605, 91.75777, + 91.71959, 91.68156, 91.64364, 91.60586, 91.56818, 91.53062, 91.49319, + 91.45589, 91.41873, 91.38167, 91.3447, 91.30782, 91.271, 91.23429, + 91.19772, 91.16128, 91.12493, 91.08869, 91.05257, 91.01655, 90.98064, + 90.94482, 90.90911, 90.8735, 90.83801, 90.8026, 90.7673, 90.73212, + 90.697, 90.66203, 90.62717, 90.59236, 90.55759, 90.52296, 90.48843, + 90.45401, 90.41969, 90.3854, + 91.93791, 91.89908, 91.8604, 91.82183, 91.78336, 91.74503, 91.70679, + 91.66869, 91.63074, 91.59288, 91.55516, 91.51756, 91.48006, 91.4427, + 91.40546, 91.36836, 91.33136, 91.29446, 91.25762, 91.22089, 91.18424, + 91.14773, 91.11131, 91.07504, 91.03889, 91.00284, 90.96686, 90.93102, + 90.89526, 90.85963, 90.82409, 90.78862, 90.75327, 90.71805, 90.68291, + 90.64787, 90.61298, 90.57815, 90.5434, 90.5087, 90.47413, 90.43966, + 90.40529, 90.37099, 90.33678, + 91.88667, 91.84789, 91.80927, 91.77076, 91.73237, 91.69408, 91.65593, + 91.61791, 91.58001, 91.54224, 91.50457, 91.46703, 91.42961, 91.39231, + 91.35513, 91.3181, 91.28117, 91.24432, 91.20754, 91.17088, 91.13429, + 91.09781, 91.06149, 91.02528, 90.98918, 90.95319, 90.9173, 90.88151, + 90.84582, 90.81021, 90.77474, 90.73937, 90.70409, 90.66892, 90.63383, + 90.59882, 90.56401, 90.52924, 90.49453, 90.45992, 90.42538, 90.39097, + 90.35665, 90.32244, 90.28828, + 91.83555, 91.79684, 91.75826, 91.71982, 91.6815, 91.64329, 91.60519, + 91.56725, 91.52942, 91.49169, 91.45412, 91.41662, 91.37926, 91.34202, + 91.30491, 91.26795, 91.23109, 91.19429, 91.15759, 91.12096, 91.08443, + 91.04803, 91.01178, 90.97562, 90.9396, 90.90366, 90.86784, 90.83211, + 90.79646, 90.76093, 90.72552, 90.69021, 90.65498, 90.61985, 90.58482, + 90.5499, 90.51514, 90.48046, 90.44579, 90.41122, 90.37672, 90.34238, + 90.30814, 90.27399, 90.23987 ; + + MaxIceConc = 100 ; + + MeanIceConc = 96.61342 ; + + MinIceConc = 7.335297 ; + + NumOfQACategories = 4 ; + + QCFlags = + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -18006798, -16958217, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -22201095, + -22201104, -22201095, -22201104, -16958217, -22201095, -16958209, + -22201104, -22201104, -22201104, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958217, + -16958209, -22201095, -16958209, -16958209, -16958209, -16958209, + -16958217, -22201095, -16958217, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958217, -16958217, -16958217, -16958209, -16958217, -16958217, + -22201104, -22201095, -16958217, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958217, -16958209, -16958209, -16958209, -16958209, -16958217, + -16958209, -16958209, -22201095, -16958209, -22201104, -16958217, + -22201095, -22201095, -22201095, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958217, + -22201095, -16958217, -22201095, -22201104, -22201095, -16958217, + -16958217, -16958209, -16958209, -16958209, -22201095, -16958217, + -22201095, -22201104, -22201104, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -22201095, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -22201095, -16958209, -16958217, -22201095, -16958209, -16958217, + -16958209, -16958209, -16958217, -16958209, -16958217, -22201095, + -16958209, -22201104, -22201104, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958217, -22201095, -16958217, -16958209, + -16958209, -16958217, -22201095, -22201095, -16958209, -16958209, + -16958217, -16958217, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958217, -16958217, -16958217, -22201095, -22201095, + -16958209, -16958209, -22201104, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958217, + -16958217, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958217, -16958209, + -16958209, -16958209, -22201095, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -22201095, -16958209, -22201095, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -22201104, + -22201104, -16958217, -22201104, -22201104, -22201095, -16958209, + -22201095, -16958209, -22201104, -16958209, -22201104, -16958217, + -22201104, -22201095, -22201104, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958217, -22201095, -22201095, -16958217, -16958209, + -16958209, -16958209, -16958217, -16958209, -22201095, -16958217, + -22201095, -22201104, -22201104, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958217, + -16958217, -16958209, -16958217, -22201095, -16958209, -16958209, + -16958209, -16958209, -22201095, -16958209, -16958209, -16958217, + -16958217, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -22201095, -16958217, + -16958209, -22201104, -22201104, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958217, -16958217, -16958209, + -16958209, -16958209, -16958209, -22201095, -16958217, -16958217, + -22201095, -16958217, -16958209, -22201095, -22201095, -22201095, + -16958217, -16958217, -16958217, -16958209, -16958209, -22201095, + -16958209, -16958217, -22201104, -16958217, -22201095, -16958209, + -16958209, -16958209, -16958217, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958217, -16958217, -16958217, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958217, -16958217, + -22201095, -22201095, -16958217, -16958217, -16958217, -22201095, + -16958217, -22201095, -22201095, -16958209, -16958217, -16958209, + -22201095, -22201095, -22201104, -16958217, -16958217, -22201095, + -16958217, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958217, -16958209, -16958217, -16958217, -16958209, + -16958209, -16958209, -16958209, -16958209, -22201095, -16958217, + -16958217, -16958209, -16958217, -22201095, -22201095, -22201095, + -16958217, -22201104, -16958217, -16958217, -22201104, -22201095, + -22201104, -16958217, -16958209, -16958217, -16958209, -22201095, + -16958217, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958209, + -16958209, -16958217, -16958217, -16958217, -16958217, -16958209, + -16958209, -16958209, -16958209, -16958209, -16958209, -16958217, + -22201095, -22201095, -16958217, -16958217, -22201095, -16958217, + -16958217, -22201095, -16958217, -16958217, -16958217, -16958217, + -22201095, -16958217, -22201095, -16958209, -16958217, -16958209, + -16958217, -16958209, -16958209 ; + + STDIceConc = 6.231885 ; + + SearchWindowSize = 50 ; + + StartColumn = 1 ; + + StartRow = 1 ; + + SummaryQC_Ice_Concentration = + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 1, 0, 3, 1, 3, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 1, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 0, 3, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 1, 3, 1, 0, 1, 3, 3, 3, 3, 3, 1, 3, 1, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, + 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 0, 0, 3, 0, 0, 1, 3, 1, 3, 0, 3, 0, 3, 0, 1, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 1, 3, 1, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, + 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 1, + 3, 3, 1, 1, 1, 3, 3, 3, 3, 3, 1, 3, 3, 0, 3, 1, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 1, 3, 3, 3, 1, 3, 1, 1, 3, 3, 3, 1, 1, 0, 3, 3, 1, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, + 3, 3, 1, 1, 1, 3, 0, 3, 3, 0, 1, 0, 3, 3, 3, 3, 1, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 3 ; + + TotDaytimePixs = _ ; + + TotIceRetrvls = 87116 ; + + TotIceTermnt = 2370484 ; + + TotNighttimePixs = 87116 ; + + TotWaterPixs = 94687 ; + + Tot_QA_BadData = 2362913 ; + + Tot_QA_Nonretrievable = 7571 ; + + Tot_QA_Normal = 37020 ; + + Tot_QA_Uncertain = 50096 ; +} diff --git a/utils/test/testdata/icec_jrr_n20_2.cdl b/utils/test/testdata/icec_jrr_n20_2.cdl new file mode 100644 index 000000000..a833e0495 --- /dev/null +++ b/utils/test/testdata/icec_jrr_n20_2.cdl @@ -0,0 +1,783 @@ +netcdf output_2 { +dimensions: + Rows = 15 ; + Columns = 50 ; +variables: + float IceConc(Rows, Columns) ; + IceConc:_FillValue = -999.f ; + IceConc:coordinates = "Longitude Latitude" ; + IceConc:long_name = "Ice Concentration" ; + IceConc:units = "%" ; + IceConc:valid_range = 0.f, 100.f ; + byte IceMap(Rows, Columns) ; + IceMap:_FillValue = -3b ; + IceMap:coordinates = "Longitude Latitude" ; + IceMap:long_name = "Ice Cover map codes" ; + IceMap:units = "1" ; + IceMap:valid_range = -2b, 2b ; + float IceRetrPct ; + IceRetrPct:long_name = "% of valid ice cover and concentration retrievals of all water pixels" ; + IceRetrPct:units = "%" ; + IceRetrPct:_FillValue = 0.f ; + IceRetrPct:valid_range = 0.f, 100.f ; + float IceSrfTemp(Rows, Columns) ; + IceSrfTemp:_FillValue = -999.f ; + IceSrfTemp:coordinates = "Longitude Latitude" ; + IceSrfTemp:long_name = "Ice Surface Temp" ; + IceSrfTemp:units = "Kelvin(K)" ; + IceSrfTemp:valid_range = 100.f, 390.f ; + float IceTermntPct ; + IceTermntPct:long_name = "% of terminated ice cover and concentration retrievals of all processed pixels" ; + IceTermntPct:units = "%" ; + IceTermntPct:_FillValue = 0.f ; + IceTermntPct:valid_range = 0.f, 100.f ; + float Latitude(Rows, Columns) ; + Latitude:long_name = "Latitude" ; + Latitude:_FillValue = -999.f ; + Latitude:units = "degrees_north" ; + Latitude:valid_range = -90.f, 90.f ; + Latitude:comments = "Pixel latitude in field Latitude (degree)" ; + float Longitude(Rows, Columns) ; + Longitude:long_name = "Longitude" ; + Longitude:_FillValue = -999.f ; + Longitude:units = "degrees_east" ; + Longitude:valid_range = -180.f, 180.f ; + Longitude:comments = "Pixel longitude in field Longitude (degree)" ; + float MaxIceConc ; + MaxIceConc:long_name = "Max ice concentration retrieval" ; + MaxIceConc:_FillValue = -999.f ; + MaxIceConc:units = "%" ; + float MeanIceConc ; + MeanIceConc:long_name = "Mean ice concentration retrieval" ; + MeanIceConc:_FillValue = -999.f ; + MeanIceConc:units = "%" ; + float MinIceConc ; + MinIceConc:long_name = "Min ice concentration retrieval" ; + MinIceConc:_FillValue = -999.f ; + MinIceConc:units = "%" ; + byte NumOfQACategories ; + NumOfQACategories:long_name = "Number of QA flag values" ; + NumOfQACategories:_FillValue = -128b ; + NumOfQACategories:units = "1" ; + int QCFlags(Rows, Columns) ; + QCFlags:_FillValue = -1 ; + QCFlags:coordinates = "Longitude Latitude" ; + QCFlags:long_name = "QCFlags" ; + QCFlags:units = "1" ; + float STDIceConc ; + STDIceConc:long_name = "Standard deviation of ice concentration retrievals" ; + STDIceConc:_FillValue = -999.f ; + STDIceConc:units = "%" ; + byte SearchWindowSize ; + SearchWindowSize:long_name = "Pixel size of search window to determine tie-point" ; + SearchWindowSize:_FillValue = -128b ; + SearchWindowSize:units = "1" ; + int StartColumn ; + StartColumn:long_name = "Start column index" ; + StartColumn:units = "1" ; + int StartRow ; + StartRow:long_name = "Start row index" ; + StartRow:units = "1" ; + byte SummaryQC_Ice_Concentration(Rows, Columns) ; + SummaryQC_Ice_Concentration:_FillValue = -128b ; + SummaryQC_Ice_Concentration:coordinates = "Longitude Latitude" ; + SummaryQC_Ice_Concentration:long_name = "User-level summary QC: 0=Normal, 1=Uncertain, 2=Non-Retrievable, 3=Bad" ; + SummaryQC_Ice_Concentration:units = "1" ; + SummaryQC_Ice_Concentration:valid_range = 0b, 3b ; + int TotDaytimePixs ; + TotDaytimePixs:long_name = "Total number of daytime valid retrievals" ; + TotDaytimePixs:_FillValue = 0 ; + TotDaytimePixs:units = "1" ; + int TotIceRetrvls ; + TotIceRetrvls:long_name = "Total number of valid ice cover and concentration retrievals" ; + TotIceRetrvls:_FillValue = 0 ; + TotIceRetrvls:units = "1" ; + int TotIceTermnt ; + TotIceTermnt:long_name = "Total number of terminated ice cover and concentration retrievals" ; + TotIceTermnt:_FillValue = 0 ; + TotIceTermnt:units = "1" ; + int TotNighttimePixs ; + TotNighttimePixs:long_name = "Total number of nighttime valid retrievals" ; + TotNighttimePixs:_FillValue = 0 ; + TotNighttimePixs:units = "1" ; + int TotWaterPixs ; + TotWaterPixs:long_name = "Total number of pixels w. water surface" ; + TotWaterPixs:_FillValue = 0 ; + TotWaterPixs:units = "1" ; + int Tot_QA_BadData ; + Tot_QA_BadData:long_name = "Total number of pixels with QA category 4 (Bad data)" ; + Tot_QA_BadData:_FillValue = 0 ; + Tot_QA_BadData:units = "1" ; + int Tot_QA_Nonretrievable ; + Tot_QA_Nonretrievable:long_name = "Total number of pixels with QA category 3 (Non-retrievable)" ; + Tot_QA_Nonretrievable:_FillValue = 0 ; + Tot_QA_Nonretrievable:units = "1" ; + int Tot_QA_Normal ; + Tot_QA_Normal:long_name = "Total number of pixels with QA category 1 (Normal of optimal)" ; + Tot_QA_Normal:_FillValue = 0 ; + Tot_QA_Normal:units = "1" ; + int Tot_QA_Uncertain ; + Tot_QA_Uncertain:long_name = "Total number of pixels with QA category 2 (Uncertain or suboptimal)" ; + Tot_QA_Uncertain:_FillValue = 0 ; + Tot_QA_Uncertain:units = "1" ; + +// global attributes: + :Conventions = "CF-1.6,ACDD 1.3" ; + :Metadata_Conventions = "CF-1.6, Unidata Dataset Discovery v1.0" ; + :standard_name_vocabulary = "CF Standard Name Table v76" ; + :institution = "DOC/NOAA/NESDIS/OSPO > Office of Satellite and Product Operations, NESDIS, NOAA, U.S. Department of Commerce." ; + :naming_authority = "gov.noaa.nesdis.ncei." ; + :processing_level = "NOAA Level 2" ; + :production_site = "NCCF" ; + :production_environment = "prod" ; + :sensor_band_identifier = "M3,M5,M7,M10,M15,M16" ; + :sensor_band_central_radiation_wavelength = "0.488um,0.672um,0.865um,1.61um,10.763um,12.013um" ; + :satellite_name = "NOAA-20" ; + :instrument = "VIIRS" ; + :project = "NESDIS Common Cloud Framework" ; + :summary = "Enterprise Ice Concentration/ Ice Mask/ Ice Surface Temperature Products" ; + :history = "Tue Aug 20 14:35:27 2024: ncks -d Columns,902,1000,2 -d Rows,422,451,2 JRR-IceConcentration_v3r3_j01_s202406180952557_e202406180954184_c202406181023196.nc output_2.nc\nEnterprise Ice Concentration Algorithm v1.1.0" ; + :references = "N/A" ; + :resolution = "750M" ; + :time_coverage_start = "2024-06-18T09:52:55Z" ; + :time_coverage_end = "2024-06-18T09:54:18Z" ; + :date_created = "2024-06-18T10:23:19Z" ; + :geospatial_lat_units = "degrees_north" ; + :geospatial_lon_units = "degrees_east" ; + :publisher_name = "DOC/NOAA/NESDIS/OSPO > Office of Satellite and Product Operations, NESDIS, NOAA, U.S. Department of Commerce." ; + :publisher_email = "espcoperations@noaa.gov" ; + :publisher_url = "http://www.ospo.noaa.gov" ; + :creator_email = "jkey@ssec.wisc.edu" ; + :creator_name = "DOC/NOAA/NESDIS/STAR > Cryosphere Team, Center for Satellite Applications and Research, NESDIS, NOAA, U.S. Department of Commerce" ; + :creator_url = "http://www.star.nesdis.noaa.gov" ; + :source = "L1b data, JRR-CloudMask, JRR-CloudHeight" ; + :keywords = "EARTH SCIENCE, CRYOSPHERE, SEA ICE, SEA ICE CONCENTRATION, ICE FRACTION, ICE EXTENT, ICE EDGES" ; + :cdm_data_type = "Swath" ; + :platform = "NOAA-20" ; + :title = "JRR_IceConcentration" ; + :metadata_link = "JRR-IceConcentration_v3r3_j01_s202406180952557_e202406180954184_c202406181023196.nc" ; + :history_package = "Delivery Package v3r3" ; + :product_version = "v3r3" ; + :keywords_vocabulary = "NASA Global Change Master Directory (GCMD) Science Keywords" ; + :geospatial_lat_max = 90.f ; + :geospatial_lat_min = -90.f ; + :geospatial_lat_resolution = "750 meters" ; + :geospatial_lon_max = 180.f ; + :geospatial_lon_min = -180.f ; + :geospatial_lon_resolution = "750 meters" ; + :id = "b8b29146-2936-461e-b20a-b9cf98790cbf" ; + :geospatial_bounds = "POLYGON((66.674118 64.1376266, 12.215044 56.018959, 5.55829859 59.631855, 68.5783844 68.9835892, 66.674118 64.1376266))" ; + :day_night_data_flag = "day" ; + :start_orbit_number = 34108 ; + :end_orbit_number = 34108 ; + :ascend_descend_data_flag = 0 ; + :geospatial_first_scanline_first_fov_lat = 64.13763f ; + :geospatial_first_scanline_last_fov_lat = 68.98359f ; + :geospatial_last_scanline_first_fov_lat = 56.01896f ; + :geospatial_last_scanline_last_fov_lat = 59.63186f ; + :geospatial_first_scanline_first_fov_lon = 66.67412f ; + :geospatial_first_scanline_last_fov_lon = 68.57838f ; + :geospatial_last_scanline_first_fov_lon = 12.21504f ; + :geospatial_last_scanline_last_fov_lon = 5.558299f ; + :NCO = "netCDF Operators version 5.0.6 (Homepage = http://nco.sf.net, Code = http://github.com/nco/nco)" ; +data: + + IceConc = + 98.34166, 92.57914, 100, 100, _, 92.13963, 100, 100, 100, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, + 100, 100, 100, _, 100, 100, 100, 100, 100, 100, 100, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, + _, _, _, 100, 100, _, 100, 100, 100, 100, 100, 100, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, + _, _, _, _, 100, _, _, _, _, 100, 100, _, 100, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, + _, _, _, _, 100, 89.48627, _, 98.89512, _, 100, 100, 100, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, + _, _, _, 100, 100, 84.68418, _, 77.50546, _, 100, 100, 100, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, + 100, _, _, _, 100, 86.11667, 93.27911, 100, _, 100, 100, 100, 100, _, 100, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, + _, 71.43365, 96.33943, _, _, 83.95166, _, 100, _, 100, _, 100, 100, 100, + 100, 100, 98.03237, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 94.22326, 100, 100, 85.10742, _, _, 100, 100, 100, 86.36085, _, _, 100, + 100, 100, 100, 100, 76.49621, 44.59078, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 85.69344, 91.635, 88.16773, 100, 100, _, 100, 100, _, _, _, _, _, 100, + 99.10674, 100, 100, 100, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 100, 100, 100, 100, 100, 75.4544, 100, _, 100, 83.1703, _, _, 57.75991, + 93.47446, 100, 72.29642, _, 83.43076, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 92.31869, 89.60022, 100, 100, 100, 100, 100, _, _, 100, _, 47.09764, _, _, + 48.18828, 55.38328, 69.85468, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 100, 100, 100, 97.60914, 95.65573, _, _, 71.58017, 70.78253, 100, 40.73283, + 52.17646, 53.28339, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 100, 100, 100, 100, 90.26763, _, 74.51026, 81.88432, 96.97428, 96.958, + 43.06062, 52.76248, 43.79315, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 100, 100, 100, 99.22068, 100, 100, 72.88243, 72.11736, 57.14133, 74.96605, + 48.98592, _, 42.24671, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ ; + + IceMap = + 1, 1, 1, 1, -2, 1, 1, 1, 1, _, _, 0, -2, _, 0, 0, 0, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 1, 1, -2, 1, 1, 1, 1, 1, 1, 1, _, 0, -2, _, 0, -2, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -2, 0, -2, 1, 1, 0, 1, 1, 1, 1, 1, 1, -2, -2, _, 0, -2, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 0, 0, 0, 1, _, -2, -2, -2, 1, 1, _, 1, -2, -2, 0, 0, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, -2, -2, 0, 1, 1, -2, 1, -2, 1, 1, 1, _, -2, -2, -2, _, _, -2, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 0, 0, 1, 1, 1, -2, 1, -2, 1, 1, 1, _, -2, -2, -2, 0, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 0, 0, 0, 1, 1, 1, 1, -2, 1, 1, 1, 1, -2, 1, -2, 0, 0, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + _, 1, 1, _, 0, 1, -2, 1, -2, 1, -2, 1, 1, 1, 1, 1, 1, -2, _, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 1, 1, 1, _, 0, 1, 1, 1, 1, -2, -2, 1, 1, 1, 1, 1, 1, 1, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, _, 1, 1, 0, 0, -2, -2, -2, 1, 1, 1, 1, 1, -2, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, 1, 1, _, 1, 1, -2, 0, 1, 1, 1, 1, -2, 1, -2, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, 1, 1, _, _, 1, _, 1, -2, -2, 1, 1, 1, -2, 0, 0, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, 0, _, 1, 1, 1, 1, 1, 1, 0, 0, -2, _, -2, -2, -2, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, -2, 0, -2, _, -2, -2, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -2, 1, 0, 0, 0, _, -2, -2, -2, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -2, + -1, -2, -1, -1, -1, -1, -1, -1, -1 ; + + IceRetrPct = 5.886314 ; + + IceSrfTemp = + 274.9209, 274.8062, 274.9214, 274.7943, _, 274.665, 274.5973, 274.4221, + 274.4603, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 274.8839, 274.9639, 274.973, _, 274.7099, 274.8377, 274.6533, 274.5237, + 274.4453, 274.4314, 274.6646, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, 274.7484, 274.8216, _, 274.8814, 274.5321, 274.5942, 274.8002, + 274.8478, 274.6158, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, 274.6919, _, _, _, _, 274.9737, 274.7827, _, 274.6674, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, + _, _, _, _, 274.8948, 274.651, _, 274.8407, _, 274.6422, 274.7932, + 274.6945, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, 274.7605, 274.6727, 274.6691, _, 274.7073, _, 274.5918, 274.5064, + 274.3907, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 274.7585, _, _, _, 274.6302, 274.7849, 274.9124, 274.6997, _, 274.7486, + 274.7006, 274.4442, 274.6088, _, 274.6678, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, 274.9928, 274.8151, _, _, 274.9085, _, 274.8958, _, 274.8481, _, + 274.5542, 274.5204, 274.8527, 274.6447, 274.6751, 274.5598, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, + 274.3351, 274.1571, 273.9791, 273.6346, _, _, 274.7652, 274.8819, 274.5946, + 274.8276, _, _, 274.6264, 274.7227, 274.9106, 274.631, 274.7617, + 274.9178, 274.7668, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, + 273.7129, 273.8175, 274.0147, 273.0873, 273.9924, _, 274.8008, 274.757, _, + _, _, _, _, 274.5397, 274.9979, 274.8029, 274.8488, 274.6307, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, + 273.3674, 273.1697, 273.3668, 272.9165, 273.2345, 273.8546, 274.9253, _, + 274.7198, 274.7643, _, _, 274.6973, 274.9601, 273.6242, 274.2138, _, + 274.8115, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, + 273.7788, 273.5576, 273.6622, 273.6536, 273.5914, 273.2065, 273.1289, _, _, + 274.2018, _, 274.1711, _, _, 274.4727, 273.6517, 273.9172, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, + 273.8614, 273.7878, 273.7272, 274.054, 274.0677, _, _, 274.4107, 274.4062, + 273.796, 274.48, 273.7475, 274.541, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + 273.7503, 273.7122, 273.7489, 273.8601, 274.3159, _, 273.7474, 274.2003, + 274.0799, 273.5551, 274.2413, 273.4915, 274.3263, _, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, + 274.0728, 274.0887, 273.7952, 274.0573, 273.9589, 273.7769, 274.1772, + 274.5915, 274.6418, 274.3053, 274.2776, _, 274.5207, _, _, _, _, _, _, _, + _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, + _, _, _, _, _, _ ; + + IceTermntPct = 99.72612 ; + + Latitude = + 66.94942, 66.94698, 66.94451, 66.94205, 66.93958, 66.93712, 66.93463, + 66.93217, 66.9297, 66.9272, 66.92471, 66.92223, 66.91973, 66.91723, + 66.91472, 66.91222, 66.90971, 66.9072, 66.90468, 66.90215, 66.89961, + 66.89709, 66.89456, 66.89201, 66.88949, 66.88696, 66.8844, 66.88187, + 66.87932, 66.87677, 66.8742, 66.87164, 66.86909, 66.86653, 66.86395, + 66.8614, 66.85883, 66.85624, 66.85367, 66.85108, 66.8485, 66.84592, + 66.84332, 66.84074, 66.83816, 66.83556, 66.83297, 66.83036, 66.82776, + 66.82515, + 66.96622, 66.96376, 66.96128, 66.9588, 66.95631, 66.95382, 66.95133, + 66.94884, 66.94633, 66.94383, 66.94132, 66.93882, 66.93629, 66.93378, + 66.93126, 66.92873, 66.92621, 66.92368, 66.92115, 66.9186, 66.91606, + 66.9135, 66.91095, 66.90839, 66.90585, 66.9033, 66.90073, 66.89816, + 66.89559, 66.89303, 66.89045, 66.88787, 66.88531, 66.88272, 66.88013, + 66.87756, 66.87496, 66.87238, 66.86978, 66.86718, 66.86458, 66.86198, + 66.85937, 66.85677, 66.85416, 66.85156, 66.84894, 66.84632, 66.8437, + 66.84108, + 66.98304, 66.98055, 66.97805, 66.97555, 66.97305, 66.97054, 66.96802, + 66.9655, 66.96297, 66.96046, 66.95794, 66.9554, 66.95287, 66.95033, + 66.94779, 66.94524, 66.9427, 66.94015, 66.9376, 66.93504, 66.93247, + 66.9299, 66.92734, 66.92477, 66.92221, 66.91962, 66.91705, 66.91445, + 66.91187, 66.9093, 66.90671, 66.90411, 66.90152, 66.89892, 66.89632, + 66.8937, 66.89111, 66.88851, 66.88589, 66.88328, 66.88065, 66.87804, + 66.87541, 66.8728, 66.87016, 66.86755, 66.86491, 66.86229, 66.85965, + 66.85701, + 66.99986, 66.99734, 66.99483, 66.99229, 66.98977, 66.98724, 66.9847, + 66.98218, 66.97964, 66.9771, 66.97455, 66.97199, 66.96944, 66.9669, + 66.96433, 66.96176, 66.95921, 66.95663, 66.95407, 66.95148, 66.94889, + 66.94631, 66.94373, 66.94114, 66.93855, 66.93595, 66.93336, 66.93076, + 66.92816, 66.92555, 66.92294, 66.92034, 66.91772, 66.9151, 66.91249, + 66.90989, 66.90726, 66.90462, 66.902, 66.89937, 66.89674, 66.89409, + 66.89145, 66.88882, 66.88617, 66.88354, 66.88089, 66.87823, 66.87559, + 66.87292, + 67.01666, 67.01414, 67.01159, 67.00905, 67.0065, 67.00396, 67.0014, + 66.99884, 66.99628, 66.99373, 66.99115, 66.98859, 66.98603, 66.98344, + 66.98088, 66.97829, 66.97571, 66.97312, 66.97053, 66.96793, 66.96531, + 66.96272, 66.96012, 66.95751, 66.95491, 66.9523, 66.94968, 66.94706, + 66.94445, 66.94183, 66.93921, 66.93656, 66.93394, 66.93131, 66.92867, + 66.92604, 66.92342, 66.92076, 66.91811, 66.91547, 66.91281, 66.91015, + 66.9075, 66.90485, 66.90219, 66.89954, 66.89687, 66.8942, 66.89153, + 66.88885, + 67.0026, 67.0002, 66.9978, 66.99538, 66.99297, 66.99055, 66.98813, + 66.98571, 66.98327, 66.98083, 66.9784, 66.97595, 66.9735, 66.97105, + 66.9686, 66.96615, 66.96368, 66.96121, 66.95875, 66.95628, 66.95377, + 66.95129, 66.94881, 66.94633, 66.94383, 66.94135, 66.93885, 66.93635, + 66.93385, 66.93134, 66.92883, 66.92632, 66.92381, 66.92129, 66.91876, + 66.91624, 66.91372, 66.91119, 66.90865, 66.90611, 66.90356, 66.90102, + 66.89848, 66.89594, 66.89339, 66.89084, 66.88828, 66.88571, 66.88316, + 66.88058, + 67.01941, 67.01699, 67.01456, 67.01212, 67.0097, 67.00726, 67.00482, + 67.00238, 66.99992, 66.99746, 66.995, 66.99255, 66.99008, 66.98761, + 66.98513, 66.98266, 66.98018, 66.9777, 66.97521, 66.97272, 66.9702, + 66.9677, 66.96519, 66.9627, 66.96019, 66.95768, 66.95516, 66.95265, + 66.95013, 66.94759, 66.94507, 66.94255, 66.94001, 66.93748, 66.93494, + 66.9324, 66.92985, 66.92731, 66.92477, 66.92221, 66.91962, 66.91707, + 66.91451, 66.91196, 66.90938, 66.90681, 66.90424, 66.90167, 66.89909, + 66.89652, + 67.03622, 67.03377, 67.03133, 67.02888, 67.02643, 67.02397, 67.02151, + 67.01904, 67.01656, 67.01408, 67.01161, 67.00914, 67.00665, 67.00417, + 67.00166, 66.99918, 66.99667, 66.99418, 66.99166, 66.98916, 66.98663, + 66.98411, 66.98159, 66.97906, 66.97653, 66.974, 66.97147, 66.96894, + 66.96642, 66.96387, 66.96133, 66.95877, 66.95621, 66.95367, 66.9511, + 66.94855, 66.94601, 66.94344, 66.94087, 66.9383, 66.9357, 66.93313, + 66.93055, 66.92797, 66.92538, 66.9228, 66.9202, 66.91762, 66.91502, + 66.91244, + 67.05302, 67.05056, 67.0481, 67.04563, 67.04316, 67.04068, 67.03819, + 67.03571, 67.03322, 67.03072, 67.02823, 67.02573, 67.02322, 67.02072, + 67.0182, 67.01569, 67.01318, 67.01066, 67.00813, 67.00561, 67.00307, + 67.00052, 66.99798, 66.99543, 66.99288, 66.99033, 66.98779, 66.98524, + 66.98269, 66.98013, 66.97757, 66.975, 66.97244, 66.96987, 66.96729, + 66.96472, 66.96214, 66.95957, 66.95699, 66.95439, 66.95178, 66.94919, + 66.94659, 66.94399, 66.94138, 66.93878, 66.93617, 66.93358, 66.93095, + 66.92834, + 67.06982, 67.06735, 67.06487, 67.06238, 67.05988, 67.05738, 67.05489, + 67.05238, 67.04987, 67.04736, 67.04484, 67.04231, 67.0398, 67.03728, + 67.03474, 67.03221, 67.02967, 67.02713, 67.02459, 67.02203, 67.01949, + 67.01694, 67.01437, 67.0118, 67.00925, 67.00668, 67.0041, 67.00155, + 66.99897, 66.99639, 66.9938, 66.99123, 66.98865, 66.98606, 66.98347, + 66.98088, 66.97829, 66.97568, 66.97308, 66.97044, 66.96785, 66.96523, + 66.96262, 66.96002, 66.9574, 66.95477, 66.95214, 66.94953, 66.9469, + 66.94427, + 67.08664, 67.08413, 67.08163, 67.07911, 67.07661, 67.07408, 67.07157, + 67.06905, 67.06651, 67.06398, 67.06146, 67.05891, 67.05637, 67.05383, + 67.05128, 67.04872, 67.04617, 67.04361, 67.04105, 67.03848, 67.03592, + 67.03333, 67.03077, 67.02819, 67.0256, 67.02301, 67.02043, 67.01785, + 67.01526, 67.01266, 67.01006, 67.00748, 67.00487, 67.00227, 66.99965, + 66.99704, 66.99442, 66.99181, 66.98918, 66.98654, 66.9839, 66.98129, + 66.97866, 66.97604, 66.9734, 66.97076, 66.96811, 66.96547, 66.96283, + 66.96019, + 67.10343, 67.10093, 67.09839, 67.09586, 67.09334, 67.0908, 67.08826, + 67.08571, 67.08316, 67.08061, 67.07806, 67.07551, 67.07294, 67.07039, + 67.06781, 67.06524, 67.06267, 67.06009, 67.05752, 67.05492, 67.05235, + 67.04974, 67.04716, 67.04457, 67.04196, 67.03937, 67.03677, 67.03416, + 67.03155, 67.02892, 67.02631, 67.0237, 67.02106, 67.01845, 67.01583, + 67.0132, 67.01056, 67.00793, 67.00529, 67.00265, 66.99999, 66.99734, + 66.99471, 66.99204, 66.98938, 66.98674, 66.98408, 66.98142, 66.97876, + 66.97612, + 67.12025, 67.11771, 67.11517, 67.11261, 67.11006, 67.10751, 67.10495, + 67.10239, 67.09982, 67.09725, 67.09467, 67.09209, 67.08952, 67.08694, + 67.08435, 67.08176, 67.07918, 67.07658, 67.07397, 67.07137, 67.06878, + 67.06616, 67.06355, 67.06094, 67.05833, 67.05569, 67.05307, 67.05046, + 67.04784, 67.04519, 67.04257, 67.03992, 67.03728, 67.03464, 67.032, + 67.02935, 67.0267, 67.02405, 67.02141, 67.01874, 67.01608, 67.01343, + 67.01076, 67.00809, 67.00542, 67.00274, 67.00006, 66.99738, 66.99471, + 66.99203, + 67.10621, 67.1038, 67.10139, 67.09898, 67.09655, 67.09411, 67.09168, + 67.08926, 67.08682, 67.08437, 67.08192, 67.07948, 67.07701, 67.07455, + 67.0721, 67.06963, 67.06716, 67.06468, 67.06221, 67.05972, 67.05724, + 67.05475, 67.05226, 67.04977, 67.04726, 67.04477, 67.04224, 67.03976, + 67.03725, 67.03473, 67.0322, 67.02968, 67.02715, 67.02464, 67.0221, + 67.01955, 67.01703, 67.01449, 67.01196, 67.0094, 67.00686, 67.00431, + 67.00174, 66.99918, 66.99662, 66.99406, 66.99149, 66.98891, 66.98636, + 66.98378, + 67.12302, 67.12059, 67.11815, 67.11572, 67.11327, 67.11083, 67.10838, + 67.10593, 67.10346, 67.101, 67.09853, 67.09606, 67.09359, 67.09111, + 67.08862, 67.08615, 67.08365, 67.08117, 67.07867, 67.07616, 67.07368, + 67.07117, 67.06865, 67.06613, 67.06362, 67.0611, 67.05857, 67.05605, + 67.05352, 67.05099, 67.04845, 67.0459, 67.04336, 67.04082, 67.03827, + 67.03573, 67.03318, 67.03061, 67.02805, 67.02549, 67.02293, 67.02036, + 67.01779, 67.01522, 67.01264, 67.01006, 67.00747, 67.00489, 67.0023, + 66.99971 ; + + Longitude = + 46.51716, 46.47765, 46.43822, 46.39891, 46.35968, 46.32058, 46.28156, + 46.24268, 46.20383, 46.16513, 46.12648, 46.08799, 46.04957, 46.01125, + 45.97302, 45.93488, 45.89684, 45.85889, 45.82104, 45.78316, 45.74537, + 45.70775, 45.67018, 45.63273, 45.59543, 45.55842, 45.52107, 45.48421, + 45.44712, 45.41035, 45.37339, 45.33672, 45.30018, 45.26367, 45.22721, + 45.19092, 45.15468, 45.11847, 45.08233, 45.0463, 45.0104, 44.97458, + 44.93879, 44.90312, 44.86756, 44.83205, 44.7967, 44.76129, 44.72601, + 44.69084, + 46.51044, 46.47093, 46.43146, 46.39213, 46.35291, 46.31378, 46.27477, + 46.23582, 46.19698, 46.15827, 46.1196, 46.08109, 46.04266, 46.00429, + 45.96606, 45.92792, 45.88983, 45.85188, 45.81401, 45.77608, 45.73838, + 45.70064, 45.66307, 45.6256, 45.58849, 45.55126, 45.51389, 45.47682, + 45.43988, 45.40301, 45.36617, 45.32946, 45.29288, 45.25637, 45.21996, + 45.18361, 45.14734, 45.11115, 45.07497, 45.03897, 45.00304, 44.96717, + 44.93139, 44.89571, 44.86007, 44.82462, 44.78921, 44.75384, 44.71856, + 44.68334, + 46.50376, 46.4642, 46.42477, 46.3854, 46.34613, 46.30702, 46.26795, + 46.22897, 46.19012, 46.15139, 46.11274, 46.07417, 46.03571, 45.99737, + 45.95909, 45.92092, 45.88286, 45.84486, 45.80696, 45.76916, 45.73118, + 45.69353, 45.656, 45.61853, 45.58119, 45.54401, 45.50673, 45.46965, + 45.4327, 45.39584, 45.35898, 45.32223, 45.28561, 45.2491, 45.21268, + 45.17628, 45.14002, 45.10387, 45.0677, 45.03166, 44.99564, 44.95973, + 44.92397, 44.88835, 44.85266, 44.81717, 44.78171, 44.74647, 44.71105, + 44.67587, + 46.49706, 46.4575, 46.41802, 46.37867, 46.33934, 46.3002, 46.26112, + 46.22216, 46.18331, 46.14454, 46.10584, 46.06729, 46.02881, 45.99043, + 45.95215, 45.91393, 45.87587, 45.83783, 45.79993, 45.76213, 45.72405, + 45.68644, 45.64888, 45.6114, 45.57404, 45.5368, 45.49961, 45.46247, + 45.42551, 45.38857, 45.35173, 45.315, 45.27835, 45.24184, 45.2054, + 45.16902, 45.1327, 45.09652, 45.06042, 45.02434, 44.98829, 44.95233, + 44.91651, 44.88089, 44.84529, 44.80976, 44.77428, 44.73893, 44.70355, + 44.66837, + 46.49037, 46.45079, 46.41129, 46.37187, 46.3326, 46.2934, 46.25431, + 46.21533, 46.17643, 46.13766, 46.09896, 46.06038, 46.0219, 45.98349, + 45.94519, 45.90698, 45.86888, 45.83084, 45.79289, 45.75507, 45.71702, + 45.6793, 45.64178, 45.60431, 45.56693, 45.52969, 45.49246, 45.45532, + 45.41832, 45.38138, 45.34452, 45.30773, 45.27111, 45.23458, 45.19812, + 45.16173, 45.12548, 45.08923, 45.05308, 45.01699, 44.98087, 44.94493, + 44.90912, 44.87342, 44.83788, 44.80236, 44.76681, 44.73148, 44.69611, + 44.66084, + 46.48796, 46.44836, 46.40884, 46.36943, 46.33012, 46.29089, 46.25177, + 46.21277, 46.17385, 46.135, 46.09629, 46.05765, 46.0191, 45.98069, + 45.94237, 45.90414, 45.86597, 45.8279, 45.78996, 45.75208, 45.71393, + 45.67624, 45.63869, 45.60113, 45.56373, 45.52641, 45.48923, 45.45203, + 45.41501, 45.37803, 45.34114, 45.30436, 45.26765, 45.23102, 45.19456, + 45.15812, 45.1218, 45.08555, 45.04933, 45.01323, 44.97704, 44.94106, + 44.90522, 44.86953, 44.8339, 44.79831, 44.76278, 44.72733, 44.69194, + 44.65674, + 46.48121, 46.44161, 46.40201, 46.36259, 46.32327, 46.28403, 46.24491, + 46.20587, 46.16694, 46.1281, 46.08931, 46.0507, 46.01215, 45.97369, + 45.93533, 45.8971, 45.85892, 45.82085, 45.78287, 45.74502, 45.70689, + 45.66911, 45.63155, 45.59402, 45.55653, 45.51917, 45.48196, 45.44482, + 45.40776, 45.37074, 45.33387, 45.29706, 45.26037, 45.22378, 45.18723, + 45.15082, 45.11447, 45.07821, 45.04203, 45.00587, 44.9696, 44.93362, + 44.89776, 44.862, 44.82638, 44.79074, 44.7552, 44.71975, 44.68435, + 44.64914, + 46.47445, 46.43481, 46.39523, 46.35578, 46.31645, 46.27718, 46.23805, + 46.19898, 46.16003, 46.12115, 46.0824, 46.04374, 46.00518, 45.96668, + 45.92833, 45.89005, 45.85187, 45.81379, 45.77577, 45.73788, 45.7, + 45.66203, 45.62439, 45.58674, 45.54924, 45.51189, 45.47466, 45.43754, + 45.4005, 45.36353, 45.32663, 45.28977, 45.25304, 45.21648, 45.17994, + 45.14348, 45.10715, 45.07089, 45.03468, 44.99853, 44.96211, 44.92618, + 44.89035, 44.85452, 44.81884, 44.78321, 44.74763, 44.71222, 44.67678, + 44.64156, + 46.46774, 46.42803, 46.38847, 46.349, 46.30959, 46.27036, 46.23119, + 46.1921, 46.15311, 46.11423, 46.07547, 46.03678, 45.99818, 45.95971, + 45.92131, 45.88303, 45.84484, 45.80672, 45.7687, 45.7308, 45.69297, + 45.65496, 45.61721, 45.57953, 45.54199, 45.50467, 45.4674, 45.43033, + 45.39324, 45.35626, 45.31938, 45.28255, 45.24584, 45.20921, 45.17266, + 45.13616, 45.09975, 45.06353, 45.02736, 44.99102, 44.95473, 44.91871, + 44.88289, 44.84711, 44.81134, 44.77565, 44.74007, 44.70466, 44.66924, + 44.63398, + 46.46096, 46.42129, 46.38168, 46.34217, 46.3028, 46.26353, 46.2243, + 46.18523, 46.14624, 46.10734, 46.06855, 46.0298, 45.99124, 45.95272, + 45.91432, 45.876, 45.83778, 45.79965, 45.76162, 45.72369, 45.68584, + 45.64791, 45.61023, 45.57264, 45.53516, 45.49773, 45.46037, 45.42318, + 45.38606, 45.34904, 45.31212, 45.27531, 45.23858, 45.20193, 45.16534, + 45.12879, 45.09252, 45.05608, 45.01977, 44.98337, 44.94724, 44.91127, + 44.87539, 44.8396, 44.80383, 44.76819, 44.73257, 44.69706, 44.66162, + 44.62637, + 46.45421, 46.41452, 46.37491, 46.33535, 46.29597, 46.25666, 46.21746, + 46.17834, 46.13935, 46.10041, 46.0616, 46.02287, 45.98426, 45.94574, + 45.90729, 45.86897, 45.83074, 45.79258, 45.75454, 45.71657, 45.67871, + 45.64074, 45.60308, 45.56553, 45.52799, 45.49059, 45.45332, 45.41608, + 45.37896, 45.34194, 45.30492, 45.26806, 45.23124, 45.19455, 45.15796, + 45.12145, 45.0851, 45.04873, 45.01234, 44.97583, 44.93963, 44.9036, + 44.86778, 44.83204, 44.79626, 44.76054, 44.72491, 44.68941, 44.65396, + 44.61865, + 46.44748, 46.40775, 46.36811, 46.32855, 46.28916, 46.24984, 46.21058, + 46.17145, 46.1324, 46.09347, 46.05466, 46.0159, 45.97726, 45.93874, + 45.90028, 45.86193, 45.82369, 45.78552, 45.74743, 45.70947, 45.67162, + 45.63373, 45.59599, 45.55838, 45.52083, 45.48341, 45.4461, 45.40893, + 45.37176, 45.33461, 45.29758, 45.26074, 45.22393, 45.18722, 45.15061, + 45.11406, 45.07758, 45.04121, 45.00496, 44.96866, 44.93242, 44.89632, + 44.86033, 44.82442, 44.78865, 44.75291, 44.71729, 44.68173, 44.6463, + 44.61107, + 46.44075, 46.40099, 46.36134, 46.32178, 46.28231, 46.24298, 46.20371, + 46.16458, 46.12554, 46.0866, 46.04771, 46.00896, 45.97029, 45.93174, + 45.89328, 45.8549, 45.81663, 45.77845, 45.74034, 45.70236, 45.66445, + 45.62667, 45.58892, 45.55122, 45.51371, 45.47617, 45.43881, 45.40163, + 45.3645, 45.32739, 45.2904, 45.2534, 45.21656, 45.17982, 45.14317, + 45.10662, 45.07013, 45.03378, 44.9975, 44.96126, 44.92519, 44.8891, + 44.85311, 44.81726, 44.78141, 44.74559, 44.70991, 44.67424, 44.63876, + 44.60345, + 46.43872, 46.39893, 46.35923, 46.31966, 46.28017, 46.24077, 46.2015, + 46.16228, 46.12324, 46.08423, 46.04535, 46.00655, 45.96787, 45.92928, + 45.89077, 45.85236, 45.81405, 45.77584, 45.73773, 45.69971, 45.66179, + 45.62389, 45.5861, 45.54845, 45.51088, 45.47339, 45.43597, 45.39874, + 45.36154, 45.32435, 45.28721, 45.25024, 45.21344, 45.17671, 45.14, + 45.10344, 45.06689, 45.03051, 44.99417, 44.9579, 44.92175, 44.88565, + 44.84954, 44.81355, 44.77764, 44.74189, 44.70619, 44.67055, 44.63511, + 44.5997, + 46.4319, 46.39211, 46.35241, 46.31281, 46.2733, 46.23388, 46.19458, + 46.1554, 46.11628, 46.07727, 46.03837, 45.99955, 45.96085, 45.92221, + 45.88371, 45.84529, 45.80696, 45.76873, 45.73058, 45.69256, 45.65462, + 45.61675, 45.5789, 45.54121, 45.50367, 45.46609, 45.4286, 45.39139, + 45.35415, 45.31709, 45.27998, 45.243, 45.20608, 45.16926, 45.13259, + 45.09597, 45.05947, 45.02301, 44.98663, 44.95044, 44.9143, 44.8782, + 44.84216, 44.80625, 44.77032, 44.73455, 44.69887, 44.66325, 44.62769, + 44.59214 ; + + MaxIceConc = 100 ; + + MeanIceConc = 88.47009 ; + + MinIceConc = 14.89622 ; + + NumOfQACategories = 4 ; + + QCFlags = + -20905760, -20905760, -20905760, -20905760, -17760030, -20905760, + -20905751, -20905751, -20905751, -16973662, -16973662, -16973594, + -17497878, -16973662, -16973594, -16973594, -16973594, -16908058, + -16908062, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908062, -16908054, -16908054, -16908054, -17301270, -16908054, + -16908054, -16908054, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908058, -16908058, -16908050, -16908050, + -16908050, -16908050, -16908050, -16908050, -16908050, -16908050, + -16908050, -16908050, + -20905751, -20905751, -20905751, -17760030, -20905760, -20905760, + -20905760, -20905760, -20905760, -20905760, -20905751, -16973662, + -16973594, -17760030, -16973662, -16973594, -17497878, -16908058, + -16908058, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908058, -16908058, + -16908058, -16908058, -16908050, -16908050, -16908050, -16908050, + -16908050, -16908050, + -17760022, -16973594, -17760022, -20905751, -20905760, -16973594, + -20905760, -20905760, -20905760, -20905760, -20905760, -20905760, + -17760022, -17760022, -16973662, -16973594, -17497878, -16908058, + -16908058, -16908058, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908126, -16908050, -16908050, -16908050, + -16908050, -16908050, + -16973594, -16973586, -16973594, -16973594, -20905751, -16973662, + -17760030, -17760030, -17760030, -20905751, -20905760, -16973662, + -20905760, -17760022, -17760030, -16973594, -16973594, -16973594, + -16908058, -16908058, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908126, -16908126, -16908058, -16908050, + -16908050, -16908050, + -16973586, -17760022, -17760022, -16973594, -20905760, -20905751, + -17760030, -20905760, -17760030, -20905760, -20905760, -20905760, + -16973662, -17760030, -17760030, -17497886, -16973662, -16973662, + -17497886, -16908062, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908062, -16908062, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908126, -16908126, -16908054, -16908054, + -16908050, -16908050, + -16973594, -16973594, -16973594, -20905751, -20905751, -20905751, + -17760022, -20905760, -17497886, -20905760, -20905760, -20905760, + -16973662, -17760030, -17760022, -17497886, -16973594, -16973594, + -16908126, -16908126, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908062, -16908062, -16908050, -16908126, + -16908050, -16908050, + -20905751, -16973594, -16973594, -16973594, -20905751, -20905751, + -20905760, -20905751, -17760030, -20905751, -20905751, -20905751, + -20905751, -17760030, -20905760, -17760030, -16973594, -16973594, + -16908058, -16908062, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908058, -16908054, -16908062, + -16908062, -16908062, -16908050, -16908062, -16908126, -16908126, + -16908050, -16908050, + -16973662, -20905751, -20905751, -16973662, -16973594, -20905751, + -17760022, -20905751, -17760030, -20905751, -17760030, -20905751, + -20905751, -20905751, -20905751, -20905760, -20905760, -17760030, + -16973662, -16908058, -16908054, -16908054, -16908054, -16908054, + -16908062, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908062, -16908062, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908058, -16908054, + -16908054, -16908054, -16908050, -16908058, -16908050, -16908050, + -16908058, -16908058, + -20905760, -20905760, -20905760, -20905760, -16973662, -16973594, + -20905751, -20905760, -20905751, -20905760, -17760030, -17760030, + -20905760, -20905760, -20905751, -20905751, -20905760, -20905760, + -20905760, -16973594, -16908058, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908062, -16908062, + -16908062, -16908062, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908050, -16908054, -16908054, -16908054, -16908050, + -16908058, -16908054, + -20905760, -20905760, -20905760, -20905760, -20905760, -16973662, + -20905751, -20905751, -16973586, -16973586, -17497878, -17760022, + -17760030, -20905760, -20905760, -20905760, -20905760, -20905760, + -17760030, -16908126, -16908058, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908062, -16908054, -16908054, -16908054, + -17039126, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908050, -16908050, -16908054, -16908054, -16908054, + -16908062, -16908054, + -20905760, -20905760, -20905760, -20905760, -20905760, -20905760, + -20905760, -16973662, -20905751, -20905760, -17497878, -16973586, + -20905760, -20905760, -20905760, -20905760, -17760030, -20905760, + -17497886, -16908062, -16908058, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908062, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908058, -16908054, -16908058, -16908058, + -16908054, -16908054, + -20905760, -20905760, -20905760, -20905760, -20905760, -20905760, + -20905760, -16973662, -16973662, -20905760, -16973662, -20905760, + -17497886, -17497886, -20905760, -20905760, -20905760, -17497886, + -16973594, -16973594, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908050, -16908050, + -20905760, -20905760, -20905760, -20905760, -20905760, -16973586, + -16973662, -20905760, -20905760, -20905760, -20905760, -20905760, + -20905760, -16973586, -16973586, -18546454, -16973662, -18546462, + -18546462, -17497886, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -17301270, -16908062, -16908062, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908126, + -16908050, -16908050, + -20905760, -20905760, -20905760, -20905760, -20905760, -16973594, + -20905760, -20905760, -20905760, -20905760, -20905760, -20905760, + -20905751, -17497878, -16973594, -18546462, -16973662, -17497886, + -18546462, -16908062, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908062, -16908062, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908126, + -16908050, -16908058, + -20905760, -20905760, -20905760, -20905760, -20905760, -20905751, + -20905760, -20905760, -20905760, -20905760, -20905760, -18546462, + -20905760, -16973586, -16973586, -16973594, -16973662, -17497886, + -18546462, -17497886, -16908062, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -16908054, -16908054, -16908054, + -16908054, -16908054, -16908054, -17301270, -17301270, -16908054, + -17039126, -16908054, -16908054, -16908054, -16908054, -16908062, + -16908054, -16908054 ; + + STDIceConc = 19.20647 ; + + SearchWindowSize = 50 ; + + StartColumn = 1 ; + + StartRow = 1 ; + + SummaryQC_Ice_Concentration = + 0, 0, 0, 0, 2, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 1, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 2, 2, 2, 1, 1, 0, 1, 2, 1, 1, 1, 1, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 2, 2, 1, 0, 1, 0, 2, 2, 0, 0, 1, 1, 0, 0, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 2, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 2, 2, 0, 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ; + + TotDaytimePixs = 6731 ; + + TotIceRetrvls = 6731 ; + + TotIceTermnt = 2450869 ; + + TotNighttimePixs = _ ; + + TotWaterPixs = 114350 ; + + Tot_QA_BadData = 55710 ; + + Tot_QA_Nonretrievable = 2395159 ; + + Tot_QA_Normal = 5596 ; + + Tot_QA_Uncertain = 1135 ; +} diff --git a/utils/test/testinput/gdas_icecjpssrr2ioda.yaml b/utils/test/testinput/gdas_icecjpssrr2ioda.yaml new file mode 100644 index 000000000..49a757d35 --- /dev/null +++ b/utils/test/testinput/gdas_icecjpssrr2ioda.yaml @@ -0,0 +1,13 @@ +provider: JPSSRR +window begin: 2024-06-29T21:00:00Z +window end: 2024-06-30T03:00:00Z +output file: icec_jrr.ioda.nc +#ocean basin: RECCAP2_region_masks_all_v20221025.nc +input files: +- icec_jrr_n20_1.nc4 +- icec_jrr_n20_2.nc4 + +test: + reference filename: testref/icecjpssrr2ioda.test + test output filename: testoutput/icecjpssrr2ioda.test + float relative tolerance: 1e-6 diff --git a/utils/test/testref/icecjpssrr2ioda.test b/utils/test/testref/icecjpssrr2ioda.test new file mode 100644 index 000000000..4fedc6299 --- /dev/null +++ b/utils/test/testref/icecjpssrr2ioda.test @@ -0,0 +1,26 @@ +Reading: [icec_jrr_n20_1.nc4,icec_jrr_n20_2.nc4] +seconds since 1970-01-01T00:00:00Z +obsVal: + Min: 0.407328 + Max: 1 + Sum: 225.641 +obsError: + Min: 0.1 + Max: 0.1 + Sum: 24.6 +preQc: + Min: 0 + Max: 1 + Sum: 104 +longitude: + Min: 45.7687 + Max: 91.459 + Sum: 15553.2 +latitude: + Min: -63.2473 + Max: 67.123 + Sum: 4270.1 +datetime: + Min: 1718704416 + Max: 1718708172 + Sum: 422801639400