Tải xuống các sản phẩm sentinel bằng API?


11

Tôi muốn có thể tự động hóa hoặc tải xuống hàng loạt dữ liệu Sentinel (đặc biệt là S2).

Tôi đang cố gắng sử dụng giao thức OData như được mô tả trong Hướng dẫn sử dụng Sentinels Science Data Hub về API và tập lệnh theo lô . Ví dụ, tôi cố tải xuống một sản phẩm hoàn chỉnh bằng wget:

wget --no-check-certificate --user=username --password=usrpass "https://scihub.copernicus.eu/apihub/odata/v1/Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/$value"

(Với tên người dùng và mật khẩu đã đăng ký) nhưng tôi chỉ nhận được index.html:

<?xml version='1.0' encoding='utf-8'?><entry xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xml:base="https://scihub.copernicus.eu/dhus/odata/v1/"><id>https://scihub.copernicus.eu/dhus/odata/v1/Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')</id><title type="text">S1A_IW_SLC__1SDV_20141023T172123_20141023T172150_002960_0035D1_9743</title><updated>2014-12-07T17:06:00.324Z</updated><category term="DHuS.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/><link href="Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')" rel="edit" title="Product"/><link href="Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/$value" rel="edit-media" type="application/octet-stream"/><link href="Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/Products" rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Products" title="Products" type="application/atom+xml;type=feed"/><link href="Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/Nodes" rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Nodes" title="Nodes" type="application/atom+xml;type=feed"/><link href="Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/Attributes" rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Attributes" title="Attributes" type="application/atom+xml;type=feed"/><link href="Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/Class" rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Class" title="Class" type="application/atom+xml;type=entry"/><content type="application/octet-stream" src="Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/$value"/><m:properties><d:Id>18f7993d-eae1-4f7f-9d81-d7cf19c18378</d:Id><d:Name>S1A_IW_SLC__1SDV_20141023T172123_20141023T172150_002960_0035D1_9743</d:Name><d:ContentType>application/octet-stream</d:ContentType><d:ContentLength>8544532822</d:ContentLength><d:ChildrenNumber>2</d:ChildrenNumber><d:Value m:null="true"/><d:CreationDate>2014-12-07T17:06:00.324</d:CreationDate><d:IngestionDate>2014-12-07T17:06:00.324</d:IngestionDate><d:EvictionDate m:null="true"/><d:ContentDate m:type="DHuS.TimeRange"><d:Start>2014-10-23T17:21:23.23</d:Start><d:End>2014-10-23T17:21:50.495</d:End></d:ContentDate><d:Checksum m:type="DHuS.Checksum"><d:Algorithm>MD5</d:Algorithm><d:Value>C4415763B3198B7A2874C2A60B2CDCDC</d:Value></d:Checksum><d:ContentGeometry>&lt;gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#4326" xmlns:gml="http://www.opengis.net/gml">
   &lt;gml:outerBoundaryIs>
      &lt;gml:LinearRing>
         &lt;gml:coordinates>41.289764,6.891860 41.685265,9.900283 40.048470,10.244140 39.652199,7.311233 41.289764,6.891860&lt;/gml:coordinates>
      &lt;/gml:LinearRing>
   &lt;/gml:outerBoundaryIs>
&lt;/gml:Polygon></d:ContentGeometry><d:Metalink>&lt;metalink xmlns="urn:ietf:params:xml:ns:metalink">&lt;file name ="S1A_IW_SLC__1SDV_20141023T172123_20141023T172150_002960_0035D1_9743.zip">&lt;url>https://scihub.copernicus.eu/dhus/odata/v1/Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/$value&lt;/url>&lt;/file>&lt;/metalink></d:Metalink></m:properties></entry>

Tuy nhiên, nếu tôi đặt truy vấn URI https://scihub.copernicus.eu/dhus/odata/v1/Products%28'18f7993d-eae1-4f7f-9d81-d7cf19c18378'%29/$valuetrực tiếp vào trình duyệt thì nó sẽ tải xuống tệp zip sản phẩm.

Tôi cũng đã thử sử dụng curl như được mô tả trong câu trả lời cho câu hỏi này

curl -u username:usrpass -JO "https://scihub.copernicus.eu/dhus/odata/v1/Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/$value"

nhưng tôi nhận được lỗi

Cảnh báo: Tên tệp từ xa không có độ dài!

Tôi chưa thể truy cập APIhub, chỉ trung tâm khoa học, (mặc dù một đồng nghiệp có quyền truy cập APIhub cũng đã thử điều đó và gặp vấn đề tương tự). Tôi có thể sử dụng gui trung tâm khoa học để tải xuống dữ liệu tương tác nhưng muốn có thể tự động hóa quy trình. Có các tập lệnh python của bên thứ ba và các tập lệnh shell xung quanh, nhưng nhiều tập lệnh sử dụng trung tâm API và tôi muốn hiểu những gì tôi đang làm để tôi có thể phát triển các tập lệnh cụ thể.


Bạn đã sử dụng phiên bản wget được biên dịch với hỗ trợ ssl chưa? Nếu không thì ssl đã thắng công việc.
Mờ

Tôi không chắc chắn, tôi nghĩ đó là mặc định với ubfox 14. (wget -V GNU Wget 1.15 được xây dựng trên linux-gnu. + Digest + https + ipv6 + iri + tệp lớn + nls + ntlm + opie + ssl / openssl ) (Biên dịch: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC = "/ etc / wgetrc" -DLOCALEDIR = "/ usr / share / locale" -I. -I ../../ src -I ../ lib -I ../ .. / lib Tường)
Colabean

Đó không phải là vấn đề khi bạn có + ssl / openssl.
Mờ

Câu trả lời:


7

Tôi đã nhận được sự giúp đỡ từ một nhà phát triển ứng dụng tại JNCC. Tôi sẽ đăng câu trả lời của họ ở đây để giúp đỡ người khác.

Vấn đề của tôi là tôi cần phải thoát khỏi ký tự $ trước đó value. vì vậy lệnh wget nên đọc (sử dụng apihub, mà bạn có thể thay thế bằng dhus):

wget --no-check-certificate --user=username --password=usrpass "https://scihub.copernicus.eu/apihub/odata/v1/Products('18f7993d-eae1-4f7f-9d81-d7cf19c18378')/\$value"

Hoặc để sử dụng curl lệnh gợi ý của mình là:

curl -u username:password -LkJO "https://scihub.copernicus.eu/dhus/odata/v1/Products('13e66985-7d1f-4a7c-be58-925e7ed7889d')/\$value"

Lưu ý $ đã thoát ở cuối. Nếu không có điều này, URL được gửi là https://scihub.copernicus.eu/dhus/odata/v1/ Products ('13e66985-7d1f-4a7c-be58-925e7ed7889d') / Nếu bạn thử url này trong trình duyệt, bạn sẽ nhận được url này mô tả html của sản phẩm.


Các curlphương pháp đang làm việc cho tôi, nhưng tôi nhận được một lỗi xác thực khi sử dụng wget.
philiporlando

7

Một thay thế tốt cho Scihub chính thức là dữ liệu Sentinel-2 được nhân đôi trên Amazon Web Services.

Sentinel-2 trên AWS

Điều này có lợi thế về thời gian hoạt động tốt hơn và các sản phẩm đã được lưu trong các lát MGRS của chúng, giúp tải xuống nhanh hơn rất nhiều.

Dữ liệu được lưu trữ trong một thùng công khai với sơ đồ tiles/[UTM code]/latitude band/square/[year]/[month]/[day]/[sequence]/DATA. Điều này làm cho việc lặp lại, tải xuống kịch bản của tất cả các cảnh có sẵn trên một khu vực rất dễ dàng.

Nếu bạn quan tâm đến việc tìm kiếm và tải xuống dữ liệu theo chương trình từ Scihub, bạn cũng có thể sử dụng công cụ Python Sentinelsat .


3

Tôi sẽ đề nghị sử dụng API Python sentinelsat cho việc này. Đặc biệt nếu mục tiêu của bạn là tải về hàng loạt.

Vui lòng xem bên dưới để biết một số mã ví dụ cho tải xuống Sentinel- 2 (Mã chạy từ Spyder)

#First, import this library (sentinelsat)
from sentinelsat import SentinelAPI, read_geojson, geojson_to_wkt
from datetime import date

api = SentinelAPI('user', 'password', 'https://scihub.copernicus.eu/dhus')

# search by polygon, time, and SciHub query keywords
footprint = geojson_to_wkt(read_geojson(r'/path/to/map.geojson'))
products = api.query(footprint,
                     date=('20151219', date(2015, 12, 29)),
                     platformname='Sentinel-2',
                     cloudcoverpercentage=(0, 30))

#Download all products 
api.download_all(products)

FYI, nếu bạn đang tìm kiếm dữ liệu trên toàn quốc, hãy chia AOI thành các shapefile nhỏ hơn vì tôi gặp vấn đề này khi nó không trả về kết quả khi AOI của tôi quá lớn.

Hãy đọc phần này để biết thêm thông tin: https://buildmedia.readthedocs.org/media/pdf/sentinelsat/master/sentinelsat.pdf

Ngoài ra còn có các tùy chọn để tải xuống hàng loạt Sentinel-1.


Điều này có làm việc cho bạn?
Rhodri_22
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.