Exemple #1
0
def _search_on_hub(user, password, hub_address, **search_keywords):

    # Connect to the hub and search
    try:
        print(SentinelAPI.format_query(**search_keywords))
        hub = SentinelAPI(user, password, hub_address)
        products = hub.query(**search_keywords)
    except SentinelAPIError as e:
        print(e)
        print(SentinelAPI.format_query(**search_keywords))
        products = {}
    return products
def test_api_query_format():
    api = SentinelAPI("mock_user", "mock_password")

    now = datetime.now()
    query = api.format_query('0 0,1 1,0 1,0 0', end_date=now)
    last_24h = format_date(now - timedelta(hours=24))
    assert query == '(beginPosition:[%s TO %s]) ' % (last_24h, format_date(now)) + \
                    'AND (footprint:"Intersects(POLYGON((0 0,1 1,0 1,0 0)))")'

    query = api.format_query('0 0,1 1,0 1,0 0', end_date=now, producttype='SLC')
    assert query == '(beginPosition:[%s TO %s]) ' % (last_24h, format_date(now)) + \
                    'AND (footprint:"Intersects(POLYGON((0 0,1 1,0 1,0 0)))") ' + \
                    'AND (producttype:SLC)'
Exemple #3
0
def test_api_query_format():
    api = SentinelAPI("mock_user", "mock_password")

    now = datetime.now()
    query = api.format_query('0 0,1 1,0 1,0 0', end_date=now)
    last_24h = format_date(now - timedelta(hours=24))
    assert query == '(beginPosition:[%s TO %s]) ' % (last_24h, format_date(now)) + \
                    'AND (footprint:"Intersects(POLYGON((0 0,1 1,0 1,0 0)))")'

    query = api.format_query('0 0,1 1,0 1,0 0',
                             end_date=now,
                             producttype='SLC')
    assert query == '(beginPosition:[%s TO %s]) ' % (last_24h, format_date(now)) + \
                    'AND (footprint:"Intersects(POLYGON((0 0,1 1,0 1,0 0)))") ' + \
                    'AND (producttype:SLC)'
Exemple #4
0
def test_api_query_format():
    api = SentinelAPI("mock_user", "mock_password")

    now = datetime.now()
    query = api.format_query('0 0,1 1,0 1,0 0', end_date=now)
    last_24h = format_date(now - timedelta(hours=24))
    assert api.url == 'https://scihub.copernicus.eu/apihub/search?format=json&rows=15000'
    assert query == '(beginPosition:[%s TO %s]) ' % (last_24h, format_date(now)) + \
                    'AND (footprint:"Intersects(POLYGON((0 0,1 1,0 1,0 0)))")'

    query = api.format_query('0 0,1 1,0 1,0 0',
                             end_date=now,
                             producttype='SLC')
    assert api.url == 'https://scihub.copernicus.eu/apihub/search?format=json&rows=15000'
    assert query == '(beginPosition:[%s TO %s]) ' % (last_24h, format_date(now)) + \
                    'AND (footprint:"Intersects(POLYGON((0 0,1 1,0 1,0 0)))") ' + \
                    'AND (producttype:SLC)'
str_data_fim = data_str  # '20190822'
data = datetime.strptime(str_data_fim, "%Y%m%d")
#é preciso somar 24h para incluir o próprio dia, de outra forma
#pesquisamos só até ao propio dia  0h00
data_fim = data + timedelta(days=1)
data_ini = data - timedelta(days=5)
str_data_ini = datetime.strftime(data_ini, "%Y%m%d")
str_data_fim = datetime.strftime(data_fim, "%Y%m%d")

#qual a pesquisa afinal?
print("Tiles a pesquisar: " + tiles_str)
print("Data a pesquisar: de " + str_data_ini + " a " + str_data_fim)
print("Query de pesquisa: " +
      api.format_query(date=(str_data_ini, str_data_fim),
                       platformname='Sentinel-2',
                       cloudcoverpercentage=(0, cloudcov_int),
                       producttype='S2MSI2A',
                       filename='/.+(' + tiles_str + ').+/'))

products = api.query(date=(str_data_ini, str_data_fim),
                     platformname='Sentinel-2',
                     cloudcoverpercentage=(0, cloudcov_int),
                     producttype='S2MSI2A',
                     filename='/.+(' + tiles_str + ').+/')

if (len(products)) < 1:
    print("Sem resultados.")
    sys.exit(0)

print("Produtos encontrados: " + str(len(products)))
#ordenar os resultados por cobertura de nuvens