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)'
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