我试图用python来检查来自哨兵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-cfe2-4918-85e1-fe03090952ad‘
应该脱机的UUID =‘85fb6b2a-6559-4025-821 f-b72573f339c6’
不幸的是,一切,甚至在线UUID的返回False (0)。有人知道怎么解决这个问题吗?
发布于 2022-03-25 09:25:59
,有人知道如何解决这个问题吗?
请注意,subprocess.call确实返回命令的返回代码,通常情况下,0表示执行命令时没有错误。如果是这样的话,wget应该创建文件,您应该能够检查该文件,以确定什么是API响应。请检查是否是这种情况,如果是,可以使用-O通知wget下载的文件应该如何命名,例如:
wget -O example.html https://www.example.com这应该使用python阅读它变得容易了。
https://stackoverflow.com/questions/71603391
复制相似问题