如何从oracledb中读取MDSYS格式的几何数据并转换成shapely格式或GeoJson格式?

2024-04-26 20:38:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

g = df.geometry[0]

我想做的是:

转换存储的数据g,将其以多段线的形式从shapely显示在folium地图上。我知道它是由一堆点组成的,这些点代表一个直线物体。你知道吗

我能做的是:

  1. 我可以读出SDO类型,即g.SDO_GTYPE给出2002

  2. 我可以读出SDO坐标,但它不会显示坐标,比如:<cx_Oracle.Object MDSYS.SDO_ORDINATE_ARRAY at 0x7f287848e4f0>

我不能做的:

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

给出错误:“上下文不提供地理接口”。你知道吗

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

有同事使用GIS工具读取数据,也就是说,为什么我怀疑数据是否损坏。我很乐意就这个问题提出任何建议。你知道吗

非常感谢。你知道吗


Tags: 数据数据库pandasdfobject空间地理at