def test_bgc_timeseries(self):
        filename = 'IMOS_ANMN-NRS_KOSTUZ_20150330T080039Z_NRSROT_FV01_NRSROT-1503-WQM-55_END-20150727T063234Z_C-20150731T040136Z.nc'
        testfile = os.path.join(self.tempdir, filename)
        make_test_file(testfile, {
            'site_code': 'NRSROT',
            'featureType': 'timeSeries'
        },
                       TEMP={},
                       PRES_REL={},
                       DEPTH={},
                       PSAL={},
                       DOX2={},
                       CPHL={},
                       TURB={})
        dest_dir, dest_filename = os.path.split(
            MooringsFileClassifier.dest_path(testfile))
        self.assertEqual(dest_dir,
                         'IMOS/ANMN/NRS/NRSROT/Biogeochem_timeseries')
        self.assertEqual(dest_filename, filename)

        filename = 'IMOS_ANMN-QLD_KUZ_20150328T203001Z_GBROTE_FV01_GBROTE-1503-ECO-FLNTUSB-18_END-20151013T030538Z_C-20160225T042413Z.nc'
        testfile = os.path.join(self.tempdir, filename)
        make_test_file(testfile, {
            'site_code': 'GBROTE',
            'featureType': 'timeseries'
        },
                       DEPTH={},
                       CPHL={},
                       TURB={})
        dest_dir, dest_filename = os.path.split(
            MooringsFileClassifier.dest_path(testfile))
        self.assertEqual(dest_dir,
                         'IMOS/ANMN/QLD/GBROTE/Biogeochem_timeseries')
        self.assertEqual(dest_filename, filename)
    def test_bgc_profiles(self):
        filename = 'IMOS_ANMN-NRS_CDEKOSTUZ_20121113T001841Z_NRSMAI_FV00_Profile-SBE-19plus_C-20151030T034432Z.nc'
        testfile = os.path.join(self.tempdir, filename)
        make_test_file(testfile, {
            'site_code': 'NRSMAI',
            'featureType': 'profile'
        },
                       TEMP={},
                       PRES={},
                       CNDC={})
        dest_dir, dest_filename = os.path.split(
            MooringsFileClassifier.dest_path(testfile))
        self.assertEqual(dest_dir,
                         'IMOS/ANMN/NRS/NRSMAI/Biogeochem_profiles/non-QC')
        self.assertEqual(dest_filename, filename)

        filename = 'IMOS_ANMN-WA_CDEKOSTUZ_20121113T013800Z_WACA20_FV01_3052.0-1-SBE19plus-70_C-20140211T090215Z.nc'
        testfile = os.path.join(self.tempdir, filename)
        make_test_file(testfile, {
            'site_code': 'WACA20',
            'featureType': 'profile'
        },
                       TEMP={},
                       PRES_REL={},
                       PSAL={},
                       DOX2={})
        dest_dir, dest_filename = os.path.split(
            MooringsFileClassifier.dest_path(testfile))
        self.assertEqual(dest_dir, 'IMOS/ANMN/WA/WACA20/Biogeochem_profiles')
        self.assertEqual(dest_filename, filename)
    def test_velocity(self):
        filename = 'IMOS_ANMN-NRS_AETVZ_20150703T053000Z_NRSROT-ADCP_FV01_NRSROT-ADCP-1507-Workhorse-ADCP-43_END-20151023T034500Z_C-20151117T074309Z.nc'
        testfile = os.path.join(self.tempdir, filename)
        make_test_file(testfile, {'site_code': 'NRSROT'},
                       TEMP={},
                       PRES_REL={},
                       DEPTH={},
                       UCUR={},
                       VCUR={},
                       WCUR={})
        dest_dir, dest_filename = os.path.split(
            MooringsFileClassifier.dest_path(testfile))
        self.assertEqual(dest_dir, 'IMOS/ANMN/NRS/NRSROT/Velocity')
        self.assertEqual(dest_filename, filename)

        filename = 'IMOS_ANMN-NRS_AETVZ_20150703T053000Z_NRSROT-ADCP_FV00_NRSROT-ADCP-1507-Workhorse-ADCP-43_END-20151023T034500Z_C-20151117T074309Z.nc'
        testfile = os.path.join(self.tempdir, filename)
        make_test_file(testfile, {'site_code': 'NRSROT'},
                       UCUR_MAG={},
                       VCUR_MAG={},
                       CSPD={})
        dest_dir, dest_filename = os.path.split(
            MooringsFileClassifier.dest_path(testfile))
        self.assertEqual(dest_dir, 'IMOS/ANMN/NRS/NRSROT/Velocity/non-QC')
        self.assertEqual(dest_filename, filename)
    def test_ctd_timeseries(self):
        filename = 'IMOS_ANMN-WA_CSTZ_20141117T080001Z_WATR10_FV01_WATR10-1411-SBE37SM-RS232-52.nc'
        testfile = os.path.join(self.tempdir, filename)
        make_test_file(testfile, {
            'site_code': 'WATR10',
            'featureType': 'timeSeries'
        },
                       TEMP={},
                       PRES={},
                       CNDC={})
        dest_dir, dest_filename = os.path.split(
            MooringsFileClassifier.dest_path(testfile))
        self.assertEqual(dest_dir, 'IMOS/ANMN/WA/WATR10/CTD_timeseries')
        self.assertEqual(dest_filename, filename)

        filename = 'IMOS_ANMN-SA_ACESTZ_20141201T030411Z_SAM8SG-1412_FV01_SAM8SG-1412-NXIC-CTD-44.71_END-20150411T020421Z_C-20150730T044018Z.nc'
        testfile = os.path.join(self.tempdir, filename)
        make_test_file(testfile, {
            'site_code': 'SAM8SG',
            'featureType': 'timeSeries'
        },
                       TEMP={},
                       PRES_REL={},
                       DEPTH={},
                       PSAL={},
                       CNDC={},
                       SSPD={})
        dest_dir, dest_filename = os.path.split(
            MooringsFileClassifier.dest_path(testfile))
        self.assertEqual(dest_dir, 'IMOS/ANMN/SA/SAM8SG/CTD_timeseries')
        self.assertEqual(dest_filename, filename)
 def test_missing_site_code(self):
     testfile = os.path.join(
         self.tempdir,
         'IMOS_ANMN-NRS_CDEKOSTUZ_20121113T001841Z_BADBAD_FV01_Profile.nc')
     make_test_file(testfile)
     with self.assertRaisesRegex(InvalidFileContentError,
                                 r"has no attribute 'site_code'"):
         MooringsFileClassifier.dest_path(testfile)
 def test_missing_featuretype(self):
     testfile = os.path.join(
         self.tempdir,
         'IMOS_ANMN-NRS_CDEKOSTUZ_20121113T001841Z_NRSMAI_FV01_Profile-SBE-19plus_C-20151030T034432Z.nc'
     )
     make_test_file(testfile, {'site_code': 'NRSMAI'})
     with self.assertRaisesRegex(InvalidFileContentError,
                                 r"has no attribute 'featureType'"):
         MooringsFileClassifier.dest_path(testfile)
 def test_sofs_waves_rt(self):
     filename = 'IMOS_DWM-SOTS_W_20190318_SOFS_FV00_SOFS-8-2019-MRU-Surface-wave-height-realtime.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(
         testfile, {
             'time_coverage_start': "2019-03-18T00:00:00Z",
             'time_coverage_end': "2019-10-31T00:00:00Z"
         })
     dest_dir, dest_filename = os.path.split(
         DwmFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/DWM/SOTS/2019/real-time')
     self.assertEqual(dest_filename, filename)
 def test_unknown_profiles(self):
     filename = 'IMOS_ANMN-NRS_CDEKOSTUZ_20121113T001841Z_NRSMAI_FV00_mystery-profile.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'NRSMAI',
         'featureType': 'profile'
     },
                    TIME={},
                    DEPTH={})
     with self.assertRaisesRegex(InvalidFileContentError,
                                 r"Could not determine data category"):
         MooringsFileClassifier.dest_path(testfile)
 def test_unknown_product(self):
     filename = 'IMOS_ANMN-NRS_STZ_20170101T000000Z_NRSMAI_FV02.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'NRSMAI',
         'featureType': 'timeSeriesProfile'
     },
                    TEMP={},
                    PSAL={})
     with self.assertRaisesRegex(
             InvalidFileNameError,
             r"Can't determine product type from file name"):
         MooringsFileClassifier.dest_path(testfile)
 def test_long_timeseries(self):
     filename = 'IMOS_ANMN-NRS_STZ_19441015T000000Z_NRSMAI_FV02_NRSMAI-long-timeseries_END-20140703T000000Z_C-20160525T064856Z.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'NRSMAI',
         'featureType': 'timeSeriesProfile'
     },
                    TEMP={},
                    PSAL={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/ANMN/NRS/NRSMAI/aggregated_products')
     self.assertEqual(dest_filename, filename)
 def test_wave(self):
     filename = 'IMOS_ANMN-NRS_WZ_20140914T075900Z_NRSDAR_FV01_NRSDAR-1409-SUB-Workhorse-ADCP-24.3_END-20150205T225900Z_C-20150326T055936Z.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'NRSDAR',
         'featureType': 'doesntmatter'
     },
                    DEPTH={},
                    VAVH={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/ANMN/NRS/NRSDAR/Wave')
     self.assertEqual(dest_filename, filename)
 def test_temperature_gridded(self):
     filename = 'IMOS_ANMN-NSW_Temperature_20100702T003500Z_CH070_FV02_CH070-1007-regridded_END-20100907T000500Z_C-20141211T025746Z.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'CH070',
         'featureType': 'timeSeriesProfile'
     },
                    TEMP={},
                    DEPTH={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/ANMN/NSW/CH070/Temperature/gridded')
     self.assertEqual(dest_filename, filename)
 def test_sofs_one_day_delayed(self):
     filename = 'IMOS_DWM-ASFS_CMST_20150101T000000Z_SOFS_FV02_C-20171002T000000Z.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(
         testfile, {
             'data_mode': 'D',
             'time_coverage_start': '2015-01-01T00:00:00Z',
             'time_coverage_end': '2015-01-01T23:30:00Z'
         })
     dest_dir, dest_filename = os.path.split(
         DwmFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/DWM/SOTS/2015')
     self.assertEqual(dest_filename, filename)
 def test_pulse_realtime(self):
     filename = 'IMOS_DWM-SOTS_W_20150325T110000Z_Pulse_FV00_Pulse-11-2015-MRU-Surface-wave-height-realtime.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(
         testfile, {
             'site_code': 'SOTS',
             'platform_code': 'Pulse',
             'time_coverage_start': '2015-03-25T11:00:00Z'
         })
     dest_dir, dest_filename = os.path.split(
         DwmFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/DWM/SOTS/2015/real-time')
     self.assertEqual(dest_filename, filename)
 def test_da_temperature(self):
     filename = 'IMOS_DWM-DA_TZ_20120426T092000Z_EAC5_FV01_EAC5-2012-STARMON-MINI-300_END-20130826T222000Z_C' \
                '-20140722T061401Z.nc '
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'platform_code': 'EAC5',
         'featureType': 'timeSeries'
     },
                    TEMP={},
                    DEPTH={})
     dest_dir, dest_filename = os.path.split(
         DwmFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/DWM/DA/EAC5/Temperature')
     self.assertEqual(dest_filename, filename)
Esempio n. 16
0
 def test_dwm_sots_aggregated_timeseries(self):
     expected_prefix = 'IMOS/DWM/SOTS/aggregated_timeseries'
     filename = 'IMOS_DWM-SOTS_OZ_20170319_SOTS_FV01_DOX2-aggregated-timeseries_END-20171101_C-20190819.nc'
     testfile = os.path.join(self.temp_dir, filename)
     make_test_file(
         testfile, {
             'site_code': 'EAC4700',
             'source': 'mooring',
             'featureType': 'timeSeries'
         })
     dest_dir, dest_filename = os.path.split(
         MooringsProductsHandler.dest_path(testfile))
     self.assertEqual(dest_dir, expected_prefix)
     self.assertEqual(dest_filename, filename)
Esempio n. 17
0
 def test_dwm_hourly_timeseries_nonqc(self):
     expected_prefix = 'IMOS/DWM/DA/hourly_timeseries'
     filename = 'IMOS_DWM-DA_STZ_20110613_ITFTSL_FV02_hourly-timeseries-including-non-QC_END-20151024_C-20191010.nc'
     testfile = os.path.join(self.temp_dir, filename)
     make_test_file(
         testfile, {
             'site_code': 'ITFTSL',
             'source': 'mooring',
             'featureType': 'timeSeries'
         })
     dest_dir, dest_filename = os.path.split(
         MooringsProductsHandler.dest_path(testfile))
     self.assertEqual(dest_dir, expected_prefix)
     self.assertEqual(dest_filename, filename)
Esempio n. 18
0
 def test_dwm_gridded_timeseries(self):
     expected_prefix = 'IMOS/DWM/DA/gridded_timeseries'
     filename = 'IMOS_DWM-DA_TZ_20150519_EAC4700_FV02_TEMP-gridded-timeseries_END-20180422_C-20191216.nc'
     testfile = os.path.join(self.temp_dir, filename)
     make_test_file(
         testfile, {
             'site_code': 'EAC4700',
             'source': 'mooring',
             'featureType': 'timeSeries'
         })
     dest_dir, dest_filename = os.path.split(
         MooringsProductsHandler.dest_path(testfile))
     self.assertEqual(dest_dir, expected_prefix)
     self.assertEqual(dest_filename, filename)
Esempio n. 19
0
 def test_anmn_hourly_timeseries_nonqc(self):
     expected_prefix = 'IMOS/ANMN/QLD/GBRLSL/hourly_timeseries'
     filename = 'IMOS_ANMN-QLD_BSTUZ_20071103_GBRLSL_FV02_hourly-timeseries-including-non-QC_END-20140523_C-20191010.nc'
     testfile = os.path.join(self.temp_dir, filename)
     make_test_file(
         testfile, {
             'site_code': 'GBRLSL',
             'source': 'mooring',
             'featureType': 'timeSeries'
         })
     dest_dir, dest_filename = os.path.split(
         MooringsProductsHandler.dest_path(testfile))
     self.assertEqual(dest_dir, expected_prefix)
     self.assertEqual(dest_filename, filename)
Esempio n. 20
0
 def test_anmn_gridded_timeseries(self):
     expected_prefix = 'IMOS/ANMN/NRS/NRSROT/gridded_timeseries'
     filename = 'IMOS_ANMN-NRS_SZ_20081120_NRSROT_FV02_PSAL-gridded-timeseries_END-20190523_C-20191121.nc'
     testfile = os.path.join(self.temp_dir, filename)
     make_test_file(
         testfile, {
             'site_code': 'NRSROT',
             'source': 'mooring',
             'featureType': 'timeSeriesProfile'
         })
     dest_dir, dest_filename = os.path.split(
         MooringsProductsHandler.dest_path(testfile))
     self.assertEqual(dest_dir, expected_prefix)
     self.assertEqual(dest_filename, filename)
 def test_pressure_only(self):
     # Files will only pressure are also classified as "Temperature".
     filename = 'IMOS_ANMN-WA_Z_20120914T032100Z_WATR50_FV01_WATR50-1209-DR-1050-517_END-20130319T053000Z_C-20130325T032512Z.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'WATR50',
         'featureType': 'timeSeries'
     },
                    PRES={},
                    DEPTH={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/ANMN/WA/WATR50/Temperature')
     self.assertEqual(dest_filename, filename)
Esempio n. 22
0
 def test_anmn_aggregated_timeseries(self):
     expected_prefix = 'IMOS/ANMN/QLD/GBRLSL/aggregated_timeseries'
     filename = 'IMOS_ANMN-QLD_BZ_20121103_GBRLSL_FV01_CPHL-aggregated-timeseries_END-20140522_C-20191120.nc'
     testfile = os.path.join(self.temp_dir, filename)
     make_test_file(
         testfile, {
             'site_code': 'GBRLSL',
             'source': 'mooring',
             'featureType': 'timeSeries'
         })
     dest_dir, dest_filename = os.path.split(
         MooringsProductClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, expected_prefix)
     self.assertEqual(dest_filename, filename)
 def test_temperature(self):
     filename = 'IMOS_ANMN-NSW_TZ_20150310T130000Z_PH100_FV01_PH100-1503-Aqualogger-520T-16_END-20150606T025000Z_C-20150804T234610Z.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'PH100',
         'featureType': 'timeSeries'
     },
                    TEMP={},
                    PRES={},
                    DEPTH={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/ANMN/NSW/PH100/Temperature')
     self.assertEqual(dest_filename, filename)
 def test_pulse_delayed(self):
     filename = 'IMOS_DWM-SOTS_20130507T080000Z_Pulse_FV01_Pulse-10-2013_END-20131013T210000Z_C-20160315T000000Z.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(
         testfile, {
             'site_code': 'SOTS',
             'platform_code': 'Pulse',
             'time_deployment_start': '2013-05-07T08:00:00Z',
             'time_coverage_start': '2013-05-07T08:00:00Z',
             'time_coverage_end': '2013-10-13T21:00:00Z'
         })
     dest_dir, dest_filename = os.path.split(
         DwmFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/DWM/SOTS/2013')
     self.assertEqual(dest_filename, filename)
 def test_fluxpulse_realtime(self):
     filename = 'IMOS_DWM-SOTS_W_20160316T140000Z_FluxPulse_FV00_FluxPulse-1-2016-MRU-Surface-wave-height.nc '
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(
         testfile, {
             'site_code': 'SOTS',
             'platform_code': 'FluxPulse',
             'data_mode': 'R',
             'time_coverage_start': '2016-03-16T14:00:00Z',
             'time_coverage_end': '2017-10-02T00:00:00Z'
         })
     dest_dir, dest_filename = os.path.split(
         DwmFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/DWM/SOTS/2016/real-time')
     self.assertEqual(dest_filename, filename)
 def test_eco_parsb(self):
     filename = (
         'IMOS_ANMN-QLD_FZ_20180514T083000Z_GBRPPS_FV01_GBRPPS-1805-ECO-PARSB-26.5_END-20181110T074743Z'
         '_C-20190807T070104Z.nc')
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'GBRPPS',
         'featureType': 'timeseries'
     },
                    PAR={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir,
                      'IMOS/ANMN/QLD/GBRPPS/Biogeochem_timeseries')
     self.assertEqual(dest_filename, filename)
 def test_da_ctd_timeseries(self):
     filename = 'IMOS_DWM-DA_STZ_20120426T092000Z_EAC5_FV01_EAC5-2012-SBE37SMP-202_END-20130826T222000Z_C' \
                '-20140722T061531Z.nc '
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'platform_code': 'EAC5',
         'featureType': 'timeSeries'
     },
                    TEMP={},
                    PSAL={},
                    PRES_REL={},
                    DEPTH={})
     dest_dir, dest_filename = os.path.split(
         DwmFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/DWM/DA/EAC5/CTD_timeseries')
     self.assertEqual(dest_filename, filename)
 def test_acidification_mooring_realtime(self):
     filename = 'IMOS_ANMN-AM_GST_20180926T000000Z_NRSMAI_FV01_NRSMAI-CO2-1809-realtime.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {'site_code': 'NRSMAI'},
                    TEMP={},
                    PSAL={},
                    Press_ATM={},
                    xCO2EQ_PPM={},
                    xCO2ATM_PPM={},
                    fCO2SW_UATM={},
                    DOX1={},
                    TPH={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/ANMN/AM/NRSMAI/CO2/real-time')
     self.assertEqual(dest_filename, filename)
 def test_acidification_mooring_delayed(self):
     filename = 'IMOS_ANMN-AM_GST_20170912T060000Z_NRSMAI_FV01_NRSMAI-CO2-1709-delayed_END_20180419T230000Z_C-20180716T102404Z.nc'
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {'site_code': 'NRSMAI'},
                    TEMP={},
                    PSAL={},
                    Press_ATM={},
                    xCO2EQ_PPM={},
                    xCO2ATM_PPM={},
                    fCO2SW_UATM={},
                    DOX1={},
                    TPH={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir, 'IMOS/ANMN/AM/NRSMAI/CO2/delayed')
     self.assertEqual(dest_filename, filename)
 def test_eco_bb2flwb(self):
     filename = (
         'IMOS_ANMN-NRS_EKZ_20130125T140759Z_NRSROT_FV01_NRSROT-1301-ECO-BB2FLWB-21_END-20130520T135245Z'
         '_C-20191115T024327Z.nc')
     testfile = os.path.join(self.tempdir, filename)
     make_test_file(testfile, {
         'site_code': 'NRSROT',
         'featureType': 'timeseries'
     },
                    CDOM={},
                    VSF470={})
     dest_dir, dest_filename = os.path.split(
         MooringsFileClassifier.dest_path(testfile))
     self.assertEqual(dest_dir,
                      'IMOS/ANMN/NRS/NRSROT/Biogeochem_timeseries')
     self.assertEqual(dest_filename, filename)