如何从MDSYS格式的Oracle DB中读出几何数据并转换为匀称格式或GeoJson?

问题描述 投票:0回答:2

我正在读出一个带有地理空间几何形状的Oracle数据库,我将其保存在一个pandas数据框中,比如df在一个名为“geometry”的列中有一个格式为<cx_Oracle.Object MDSYS.SDO_GEOMETRY at 0x7f28的几何对象。让我们把它存储为:

g = df.geometry[0]

我想做的事:

转换存储g的数据,将其作为PolyLine从叶片地图上呈现出来。我知道它由一堆代表线对象的点组成。

我可以做什么:

  1. 我可以读出SDO_GTYPE,即g.SDO_GTYPE给出了2002
  2. 我可以读出SDO_ORDINATES,但它不会向我显示坐标,说:<cx_Oracle.Object MDSYS.SDO_ORDINATE_ARRAY at 0x7f287848e4f0>

我做不到的事:

  1. 使用匀称和asShape转换几何信息:
from shapely.geometry import asShape
shape = asShape(g)

给出错误:'上下文不提供地理接口'。

  1. 在SQL语句中使用Get_WKT()或任何其他函数

有同事用GIS工具阅读数据,即我怀疑数据是否已损坏。对于有关此问题的任何建议,我会很高兴。

非常感谢。

python pandas gis cx-oracle
2个回答
1
投票

没有任何Oracle DB经验,但这个SO question看起来与你的相似。


0
投票

这个sample可能对你有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.