Пример #1
0
def test_C3STs_tcdr_passive_decadal():
    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'TCDR',
            '062_dekadalImages', 'passive',
            'C3S-SOILMOISTURE-L3S-SSMV-PASSIVE-DEKADAL-20140101000000-TCDR-v201801.0.0.nc'
        ))

    ds = C3SImg(file,
                mode='r',
                flatten=False,
                fillval={
                    'nobs': -1,
                    'sm': np.nan
                },
                subgrid=SMECV_Grid_v052('landcover_class',
                                        subset_value=[10, 11, 60,
                                                      70]).subgrid_from_bbox(
                                                          -14, 30, 44, 73))
    image = ds.read()

    test_loc_lonlat = (16.125, 48.125)
    row, col = np.where((image.lon == test_loc_lonlat[0])
                        & (image.lat == test_loc_lonlat[1]))

    assert image['nobs'].min() == -1
    assert np.any(np.isnan(image['sm']))
    nptest.assert_almost_equal(image['sm'][row, col], 0.50875, 4)
    assert (image.metadata['sm']['long_name'] == 'Volumetric Soil Moisture')
Пример #2
0
def test_C3STs_tcdr_active_monthly():
    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'TCDR',
            '061_monthlyImages', 'active',
            'C3S-SOILMOISTURE-L3S-SSMS-ACTIVE-MONTHLY-20140101000000-TCDR-v201801.0.0.nc'
        ))

    ds = C3SImg(file,
                mode='r',
                parameters='sm',
                flatten=False,
                fillval=None,
                subgrid=SMECV_Grid_v052(None).subgrid_from_bbox(
                    -181, -91, 181, 91))

    image = ds.read()

    test_loc_lonlat = (16.375, 48.125)
    row, col = np.where((image.lon == test_loc_lonlat[0])
                        & (image.lat == test_loc_lonlat[1]))

    assert image.data['sm'].shape == (720, 1440)
    nptest.assert_almost_equal(image.data['sm'][row, col], 47.69982, 4)
    assert (image.metadata['sm']['_FillValue'] == -9999.)
    assert image.data['sm'].min() == image.metadata['sm']['_FillValue']
    assert (image.metadata['sm']['long_name'] ==
            'Percent of Saturation Soil Moisture')
Пример #3
0
def test_1Dreading(subgrid):
    # Test 1D reading with and without land grid, and if the results are the same

    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'ICDR',
            '060_dailyImages', 'combined', '2017',
            'C3S-SOILMOISTURE-L3S-SSMV-COMBINED-DAILY-20170701000000-ICDR-v201706.0.0.nc'
        ))

    ds = C3SImg(file, mode='r', parameters=None, flatten=True, subgrid=subgrid)
    image = ds.read()

    test_loc_lonlat = (75.625, 14.625)
    idx = np.where((image.lon == test_loc_lonlat[0])
                   & (image.lat == test_loc_lonlat[1]))[0]

    assert ds.subgrid.find_nearest_gpi(*test_loc_lonlat) == (602942, 0)
    ref_sm = image.data['sm'][idx]
    ref_lat = image.lat[idx]
    ref_lon = image.lon[idx]

    assert ref_lat == test_loc_lonlat[1]
    assert ref_lon == test_loc_lonlat[0]
    nptest.assert_almost_equal(ref_sm, 0.360762, 5)
    assert (image.metadata['sm']['long_name'] == 'Volumetric Soil Moisture')
Пример #4
0
def test_1Dreading():
    ''' Test 1D reading with and without land grid, and if the results are the same'''
    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'ICDR',
            '060_dailyImages', 'combined', '2017',
            'C3S-SOILMOISTURE-L3S-SSMV-COMBINED-DAILY-20170701000000-ICDR-v201706.0.0.nc'
        ))

    ds = C3SImg(file, mode='r', parameters='sm', array_1D=True)
    image = ds.read()

    assert ds.grid.find_nearest_gpi(75.625, 14.625) == (602942, 0)
    ref_sm = image.data['sm'][434462]
    ref_lat = image.lat[434462]
    ref_lon = image.lon[434462]

    assert ref_lat == 14.625
    assert ref_lon == 75.625
    nptest.assert_almost_equal(ref_sm, 0.360762, 5)
    assert (image.metadata['sm']['long_name'] == 'Volumetric Soil Moisture')

    land_grid = C3SLandGrid()

    ds = C3SImg(file,
                mode='r',
                parameters='sm',
                array_1D=True,
                subgrid=land_grid)
    image = ds.read()

    assert ds.grid.find_nearest_gpi(75.625, 14.625) == (602942, 0)

    sm = image.data['sm'][177048]
    lat = image.lat[177048]
    lon = image.lon[177048]

    assert ref_lat == lat
    assert ref_lon == lon
    nptest.assert_almost_equal(ref_sm, sm, 5)

    assert (image.metadata['sm']['long_name'] == 'Volumetric Soil Moisture')
Пример #5
0
def test_C33Ts_icdr_passive_decadal():
    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'ICDR',
            '062_dekadalImages', 'passive',
            'C3S-SOILMOISTURE-L3S-SSMV-PASSIVE-DEKADAL-20170701000000-ICDR-v201706.0.0.nc'
        ))

    ds = C3SImg(file, mode='r', parameters='sm', array_1D=False)
    image = ds.read()

    nptest.assert_almost_equal(image.data['sm'][167, 785], 0.21000, 4)
    assert (image.metadata['sm']['long_name'] == 'Volumetric Soil Moisture')
Пример #6
0
def test_C33Ts_tcdr_combined_daily():
    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'TCDR',
            '060_dailyImages', 'combined', '2014',
            'C3S-SOILMOISTURE-L3S-SSMV-COMBINED-DAILY-20140101000000-TCDR-v201801.0.0.nc'
        ))

    ds = C3SImg(file, mode='r', parameters='sm', array_1D=False)
    image = ds.read()

    nptest.assert_almost_equal(image.data['sm'][167, 785], 0.34659, 4)
    assert (image.metadata['sm']['long_name'] == 'Volumetric Soil Moisture')
Пример #7
0
def test_C33Ts_icdr_active_monthly():

    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'ICDR',
            '061_monthlyImages', 'active',
            'C3S-SOILMOISTURE-L3S-SSMS-ACTIVE-MONTHLY-20170701000000-ICDR-v201706.0.0.nc'
        ))

    ds = C3SImg(file, mode='r', parameters='sm', array_1D=False)
    image = ds.read()

    nptest.assert_almost_equal(image.data['sm'][167, 785], 65.00162, 4)
    assert (image.metadata['sm']['_FillValue'] == -9999.)
    assert (image.metadata['sm']['long_name'] ==
            'Percent of Saturation Soil Moisture')
Пример #8
0
def test_C3STs_icdr_passive_decadal():
    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'ICDR',
            '062_dekadalImages', 'passive',
            'C3S-SOILMOISTURE-L3S-SSMV-PASSIVE-DEKADAL-20170701000000-ICDR-v201706.0.0.nc'
        ))

    ds = C3SImg(file, mode='r', parameters='sm', flatten=False, fillval=np.nan)
    image = ds.read()

    test_loc_lonlat = (16.375, 48.125)
    row, col = np.where((image.lon == test_loc_lonlat[0])
                        & (image.lat == test_loc_lonlat[1]))

    nptest.assert_almost_equal(image.data['sm'][row, col], 0.21000, 4)
    assert (image.metadata['sm']['long_name'] == 'Volumetric Soil Moisture')
Пример #9
0
def test_C3STs_icdr_combined_daily():
    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'ICDR',
            '060_dailyImages', 'combined', '2017',
            'C3S-SOILMOISTURE-L3S-SSMV-COMBINED-DAILY-20170701000000-ICDR-v201706.0.0.nc'
        ))

    ds = C3SImg(file,
                mode='r',
                parameters=['sm', 't0'],
                flatten=False,
                subgrid=SMECV_Grid_v052('land'))
    image = ds.read()

    test_loc_lonlat = (16.375, 48.125)
    row, col = np.where((image.lon == test_loc_lonlat[0])
                        & (image.lat == test_loc_lonlat[1]))

    nptest.assert_almost_equal(image.data['sm'][row, col], 0.14548, 4)
    assert (image.metadata['t0']['long_name'] == 'Observation Timestamp')
Пример #10
0
def test_C3STs_tcdr_combined_daily():
    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'TCDR',
            '060_dailyImages', 'combined', '2014',
            'C3S-SOILMOISTURE-L3S-SSMV-COMBINED-DAILY-20140101000000-TCDR-v201801.0.0.nc'
        ))

    ds = C3SImg(file,
                mode='r',
                parameters=None,
                flatten=False,
                fillval={'sm': np.nan})
    image = ds.read()

    test_loc_lonlat = (16.375, 48.125)
    row, col = np.where((image.lon == test_loc_lonlat[0])
                        & (image.lat == test_loc_lonlat[1]))

    nptest.assert_almost_equal(image.data['sm'][row, col], 0.34659, 4)
    assert (image.metadata['sm']['long_name'] == 'Volumetric Soil Moisture')
Пример #11
0
def test_C3STs_icdr_active_monthly():

    file = os.path.join(
        os.path.join(
            os.path.dirname(__file__), 'c3s_sm-test-data', 'img', 'ICDR',
            '061_monthlyImages', 'active',
            'C3S-SOILMOISTURE-L3S-SSMS-ACTIVE-MONTHLY-20170701000000-ICDR-v201706.0.0.nc'
        ))

    ds = C3SImg(file,
                mode='r',
                parameters=['sm', 'sensor'],
                flatten=False,
                fillval=-1)
    image = ds.read()

    assert image['sensor'].min() == image['sm'].min() == -1
    test_loc_lonlat = (16.375, 48.125)
    row, col = np.where((image.lon == test_loc_lonlat[0])
                        & (image.lat == test_loc_lonlat[1]))
    nptest.assert_almost_equal(image.data['sm'][row, col], 65.00162, 4)
    assert (image.metadata['sm']['_FillValue'] == -9999.)
    assert (image.metadata['sm']['long_name'] ==
            'Percent of Saturation Soil Moisture')