Exemple #1
0
def test_retrieve_data_ls5_mndwi(config=None):

    filename = "LS5_TM_MNDWI_{x:03d}_{y:04d}_{date}.{x_offset:04d}_{y_offset:04d}.{x_size:04d}x{y_size:04d}.tif".format(x=CELL_X, y=CELL_Y, date=DATE, x_offset=X_OFFSET, y_offset=Y_OFFSET, x_size=X_SIZE, y_size=Y_SIZE)

    tiles = list_tiles_as_list(x=[CELL_X], y=[CELL_Y],
                               acq_min=ACQ_LS5, acq_max=ACQ_LS5,
                               satellites=[Satellite.LS5],
                               dataset_types=[MNDWI_DATASET_TYPE],
                               config=config)

    assert len(tiles) == 1

    dataset = tiles[0].datasets[MNDWI_DATASET_TYPE]

    data = get_dataset_data(dataset=dataset, x=X_OFFSET, y=Y_OFFSET, x_size=X_SIZE, y_size=Y_SIZE)

    assert(data)
    _log.info("data is [%s]\n%s", numpy.shape(data), data)

    ndv = get_dataset_ndv(dataset)
    assert(is_ndv(ndv, MNDWI_NDV))

    data_type = get_dataset_datatype(dataset)
    assert(data_type == MNDWI_DATA_TYPE)

    metadata = generate_dataset_metadata(x=CELL_X, y=CELL_Y, acq_dt=ACQ_LS5,
                                         dataset=dataset, bands=None,
                                         mask_pqa_apply=False, mask_pqa_mask=None,
                                         mask_wofs_apply=False, mask_wofs_mask=None)

    raster_create_geotiff(filename, [data[b] for b in dataset.bands], CELL_GEO_TRANSFORM, CELL_PROJECTION, ndv, data_type,
                          dataset_metadata=metadata, band_ids=[b.name for b in dataset.bands])

    assert filecmp.cmp(filename, get_test_data_path(filename))
def has_data(bands, data, no_data_value=NDV):

    for value in [data[band][0][0] for band in bands]:

        if not is_ndv(value, no_data_value):
            return True

    return False
Exemple #3
0
def test_retrieve_data_ls5_arg_with_pqa_water_mask_dry(config=None):

    filename = "LS5_TM_NBAR_WITH_PQA_WATER_DRY_{x:03d}_{y:04d}_{date}.{x_offset:04d}_{y_offset:04d}.{x_size:04d}x{y_size:04d}.tif".format(x=CELL_X, y=CELL_Y, date=DATE, x_offset=X_OFFSET, y_offset=Y_OFFSET, x_size=X_SIZE, y_size=Y_SIZE)

    tiles = list_tiles_as_list(x=[CELL_X], y=[CELL_Y],
                               acq_min=ACQ_LS5, acq_max=ACQ_LS5,
                               satellites=[Satellite.LS5],
                               dataset_types=[ARG_DATASET_TYPE, PQ_DATASET_TYPE, WOFS_DATASET_TYPE],
                               config=config)

    assert len(tiles) == 1

    tile = tiles[0]

    assert ARG_DATASET_TYPE in tile.datasets
    dataset = tile.datasets[ARG_DATASET_TYPE]

    assert PQ_DATASET_TYPE in tile.datasets
    pqa = tile.datasets[PQ_DATASET_TYPE]

    assert WOFS_DATASET_TYPE in tile.datasets
    wofs = tile.datasets[WOFS_DATASET_TYPE]

    mask = get_mask_pqa(pqa, x=X_OFFSET, y=Y_OFFSET, x_size=X_SIZE, y_size=Y_SIZE)
    mask = get_mask_wofs(wofs, wofs_masks=[WofsMask.DRY, WofsMask.NO_DATA, WofsMask.SATURATION_CONTIGUITY,
                                           WofsMask.SEA_WATER, WofsMask.TERRAIN_SHADOW, WofsMask.HIGH_SLOPE,
                                           WofsMask.CLOUD_SHADOW, WofsMask.CLOUD],
                         x=X_OFFSET, y=Y_OFFSET, x_size=X_SIZE, y_size=Y_SIZE, mask=mask)

    data = get_dataset_data_masked(dataset=dataset, x=X_OFFSET, y=Y_OFFSET, x_size=X_SIZE, y_size=Y_SIZE, mask=mask)

    assert(data)
    _log.info("data is [%s]\n%s", numpy.shape(data), data)

    ndv = get_dataset_ndv(dataset)
    assert(is_ndv(ndv, ARG_NDV))

    data_type = get_dataset_datatype(dataset)
    assert(data_type == ARG_DATA_TYPE)

    metadata = generate_dataset_metadata(x=CELL_X, y=CELL_Y, acq_dt=ACQ_LS5,
                                         dataset=dataset, bands=None,
                                         mask_pqa_apply=False, mask_pqa_mask=None,
                                         mask_wofs_apply=False, mask_wofs_mask=None)

    raster_create_geotiff(filename, [data[b] for b in dataset.bands], CELL_GEO_TRANSFORM, CELL_PROJECTION, ndv, data_type,
                          dataset_metadata=metadata, band_ids=[b.name for b in dataset.bands])

    assert filecmp.cmp(filename, get_test_data_path(filename))
Exemple #4
0
def test_get_dataset_data_type():

    assert is_ndv(get_dataset_type_datatype(DatasetType.ARG25), GDT_Int16)
    assert is_ndv(get_dataset_type_datatype(DatasetType.PQ25), GDT_Int16)
    assert is_ndv(get_dataset_type_datatype(DatasetType.FC25), GDT_Int16)
    assert is_ndv(get_dataset_type_datatype(DatasetType.WATER), GDT_Byte)
    assert is_ndv(get_dataset_type_datatype(DatasetType.NDVI), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.EVI), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.NBR), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.TCI), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.DSM), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.DEM), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.DEM_HYDROLOGICALLY_ENFORCED), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.DEM_SMOOTHED), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.NDWI), GDT_Float32)
    assert is_ndv(get_dataset_type_datatype(DatasetType.MNDWI), GDT_Float32)
Exemple #5
0
def test_get_ndv():

    assert is_ndv(get_dataset_type_ndv(DatasetType.ARG25), NDV)
    assert is_ndv(get_dataset_type_ndv(DatasetType.PQ25), UINT16_MAX)
    assert is_ndv(get_dataset_type_ndv(DatasetType.FC25), NDV)
    assert is_ndv(get_dataset_type_ndv(DatasetType.WATER), BYTE_MAX)
    assert is_ndv(get_dataset_type_ndv(DatasetType.NDVI), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.EVI), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.NBR), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.TCI), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.DSM), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.DEM), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.DEM_HYDROLOGICALLY_ENFORCED), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.DEM_SMOOTHED), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.NDWI), NAN)
    assert is_ndv(get_dataset_type_ndv(DatasetType.MNDWI), NAN)
Exemple #6
0
def test_is_ndv():

    assert is_ndv(NDV, NDV)
    
    assert is_ndv(NAN, NAN)
    
    assert is_ndv(INT16_MIN, INT16_MIN)
    assert is_ndv(INT16_MAX, INT16_MAX)
    
    assert is_ndv(UINT16_MIN, UINT16_MIN)
    assert is_ndv(UINT16_MAX, UINT16_MAX)
    
    assert is_ndv(BYTE_MIN, BYTE_MIN)
    assert is_ndv(BYTE_MAX, BYTE_MAX)

    assert not is_ndv(100, NDV)
    
    assert not is_ndv(100, NAN)
    
    assert not is_ndv(100, INT16_MIN)
    assert not is_ndv(100, INT16_MAX)
    
    assert not is_ndv(100, UINT16_MIN)
    assert not is_ndv(100, UINT16_MAX)
    
    assert not is_ndv(100, BYTE_MIN)
    assert not is_ndv(100, BYTE_MAX)