Python3接口到rasdaman

rasdapy3的Python项目详细描述


rasdapy是rasdaman的客户机API,它支持生成和执行rasql python中的查询。

要求

安装

  1. 确保已安装pip3(例如sudo apt install python-pip3
  2. 使用pip3 install rasdapy3
  1. 请注意,如果没有安装setuptools、numpy、grpcio和protobuf, 它们将作为依赖项下载。在

使用

{a2} 与C++的RASQL客户端类似的接口是可用的 如何使用rasdapy向rasdaman发送查询并处理结果。低于 列出了使用rasdapy的最重要细节。在

导入rasdapy核心API

>>> from rasdapy.db_connector import DBConnector
>>> from rasdapy.query_executor import QueryExecutor

连接到rasdaman

DBConnector维护与rasdaman的连接。为了连接它 必须指定运行rasmgr的主机和端口,以及 有效的rasdaman用户名和密码。在

^{pr2}$

创建查询执行器

QueryExcutor是rasql查询(create,insert, 执行更新、删除等)。在

>>> query_executor = QueryExecutor(db_connector)

打开与拉斯达曼的连接

>>> db_connector.open()

执行示例查询

下面的查询返回rasdaman中所有可用集合的列表。在

>>> colls = query_executor.execute_read("select c from RAS_COLLECTIONNAMES as c")
>>> print(colls)

计算集合mr2中所有值的平均值。在

>>> result = query_executor.execute_read("select avg_cells(c) from mr2 as c")
>>> type(result)

根据查询的不同,结果将具有不同的类型(例如标量值, 间隔,数组)。每个数据类型都被包装在corresponding class中。在

在集合mr2中选择每个数组的特定子集。此查询将 返回可以转换为Numpy ndarray的原始数组数据。在

>>> result = query_executor.execute_read("select m[0:10 ,0:10] from mr2 as m")
>>> numpy_array = result.to_array()

将数组子集编码为PNG格式并将结果写入文件。在

>>> result = query_executor.execute_read("select encode(m[0:10 ,0:10], \"png\") from mr2 as m")
>>> with open("/tmp/output.png", "wb") as binary_file:
>>>   binary_file.write(result.data[0])

创建一个rasdaman系列。请注意,您应该与 具有写入权限;默认情况下,这是rasdaman中的rasadmin/rasadmin,但是 可由管理员管理。在

>>> query_executor.execute_write("create collection test_rasdapy GreySet")

将PNG图像中的数据插入到集合中。同样,你需要 此操作的写入权限。在

>>> query_executor.execute_write("insert into test_rasdapy values decode($1)", "mr_1.png")

或者,您可以从原始二进制文件导入数据;在本例中是这样 必须指定空间域和数组类型。在

>>> query_executor.execute_update_from_file("insert into test_rasdapy values $1",
                                            "raw_array.bin", "[0:100]", "GreyString")

有关rasql的更多示例查询和一般指南,请参见 rasdaman documentation。在

关闭与拉斯达曼的连接

>>> db_connector.close()

最佳实践:

建议遵循此模板,以避免出现问题 泄露交易:

from rasdapy.db_connector import DBConnector
from rasdapy.query_executor import QueryExecutor

db_connector = DBConnector("localhost", 7001, "rasadmin", "rasadmin")
query_executor = QueryExecutor(db_connector)

db_connector.open()

try:
    query_executor.execute_read("...")
    query_executor.execute_write("...")
    # ... more Python code
finally:
    db_connector.close()

贡献者

  • 邦芬惠
  • 西德哈斯舒克拉
  • 米塞夫
  • 让·弗朗索瓦·勒孔特
  • 德拉吉·卡莫夫

也要感谢

  • 亚历克斯·米尔恰·杜米特鲁
  • 弗拉德·梅蒂卡里乌
  • 乔治·梅蒂卡里乌
  • 亚历克斯烤面包机
  • 彼得·鲍曼

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是从此类字符串中提取数据的最佳方法   filenotfoundexception Java FileOutputStream Windows/Linux   java在SQLite数据库Android SDK中搜索特定字符串   java使用键值访问jsp中Map<Long,Map<String,Object>>的内容   java奇怪的HTMLeditor工具包问题   在java中使用数组只计算字母   每个应用程序都可以有自己独立的Java SDK吗   java如何将jasper报告生成的PDF文件保存在一个项目文件夹中   java BigDecimal包装器:静态字段为零   解码Base64图像时出现java IllegalArgumentException(非法的Base64字符)   将int转换为字节在Java和Actionscript中产生不同的结果   java什么使不可变对象在没有安全发布技术的情况下发布?   java将字节数据写入目录   一个计算器中有多个操作的java问题   面向对象Java重写是如何工作的   带hibernate的java ClassCastException   指向最后一个对象的java对象列表   java单元测试spring项目中的Get请求