首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sentinel-2产品的状态总是返回False (0),即使它们应该返回True (1)

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

Stack Overflow用户
提问于 2022-03-24 13:28:03
回答 1查看 25关注 0票数 0

我试图用python来检查来自哨兵2号的卫星图像产品在ESA服务器上是“在线”还是“离线”。我用GNU Wget来实现这一点。

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

代码语言:javascript
复制
https://scihub.copernicus.eu/dhus/odata/v1/Products('98ca202b-2155-4181-be88-4358b2cbaaa0')/Online/$value

括号之间的部分是UUID。当只手动使用此链接时,它将按预期工作,并返回true (1)用于联机产品,false (0)用于脱机产品。

我有以下代码:

代码语言:javascript
复制
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)。有人知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-25 09:25:59

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

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

代码语言:javascript
复制
wget -O example.html https://www.example.com

这应该使用python阅读它变得容易了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71603391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档