Sentinel-2产品的状态总是返回False(0),即使它们应该返回True(1)



我正在尝试使用python检查Sentinel-2的卫星图像产品在ESA服务器上是"在线"还是"离线"。我正在使用GNU Wget来实现这一点。

如文件所示(https://scihub.copernicus.eu/userguide/DataRestoration),您可以使用以下URI来查看某个UUID的产品是联机还是脱机:

https://scihub.copernicus.eu/dhus/odata/v1/Products('98ca202b-2155-4181-be88-4358b2cbaaa0')/Online/$value

括号之间的部分是UUID。当仅手动使用此链接时,它会按预期工作,并为在线产品返回true(1(,为离线产品返回false(0(。

我有以下代码:

import subprocess
def IsOnline(UUID):
wget_command = "wget --no-check-certificate --continue" + " --user={}".format(USERNAME) + " --password={}".format(PASSWORD)
URI = "https://scihub.copernicus.eu/dhus/odata/v1/Products('{0}')/Online/$value".format(UUID)
wget_cmd = wget_command + ' "' + URI + '"'
return subprocess.call(wget_cmd)
IsOnline(UUID)

应联机的UUID='586bafc4-fe2-4918-85e1-fe03090952ad'

应脱机的UUID='85fb6b2a-6559-4025-821f-b72573f3339c6'

不幸的是,所有事情,甚至在线UUID的返回都为False(0(。有人知道如何解决这个问题吗?

有人知道如何解决这个问题吗?

注意,subprocess.call确实返回命令的返回代码,通常0表示命令执行时没有错误。若这样,wget应该创建文件,您应该能够检查该文件,以确定什么是API响应。请检查是否是这种情况,如果是,您可以使用-O通知wget下载的文件应该如何命名,例如:

wget -O example.html https://www.example.com

这应该让在python中阅读它变得容易。

相关内容

  • 没有找到相关文章

最新更新