IMAP SDC 数据访问
项目描述
IMAP 数据访问包
这个轻量级Python包允许用户从IMAP科学数据中心(SDC)下载、查询和上传数据。
有关更多信息,请参阅详细说明。
命令行工具
安装
pip install imap-data-access
imap-data-access -h
基本命令参数
$ imap-data-access query # or
$ imap-data-access download # or
$ imap-data-access upload
添加'-h'帮助标志以获取任何基本命令的更多信息
查询/搜索数据
查找来自SWE仪器的所有文件
$ imap-data-access query --instrument swe
Found [3] matching files
|-----------------------------------------------------------------------------------------------------------------------------------|
| Instrument | Data Level | Descriptor | Start Date | Repointing | Version | Filename |
|-----------------------------------------------------------------------------------------------------------------------------------|
| swe | l0 | raw | 20240510 | | v022 | imap_swe_l0_raw_20240510_v022.pkts |
| swe | l1a | sci | 20240510 | | v022 | imap_swe_l1a_sci_20240510_v022.cdf |
| swe | l1b | sci | 20240510 | | v022 | imap_swe_l1b_sci_20240510_v022.cdf |
|-----------------------------------------------------------------------------------------------------------------------------------|
在2024年期间查找所有文件,并将响应作为原始json返回
$ imap-data-access query --start-date 20240101 --end-date 20241231 --output-format json
[{'file_path': 'imap/swe/l0/2024/01/imap_swe_l0_sci_20240105_v001.pkts', 'instrument': 'swe', 'data_level': 'l0', 'descriptor': 'sci', 'start_date': '20240105', 'version': 'v001', 'extension': 'pkts'}, {'file_path': 'imap/swe/l0/2024/01/imap_swe_l0_sci_20240105_v001.pkts', 'instrument': 'swe', 'data_level': 'l0', 'descriptor': 'sci', 'start_date': '20240105', 'version': 'v001', 'extension': 'pkts'}]
下载一个文件
在2024/01/05下载一个0级SWE文件
[!注意] 确保目录配置正确,有关更多信息,请参阅数据目录部分。
$ imap-data-access download imap/swe/l0/2024/01/imap_swe_l0_sci_20240105_v001.pkts
Successfully downloaded the file to: <IMAP_DATA_DIR>/imap/swe/l0/2024/01/imap_swe_l0_sci_20240105_v001.pkts
上传一个文件
在解码l0 CCSDS ".pkts"文件后上传l1a文件
$ imap-data-access upload /imap/swe/l1a/2024/01/imap_swe_l1a_sci_20240105_v001.cdf
Successfully uploaded the file to the IMAP SDC
作为包导入
import imap_data_access
# Search for files
results = imap_data_access.query(instrument="mag", data_level="l0")
# results is a list of dictionaries
# [{'file_path': 'imap/swe/l0/2024/01/imap_swe_l0_sci_20240105_v001.pkts', 'instrument': 'swe', 'data_level': 'l0', 'descriptor': 'sci', 'start_date': '20240105','version': 'v001', 'extension': 'pkts'}, {'file_path': 'imap/swe/l0/2024/01/imap_swe_l0_sci_20240105_v001.pkts', 'instrument': 'swe', 'data_level': 'l0', 'descriptor': 'sci', 'start_date': '20240105', 'version': 'v001', 'extension': 'pkts'}]
# Download a file that was returned from the search
imap_data_access.download("imap/mag/l0/2024/01/imap_mag_l0_raw_202040101_v001.pkts")
# Upload a calibration file that exists locally
imap_data_access.upload("imap/swe/l1a/2024/01/imap_swe_l1a_sci_20240105_v001.cdf")
配置
数据目录
IMAP SDC内部的数据文件文件夹结构是严格定义的,因此数据访问将模仿该结构,以确保所有数据都存储在与SDC相同的层级结构中。这将使用户的本地系统与SDC之间的过渡变得无缝。这仅用于下载。
用户的根数据位置可以指定为环境变量IMAP_DATA_DIR
或通过包内部的配置字典imap_data_access.config["DATA_DIR"]
。如果未设置IMAP_DATA_DIR
变量,则程序默认为用户当前工作目录+data/
。
以下是IMAP SDC使用的目录结构。
<IMAP_DATA_DIR>/
imap/
<instrument>/
<data_level>/
<year>/
<month>/
<filename>
例如,如果IMAP_DATA_DIR=/data
/data/
imap/
swe/
l0/
2024/
01/
imap_swe_l0_sci_20240105_v001.pkts
数据访问URL
要更改包访问的默认URL,可以设置环境变量IMAP_DATA_ACCESS_URL
或包内部imap_data_access.config["DATA_ACCESS_URL"]
。默认为开发服务器https://api.dev.imap-mission.com
。
故障排除
网络问题
SSL
如果您遇到类似于以下SSL错误
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)>
这通常意味着您使用的Python环境没有正确找到系统根证书。这意味着您需要通过以下潜在解决方案告诉Python如何找到这些证书。
-
升级certifi包
pip install --upgrade certifi
-
安装系统证书 根据您安装程序时使用的Python版本,命令将类似于以下内容
/Applications/Python\ 3.10/Install\ Certificates.command
HTTP错误502:网关错误
这可能意味着该服务暂时关闭。如果您继续遇到此问题,请联系IMAP SDC,邮箱为imap-sdc@lasp.colorado.edu。
文件未找到错误
这可能意味着本地数据目录没有设置与SDC相同的路径。请参阅数据目录部分以获取设置示例。
文件验证
此包验证文件名和路径,检查它们是否遵循我们根据文件名约定定义的标准。还有可供其他包使用的类,用于创建遵循IMAP SDC约定的文件路径和文件名。
要使用此类,请使用imap_data_access.ScienceFilePath
。
用法
science_file = imap_data_access.ScienceFilePath("imap_swe_l0_sci_20240101_v001.pkts")
# Filepath = /imap/swe/l0/2024/01/imap_swe_l0_sci_20240101_v001.pkts
filepath = science_file.construct_path()
贡献者 ✨
感谢以下这些优秀的人(emoji键)
Greg Lucas 💻 |
Matthew Bourque 💻 |
Maxine Hartnett 💻 |
Michele Facchinelli 💻 |
anamanica 📖 |
Daralynn Rhode 📖 💻 |
此项目遵循all-contributors规范。欢迎任何类型的贡献!
项目详细信息
imap_data_access-0.10.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1b05b03dd465f10af4137c8fa8061626cc350751df32c47bbac728e95038ad5f |
|
MD5 | 1e8974942d6f40c5001311ef86169b45 |
|
BLAKE2b-256 | 21ba6e2fc0655e8686b9de57d5f6960d7020a70db1f6ae3a4808124d7455b7b9 |