跳转到主要内容

CDX客户端

项目描述

CDX客户端提供了一组API库和命令行工具,用于访问CDX数据。CDX是气候数据交换的缩写,它是喷气推进实验室创建的一个虚拟环境,用于共享气候数据。

安装

本文档将向您介绍如何安装cdx.client。

快速说明

作为具有管理员权限的用户,请运行

easy_install cdx.client

就是这样。

完整说明

cdx.client需要Python编程语言。我们推荐使用2.4或更高版本。在撰写本文档时,2.6是最新的稳定版本。如果您系统上尚未安装Python,可以从Python网站下载二进制和源代码发行版。

要测试系统上是否有正确的Python版本,请运行

python -V

您应该看到类似以下输出

Python 2.6

这表明已安装的Python版本。cdx.client还需要Agile OODTOODT是面向对象数据技术,一个用于元数据和数据网格的框架。Agile OODT是OODT的Python版本,它比Java版本具有更高的性能和更简单的集成。

到目前为止,安装cdx.client最简单、最推荐、最鼓励的方式是使用EasyInstall。如果您的Python安装已经提供了EasyInstall,那么您只需运行一个命令即可一次性下载、构建、安装并为系统上的所有用户生成命令行工具

easy_install cdx.client

请务必以管理员身份运行该命令。例如,在Mac OS X和其他Unix系统上,您可能需要运行

sudo easy_install cdx.client

这将下载并安装所有依赖项,包括Agile OODT。

可执行文件

命令cdxlscdxget将被生成并放置在您的标准Python命令安装目录中。通常,这是与python可执行文件相同的目录。例如,在Mac OS X 10.5上,目录是

/Library/Frameworks/Python.framework/Versions/Current/bin

您可能想将此目录添加到shell的PATH变量中,并强制shell重新扫描PATH变量以查找新可执行文件。

安装EasyInstall

如果您所在的系统上Python安装缺少easy install,请不要担心。将系统升级以获得EasyInstall的功能相当简单。请按照以下说明操作

  1. 下载http://peak.telecommunity.com/dist/ez_setup.py

  2. 以管理员身份使用系统的Python运行新下载的ez_setup.py文件。

EasyInstall及其必要的库将为您下载、构建和安装,并生成easy_install可执行文件。easy_install可执行文件的位置如上所述。

不使用EasyInstall安装

如果系统上没有EasyInstall,您仍然可以正确安装cdx.client。请按照以下说明操作

  1. http://oodt.jpl.nasa.gov/dist/agile-oodt/oodt-0.0.1.tar.gz下载Agile OODT源代码发行版。根据需要替换版本号。

  2. http://cdx.jpl.nasa.gov/software/dist/cdx.client-0.0.3.tar.gz下载cdx.client源代码发行版。根据需要替换版本号。

  3. 解压每个存档。

  4. 将当前工作目录更改为每个新创建的子目录,oodt-0.0.1cdx.client-0.0.2,并根据需要替换版本号。

  5. 作为管理员用户,在每个子目录中运行:python setup.py install

问题和疑问

要报告有关cdx.client的问题或寻求帮助,请访问我们的联系方式网页。

使用CDX客户端

安装CDX客户端包在您的计算机上提供了三项内容

cdxls命令

cdxls命令允许您从终端提示符或shell脚本中列出CDX服务器的目录内容。

cdxget命令

cdxget命令允许您从终端提示符或shell脚本中检索CDX中的数据。

CDX库

CDX库是一个基于Python的API,用于使用CDX服务器。

本文档描述了如何使用上述三项,特别关注CDX库。

命令

安装CDX客户端包后,您的系统上将提供两个新命令:cdxlscdxget。这些命令使您能够列出CDX服务器上的数据内容并从服务器检索所选文件。

要从交互式提示符使用这些命令,您只需确保您的shell的PATH环境变量包括命令安装的目录。在大多数系统中,这两个命令安装在

/usr/local/bin

然而,在Mac OS X上,安装位置可能是

/Library/Frameworks/Python.framework/Versions/Current/bin

而在Windows上,它可能是

c:\Program Files\Python

请注意,某些交互式shell会创建一个命令缓存以更快地执行您的请求。您可能需要强制您的shell重新构建该缓存。csh和tcsh shell就是这样的例子;您可以通过运行rehash命令来使这些shell重新构建它们的缓存。

从Shell脚本中使用

cdxls和cdxget命令也可以在shell脚本中使用。使这些命令可用于shell脚本的要求与交互会话相同:shell的PATH环境变量必须包括包含cdxls和cdxget命令的目录。

以下是一个示例shell脚本,用于检索2008年325天的MLS Aura L2GP数据文件(和元数据文件)HO2和HOCl

#!/bin/sh
PATH=/usr/local/bin:/usr/bin:/bin; export PATH
CDX_SERVER=http://mlscdx.jpl.nasa.gov:8080/cdx/prod; export CDX_SERVER

for kind in HO2 HOCl; do
    for extension in he5 he5.met; do
        cdxget 2008/325/MLS-Aura_L2GP-${kind}_v02-23-c01_2008d325.${extension}
    done
done

上面的shell脚本假定cdxget将在/usr/local/bin/usr/bin/bin中找到。它还设置了CDX_SERVER环境变量,以设置要与之通信的CDX服务器。然后,它通过两种类型的数据(HO2和HOCl)和两种类型的文件扩展名(he5和he5.met)进行循环。结果是从当前工作目录检索四个文件,具体如下

  • 2008/325/MLS-Aura_L2GP-HO2_v02-23-c01_2008d325.he5

  • 2008/325/MLS-Aura_L2GP-HO2_v02-23-c01_2008d325.he5.met

  • 2008/325/MLS-Aura_L2GP-HOCl_v02-23-c01_2008d325.he5

  • 2008/325/MLS-Aura_L2GP-HOCl_v02-23-c01_2008d325.he5.met

cdxsubset命令也可以从shell脚本中使用。它由两个环境变量配置

  • CDX_SUBSET_MODE - 如果设置,则使用本地数据包装器模式(默认为远程)

  • CDX_SERVER - 设置用于子集的产品服务器

一些示例工作命令是

从NCAR CCSM模型输出中提取空间边界框

cdxsubset -b /esg/data18/commit/atm/da/hfls/ncar_ccsm3_0/run1/hfls_A2.Commit_1.CCSM.atmd.2000-01-01_cat_2039-12-31.nc

从NCAR CCSM模型输出中提取时间范围

cdxsubset -t /esg/data18/commit/atm/da/hfls/ncar_ccsm3_0/run1/hfls_A2.Commit_1.CCSM.atmd.2000-01-01_cat_2039-12-31.nc

从MLS L2数据块中获取时间数组变量数据

cdxsubset -p Time /mls/2005/100/MLS-Aura_L2GP-BrO_v01-51-c01_2005d100.he5

从AIRS L2数据块中获取空间边界框

cdxsubset -b /airs/data/s4pa/Aqua_AIRS_Level2/AIRX2RET.003/2007/005/AIRS.2007.01.05.240.L2.RetStd.v4.0.9.0.G07007180718.hdf

对AIRS L2数据块按纬度、经度和变量进行子集化

cdxsubset -p TAirStd --latitude-range=67.35:78.40 -longitude-range=172.226:176.10 /airs/2009/01/01/airx2ret/AIRS.2009.01.01.001.L2.RetStd.v5.2.2.0.G09002135510.hdf

CDX库

CDX库是一个基于Python的应用程序编程接口(API),用于与CDX服务器通信。实际上,两个命令cdxls和cdxget是使用CDX库实现的。如果您不喜欢shell脚本编程,并且知道Python,那么使用CDX库可能适合您。

CDX库使用面向对象的方法来模拟CDX服务器的内容。对象代表CDX文件和目录,您可以通过调用这些对象上的方法来确定文件属性、目录内容或检索文件的正文。

本文档的其余部分描述了构成CDX库的模块、类和函数。如果您不了解Python,您可能希望跳过其余部分。

cdx模块

cdx模块是一个命名空间模块。它不提供类或函数。相反,它包含一个名为client的嵌套模块。

cdx.client模块

cdx.client模块包含提供CDX库的嵌套模块。它还包括cdxlscdxget命令的实现。

cdx.client.cdxfile模块

cdx.client.cdxfile模块是所有动作发生的地方。它包含用于与CDX服务器通信和建模内容的类和函数。它包含以下项目

CDXDirectory

此类的对象代表CDX服务器上的目录。您可以使用Python的迭代器、长度和包含协议来检查目录的内容。它们也可以被排序。

CDXFile

此类的对象代表CDX服务器上的文件。虽然您可以实例化此类对象,但通常您会实例化一个CDXDirectory并检查其内容,这将包括目录中的CDXFile对象和嵌套的CDXDirectory对象。CDXFile对象还提供了一个方法,让您可以检索其数据。

findFile

findFile函数是一个实用函数,给定一个起始CDXDirectory和路径名,在CDX服务器上生成匹配的CDXDirectory或CDXFile。

CDXDirectory对象

CDXDirectory对象代表CDX服务器中的目录。您可以直接创建这些对象,也可以使用cdx.client.cdxfile模块中的findFile方法。

class CDXDirectory(path, cdxURL = None)

使用给定的path创建一个CDXDirectory对象。您还可以通过传递一个字符串给cdxURL来指定要使用的CDX服务器URL。

sort(cmp = cmp, reverse = False)

使用比较函数cmp返回排序后的目录内容,默认为Python内置的cmp。如果reverse为True,则反转排序顺序。比较CDXFileCDXDirectory对象时,按CDX服务器URL和名称进行。您可以传递自己的cmp,例如按文件大小排序。

isFile()

始终返回False。

path

目录的路径名。

name

目录的名称;这是路径的最后一个元素。

size

按照惯例,目录的大小始终为零。

CDXDirectory对象遵守Python的散列、比较、包含测试、迭代、索引和长度查询协议。使用CDXDirectory对象、CDXFile对象或普通字符串与目录进行包含测试

>>> from cdx.client.cdxfile import CDXDirectory
>>> root = CDXDirectory('/', 'https://127.0.0.1:8192/cdx/prod')
>>> len(root)
3
>>> subdir = root['2005']
>>> subdir
CDXDirectory(path=/2005)
>>> subdir in root
True
>>> '2005' in root
True
>>> subdir < root
False
>>> subdir > root
True
>>> for i in root:
...     print i
...
/2008
/2007
/2005
>>> root.sort()
[CDXDirectory(path=/2005), CDXDirectory(path=/2007), CDXDirectory(path=/2008)]
CDXFile对象

待定。

变更日志

1.3.1 - 10/19/11

本发行版包括CDX-122中指定的数据包装器包(0.0.8)的更新版本。

有关问题跟踪器,请参阅https://oodt.jpl.nasa.gov/jira/browse/CDX

1.3.0 - 10/17/11

本发行版修复了CDX重网格服务的一个重要问题,并计算了按立方体单元索引的数据点的运行总和的平均值。有关更多信息,请参阅CDX-118。

有关问题跟踪器,请参阅https://oodt.jpl.nasa.gov/jira/browse/CDX

1.2.0 - 06/27/11

本发行版提供了与ESG的紧密集成,并连接到其安全基础设施,并为cdxregrid和cdxsubset在ESG数据中添加了大量虚拟根。有关更多信息,请参阅CDX-110和CDX-111。

有关问题跟踪器,请参阅http://oodt.jpl.nasa.gov/jira/browse/CDX

1.1.0 - 11/13/2010

本版本包含了 cdx.datawrappers 包的 0.0.6 版本,其中包含 CDX-103,该版本实现了通过纬度、经度和时间获取变量的功能。反过来,本版本还提供了 CDX-102,它将此功能集成到基本的 cdxregrid 功能中。目前,cdxregrid 几乎完全具备功能。

有关问题跟踪器,请参阅http://oodt.jpl.nasa.gov/jira/browse/CDX

1.0.0 - 09/10/10

本版本对公共 cdxls API 进行了微小改进,暴露了 listFiles 函数找到和丢失的文件列表,移除了其功能局部编排,并将找到和未找到的文件列表暴露给用户。有关更多信息,请参阅 CDX-93。本版本还通过 cdxls 暴露了 CDX MODIS 产品服务器。有关详细信息,请参阅 CDX-98。最后,本版本包含更新,以修复 CloudSat 作为 cdxsubset 源的问题,如 CDX-99 所述。

有关问题跟踪器,请参阅http://oodt.jpl.nasa.gov/jira/browse/CDX

0.0.9 - 03/24/2010

本版本对 cdxsubset 进行了改进,特别是能够打印出从 DataWrapper 返回的完整 numpy 数组。有关具体信息,请参阅 CDX-82。此外,cdxsubset 已更新,根据 CDX-84 和 CDX-85 暴露了按经纬度子集的功能。本版本还包括了允许指定约束的范围查询子集功能(有关更多信息,请参阅 CDX-86)。

有关问题跟踪器,请参阅http://oodt.jpl.nasa.gov/jira/browse/CDX

0.0.8 - 包含对cdxcd、虚拟根和新工具的改进

本版本对 cdxcd 进行了改进,使其与 cdx 虚拟根配合得很好,并且包括与其他 cdx 客户端工具集的集成,包括 cdxls、cdxsubset 和 cdxget。有关更多详细信息,请参阅 CDX-70 和 CDX-71。

有关问题跟踪器,请参阅http://oodt.jpl.nasa.gov/jira/browse/CDX

0.0.7 - 添加资源文件

0.0.6 版本配置不当,没有包含一些重要的资源文件。此紧急版本包括它们!

0.0.6 - 包含cdxsubset和其他工具,以及一些小错误修复

本版本包括 cdxsubset 工具,如 CDX-56 所述。本版本还包括 cdxcd 工具,如 CDX-69 所述。此外,本版本还包括针对 cdxls 中的路径问题进行的微小美学错误修复,例如 CDX-29。

有关问题跟踪器,请参阅http://oodt.jpl.nasa.gov/jira/browse/CDX

0.0.5 - 修复单元测试

本版本根据 0.0.4 中的更改和新产品服务器的行为更新了单元测试和测试数据。此外,它修复了 INSTALL.txt 文件中的某些文档问题(错误的包名 cdx-client 应为 cdx.client)。

本版本唯一解决的错误报告是 CDX-45,“cdx-client 中的单元测试失败”。有关问题跟踪器,请参阅 http://oodt.jpl.nasa.gov/jira/browse/CDX

0.0.4 - 修复0.0.3版本中的错误

这是一个针对 0.0.3 的错误修复版本,其中包括一些错误检查,以处理 OODT OFSN 产品服务器端的数据格式不一致。

JIRA 问题(请参阅 http://oodt.jpl.nasa.gov/jira/browse/CDX)已解决

  • CDX-43 如果没有 -r 参数调用 cdxget,则不应保留目录结构

  • CDX-42 cdxget -r 无法检索 MLS 数据

  • CDX-41 cdxls -R 如果未提供目录大小,则会导致问题

0.0.3 - 目录缓存

本版本的最重要的功能是 cdx.client.dircache 模块,它使本地磁盘缓存远程 CDX 产品服务器内容的一部分成为可能。它还引入了 cdx: 方案 URL 的概念。此类 URL 的形式如下

cdx://hostname[:port]/endpoint/prod/path/to/a/directory

其中 hostname 是 CDX 产品服务器的名称或 IP 地址,port 是服务器监听的可选端口号,endpoint 是 WebGrid 服务标识符(通常是字符串 cdx),prod 是固定关键字 prod,而 path/to/a/directory 是该产品服务器内目录的绝对路径。

此类缓存旨在支持 CCMValDiag 软件。

0.0.2 - 修复cdxls的错误

本版本修复了 cdxls 中的一个错误,该错误导致目录中只有一个项目时无法正确列出。

0.0.1 - URL规范

本版本提供了 (-u url, –url=url) 命令行选项对,允许指定要使用的特定 URL,回退到 CDX_SERVER 环境变量中指定的 URL(如果未设置,则为 http://mlscdx.jpl.nasa.gov:8080/cdx/prod)。这支持了 CDX-16 中提出的两个想法(前两个,而不是第三个具有 cdx: 样式的 URL)。

0.0.0 - 初始

这是cdx-client的初始版本,支持基本的 cdxlscdxget 功能。

项目详情


由以下支持