本文整理汇总了Python中sentinelsat.SentinelAPI类的典型用法代码示例。如果您正苦于以下问题:Python SentinelAPI类的具体用法?Python SentinelAPI怎么用?Python SentinelAPI使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SentinelAPI类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_small_query
def test_small_query():
api = SentinelAPI(**_api_kwargs)
api.query(**_small_query)
assert api._last_query == (
'(beginPosition:[2015-01-01T00:00:00Z TO 2015-01-02T00:00:00Z]) '
'AND (footprint:"Intersects(POLYGON((0 0,1 1,0 1,0 0)))")')
assert api._last_status_code == 200
示例2: test_download_all
def test_download_all(tmpdir):
api = SentinelAPI(**_api_auth)
# From https://scihub.copernicus.eu/apihub/odata/v1/Products?$top=5&$orderby=ContentLength
filenames = ["S1A_WV_OCN__2SSH_20150603T092625_20150603T093332_006207_008194_521E",
"S1A_WV_OCN__2SSV_20150526T211029_20150526T211737_006097_007E78_134A",
"S1A_WV_OCN__2SSV_20150526T081641_20150526T082418_006090_007E3E_104C"]
ids = list(api.query_raw(" OR ".join(filenames)))
assert len(ids) == len(filenames)
# Download normally
product_infos, failed_downloads = api.download_all(ids, str(tmpdir))
assert len(failed_downloads) == 0
assert len(product_infos) == len(filenames)
for product_id, product_info in product_infos.items():
pypath = py.path.local(product_info['path'])
assert pypath.purebasename in filenames
assert pypath.check(exists=1, file=1)
assert pypath.size() == product_info["size"]
# Force one download to fail
id, product_info = list(product_infos.items())[0]
path = product_info['path']
py.path.local(path).remove()
with requests_mock.mock(real_http=True) as rqst:
url = "https://scihub.copernicus.eu/apihub/odata/v1/Products('%s')?$format=json" % id
json = api.session.get(url).json()
json["d"]["Checksum"]["Value"] = "00000000000000000000000000000000"
rqst.get(url, json=json)
product_infos, failed_downloads = api.download_all(
ids, str(tmpdir), max_attempts=1, checksum=True)
assert len(failed_downloads) == 1
assert len(product_infos) + len(failed_downloads) == len(filenames)
assert id in failed_downloads
示例3: test_date_arithmetic
def test_date_arithmetic():
api = SentinelAPI(**_api_kwargs)
products = api.query('ENVELOPE(0, 10, 10, 0)',
('2016-12-01T00:00:00Z-1DAY',
'2016-12-01T00:00:00Z+1DAY-1HOUR'))
assert api._last_response.status_code == 200
assert len(products) > 0
示例4: test_format_url_custom_api_url
def test_format_url_custom_api_url():
api = SentinelAPI("user", "pw", api_url='https://scihub.copernicus.eu/dhus/')
url = api._format_url()
assert url.startswith('https://scihub.copernicus.eu/dhus/search')
api = SentinelAPI("user", "pw", api_url='https://scihub.copernicus.eu/dhus')
url = api._format_url()
assert url.startswith('https://scihub.copernicus.eu/dhus/search')
示例5: test_large_query
def test_large_query():
api = SentinelAPI(**_api_kwargs)
products = api.query(**_large_query)
assert api._last_query == (
'(beginPosition:[2015-12-01T00:00:00Z TO 2015-12-31T00:00:00Z]) '
'AND (footprint:"Intersects(POLYGON((0 0,0 10,10 10,10 0,0 0)))")')
assert api._last_status_code == 200
assert len(products) > api.page_size
示例6: products
def products():
"""A fixture for tests that need some non-specific set of products as input."""
api = SentinelAPI(**_api_auth)
products = api.query(
geojson_to_wkt(read_geojson('tests/map.geojson')),
"20151219", "20151228"
)
return products
示例7: raw_products
def raw_products():
"""A fixture for tests that need some non-specific set of products in the form of a raw response as input."""
api = SentinelAPI(**_api_auth)
raw_products = api._load_query(api.format_query(
geojson_to_wkt(read_geojson('tests/map.geojson')),
"20151219", "20151228")
)
return raw_products
示例8: test_SentinelAPI_connection
def test_SentinelAPI_connection():
api = SentinelAPI(**_api_auth)
api.query(**_small_query)
assert api._last_query == (
'beginPosition:[2015-01-01T00:00:00Z TO 2015-01-02T00:00:00Z] '
'footprint:"Intersects(POLYGON((0 0,1 1,0 1,0 0)))"')
assert api._last_response.status_code == 200
示例9: raw_products
def raw_products(api_kwargs, vcr, test_wkt):
"""A fixture for tests that need some non-specific set of products in the form of a raw response as input."""
with vcr.use_cassette('products_fixture', decode_compressed_response=False):
api = SentinelAPI(**api_kwargs)
raw_products = api._load_query(
api.format_query(test_wkt, ("20151219", "20151228"))
)[0]
return raw_products
示例10: test_SentinelAPI_wrong_credentials
def test_SentinelAPI_wrong_credentials():
api = SentinelAPI(
"wrong_user",
"wrong_password"
)
with pytest.raises(SentinelAPIError) as excinfo:
api.query(**_small_query)
assert excinfo.value.response.status_code == 401
示例11: test_quote_symbol_bug
def test_quote_symbol_bug():
# A test to check if plus symbol handling works correctly on the server side
# It used to raise an error but has since been fixed
# https://github.com/SentinelDataHub/DataHubSystem/issues/23
api = SentinelAPI(**_api_kwargs)
q = 'beginposition:[2017-05-30T00:00:00Z TO 2017-05-31T00:00:00Z+1DAY]'
count = api.count(raw=q)
assert count > 0
示例12: products
def products(api_kwargs, vcr, test_wkt):
"""A fixture for tests that need some non-specific set of products as input."""
with vcr.use_cassette('products_fixture', decode_compressed_response=False):
api = SentinelAPI(**api_kwargs)
products = api.query(
test_wkt,
("20151219", "20151228")
)
assert len(products) > 20
return products
示例13: test_get_products_size
def test_get_products_size(products):
assert SentinelAPI.get_products_size(products) == 90.94
# load a new very small query
api = SentinelAPI(**_api_auth)
with my_vcr.use_cassette('test_get_products_size'):
products = api.query_raw("S1A_WV_OCN__2SSH_20150603T092625_20150603T093332_006207_008194_521E")
assert len(products) > 0
# Rounded to zero
assert SentinelAPI.get_products_size(products) == 0
示例14: test_get_products_size
def test_get_products_size(api, vcr, products):
assert SentinelAPI.get_products_size(products) == 75.4
# load a new very small query
with vcr.use_cassette('test_get_products_size'):
products = api.query(
raw="S1A_WV_OCN__2SSH_20150603T092625_20150603T093332_006207_008194_521E")
assert len(products) > 0
# Rounded to zero
assert SentinelAPI.get_products_size(products) == 0
示例15: test_missing_dependency_dataframe
def test_missing_dependency_dataframe(monkeypatch):
api = SentinelAPI("mock_user", "mock_password")
with pytest.raises(ImportError):
monkeypatch.setitem(sys.modules, "pandas", None)
api.to_dataframe({"test":"test"})
with pytest.raises(ImportError):
monkeypatch.setitem(sys.modules, "geopandas", None)
api.to_geodataframe({"test":"tst"})