Я зачитываю базу данных Oracle с геопространственной геометрией, которую я сохраняю в кадре данных pandas, скажем, df
с геометрическим объектом формата <cx_Oracle.Object MDSYS.SDO_GEOMETRY at 0x7f28
в столбце с именем «геометрия». Давайте сохраним это как:
g = df.geometry[0]
Что я хочу сделать:
Преобразуйте данные, хранящиеся в g
, чтобы представить их на карте фолиума как PolyLine из shapely. Я знаю, что он состоит из группы точек, представляющих линейный объект.
Что я могу сделать:
Я могу прочитать SDO_GTYPE, то есть g.SDO_GTYPE
дает 2002
.
Я могу прочитать SDO_ORDINATES, но он не покажет мне координаты, сказав: <cx_Oracle.Object MDSYS.SDO_ORDINATE_ARRAY at 0x7f287848e4f0>
.
Что я не могу сделать:
- Преобразование геометрической информации с помощью shapely и asShape:
from shapely.geometry import asShape
shape = asShape(g)
выдает ошибку: «Контекст не предоставляет геоинтерфейс».
- Используйте Get_WKT () или любые другие функции в SQL-выражениях
Есть коллеги, которые читают данные с помощью ГИС-инструмента, т.е. я сомневаюсь, что данные повреждены. Буду рад любым предложениям по этому вопросу.
Большое спасибо.